Portál AbcLinuxu, 29. října 2025 22:47
turbostat --debug z balíku linux-cpupower. Případně z téhož balíčku cpupower frequency-info a cpupower idle-info .
a neustále by se budil, aby Vám řekl, že je mu horko... Mimochodem další příbuzná varianta je, že odchází baterka nebo externí napájecí adaptér, což moderní noťasy umí poznat. Konektor a kabel k adaptéru má žílu nebo dvě navíc pro digitální komunikaci - a pokud adaptéru už není dobře, nebo se ukroutí tenká žíla v tom komunikačním kanálu, nebo použijete neoriginální adaptér/redukci bez té režijní komunikace, může počítač začít throttlovat procesor (viz opět turbostat) a/nebo hlásit divné věci v uživatelském rozhraní. Například je výborná hláška ve Windows "máte vadný síťový adaptér" - a hledáte vadu v Ethernetu
Pravda je, že v tom případě by si systém nestěžoval na teplotu. Jste si jistý, že ta teplota je příliš vysoká? možná to není až tak moc. A ventilátor se točí, protože objektivně je vytížený procesor... tou obsluhou ACPI eventů (IRQ).
Mimochodem pokud skutečně vidíte zvýšenou zátěž ze strany "procesů obsluhujících ACPI na IRQ9 a IRQ34", v Linuxu by byla zajímavá doprovodná informace "cat /proc/interrupts" . Tam byste taky měl vidět vysoký počet obsloužených IRQ a zřejmě pokud byste porovnal mezi dvěma pokusy, tak byste taky viděl vysoký relativní nárůst.
Vysoká zátěž ze strany konkrétního IRQ obvykle znamená, že dotyčný interrupt není správně obsloužený. Protože obsloužený interrupt má na chvíli zmlknout. Nebo je vadný hardware, který to IRQ posílá příliš často (třeba nějaký custom HW health manager - vůbec by mě to nepřekvapilo, konkrétně u téhle značky. Něco je špatně, třeba se mi neozývá externí napájecí adaptér, tak pošlu pomocí IRQ operačnímu systému ACPI Event, a že mi to OS obratem ACKnul je mi jedno, stejně mu to pošlu obratem znova, to má za to!)
Další varianta na toto téma je, že je v BIOSu blbě ACPI tabulka, následkem čehož je interrupt doručován na nečekaném IRQ čísle/lince/vstupu (GSI). Takže je vyvolán řetízek obsluh, které neví co s ním. Nemáte v dmesg vidět hlášky jako "IRQ9 : nobody cared" ? Popravdě když se tohle stane, tak Linux obvykle provinilou IRQ linku utlumí (zavře kohoutek) takže pak třeba přestanou fungovat nějaké nevinné periferie... Linux tohle dělá, když se ten IRQ source fakt zblázní. Někdy se to dá obejít, pokud na kernel command line (v bootloaderu) přidáte zaklínadlo "irqpoll".
Ale pokud se to stalo fakt po několika letech bezproblémového fungování, může v tom být opravdu nějaká hardwarová nevolnost, která jenom není v BIOSu zpracována zrovna smysluplně (ale IRQ routing je na své vrstvě správně).
Mimochodem, nezkoušel jste sehnat čerstvější BIOS? Přestože možná máte skutečný HW problém, třeba by se nový BIOS v této mimořádné situaci mohl chovat trochu inteligentněji. Protože původní BIOS na čerstvém hardwaru nebyl pro tuto eventualitu řádně otestován, a praktické projevy (testovací scénář) přišly až po několika letech reálného provozu...
Ještě mě napadá, jestli by se nedalo jednotlivé IRQ zabít ručně, ale nějak jsem nenašel způsob, jak to udělat snadno z user space (např. skrz sysfs) nebo z kernel command line. Asi je to tak naschvál. A napsat si svůj vlastní driver, jenom abych mohl provést v kernelu explicitní disable_irq()... jednak je to dost práce, druhak zrovna IRQ9 vypadá jako sdílená linka, na které toho může viset poměrně hodně - viz /proc/interrupts. A i kdyby tam viselo jenom ACPI, zrovna v notebooku se toho dá zákazem tohoto IRQ asi poměrně dost pohnojit. Třeba přestane reagovat na zavření víka, možná i něco horšího.
Mimochodem, to čemu říkáte že počítač "nejde vypnout krátkým stiskem", možná spíš znamená, "nejde uspat krátkým stiskem". Vy ho totiž skutečně vypnete až stiskem dlouhým. A v tom případě zůstane vypnutý. Krátkým stiskem přejde buď do nějakého "suspend" stavu (ACPI S4 ?), nebo má možná "variantu úplného vypnutí (ACPI S5) s povoleným probuzením HW interruptem". Je fakt, že "systémové" interrupt sources které škádlí BIOS ACPI power management asi nebudou pocházet od USB nebo PCI-e zařízení, u kterých lze selektivně povolit/zakázat probuzení zařízení interruptem (uživatelsky, konfigurací v živém OS). Zejména v notebooku je napájení často řízeno za účasti Embedded Controlleru (SuperIO obohacené o autonomní MCU jádro typu 8051 nebo ARM) a zde výrobci notebooků využívají své právo nabastlit do EC firmwaru všelijaké hrůzy a čínské inovace. Zcela proprietární volná tvorba, v datasheetu SuperIO se to nedočtete.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.