May 08

What is: doesn't support DPO or FUA?

Category: Linux   — Published by goeszen on May 8, 2021 at 7:33 pm

SCSI Drive Micropolis 2210
Connector view of a Micropolis 2210 drive. Image copyright

Did you ever track the health of your hard drives under Linux or tweaked the drive configurations through gnome-disks and then spotted something like:

sd 5:0:0:0: [sdd] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA

in dmesg? Well the Internet is full of articles, mailing list posts and discussions where this is mentioned and people ponder if that is something of concern. But so far I haven't found a single source that actually explained what DPO or FUA actually mean!?

The answer is: both are newer features described in the ATAPI specs. FUA - introduced with ATA/ATAPI-7 (since 2001, ANSI INCITS 397-2005) - is the official abbreviation for "Forced Unit Access". It means the host is able to tell storage "... to fetch the data from the media surface and to not use a cached copy". That' an old SCSI feature from the late 1980s. SCSI? Well, as can be read here ATAPI assimilated some of the SCSI specs and at doing so things like NCQ (Native Command Queuing), FUA and DPO were carried over to ATA/ATAPI.

Now, DPO is also an older SCSI feature. it's an abbreviation of "Disable Page Out" and according to specs it "... allows the initiator to warn the target that the data being read is unlikely to be requested again soon and so is not worth keeping in the target's data cache."

If you're interested to learn more about these older SCSI (and then newer ATA/ATAPI features) you can read about them here (in "X3.T9.2", the SCSI-2 Standard Draft document, 1993), here (SCSI Commands Reference Manual), or here (a SCSI to ATA Translations Study).
Both, DPO and FUA, are part of the SCSI READ (and actually 'write' as well) command sets and this also explains why they are related to write /read caching settings and often pop-up when you alter cache settings on Linux systems, for example via sdparm or gnome-disks.

I, so far, didn't stumble over a driver/drive combo, on Linux at least, that actually does support DPO, FUA or both and I always get this "support DPO or FUA"-warning, but if you can shed more light, feel welcome to post to the comments.

Read more about SCSI and Data Storage in Micropolis Storage Glossary.

2 Responses to “What is: doesn't support DPO or FUA?”

  1. Antoniocrown says:

    When plugging in a USB disk to the system, the messages below are output during discovery. Please explain what the following boot time messages mean: Receiving message "doesn't support DPO or FUA", what does this mean? Why is disk write cache shown as disabled in "Write cache: enabled, read cache: enabled"?

  2. goeszen says:

    Exactly that is answered in the post. And as support of DPO or FUA are more elaborate cache control features, not having DPO or FUA doesn't interfere with basic cache being enabled, yet the system warns about these missing features.

Leave a Reply