Aggressive Link Power Management

Colin Ian King colin.king at canonical.com
Thu Jan 12 10:35:23 UTC 2012


== Aggressive Link Power Management ==

Aggressive Link Power Management (ALPM) is a mechanism where a SATA AHCI 
controller can put the SATA link that connects to the disk into a very 
low power mode during periods of zero I/O activity and into an active 
power state when work needs to be done. Tests show that this can save 
around 0.5-1.5 Watts of power on a typical system.

ALPM is now available in several SATA controllers that use the Advanced 
Host Controller Interface (AHCI). However some controllers may go into a 
low power state incorrectly and this ends up causing data loss. Ubuntu 
has the ability to use ALPM but it it disabled by default since it can 
cause data loss on some
machines.

Bug LP#539467 "SATA link power management causes disk errors and 
corruption" indicates that ALPM fails on a variety of controllers - 
however identifying all the controllers is problematic.  Turning ALPM 
default carries too much risk for a LTS, so I propose the following:

Proposal: Call for testing:

1. Identify and acquire some H/W where ALPM is known to fail.
2. Design some read-only file system tests that can trip the HDD errors 
with ALPM enabled.
3. Contruct a LiveUSB image that runs the above read-only tests.
4. Identify problematic controller and drive IDs
         (see if we can find Errata to correlate with our findings).
5. Blacklist these devices, respin LiveUSB
6. Rinse and repeat 3.

To compliment this also:

1. Try to identify controllers that incorrectly report ASPM capability
(HOST_CAP_ALPM aka CAP.SALP, bit 26 of the Host Capabilities Register) and
blacklist deviant devices. An example Errata is:
  http://www.intel.com/content/dam/doc/specification-update/io-controller-hub-6-family-specification-update.pdf, page 28.

2. Verify the fix on any in-house hardware that have the problematic 
controllers.

And finally apply these changes for Precise+1.





More information about the kernel-team mailing list