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)
committerJens Axboe <axboe@kernel.dk>
Wed, 1 Nov 2017 14:20:02 +0000 (08:20 -0600)
commit5e3d02bbafad38975099b5848f5ebadedcf7bb7e
tree165fcba950a2f17a88639cf3251e660c3844f889
parent0e7d3a8d4ec3f662faa7ef7f2957459b33f2481d
blk-mq-sched: dispatch from scheduler IFF progress is made in ->dispatch

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>
block/blk-mq-sched.c