blk-mq-sched: dispatch from scheduler IFF progress is made in ->dispatch
authorMing Lei <ming.lei@redhat.com>
Sat, 14 Oct 2017 09:22:25 +0000 (17:22 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 20 Dec 2017 09:10:27 +0000 (10:10 +0100)
commit85dcb3c850a79751b2239f434a4b6b36a75a865e
tree310d85210d8687d6f943a546095185b5bddbe9a5
parent6facfe25e62e702304591bd114bcf7d6067c86e4
blk-mq-sched: dispatch from scheduler IFF progress is made in ->dispatch

[ Upstream commit 5e3d02bbafad38975099b5848f5ebadedcf7bb7e ]

When the hw queue is busy, we shouldn't take requests from the scheduler
queue any more, otherwise it is difficult to do IO merge.

This patch fixes the awful IO performance on some SCSI devices(lpfc,
qla2xxx, ...) when mq-deadline/kyber is used by not taking requests if
hw queue is busy.

Reviewed-by: Omar Sandoval <osandov@fb.com>
Reviewed-by: Bart Van Assche <bart.vanassche@wdc.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Ming Lei <ming.lei@redhat.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
block/blk-mq-sched.c