1. Computers
  2. Display Drivers
  3. Graphics Cards
  4. Memory
  5. Motherboards
  6. Processors
  7. Software
  8. Storage
  9. Operating Systems


Facebook RSS Twitter Twitter Google Plus


Phoronix Test Suite

OpenBenchmarking Benchmarking Platform
Phoromatic Test Orchestration

A Proper Solution To The Linux ASPM Problem

Michael Larabel

Published on 11 November 2011
Written by Michael Larabel
Page 2 of 3 - 40 Comments

Below is Matthew Garrett's description about this new patch.

Right now we forcibly clear ASPM state on all devices if the BIOS indicates that the feature is not supported. Based on the Microsoft presentation "PCI Express In Depth for Windows Vista and Beyond", I'm starting to think that this may be an error. The implication is that unless the platform grants full control via _OSC, Windows will not touch any PCIe features - including ASPM. In that case clearing ASPM state would be an error unless the platform has granted us that control.

This patch reworks the ASPM disabling code such that the actual clearing of state is triggered by a successful handoff of PCIe control to the OS. The general ASPM code undergoes some changes in order to ensure that the ability to clear the bits isn't overridden by ASPM having already been disabled. Further, this theoretically now allows for situations where only a subset of PCIe roots hand over control, leaving the others in the BIOS state.

It's difficult to know for sure that this is the right thing to do - there's zero public documentation on the interaction between all of these components. But enough vendors enable ASPM on platforms and then set this bit that it seems likely that they're expecting the OS to leave them alone.

Measured to save around 5W on an idle Thinkpad X220.

This ~60 line kernel patch changes the ASPM behavior and from his testing, plus my initial testing, it seems to be relatively sane. From the various notebooks (a half-dozen so far) I have been trying out, there have not been any problems and ASPM is working without having to manually force it.

On the next page is a test of this patch and the system power consumption from one of the ASPM affected systems under the Linux 2.6.37, 2.6.38, 3.2, and 3.2 patched kernels.

Latest Linux News
  1. HiSense Chromebook Benchmarks When Running Ubuntu Linux
  2. Mandriva Linux Was Allegedly Brought Down By Employee Lawsuits
  3. GNOME 3.17.2 Is Released As The Latest Look Towards GNOME 3.18
  4. Phoronix Turns 11 Years Old Next Week: How Should We Celebrate?
  5. Ubuntu Community Council Reaffirms Its Decision Against Kubuntu's Leader
  6. Future Plans For Changing Fedora's Installer
  7. Confusion Mounts Over Wayland's Actual License
  8. GNOME's Mutter Now Supports Drag-n-Drop To/From Wayland & X11
  9. Wine 1.7.44 Works On More 64-bit ARM Support
  10. Phoronix Test Suite 5.8 Milestone 5 Brings Near Final "Belev" Experience
Latest Articles & Reviews
  1. Btrfs RAID 0/1/5/6/10 Five-Disk Benchmarks On Linux 4.1
  2. Opening The Gates To Our Daily Open-Source Linux Benchmark Results
  3. The Latest Features For Linux Performance Management + Benchmark Monitoring
  4. Noctua NH-U12DX i4 + NF-F12
Most Viewed News This Week
  1. NVIDIA's Proprietary Driver Is Moving Closer With Kernel Mode-Setting
  2. Features Added To Mesa 10.6 For Open-Source GPU Drivers
  3. Ubuntu's LXD vs. KVM For The Linux Cloud
  4. Friction Building Around An Ubuntu Community Council Decision
  5. The Latest Linux Kernel Git Code Fixes The EXT4 RAID0 Corruption Problem
  6. The CompuLab Fitlet Is A Neat Little Linux PC With AMD SoC
  7. Linux 4.1-rc5 Kernel Released
  8. Russia's Baikal Chips End Up Going For A MIPS CPU