Re: [PATCH] barrier patch set

From: Jeff Garzik
Date: Fri Mar 19 2004 - 19:17:47 EST


Bartlomiej Zolnierkiewicz wrote:
The fact that spec says "supported" not "enabled" in description of word86
makes me wonder - can they be disabled? (FLUSH CACHE is mandatory for General
feature set and FLUSH CACHE EXT is mandatory if 48-bit LBA is supported)

Yes, that's why there are separate 'supported' and 'enabled' bits for each feature.

Words 82-84 are 'supported' bits. Words 85-87 are 'enabled' bits. These bits mirror each other, i.e. Word 83 and Word 86 have basically the same bits, except that Word 86 definitions change _slightly_ since the only bits that are relevant are the ones for features that can be disabled/enabled.

You use set-features command to enable and disable these features, and then the result shows up in subsequent identify-device command output.

If the driver is testing for a capability but does not enable it, then always use the 'enabled' set of bits, not the 'supported' set of bits.


Jeff, please note that these bits were introduced by ATA-6 spec
and take a look at ATA-5 spec:

...
FLUSH CACHE
General feature set
- Mandatory for all devices
...

and ATA-4 spec:

...
FLUSH CACHE
General feature set
- Optional for all devices
...

IMO to test if FLUSH CACHE works we should just issue it during disk setup
and check result. This way we can use FLUSH CACHE also on < ATA-6 devices
(there is a lot of them).

I disagree. "just issue it" is how those LG cdrom drives got cooked.

LG cdrom drives indicated in their identify-packet-device page that flush-cache was not supported... and then re-used the flush-cache ATA opcode for their vendor-specific download-firmware command. Combine that with a Linux patch that didn't properly check for flush-cache support. Result: brick.

All drives that support flush-cache list the relevant bits in identify-device, even on pre-ATA-6 devices. Whether the feature was optional or mandantory, we can check the feature bits.

Jeff



-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/