Messages in this thread | | | Date | Mon, 04 Aug 2008 23:12:04 +0900 | From | Tejun Heo <> | Subject | Re: [PATCH 3/5] libata: Implement disk shock protection support |
| |
Elias Oltmanns wrote: >> For libata, the easiest way to achieve the above would be adding a >> per-dev EH action, say, ATA_EH_UNLOAD and schedule EH w/ the action OR'd >> to eh_info->action. The EH_UNLOAD handler can then issue the command >> wait for the specified number of seconds and continue. This will be >> pretty simple to implement as command exclusion and stuff are all >> automatically handled by EH framework. > > I'm rather afraid this approach is impractical or unfavourable at the > very least. Depending on the configured thresholds, a head unload > request might well be issued unintentionally, e.g. by accidentally > knocking against the table. It is quite alright for the HD to stop I/O > for a moment but if the secondary device on the interface happens to be > a CD writer, it will be very annoying to have CD writing operations fail > due to minor percussions.
Why would it fail?
> Also, if there are two devices on the same > port that support the UNLOAD FEATURE and you issue a head unload request > to both of them in close succession, the IDLE IMMEDIATE to the second > device will be blocked until the timeout for the first has expired.
Unload can be implemented as port-wide operation so that it issues IDLE IMMEDIATE to all drives on the port but given that this is mostly for laptop, this discussion is a bit peripheral.
-- tejun
| |