I still haven't gotten hold of an i915 machine where I could
run the actua ltest suite.
But I did some audit of the code, and it seems blk-mq is lacking
support for the RQF_PM flag. While I can't directly see how
this would cause the hang your caused it's a least easy to test.
Can you apply the patch below and test with the use_blk_mq=0 parameter?
Note that implementing RQF_PM for blk-mq shouldn't be too hard either,
but if we don't get rid of the nr_pending counter somehow it would
be a severe performance penalty for all scsi devices.
diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c
index bea36adeee17..5c3818ebee9c 100644
--- a/drivers/scsi/sd.c
+++ b/drivers/scsi/sd.c
@@ -554,7 +554,7 @@ static struct scsi_driver sd_template = {
.probe = sd_probe,
.remove = sd_remove,
.shutdown = sd_shutdown,
- .pm = &sd_pm_ops,
+// .pm = &sd_pm_ops,
},
.rescan = sd_rescan,
.init_command = sd_init_command,
@@ -3249,7 +3249,7 @@ static void sd_probe_async(void *data, async_cookie_t
cookie)
gd->events |= DISK_EVENT_MEDIA_CHANGE;
}
- blk_pm_runtime_init(sdp->request_queue, dev);
+// blk_pm_runtime_init(sdp->request_queue, dev);
device_add_disk(dev, gd);
if (sdkp->capacity)
sd_dif_config_host(sdkp);