SysadminNews

Linux 7.2 Turns Off SATA Power Saving on Three WD Disks

On this page
  1. What landed
  2. Why LPM keeps generating this kind of patch
  3. What to do about it
  4. Sources and further reading

Linux 7.2-rc6 carries two libata quirks that switch off SATA Link Power Management for three Western Digital drives, because on those models the power saving feature takes the link offline instead of resting it. The drives are the WDC WD100EFGX-68CPLN0 and WDC WD102KFBX-68M95N0, both 10 TB Red class NAS disks, plus a WD Green 2.5 inch 480 GB SSD. Niklas Cassel wrote the patches and Damien Le Moal applied them on July twenty ninth. The stable 7.2 kernel arrives later in August. If you are on an older kernel and one of these disks keeps vanishing, boot with libata.force=nolpm.

The short answer

Two patches from Niklas Cassel, applied by ATA maintainer Damien Le Moal on July twenty ninth and merged for Linux 7.2-rc6, add NOLPM quirks for three Western Digital drives. On the WDC WD100EFGX-68CPLN0 and WDC WD102KFBX-68M95N0, both 10 TB Red class NAS disks, and on a WD Green 2.5 inch 480 GB SSD, SATA Link Power Management takes the link offline rather than resting it. The kernel now refuses to enable LPM on those model strings by default. The stable 7.2 kernel is due later in August. On anything older, libata.force=nolpm is the boot parameter that gets you the same behaviour today.

3Western Digital models getting a NOLPM quirk
7.2-rc6kernel the fixes were merged for
0.5 to 1.5 Wpower saving given up per drive
Answer card: Linux 7.2-rc6 adds libata NOLPM quirks that disable SATA Link Power Management for three Western Digital drives, the 10 TB WDC WD100EFGX-68CPLN0 and WDC WD102KFBX-68M95N0 NAS disks and a WD Green 2.5 inch 480 GB SSD, on which the power saving feature takes the SATA link offline. The workaround on older kernels is the libata.force=nolpm boot parameter.
The three model strings now carrying a NOLPM quirk in libata. Source: the libata commits in the Linux kernel tree. PNG

An intermittently disappearing disk is one of the worst faults to own. It looks like a cable, then like a backplane, then like a controller, and you replace all three before anyone thinks to suspect a power saving feature that is doing exactly what it was asked to do.

What landed

Two commits went into the ATA tree on July twenty ninth, written by Niklas Cassel and applied by subsystem maintainer Damien Le Moal, and they reached mainline in the fixes pull for Linux 7.2-rc6.

The first adds a NOLPM quirk for two drives: WDC WD100EFGX-68CPLN0 and WDC WD102KFBX-68M95N0, both 10 TB Red class 3.5 inch disks sold for NAS duty. The second covers a WD Green 2.5 inch 480 GB SSD. On all three, enabling Link Power Management causes the SATA link to go offline instead of parking, and the device drops out from the operating system's point of view.

The quirk mechanism is old and unglamorous. libata keeps a table keyed on the model string a drive reports during identification, and NOLPM is one of the flags it can carry. When the string matches, the kernel simply never turns LPM on for that device. Nothing else about the drive is treated differently.

Why LPM keeps generating this kind of patch

LPM exists to save power on an idle SATA link, somewhere between half a watt and one and a half watts per drive. The link drops to a low power state when there is no traffic and is meant to come back on the next command.

The failure mode is always the same: the drive advertises support, the host believes it, and the wake path does not work on that firmware. There is no way for the kernel to know in advance, because the only signal it gets is the drive's own claim. So the subsystem does the only thing it can, which is to accumulate a list of devices whose claims turned out to be optimistic. That list has been growing across every vendor for more than a decade, and this week's addition is three more entries rather than anything structural.

Worth keeping in proportion: this is three model strings out of an enormous catalogue. If your Western Digital disks have been fine, they remain fine.

Terminal figure showing how to identify the affected drives and apply the workaround: reading the model string reported by the drive, checking the current SATA link power management policy under sysfs, and adding libata.force=nolpm to the kernel command line on older kernels.
Identify the drive by the string it reports, then decide whether you need the boot parameter. PNG

What to do about it

If you run one of the three models and you are on 7.2 or later, nothing. The quirk applies at probe time.

If you are on an older kernel and you have been fighting a disk that vanishes, check the model string your drive actually reports rather than the marketing name on the label, because the match is on that string. Then boot with libata.force=nolpm to disable LPM machine wide, or scope it to one port with the port number prefix if you would rather keep the saving on the rest of the array. Add it to your bootloader configuration so it survives the next reboot, and take it back out once you are on a kernel that carries the quirk.

The trade is explicit and small. You give up the per drive power saving and you get a disk that stays on the bus. On a NAS that is not a difficult decision.

There is a second lesson in these patches that is easy to skip past. If you hit this class of fault and your drive is not in the table, the fix is a mail to the ATA list with the exact identifier from your machine. That is how all three of these entries got there.

Sources and further reading

Frequently asked questions

What is Link Power Management and why would a drive break on it?

LPM lets the SATA link between the controller and the drive drop into a low power state when there is no traffic, saving roughly half a watt to one and a half watts per drive. The link is supposed to wake on the next command. On drives whose firmware handles the transition badly, it does not wake cleanly, and the kernel sees the device fall off the bus instead. The feature is negotiated per device, so it works fine on the drive next to it in the same enclosure. That is exactly why the kernel keeps a quirk list rather than a global switch.

Which drives are covered by these two patches?

Three, identified by the exact strings the drives report. WDC WD100EFGX-68CPLN0 and WDC WD102KFBX-68M95N0 are both 10 TB Red class 3.5 inch NAS disks and are handled by one patch. The second patch covers a WD Green 2.5 inch 480 GB SSD. The match is on the model string, so a different firmware revision or a different capacity in the same product line is not automatically included. If your drive misbehaves and its identifier is not on the list, the fix is to report it with the string from your own system rather than to assume the quirk applies.

I am on an older kernel. What do I do right now?

Boot with libata.force=nolpm to turn LPM off for every ATA device on the machine, which is the blunt but reliable option. You can also scope it to one port with the port number prefix, for example libata.force=1.00:nolpm, if you would rather leave power saving on for the rest of the drives. Add the parameter to your bootloader configuration so it survives a reboot. Once you are on 7.2 or a stable kernel that has picked up the backport, the quirk applies automatically for these three models and you can drop the parameter.

How much power does this actually cost?

Between roughly half a watt and one and a half watts per drive, which is the saving LPM was providing. On a single desktop that is noise. On a populated NAS it adds up, and it is worth being clear that this is a real trade rather than a free fix. The alternative is a drive that intermittently disappears from the bus, which on an array means degraded rebuilds and a lot of wasted evenings, so the kernel is making the obvious call. If the power matters more to you than the stability, the quirk is a kernel default and not a law.

Should I worry about my other Western Digital drives?

No, and that is worth saying plainly. This is three specific model strings out of a very large catalogue, and the kernel has been collecting per device LPM quirks for well over a decade across many vendors. A quirk landing is the system working as designed: someone hit a reproducible failure, identified the model, and the fix ships to everyone before most people ever see the symptom. If your drives have been stable, nothing about this changes for you. The people who benefit are the ones who have been chasing an intermittent disk for months.