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. A Walkthrough Of The New 32 System Open-Source Linux Benchmarking Test Farm
  2. Habey MITX-6771: Mini-ITX Board With Quad-Core J1900 Bay Trail
  3. OCZ Vector 150 SSD On Linux
  4. Noctua i4 CPU Cooler: Great For Cooling High-End LGA-2011v3 CPUs
Latest Linux Articles
  1. AMD Kaveri: Open-Source Radeon Gallium3D vs. Catalyst 14.12 Omega Driver
  2. 12-Way AMD Catalyst 14.12 vs. NVIDIA 346 Series Linux GPU Comparison
  3. AMD Catalyst 14.12 Omega Driver Brings Mixed Results For Linux Users
  4. 6-Way Winter 2014 Linux Distribution Comparison
Latest Linux News
  1. An Open Hardware Random Number Generator Proposed
  2. LLVM 3.6 Will Be Branched Next Month
  3. Opera Browser Puts Out Linux Updates For The Holidays
  4. GNOME Shell 3.15.3 Adds Support For High-Contrast Themes
  5. Linux 3.19: ThinkPad Muting Redone, New Dell Backlight Support, Acer Is Banging
  6. KVM Drops Support For IA64 While Adding Various x86 Improvements
  7. GCC 4.8.4 Officially Released
  8. FSF's High Priority Project List Now Has A Committee
  9. Details On Using OpenACC & GPUs With GCC
  10. Ubuntu 15.04 Alpha 1 For Its Various Flavors
Latest Forum Discussions
  1. Need some hand holding with upgrading xserver
  2. XLennart: A Game For Systemd Haters With Nothing Better To Do
  3. The New SuperTuxKart Looks Better, But Can Cause GPU/Driver Problems
  4. Debian init discussion in Phoenix Wright format
  5. FPS capped on Linux (AMD fglrx drivers)
  6. Are there an app using HSA ?
  7. Bench specific mount point
  8. Tool for measuring FPS in games