Messages in this thread | | | Date | Wed, 21 Dec 2022 09:40:42 +0000 | Subject | Re: [PATCH V2] scsi: libsas: Directly kick-off EH when ATA device fell off | From | John Garry <> |
| |
On 20/12/2022 09:49, Jason Yan wrote: > > Itering tagset in libsas is odd.
Itering with block layer APIs is just a method to deal with each active IO. However, libsas should not be aborting IO directly. It may provide helper routines, but the LLDD should be dealing with aborting IO.
> > The question is, shall we implement the aborting from the driver side, > such as what sas_ata_device_link_abort() do. Or shall we implement the > aborting from the upper side(scsi middle layer or block layer), such as > trigger block layer time out handler immediately after we found device > is gone?
As mentioned, aborting each IO should be the job of the LLDD. However, just making the IO timeout will lead to EH kicking in earlier, and EH will do usual per-IO handling in sas_eh_handle_sas_errors() that would happen when the IO timesout normally - so what are we really gaining here? Just EH kicks in earlier. But we still have the problem of all other per-host IO being blocked while EH is active.
Thanks, John
| |