]> git.baikalelectronics.ru Git - kernel.git/commit
blk-mq: issue directly if hw queue isn't busy in case of 'none'
authorMing Lei <ming.lei@redhat.com>
Tue, 10 Jul 2018 01:03:31 +0000 (09:03 +0800)
committerJens Axboe <axboe@kernel.dk>
Tue, 17 Jul 2018 22:04:00 +0000 (16:04 -0600)
commita5b0cb94c967fa1398c6c3eda788fef8a5faf99a
tree6eed5c8628772b9d52db0324593e71eae13aa1b8
parent01a678d4d67aba857f9e2b36288c1f93773b3c26
blk-mq: issue directly if hw queue isn't busy in case of 'none'

In case of 'none' io scheduler, when hw queue isn't busy, it isn't
necessary to enqueue request to sw queue and dequeue it from
sw queue because request may be submitted to hw queue asap without
extra cost, meantime there shouldn't be much request in sw queue,
and we don't need to worry about effect on IO merge.

There are still some single hw queue SCSI HBAs(HPSA, megaraid_sas, ...)
which may connect high performance devices, so 'none' is often required
for obtaining good performance.

This patch improves IOPS and decreases CPU unilization on megaraid_sas,
per Kashyap's test.

Cc: Kashyap Desai <kashyap.desai@broadcom.com>
Cc: Laurence Oberman <loberman@redhat.com>
Cc: Omar Sandoval <osandov@fb.com>
Cc: Christoph Hellwig <hch@lst.de>
Cc: Bart Van Assche <bart.vanassche@wdc.com>
Cc: Hannes Reinecke <hare@suse.de>
Reported-by: Kashyap Desai <kashyap.desai@broadcom.com>
Tested-by: Kashyap Desai <kashyap.desai@broadcom.com>
Signed-off-by: Ming Lei <ming.lei@redhat.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/blk-mq-sched.c
block/blk-mq.c
block/blk-mq.h