Hi Greg,
Thanks for quick reply. Please see reply inline.
Greg KH gregkh@linuxfoundation.org 于2018年7月23日周一 下午3:34写道:
On Mon, Jul 23, 2018 at 03:24:22PM +0200, Jack Wang wrote:
Hi Greg,
Please consider this patchset, which include block/scsi multiqueue performance enhancement and bugfix.
What exactly is the performance enhancement? How can you measure it? How did you measure it?
I'm testing on SRP/IBNBD using fio, I've seen +10% with mix IO load, and 50% improvement on small IO (bs=512.) with the patchset.
Which one(s) are the bugfixes in this series? Why not just submit those separately as they should be "obvious fixes", right?
We had queue stall problem on shared hctx restart, my colleague Roman reported to upstream: https://lkml.org/lkml/2017/10/18/263 the patch wasn't taken by upstream, and a bigger patchset from Lei Ming was accepted instread with revert and further bugfix later on.
following patches meant for improving performance on scsi-mq, and also contains the attempt to fix the queue stall problem 358a3a6bccb7 ("blk-mq: don't handle TAG_SHARED in restart") blk-mq-sched: move actual dispatching into one helper blk-mq: introduce .get_budget and .put_budget in blk_mq_ops sbitmap: introduce __sbitmap_for_each_set() blk-mq-sched: improve dispatching from sw queue scsi: allow passing in null rq to scsi_prep_state_check() scsi: implement .get_budget and .put_budget for blk-mq SCSI: don't get target/host busy_count in scsi_mq_get_budget() blk-mq: don't handle TAG_SHARED in restart blk-mq: don't restart queue when .get_budget returns BLK_STS_RESOURCE blk-mq: don't handle failure in .get_budget
Following is independent fix: blk-mq: quiesce queue during switching io sched and updating nr_requests blk-mq: fix issue with shared tag queue re-running
These are clearup for flush request handling: blk-flush: don't run queue for requests bypassing flush block: pass 'run_queue' to blk_mq_request_bypass_insert blk-flush: use blk_mq_request_bypass_insert() blk-mq-sched: decide how to handle flush rq via RQF_FLUSH_SEQ blk-mq: move blk_mq_put_driver_tag*() into blk-mq.h blk-mq: don't allocate driver tag upfront for flush rq
The left are following up fixes.
And why didn't you cc: the subsystem maintainer and mailing list here? I need their ack before I could take these.
Sorry, my mistake, now add Jens, linux-block, ilnux-scsi in reply.
Sorry for confusion.
thanks,
greg k-h
Regards, Jack Wang