Linux vertrouwt voor het inschakelen van energiebeheer via aspm (active state power management) straks niet langer op het bios (basic input/output system) van pc's. Het blijkt namelijk dat aspm-support van componenten niet altijd correct is opgenomen in het bios. Een nieuwe kernel-patch voor het open source-besturingssysteem stelt aspm in op basis van de componenten zelf.

Vista en verder

Deze oplossing is gevonden door Linux-developer Matthew Garrett van Red Hat, die het heeft afgekeken van Windows. “Tot op heden forceren we uitschakeling van de aspm-status op alle componenten als het bios aangeeft dat die functie niet wordt ondersteund. Op basis van de Microsoft-presentatie (.ppt) 'PCI Express in depth for Windows Vista and beyond' begin ik te denken dat dit een fout kan zijn", schrijft hij bij zijn patch.

Het gevolg van Linux' vertrouwen op het bios is namelijk dat bepaalde hardwarefuncties, zoals energiebeheer via aspm, niet worden gebruikt als die niet expliciet zijn opgenomen in het bios. Dit zorgt ervoor dat bepaalde computers meer stroom verbruiken dan noodzakelijk én meer dan voorheen met oudere Linux-versies. Dit is vooral een probleem op laptops, die hierdoor minder lang meegaan op een acculading.

Voorbeeld volgen

Microsofts aanpak voor Windows is anders. Dat marktdominante besturingssysteem negeert functies van PCI Express-componenten alleen als het geen volledige controle daarover krijgt bij het booten. Die controleoverdracht gebeurt door de hardware zelf via de _OSC-interface (pdf), en niet via het bios. Linux volgt nu dit voorbeeld.

Garrett houdt nog een slag om de arm als het gaat om de effectiviteit van zijn patch. “Het is moeilijk om zeker te weten dat dit de juiste aanpak is. Er is namelijk nul documentatie over de interactie tussen al deze compenenten." Hij vervolgt dat er genoeg hardwareleveranciers zijn die aspm op deze manier inschakelen, dus dat zou de aanpak valideren. De Linux-developer meldt dat zijn Thinkpad X220-laptop nu in idle-modus 5 Watt minder verbruikt.

10 tot 30 procent meer

Het open source-besturingssysteem lijdt al aan acht maanden aan deze bug in het energiebeheer. Het probleem is in april ontdekt en zit in kernel-versie 2.6.38 die in maart is uitgebracht. Ook daaropvolgende kernel-versies hebben het plots verhoogde energieverbruik niet terug weten te dringen.

Een handmatige workaround was er wel, voor technisch onderlegde gebruikers die zeker wisten dat hun computer last had van dit probleem, schrijft Linux-techblog Phoronix. De fout treedt namelijk niet op bij alle computers.

Op sommige computers met Intel-processors verbruikt Linux 10 tot wel 30 procent meer energie dan voorheen. Phoronix heeft die stijging begin dit jaar gemeten tussen Ubuntu versies 10.10 en 11.04.