aboutsummaryrefslogtreecommitdiff
path: root/lib/mpi
diff options
context:
space:
mode:
authorBart Van Assche <[email protected]>2022-08-16 10:26:38 -0700
committerMartin K. Petersen <[email protected]>2022-08-22 22:45:25 -0400
commit785538bfdd682c8e962341d585f9b88262a0475e (patch)
tree13e80affbe33813b589f0aa1d99299cf8f88afb0 /lib/mpi
parentfac8e558da9485e13a0ae0488aa0b8a8c307cd34 (diff)
scsi: sd: Revert "Rework asynchronous resume support"
Although commit 88f1669019bd ("scsi: sd: Rework asynchronous resume support") eliminates a delay for some ATA disks after resume, it causes resume of ATA disks to fail on other setups. See also: * "Resume process hangs for 5-6 seconds starting sometime in 5.16" (https://bugzilla.kernel.org/show_bug.cgi?id=215880). * Geert's regression report (https://lore.kernel.org/linux-scsi/[email protected]/). This is what I understand about this issue: * During resume, ata_port_pm_resume() starts the SCSI error handler. This changes the SCSI host state into SHOST_RECOVERY and causes scsi_queue_rq() to return BLK_STS_RESOURCE. * sd_resume() calls sd_start_stop_device() for ATA devices. That function in turn calls sd_submit_start() which tries to submit a START STOP UNIT command. That command can only be submitted after the SCSI error handler has changed the SCSI host state back to SHOST_RUNNING. * The SCSI error handler runs on its own thread and calls schedule_work(&(ap->scsi_rescan_task)). That causes ata_scsi_dev_rescan() to be called from the context of a kernel workqueue. That call hangs in blk_mq_get_tag(). I'm not sure why - maybe because all available tags have been allocated by sd_submit_start() calls (this is a guess). Link: https://lore.kernel.org/r/[email protected] Fixes: 88f1669019bd ("scsi: sd: Rework asynchronous resume support") Cc: Damien Le Moal <[email protected]> Cc: Hannes Reinecke <[email protected]> Cc: Geert Uytterhoeven <[email protected]> Cc: [email protected] Reported-by: Geert Uytterhoeven <[email protected]> Reported-by: [email protected] Reported-and-tested-by: Vlastimil Babka <[email protected]> Tested-by: John Garry <[email protected]> Tested-by: Hans de Goede <[email protected]> Signed-off-by: Bart Van Assche <[email protected]> Signed-off-by: Martin K. Petersen <[email protected]>
Diffstat (limited to 'lib/mpi')
0 files changed, 0 insertions, 0 deletions