Quantcast
Channel: Low Power Design » Ubuntu
Viewing all articles
Browse latest Browse all 2

Linux power: what does changing a register do if the BIOS tells you it isn’t there?

$
0
0

The Phoronix blog, which identified problems with Ubuntu’s power consumption in recent versions on mobile devices, has claimed to have found the cause of the problem. And it underlines the importance of low-level interfaces communicating clearly what they can do and are doing when it comes to software-enabled power management. The main culprit seems to be the Active-State Power Management (ASPM) protocol supported by PCI Express and a change that was meant to stop the Linux kernel from accessing hardware registers that might not be there.

The code change in the kernel that triggered the problem was accompanied by this comment:

“We currently refuse to touch the ASPM registers if the BIOS tells us that ASPM isn’t supported. This can cause problems if the BIOS has (for any reason) enabled ASPM on some devices anyway. Change the code such that we explicitly clear ASPM if the FADT indicates that ASPM is not supported, and make sure we tidy up appropriately on device removal in order to deal with the hot-plug case. If ASPM is disabled because the BIOS doesn’t hand over control then we won’t touch the registers.”

The trouble is what happens when ASPM is available but the BIOS does not report that it is. A misconfigured BIOS means that ASPM winds up getting disabled, and sucking down larger amounts of juice, when it should be left alone. Phoronix claims this is the result of hardware manufacturers catering to the demands of Windows and not taking Linux’s needs into account. However, it’s not entirely clear why this would be desirable under Windows either, unless that operating system is ignoring the BIOS and probing the hardware directly. The workaround is to force ASPM to do its thing, whether the BIOS reports it as present or not. Phoronix says it’s not the only power issue in Linux 2.6.38 right now as some problems, possibly related to the scheduler, go back to older versions such as 2.6.35. However, it’s clear that having BIOS firmware tell you one thing when the reality is something else is hardly going to help software set the right power-down modes.

Staff


Viewing all articles
Browse latest Browse all 2

Latest Images

Trending Articles





Latest Images