On Tue, 2023-09-05 at 18:15 -0500, Mike Christie wrote: > This has read_capacity_16 have scsi-ml retry errors instead of > driving > them itself. > > There are 2 behavior changes with this patch: > 1. There is one behavior change where we no longer retry when > scsi_execute_cmd returns < 0, but we should be ok. We don't need to > retry > for failures like the queue being removed, and for the case where > there > are no tags/reqs since the block layer waits/retries for us. For > possible > memory allocation failures from blk_rq_map_kern we use GFP_NOIO, so > retrying will probably not help. > 2. For the specific UAs we checked for and retried, we would get > READ_CAPACITY_RETRIES_ON_RESET retries plus whatever retries were > left > from the loop's retries. Each UA now gets > READ_CAPACITY_RETRIES_ON_RESET > reties, and the other errors (not including medium not present) get > up > to 3 retries. This is ok, but - just a thought - would it make sense to add a field for maximum total retry count (summed over all failures)? That would allow us to minimize behavior changes also in other cases. > Signed-off-by: Mike Christie <michael.christie@xxxxxxxxxx> > Reviewed-by: Christoph Hellwig <hch@xxxxxx> > Reviewed-by: John Garry <john.g.garry@xxxxxxxxxx> > Reviewed-by: Bart Van Assche <bvanassche@xxxxxxx> Reviewed-by: Martin Wilck <mwilck@xxxxxxxx>