]> git.baikalelectronics.ru Git - kernel.git/commit
blk-mq-sched: fix starvation for multiple hardware queues and shared tags
authorJens Axboe <axboe@fb.com>
Thu, 26 Jan 2017 21:42:34 +0000 (14:42 -0700)
committerJens Axboe <axboe@fb.com>
Fri, 27 Jan 2017 15:20:34 +0000 (08:20 -0700)
commita4b4d6acc5597cc729422871cd783cba9ab2757b
tree2e17cd0d604bf63d82e4f8838b57ec579690ca52
parentc840ab3e84472b90e76f699ddd965370542a23dd
blk-mq-sched: fix starvation for multiple hardware queues and shared tags

If we have both multiple hardware queues and shared tag map between
devices, we need to ensure that we propagate the hardware queue
restart bit higher up. This is because we can get into a situation
where we don't have any IO pending on a hardware queue, yet we fail
getting a tag to start new IO. If that happens, it's not enough to
mark the hardware queue as needing a restart, we need to bubble
that up to the higher level queue as well.

Signed-off-by: Jens Axboe <axboe@fb.com>
Reviewed-by: Omar Sandoval <osandov@fb.com>
Tested-by: Hannes Reinecke <hare@suse.com>
block/blk-mq-sched.c
block/blk-mq-sched.h
block/blk-mq.c
block/blk-mq.h
include/linux/blkdev.h