The Pull That Finally Fixes ASPM Power Regression

Posted by Michael Larabel on January 11, 2012

Queued up in the PCI sub-system pull for the Linux 3.3 kernel is the ASPM re-work that provides a proper fix to the well known Linux kernel power regression that was talked about for much of 2011.

This is still the nasty power regression in the Linux kernel that I discovered in early 2011 that was causing many systems (notebooks and desktops) to go through excessive amounts of power, which I then tracked back to being a change in the Active-State Power Management (ASPM) handling for PCI Express.

PCI-E ASPM was changed to what was believed at the time to be a more safe way of handling this power management feature, but it caused the power consumption to go up for many Linux systems. This led at least one vendor to just recommend using Windows, but ASPM (as with much of ACPI and power management) is a big grey area in Linux with guessing how to handle things due to varying vendor implementations and Microsoft not always enforcing / documenting well its standards.

In November it was then discovered the way Linux was handling ASPM wasn't right -- or at least the opposite of how it was being done by Microsoft Windows. Matthew Garrett re-worked some of the ASPM code that made it a proper fix to the ASPM power issue. My tests in November yielded this to be a good fix across a variety of systems tested, along with many others in the Phoronix community and elsewhere confirming this fix.

In November when the ASPM re-work patch was posted, the Linux 3.2 kernel merge window had passed. As a result, this patch is only now being mainlined with the Linux 3.3 kernel merge window being opened. Jesse Barnes sent in the PCI pull request today (the e-mail) and as part of this is Matthew Garrett's new PCI Express ASPM code.

This change hasn't been pulled into the Linux 3.2 stable series or any other stable releases as Greg Kroah-Hartman was first interested in seeing more extensive testing. Canonical, however, has already pulled this into their Linux 3.2 kernel for the forthcoming Ubuntu 12.04 LTS release.

With the mainlining of this Active State Power Management re-work fix, this issue can finally be laid to rest. The Linux 3.3 kernel is shaping up to be a nice release, but it's now time soon to talk about some of the other Linux power regressions that are still outstanding...

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.
Latest Hardware Reviews
  1. Sumo Lounge Emperor
  2. Gallium3D Continues Improving OpenGL For Older Radeon GPUs
  3. 15-Way Open vs. Closed Source NVIDIA/AMD Linux GPU Comparison
  4. Nouveau vs. NVIDIA Linux Comparison Shows Shortcomings
Latest Software Articles
  1. Btrfs vs. EXT4 vs. XFS vs. F2FS On Linux 3.10
  2. AMD Radeon R600 GPU LLVM 3.3 Back-End Testing
  3. F2FS File-System Shows Regressions On Linux 3.10
  4. Previewing The Radeon Gallium3D Shader Optimizations
Latest Linux News
  1. Benchmarking The Intel P-State, CPUfreq Changes
  2. FreeBSD Still Working On Next-Gen Package Manager
  3. DNF Still Advancing As Experimental Yum For Fedora
  4. Logitech Begins Supporting Linux Users
  5. Modern Intel Gallium3D Driver Still Being Toyed With
  6. Linux 3.10 Kernel Benchmarks On A Core i7 Laptop
  7. GCC 4.8.1 Compiler Due To Be Out Next Week
  8. Linux 3.10 Kernel Benchmarks For Intel Ivy Bridge
  9. Linux's "Ondemand" Governor Is No Longer Fit
  10. Firefox 22 Beta Enables WebRTC Support
  11. OpenSUSE 13.1 Milestone 1 Released
Latest Forum Talk
  1. Modern Intel Gallium3D Driver Still Being Toyed...
  2. The Last GNOME 3.8 Point Release Has Been Made
  3. Sumo Lounge Emperor
  4. Logitech supports linux!
  5. Logitech Begins Supporting Linux Users
  6. DNF Still Advancing As Experimental Yum For Fedora
  1. Computers
  2. Display Drivers
  3. Graphics Cards
  4. Motherboards
  5. Peripherals
  6. Processors
  7. Software
  8. Operating Systems
  9. All Articles
  1. Linux Benchmarking
  2. OpenBenchmarking.org
  3. Phoronix Test Suite