A Proper Solution To The Linux ASPM Problem
Migrating from the Linux 2.6.37 to 2.6.38 kernel caused the power consumption to go up by nine Watts due to this ASPM regression. This is an increase in power consumption by 36%. It works to set pcie_aspm=force on the ThinkPad notebook, but up through the latest Linux 3.2 kernel code as of today the regression still stood in its stock configuration. However, when applying Matthew's patch, the "out of the box" power performance finally returns to pre-2.6.38 levels!
Under graphics load the ASPM regression causes the Core i7 notebook to be burning through six more Watts (an increase of 14%) than when ASPM is active. When trying out today's ASPM patch, the power is back to the levels experienced on Linux 2.6.37. Hell yes!
The results from this ThinkPad notebook are similar to the several other notebooks I have tested the past few hours.
Since the Linux 3.2 kernel merge window closed earlier this week and this is a behavioral change rather than being just a simple fix or reverting the earlier commit, it might not see the mainline tree until the Linux 3.3 kernel. If it does not make it into 3.2, hopefully the patch will at least be carried into the Linux 3.2 kernel package for Ubuntu 12.04 LTS and other distributions.
The patch can be currently fetched from the kernel mailing list and it applied cleanly against today's Linus Git code for the 3.2 kernel head.
UPDATE: More ASPM kernel patches have been published.
That's one regression now addressed, with only several more power management issues left in the kernel...
If you enjoyed this article consider joining Phoronix Premium to view this site ad-free, multi-page articles on a single page, and other benefits. PayPal or Stripe tips are also graciously accepted. Thanks for your support.