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 h...@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)