Re: [PATCHv2 0/5] SCSI EH cleanup

Hannes Reinecke
2017-02-23T07:36:04Z

On 02/22/2017 10:21 PM, Bart Van Assche wrote:
> On Wed, 2017-02-22 at 17:07 +0100, Hannes Reinecke wrote:
>> this is a resend of a small patchset for cleaning up SCSI EH.
>> Primary goal is to make asynchronous aborts mandatory; there hasn't
>> been a single report so far where asynchronous abort won't work, so
>> the 'no_async_abort' flag has never been used and will be removed
>> with this patchset.
>> Additionally there's a cleanup for handle failed EH commands, and
>> to detect retries of failed commands.
>
> An additional comment: I don't think it is safe to execute a host
> reset while any asynchronous aborts are ongoing. I think the SCSI EH
> will get really confused if after a host reset has been performed a
> response is received from an asynchronous abort that was issued
> before the host reset started. Although a SCSI target must not send
> a LU RESET response before all previously submitted SCSI commands
> and TMFs have finished, what prevents in e.g. a multipath topology
> that an abort response and a LU RESET response are received out of
> order?
>
Hmm.
Not sure this can happen nowadays.
eh_abort() is synchronous, and the command is considered in-flight until
eh_abort() returns.
And as SCSI EH only starts until all commands are completed or timed out
we will not have any stuck TMFs before sending a host reset.
Things are different when calling 'sg_reset' manually, but I'll be
revisiting that anyway in the near future as it has it's own set of
problems.

Cheers,

Hannes
> Thanks,
>
> Bart.
>

--
Dr. Hannes Reinecke Teamlead Storage & Networking
hare@suse.de +49 911 74053 688
SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: F. Imendörffer, J. Smithard, J. Guild, D. Upmanyu, G. Norton
HRB 21284 (AG Nürnberg)