On Mon, Jul 18, 2022 at 08:35:28PM +0800, Yufen Yu wrote: > We do test on a virtio scsi device (/dev/sda) and the default mq > scheduler is 'none'. We found a IO hung as following: > > blk_finish_plug > blk_mq_plug_issue_direct > scsi_mq_get_budget > //get budget_token fail and sdev->restarts=1 > > scsi_end_request > scsi_run_queue_async > //sdev->restart=0 and run queue > > blk_mq_request_bypass_insert > //add request to hctx->dispatch list Here the issue shouldn't be related with scsi's get budget or scsi_run_queue_async. If blk-mq adds request into ->dispatch_list, it is blk-mq core's responsibility to re-run queue for moving on. Can you investigate a bit more why blk-mq doesn't run queue after adding request to hctx dispatch list? Thanks, Ming