On 08/18/05 23:49, Jeff Garzik wrote: > 1) The fine-grained hooks of the SCSI layer are somewhat standard for > block devices. The events they signify -- timeout, abort cmd, dev > reset, bus reset, and host reset -- map precisely to the events that we > must deal with at the ATA level. "dev reset, bus reset" -- non existant, as I'm sure you're aware of, depending on what _transport_ you use. ;-) > 2) When libata SAT translation layer becomes optional, and libata drives > a "true" block device, Yes, this will be very cool! (when (S)ATA(PI) devices become true block devices. > use of ->eh_strategy_handler() will actually be > an obstacle due to false sharing of code paths. ->eh_strategy_handler() I fully agree. > is indeed a single "do it all" EH entrypoint, but within that entrypoint > you must perform several SCSI-specific tasks. > > 3) ->eh_strategy_handler() has continually proven to be a method of > error handling poorly supported by the SCSI layer. There are many > assumption coded into the SCSI layer that this is -not- the path taken > by LLD EH code, and libata must constantly work around these assumptions. I agree. > > 4) libata is the -only- user of ->eh_strategy_handler(), and oddballs Not any more ;-) Using the command time out hook and the strategy routine, gives _complete_ control over host recovery, and I really do mean _complete_. Luben > must be stomped out. It creates a maintenance burden on the SCSI layer > that should be eliminated. > > > - > : send the line "unsubscribe linux-scsi" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html > - : send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html