]> 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)
commitc9ca617de367b852f4ac0e4cb6810377df2aef2c
tree2e17cd0d604bf63d82e4f8838b57ec579690ca52
parentfaa47a47695cb6d750ccc3e07d95254aebd42e9c
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