Linux – What do different values of hard drive’s Advanced Power Management feature (hdparm -B) affect, except spin-down

hard drivehdparmlinuxpower-management

hdparm's -B parameter is documented as:

Get/set Advanced Power Management feature, if the drive supports it. A low
value means aggressive power management and a high value means better per‐
formance. Possible settings range from values 1 through 127 (which permit
spin-down), and values 128 through 254 (which do not permit spin-down).
The highest degree of power management is attained with a setting of 1,
and the highest I/O performance with a setting of 254. A value of 255
tells hdparm to disable Advanced Power Management altogether on the drive
(not all drives support disabling it, but most do).

This only gives two possible intervals, but doesn't describe what other effect different values have. What's the difference between let's say 63 and 127, etc. I couldn't find any more documentation about this. Is it described somewhere?

Best Answer

The source code to hdparm shows that it just passes the value on to the disk, except that it passes command 0x85 instead of 0x05 when value is 255. The ATA Spec turns up this tidbit:

Subcommand code 05h allows the host to enable Advanced Power Management. To enable Advanced Power Management, the host writes the Sector Count register with the desired advanced power management level and then executes a SET FEATURES command with subcommand code 05h. The power management level is a scale from the lowest power consumption setting of 01h to the maximum performance level of FEh. Table 30 shows these values.

  • Maximum performance FEh
  • Intermediate power management levels without Standby 81h-FDh
  • Minimum power consumption without Standby 80h
  • Intermediate power management levels with Standby 02h-7Fh
  • Minimum power consumption with Standby 01h
  • Reserved FFh
  • Reserved 00h

Device performance may increase with increasing power management levels. Device power consumption may increase with increasing power management levels. The power management levels may contain discrete bands. For example, a device may implement one power management method from 80h to A0h and a higher performance, higher power consumption method from level A1h to FEh. Advanced power management levels 80h and higher do not permit the device to spin down to save power. Subcommand code 85h disables Advanced Power Management. Subcommand 85h may not be implemented on all devices that implement SET FEATURES subcommand 05h.

In other words: "Unspecified, device specific behavior"

Related Question