mirror of
https://github.com/FEX-Emu/linux.git
synced 2024-12-03 05:02:09 +00:00
blk-mq: fix hang in bt_get()
Avoid that if there are fewer hardware queues than CPU threads that bt_get() can hang. The symptoms of the hang were as follows: * All tags allocated for a particular hardware queue. * (nr_tags) pending commands for that hardware queue. * No pending commands for the software queues associated with that hardware queue. Signed-off-by: Jens Axboe <axboe@fb.com>
This commit is contained in:
parent
6637fadf25
commit
b32232073e
@ -254,6 +254,13 @@ static int bt_get(struct blk_mq_alloc_data *data,
|
||||
if (tag != -1)
|
||||
break;
|
||||
|
||||
/*
|
||||
* We're out of tags on this hardware queue, kick any
|
||||
* pending IO submits before going to sleep waiting for
|
||||
* some to complete.
|
||||
*/
|
||||
blk_mq_run_hw_queue(hctx, false);
|
||||
|
||||
blk_mq_put_ctx(data->ctx);
|
||||
|
||||
io_schedule();
|
||||
|
Loading…
Reference in New Issue
Block a user