Forcing Active-State Power Management should work for many systems, but if your system's BIOS/hardware is in bad shape, you may hit system hangs. ASPM policies can also be set via /sys/module/pcie_aspm/parameters/policy. The above graph is from a Lenovo ThinkPad showing the idle power consumption from battery of the vanilla Linux 2.6.37 and 2.6.38 kernels. The average power consumption for this Intel-powered notebook went up by 10.6% between the two kernel releases, but when forcing PCI Express ASPM on the same 2.6.38 kernel the power consumption rate dropped by nearly 15%.
Here is also the result from an independent Intel Core i7 system with the two kernels and the different changes. The Linux 3.0 development kernel had similar benefits when forcing Active-State Power Management due to the "PCI: Disable ASPM if BIOS asks us to" change. This system and some of the older systems were what is also affected by another kernel power regression still under investigation, but ASPM appears to be the biggest problem.
As not everyone works the weekends, I have not yet been able to reach Jesse Barnes, the maintainer of the PCI subsystem for the Linux kernel (and also a name mentioned on Phoronix recently as one of the Intel Linux graphics driver developers). As some systems have ASPM hardware problems, the commit may possibly not be reverted, but it seems that there's far more systems being negatively affected by this change (with the sharply decreased battery life) than the number of systems it helps -- I've never encountered ASPM problems with it enabled on any of my systems in pre-2.6.38 nor have I seen any reports of such in the Phoronix Forums or elsewhere. It is possible there will not be a proper solution until the Linux 3.1 kernel as the Linux 3.0 merge window is closed and a final release is only a few weeks out. It's also a question for many whether any "fix" will be backported to the stable kernel series or if users will be left to append "pcie_aspm=force" to their GRUB lines.
Again, this is not the only major power regression outstanding. There is still a noticeable power regression back in the Linux 2.6.35 kernel, another 2.6.38-era regression due to a scheduler issue still being investigated, and some other items on my radar. A number of other Linux power article tests are imminent on Phoronix and I also continue to tweet findings via @MichaelLarabel and @Phoronix. If you'd like to see such discoveries continue, please consider subscribing to Phoronix Premium, making a PayPal donation, or at the very least disable AdBlock, join the Phoronix Forums, and when shopping use our NewEgg / Amazon shopping links. There's also enterprise services for the Phoronix Test Suite offered to organizations.
Discuss this article in our forums, IRC channel, or email the author. You can also follow our content via RSS and on social networks like Facebook, Identi.ca, and Twitter (@Phoronix and @MichaelLarabel). Subscribe to Phoronix Premium to view our content without advertisements, view entire articles on a single page, and experience other benefits.