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.org

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 Hardware Reviews
  1. Scythe Mugen MAX
  2. Intel Core i7 5960X Haswell-E On Linux
  3. Intel 80GB 530 Series M.2 SSD On Linux
  4. With A New Motherboard, The Core i7 5960X Haswell-E Lights Up
Latest Linux Articles
  1. A Tour Of The New Phoronix Office
  2. 7-Way Linux Desktop Gaming Comparison On Ubuntu 14.10
  3. Intel P-State vs. CPUFreq Benchmarks On The i7-5960X
  4. RadeonSI GLAMOR Benchmarks With X.Org Server 1.16
Latest Linux News
  1. X.Org Server 1.16.1 Released
  2. Mesa Gets Closer To Having OpenGL 4.0 Tessellation Support
  3. Uselessd: A Stripped Down Version Of Systemd
  4. F2FS Tools Gain FSCK Support
  5. FreeBSD 10.1 Has The New VT Driver, Hardware Improvements
  6. AntiMicro 2.6 Yields Greater Compatibility For Gamepads On Linux
  7. OpenGL 3.3 / GLSL 3.30 Lands For Intel Sandy Bridge On Mesa
  8. AMD's RadeonSI Gallium3D Driver Sees Some Improvements
  9. Mesa 10.3 Released With The Latest Open-Source GPU Driver Improvements
  10. GNOME 3.13.92 Officially Released
Latest Forum Discussions
  1. ASRock AM1H-ITX: One Of The Best AM1 Mini-ITX Motherboards
  2. Wasteland 2 Officially Launched Today, Including For Linux Gamers
  3. Can Linux kill a motherboard?
  4. X.Org Women Outreach Program Only Turns Up Two Applicants So Far
  5. New stress testing utility for GPU's
  6. Stop grabbing my keyboard :(
  7. New Group Calls For Boycotting Systemd
  8. SSD seems slow