Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1742612

[PATCH V5 1/8] blk-mq-sched: introduce blk_mq_sched_queue_depth()

From Ming Lei <ming.lei@redhat.com>
Newsgroups linux.kernel
Subject [PATCH V5 1/8] blk-mq-sched: introduce blk_mq_sched_queue_depth()
Date 2017-09-30 13:40 +0200
Message-ID <uvohI-3wm-19@gated-at.bofh.it> (permalink)
References <uvo81-3sE-5@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


The following patch will use one hint to figure out
default queue depth for scheduler queue, so introduce
the helper of blk_mq_sched_queue_depth() for this purpose.

Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Bart Van Assche <bart.vanassche@wdc.com>
Tested-by: Oleksandr Natalenko <oleksandr@natalenko.name>
Tested-by: Tom Nguyen <tom81094@gmail.com>
Tested-by: Paolo Valente <paolo.valente@linaro.org>
Signed-off-by: Ming Lei <ming.lei@redhat.com>
---
 block/blk-mq-sched.c |  8 +-------
 block/blk-mq-sched.h | 11 +++++++++++
 2 files changed, 12 insertions(+), 7 deletions(-)

diff --git a/block/blk-mq-sched.c b/block/blk-mq-sched.c
index c5eac1eee442..8c09959bc0d0 100644
--- a/block/blk-mq-sched.c
+++ b/block/blk-mq-sched.c
@@ -588,13 +588,7 @@ int blk_mq_init_sched(struct request_queue *q, struct elevator_type *e)
 		return 0;
 	}
 
-	/*
-	 * Default to double of smaller one between hw queue_depth and 128,
-	 * since we don't split into sync/async like the old code did.
-	 * Additionally, this is a per-hw queue depth.
-	 */
-	q->nr_requests = 2 * min_t(unsigned int, q->tag_set->queue_depth,
-				   BLKDEV_MAX_RQ);
+	q->nr_requests = blk_mq_sched_queue_depth(q);
 
 	queue_for_each_hw_ctx(q, hctx, i) {
 		ret = blk_mq_sched_alloc_tags(q, hctx, i);
diff --git a/block/blk-mq-sched.h b/block/blk-mq-sched.h
index 9267d0b7c197..1d47f3fda1d0 100644
--- a/block/blk-mq-sched.h
+++ b/block/blk-mq-sched.h
@@ -96,4 +96,15 @@ static inline bool blk_mq_sched_needs_restart(struct blk_mq_hw_ctx *hctx)
 	return test_bit(BLK_MQ_S_SCHED_RESTART, &hctx->state);
 }
 
+static inline unsigned blk_mq_sched_queue_depth(struct request_queue *q)
+{
+	/*
+	 * Default to double of smaller one between hw queue_depth and 128,
+	 * since we don't split into sync/async like the old code did.
+	 * Additionally, this is a per-hw queue depth.
+	 */
+	return 2 * min_t(unsigned int, q->tag_set->queue_depth,
+				   BLKDEV_MAX_RQ);
+}
+
 #endif
-- 
2.9.5

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH V5 0/8] blk-mq: improve bio merge for none scheduler Ming Lei <ming.lei@redhat.com> - 2017-09-30 13:30 +0200
  [PATCH V5 7/8] blk-mq-sched: refactor blk_mq_sched_try_merge() Ming Lei <ming.lei@redhat.com> - 2017-09-30 13:40 +0200
  [PATCH V5 5/8] block: add check on elevator for supporting bio merge via hashtable from blk-mq sw queue Ming Lei <ming.lei@redhat.com> - 2017-09-30 13:40 +0200
  [PATCH V5 2/8] blk-mq-sched: use q->queue_depth as hint for q->nr_requests Ming Lei <ming.lei@redhat.com> - 2017-09-30 13:40 +0200
  [PATCH V5 8/8] blk-mq: improve bio merge from blk-mq sw queue Ming Lei <ming.lei@redhat.com> - 2017-09-30 13:40 +0200
  [PATCH V5 4/8] block: move actual bio merge code into __elv_merge Ming Lei <ming.lei@redhat.com> - 2017-09-30 13:40 +0200
  [PATCH V5 1/8] blk-mq-sched: introduce blk_mq_sched_queue_depth() Ming Lei <ming.lei@redhat.com> - 2017-09-30 13:40 +0200
  [PATCH V5 3/8] block: introduce rqhash helpers Ming Lei <ming.lei@redhat.com> - 2017-09-30 13:40 +0200
  [PATCH V5 6/8] block: introduce .last_merge and .hash to blk_mq_ctx Ming Lei <ming.lei@redhat.com> - 2017-09-30 13:40 +0200

csiph-web