All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jens Axboe <axboe@fb.com>
To: <axboe@kernel.dk>, <linux-block@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>
Cc: <paolo.valente@linaro.org>, <osandov@fb.com>, Jens Axboe <axboe@fb.com>
Subject: [PATCH 1/7] blk-mq: add blk_mq_start_stopped_hw_queue()
Date: Thu, 8 Dec 2016 13:13:19 -0700	[thread overview]
Message-ID: <1481228005-9245-2-git-send-email-axboe@fb.com> (raw)
In-Reply-To: <1481228005-9245-1-git-send-email-axboe@fb.com>

We have a variant for all hardware queues, but not one for a single
hardware queue.

Signed-off-by: Jens Axboe <axboe@fb.com>
---
 block/blk-mq.c         | 18 +++++++++++-------
 include/linux/blk-mq.h |  1 +
 2 files changed, 12 insertions(+), 7 deletions(-)

diff --git a/block/blk-mq.c b/block/blk-mq.c
index 90db5b490df9..b216746be9d3 100644
--- a/block/blk-mq.c
+++ b/block/blk-mq.c
@@ -1064,18 +1064,22 @@ void blk_mq_start_hw_queues(struct request_queue *q)
 }
 EXPORT_SYMBOL(blk_mq_start_hw_queues);
 
+void blk_mq_start_stopped_hw_queue(struct blk_mq_hw_ctx *hctx, bool async)
+{
+	if (!blk_mq_hctx_stopped(hctx))
+		return;
+
+	clear_bit(BLK_MQ_S_STOPPED, &hctx->state);
+	blk_mq_run_hw_queue(hctx, async);
+}
+
 void blk_mq_start_stopped_hw_queues(struct request_queue *q, bool async)
 {
 	struct blk_mq_hw_ctx *hctx;
 	int i;
 
-	queue_for_each_hw_ctx(q, hctx, i) {
-		if (!blk_mq_hctx_stopped(hctx))
-			continue;
-
-		clear_bit(BLK_MQ_S_STOPPED, &hctx->state);
-		blk_mq_run_hw_queue(hctx, async);
-	}
+	queue_for_each_hw_ctx(q, hctx, i)
+		blk_mq_start_stopped_hw_queue(hctx, async);
 }
 EXPORT_SYMBOL(blk_mq_start_stopped_hw_queues);
 
diff --git a/include/linux/blk-mq.h b/include/linux/blk-mq.h
index 35a0af5ede6d..87e404aae267 100644
--- a/include/linux/blk-mq.h
+++ b/include/linux/blk-mq.h
@@ -231,6 +231,7 @@ void blk_mq_stop_hw_queue(struct blk_mq_hw_ctx *hctx);
 void blk_mq_start_hw_queue(struct blk_mq_hw_ctx *hctx);
 void blk_mq_stop_hw_queues(struct request_queue *q);
 void blk_mq_start_hw_queues(struct request_queue *q);
+void blk_mq_start_stopped_hw_queue(struct blk_mq_hw_ctx *hctx, bool async);
 void blk_mq_start_stopped_hw_queues(struct request_queue *q, bool async);
 void blk_mq_run_hw_queues(struct request_queue *q, bool async);
 void blk_mq_delay_queue(struct blk_mq_hw_ctx *hctx, unsigned long msecs);
-- 
2.7.4

  reply	other threads:[~2016-12-08 20:13 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-12-08 20:13 [PATCHSET/RFC v2] blk-mq scheduling framework Jens Axboe
2016-12-08 20:13 ` Jens Axboe [this message]
2016-12-13  8:48   ` [PATCH 1/7] blk-mq: add blk_mq_start_stopped_hw_queue() Bart Van Assche
2016-12-08 20:13 ` [PATCH 2/7] blk-mq: abstract out blk_mq_dispatch_rq_list() helper Jens Axboe
2016-12-09  6:44   ` Hannes Reinecke
2016-12-09  6:44     ` Hannes Reinecke
2016-12-13  8:51   ` Bart Van Assche
2016-12-13 15:05     ` Jens Axboe
2016-12-13 15:05       ` Jens Axboe
2016-12-13  9:18   ` Ritesh Harjani
2016-12-13  9:29     ` Bart Van Assche
2016-12-08 20:13 ` [PATCH 3/7] elevator: make the rqhash helpers exported Jens Axboe
2016-12-09  6:45   ` Hannes Reinecke
2016-12-09  6:45     ` Hannes Reinecke
2016-12-08 20:13 ` [PATCH 4/7] blk-flush: run the queue when inserting blk-mq flush Jens Axboe
2016-12-09  6:45   ` Hannes Reinecke
2016-12-09  6:45     ` Hannes Reinecke
2016-12-08 20:13 ` [PATCH 5/7] blk-mq-sched: add framework for MQ capable IO schedulers Jens Axboe
2016-12-13 13:56   ` Bart Van Assche
2016-12-13 15:14     ` Jens Axboe
2016-12-13 15:14       ` Jens Axboe
2016-12-14 10:31       ` Bart Van Assche
2016-12-14 15:05         ` Jens Axboe
2016-12-14 15:05           ` Jens Axboe
2016-12-13 14:29   ` Bart Van Assche
2016-12-13 15:20     ` Jens Axboe
2016-12-08 20:13 ` [PATCH 6/7] mq-deadline: add blk-mq adaptation of the deadline IO scheduler Jens Axboe
2016-12-13 11:04   ` Bart Van Assche
2016-12-13 15:08     ` Jens Axboe
2016-12-13 15:08       ` Jens Axboe
2016-12-14  8:09   ` Bart Van Assche
2016-12-14 15:02     ` Jens Axboe
2016-12-14 15:02       ` Jens Axboe
2016-12-08 20:13 ` [PATCH 7/7] blk-mq-sched: allow setting of default " Jens Axboe
2016-12-13 10:13   ` Bart Van Assche
2016-12-13 15:06     ` Jens Axboe
2016-12-13 15:06       ` Jens Axboe
2016-12-13  9:26 ` [PATCHSET/RFC v2] blk-mq scheduling framework Paolo Valente
2016-12-13  9:26   ` Paolo Valente
2016-12-13 15:17   ` Jens Axboe
2016-12-13 16:15     ` Paolo Valente
2016-12-13 16:15       ` Paolo Valente
2016-12-13 16:28       ` Jens Axboe
2016-12-13 21:51         ` Jens Axboe
  -- strict thread matches above, loose matches on Subject: below --
2016-12-07 23:09 [PATCHSET/RFC] " Jens Axboe
2016-12-07 23:09 ` [PATCH 1/7] blk-mq: add blk_mq_start_stopped_hw_queue() Jens Axboe

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1481228005-9245-2-git-send-email-axboe@fb.com \
    --to=axboe@fb.com \
    --cc=axboe@kernel.dk \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=osandov@fb.com \
    --cc=paolo.valente@linaro.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.