Szerző: Bodnár Ádám

2011. november 21. 11:13:00

Jelentősen csökken a linuxos notebookok fogyasztása

Végre megfelelőnek tűnő javítás érkezett a legújabb Linux kernelek energiafogyasztási problémájára, ami a 2.6.38-as verzió óta keserítette meg egyes notebookfelhasználók mindennapjait.

A 2.6.38-as Linux kernel telepítését követően a laptopjukon Linuxot használók jelentős fogyasztásnövekedéssel szembesülhettek, amit a PCi Express specifikációban szereplő Active State Power Management (ASPM) nem megfelelő kezeléséből adódott. Az ASPM felelős azért, hogy alacsony kihasználtságú PCI Express kapcsolatok fogyasztását a rendszer csökkenthesse - ha az operációs rendszer nem használja, az az asztali gépeket is érinti, azonban ott nem annyira kritikus szempont a magasabb teljesítményfelvétel, áramfogyasztás mint a notebookoknál, ahol az akkus üzemidőt és így a gép használhatóságát korlátozza.

A problémát az okozta, hogy egyes hardvereken nem megfelelően implementálták az ASPM-et, ami stabiitási problémákat okozott, ezért a Linux kernel fejlesztői úgy döntöttek, a 2.6.38-as és újabb rendszermagok csak akkor használják ezt a lehetőséget, ha a BIOS kifejezetten tartalmazza az ASPM támogatásról szóló információt, így az operációs rendszer biztos lehet benne, hogy a stabilitási kockázat nélkül használhatja ezt a szolgáltatást. Az új kernel telepítése számos felhasználónál az energiafogyasztás váratlan növekedésével járt, ők voltak azok, akiknek a gépe kezelte az ASPM-et, de a BIOS nem tartalmazott erre vonatkozó információt, így a 2.6.38-as rendszermag egyszerűen figyelmen kívül hagyta és nem használta ezt az energiatakarékossági funkciót..

Miért érdemes belevágnod a Scrum képzésünkbe? (x) Október 21-én Scrum alapozó képzést indít a HWSW, íme néhány jó érv a kurzus mellett.

A 2.6.38 óta megjelent rendszermagokban ezzel a kérdéssel senki sem foglalkozott, így számos felhasználó azzal szembesült, hogy a laptopja a frissebb Linux-verziókkal (pl. Ubuntu 11.10, Fedora 16) jóval többet fogyaszt mint korábban, ami melegedést, illetve jóval rövidebb akkumulátoros üzemidőt okozott. Az egyik lehetséges megoldás a Linux indításakor az ASPM bekapcsolása volt ("pcie_aspm=force") a GRUB-ban, ez azonban gyakorlatilag a 2.6.38 előtti állapot visszaállítását jelenti, az ASPM-et nem megfelelően implementáló gépeken a stabilitásproblémák is visszatértek.

A megoldást a Red Hat egyik fejlesztője szolgáltatta egy néhány tucat soros patch formájában. "A patch átdolgozza az APSM-et letiltó kódot, az állapot törlését a PCIe vezérlés átadása végzi az operációs rendszernek. Az általános ASPM kód néhány változtatáson esett át annak érdekében, hogy a bit törlését nem írja felül az ASPM előzetes kikapcsolása. Ez elméletben lehetővé teszi azt is, hogy csak a PCIe rootok egy része adja át a vezérlést, míg a többi a BIOS állapotban maradjon" - írja Matthew Garrett, a Linux energiamenedzsment-szakértője, a patch szerzője. "Nehéz lenne megmondani, hogy ez a helyes megoldás, mivel a komponensek közötti interakcióról zéró az elérhető nyilvános dokumentáció. De elég sok gyártó kapcsolja be az ASPM-et a platformjain és állítja be ezt a bitet, valószínű arra számítanak hogy az OS is békén hagyja."

A Phoronix Intel Core i7 processzoros tesztkonfigurációján a 2.6.38-as kernel átlagosan 9 wattos (!) fogyasztásnövekedést okozott, a gép teljesítményfelvétele több mint harmadával nőtt. A weboldal által publikált mérés szerint a 3.2-es rendszermag és Garrett-féle patch tellepítése után a rendszer átlagos fogyasztása visszatért a 2.6.37-es kernel szintjére, vagyis a fogyasztás jó harmadával csökkent.

a címlapról