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/