Skip to content

blk-mq: improve bio merge for none scheduler

Ming Lei dm-devel linux-block lkml 2 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v5 Latest8 patches 7 repliesIn review
  2. v12 patches 2 repliesSuperseded

Changes in v5 from the cover letter

- splitted from previous patchset of 'blk-mq-sched: improve SCSI-MQ performance V4'

Patches in v5 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/8blk-mq-sched: introduce blk_mq_sched_queue_depth()block/blk-mq-sched.c block/blk-mq-sched.h+12 -70 replies
2/8blk-mq-sched: use q->queue_depth as hint for q->nr_requestsblock/blk-mq-sched.h block/blk-mq.c block/blk-mq.h +1 more+43 -50 replies
3/8block: introduce rqhash helpersblock/blk.h block/elevator.c+59 -291 reply
4/8block: move actual bio merge code into __elv_mergeblock/elevator.c+13 -61 reply
5/8block: add check on elevator for supporting bio merge via hashtable from blk-mq sw queueblock/elevator.c+16 -01 reply
6/8block: introduce .last_merge and .hash to blk_mq_ctxblock/blk-mq.h block/blk.h block/elevator.c+26 -31 reply
7/8blk-mq-sched: refactor blk_mq_sched_try_merge()block/blk-mq-sched.c+13 -51 reply
8/8blk-mq: improve bio merge from blk-mq sw queueblock/blk-mq-sched.c block/blk-mq.c+37 -402 replies

Reviews trailers per patch

3 of 8 patches have a Reviewed-by or Acked-by.

PatchChristoph HellwigBart Van AsscheOleksandr NatalenkoTom NguyenPaolo Valente
1/8R-b R-b T-b T-b T-b
2/8R-b R-b T-b T-b T-b
3/8T-b T-b T-b
4/8T-b T-b T-b
5/8T-b T-b T-b
6/8T-b T-b T-b
7/8R-b T-b T-b T-b
8/8T-b T-b T-b

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes. Scroll the table sideways for all 5 reviewers.

Read the v5 thread

Cover letter [PATCH V5 0/8] blk-mq: improve bio merge for none scheduler

Hi,

Patch 1 ~ 2 uses q->queue_depth as hint for setting up scheduler queue depth.

Patch 3 ~ 8 improve bio merge via hash table in sw queue, which makes bio merge more efficient than current approch in which only the last 8 requests in sw queue are checked.

Also this way has been used in block legacy path for long time, and blk-mq scheduler uses hash table to do bio merge too.

V5:
- splitted from previous patchset of 'blk-mq-sched: improve SCSI-MQ performance V4'

Ming Lei (8):
blk-mq-sched: introduce blk_mq_sched_queue_depth()
blk-mq-sched: use q->queue_depth as hint for q->nr_requests
block: introduce rqhash helpers
block: move actual bio merge code into __elv_merge
block: add check on elevator for supporting bio merge via hashtable
from blk-mq sw queue
block: introduce .last_merge and .hash to blk_mq_ctx
blk-mq-sched: refactor blk_mq_sched_try_merge()
blk-mq: improve bio merge from blk-mq sw queue

 block/blk-mq-sched.c | 75 +++++++++++++++---------------------------
 block/blk-mq-sched.h | 23 +++++++++++++
 block/blk-mq.c       | 55 ++++++++++++++++++++++++++++---
 block/blk-mq.h       |  5 +++
 block/blk-settings.c |  2 ++
 block/blk.h          | 55 +++++++++++++++++++++++++++++++
 block/elevator.c     | 93 +++++++++++++++++++++++++++++++---------------------
 7 files changed, 216 insertions(+), 92 deletions(-)
Signature · 1 line
2.9.5