diff options
author | Mike Christie <michael.christie@oracle.com> | 2024-01-22 18:22:06 -0600 |
---|---|---|
committer | Martin K. Petersen <martin.petersen@oracle.com> | 2024-01-29 21:20:53 -0500 |
commit | c1acf38cd11efdc921f7d41107b00c2cb79453fc (patch) | |
tree | 8a484a0fa8bd4e0cd919a2f02d9260fad4fa9ce3 /tools/perf/scripts/python/flamegraph.py | |
parent | 1008f5776fe5c398e1202c93b835943b04de3ec6 (diff) |
scsi: sd: Have midlayer retry sd_spinup_disk() errors
This simplifies sd_spinup_disk() so the SCSI midlayer retries errors for
it. Note that we retried every UA except Medium Not Present and also if
scsi_status_is_good() returned failed which would happen for all check
conditions. In this patch we use SCMD_FAILURE_STAT_ANY which will trigger
for the same conditions as when scsi_status_is_good() returns false and
there is status. This will cover all CCs including UAs so there is no
explicit failures array entry for UAs except for Medium Not Present which
we don't want to retry.
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 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.
We do not handle the outside loop's retries because we want to sleep
between tries and we don't support that yet.
Signed-off-by: Mike Christie <michael.christie@oracle.com>
Link: https://lore.kernel.org/r/20240123002220.129141-6-michael.christie@oracle.com
Acked-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Diffstat (limited to 'tools/perf/scripts/python/flamegraph.py')
0 files changed, 0 insertions, 0 deletions