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

From: Ming Lei
Date: Sat Sep 30 2017 - 07:27:44 EST


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(-)

--
2.9.5