On Fri, 14 Jul 2023 11:11:06 +0100, Ross Lagerwall wrote: > We have seen rare IO stalls as follows: > > * blk_mq_plug_issue_direct() is entered with an mq_list containing two > requests. > * For the first request, it sets last == false and enters the driver's > queue_rq callback. > * The driver queue_rq callback indirectly calls schedule() which calls > blk_flush_plug(). This may happen if the driver has the > BLK_MQ_F_BLOCKING flag set and is allowed to sleep in ->queue_rq. > * blk_flush_plug() handles the remaining request in the mq_list. mq_list > is now empty. > * The original call to queue_rq resumes (with last == false). > * The loop in blk_mq_plug_issue_direct() terminates because there are no > remaining requests in mq_list. > > [...] Applied, thanks! [1/1] blk-mq: Fix stall due to recursive flush plug commit: 70904263512a74a3b8941dd9e6e515ca6fc57821 Best regards, -- Jens Axboe