Re: [PATCH 02/12] blk-mq: Introduce blk_mq_hctx_stopped()
On Wed, Oct 26, 2016 at 03:51:33PM -0700, Bart Van Assche wrote: > Multiple functions test the BLK_MQ_S_STOPPED bit so introduce > a helper function that performs this test. > > Signed-off-by: Bart Van Assche > Cc: Christoph Hellwig Looks good, Reviewed-by: Johannes Thumshirn -- Johannes Thumshirn Storage jthumsh...@suse.de+49 911 74053 689 SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg GF: Felix Imendörffer, Jane Smithard, Graham Norton HRB 21284 (AG Nürnberg) Key fingerprint = EC38 9CAB C2C4 F25D 8600 D0D0 0393 969D 2D76 0850 -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 02/12] blk-mq: Introduce blk_mq_hctx_stopped()
Looks fine, Reviewed-by: Sagi Grimberg -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 02/12] blk-mq: Introduce blk_mq_hctx_stopped()
Looks fine, Reviewed-by: Christoph Hellwig -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 02/12] blk-mq: Introduce blk_mq_hctx_stopped()
On Thu, Oct 27, 2016 at 6:51 AM, Bart Van Assche wrote: > Multiple functions test the BLK_MQ_S_STOPPED bit so introduce > a helper function that performs this test. > > Signed-off-by: Bart Van Assche > Cc: Christoph Hellwig > Cc: Hannes Reinecke > Cc: Sagi Grimberg > Cc: Johannes Thumshirn Reviewed-by: Ming Lei > --- > block/blk-mq.c | 12 ++-- > block/blk-mq.h | 5 + > 2 files changed, 11 insertions(+), 6 deletions(-) > > diff --git a/block/blk-mq.c b/block/blk-mq.c > index b5dcafb..b52b3a6 100644 > --- a/block/blk-mq.c > +++ b/block/blk-mq.c > @@ -787,7 +787,7 @@ static void __blk_mq_run_hw_queue(struct blk_mq_hw_ctx > *hctx) > struct list_head *dptr; > int queued; > > - if (unlikely(test_bit(BLK_MQ_S_STOPPED, &hctx->state))) > + if (unlikely(blk_mq_hctx_stopped(hctx))) > return; > > WARN_ON(!cpumask_test_cpu(raw_smp_processor_id(), hctx->cpumask) && > @@ -912,8 +912,8 @@ static int blk_mq_hctx_next_cpu(struct blk_mq_hw_ctx > *hctx) > > void blk_mq_run_hw_queue(struct blk_mq_hw_ctx *hctx, bool async) > { > - if (unlikely(test_bit(BLK_MQ_S_STOPPED, &hctx->state) || > - !blk_mq_hw_queue_mapped(hctx))) > + if (unlikely(blk_mq_hctx_stopped(hctx) || > +!blk_mq_hw_queue_mapped(hctx))) > return; > > if (!async && !(hctx->flags & BLK_MQ_F_BLOCKING)) { > @@ -938,7 +938,7 @@ void blk_mq_run_hw_queues(struct request_queue *q, bool > async) > queue_for_each_hw_ctx(q, hctx, i) { > if ((!blk_mq_hctx_has_pending(hctx) && > list_empty_careful(&hctx->dispatch)) || > - test_bit(BLK_MQ_S_STOPPED, &hctx->state)) > + blk_mq_hctx_stopped(hctx)) > continue; > > blk_mq_run_hw_queue(hctx, async); > @@ -988,7 +988,7 @@ void blk_mq_start_stopped_hw_queues(struct request_queue > *q, bool async) > int i; > > queue_for_each_hw_ctx(q, hctx, i) { > - if (!test_bit(BLK_MQ_S_STOPPED, &hctx->state)) > + if (!blk_mq_hctx_stopped(hctx)) > continue; > > clear_bit(BLK_MQ_S_STOPPED, &hctx->state); > @@ -1332,7 +1332,7 @@ static blk_qc_t blk_mq_make_request(struct > request_queue *q, struct bio *bio) > blk_mq_put_ctx(data.ctx); > if (!old_rq) > goto done; > - if (test_bit(BLK_MQ_S_STOPPED, &data.hctx->state) || > + if (blk_mq_hctx_stopped(data.hctx) || > blk_mq_direct_issue_request(old_rq, &cookie) != 0) > blk_mq_insert_request(old_rq, false, true, true); > goto done; > diff --git a/block/blk-mq.h b/block/blk-mq.h > index e5d2524..ac772da 100644 > --- a/block/blk-mq.h > +++ b/block/blk-mq.h > @@ -100,6 +100,11 @@ static inline void blk_mq_set_alloc_data(struct > blk_mq_alloc_data *data, > data->hctx = hctx; > } > > +static inline bool blk_mq_hctx_stopped(struct blk_mq_hw_ctx *hctx) > +{ > + return test_bit(BLK_MQ_S_STOPPED, &hctx->state); > +} > + > static inline bool blk_mq_hw_queue_mapped(struct blk_mq_hw_ctx *hctx) > { > return hctx->nr_ctx && hctx->tags; > -- > 2.10.1 > -- Ming Lei -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 02/12] blk-mq: Introduce blk_mq_hctx_stopped()
Multiple functions test the BLK_MQ_S_STOPPED bit so introduce a helper function that performs this test. Signed-off-by: Bart Van Assche Cc: Christoph Hellwig Cc: Hannes Reinecke Cc: Sagi Grimberg Cc: Johannes Thumshirn --- block/blk-mq.c | 12 ++-- block/blk-mq.h | 5 + 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/block/blk-mq.c b/block/blk-mq.c index b5dcafb..b52b3a6 100644 --- a/block/blk-mq.c +++ b/block/blk-mq.c @@ -787,7 +787,7 @@ static void __blk_mq_run_hw_queue(struct blk_mq_hw_ctx *hctx) struct list_head *dptr; int queued; - if (unlikely(test_bit(BLK_MQ_S_STOPPED, &hctx->state))) + if (unlikely(blk_mq_hctx_stopped(hctx))) return; WARN_ON(!cpumask_test_cpu(raw_smp_processor_id(), hctx->cpumask) && @@ -912,8 +912,8 @@ static int blk_mq_hctx_next_cpu(struct blk_mq_hw_ctx *hctx) void blk_mq_run_hw_queue(struct blk_mq_hw_ctx *hctx, bool async) { - if (unlikely(test_bit(BLK_MQ_S_STOPPED, &hctx->state) || - !blk_mq_hw_queue_mapped(hctx))) + if (unlikely(blk_mq_hctx_stopped(hctx) || +!blk_mq_hw_queue_mapped(hctx))) return; if (!async && !(hctx->flags & BLK_MQ_F_BLOCKING)) { @@ -938,7 +938,7 @@ void blk_mq_run_hw_queues(struct request_queue *q, bool async) queue_for_each_hw_ctx(q, hctx, i) { if ((!blk_mq_hctx_has_pending(hctx) && list_empty_careful(&hctx->dispatch)) || - test_bit(BLK_MQ_S_STOPPED, &hctx->state)) + blk_mq_hctx_stopped(hctx)) continue; blk_mq_run_hw_queue(hctx, async); @@ -988,7 +988,7 @@ void blk_mq_start_stopped_hw_queues(struct request_queue *q, bool async) int i; queue_for_each_hw_ctx(q, hctx, i) { - if (!test_bit(BLK_MQ_S_STOPPED, &hctx->state)) + if (!blk_mq_hctx_stopped(hctx)) continue; clear_bit(BLK_MQ_S_STOPPED, &hctx->state); @@ -1332,7 +1332,7 @@ static blk_qc_t blk_mq_make_request(struct request_queue *q, struct bio *bio) blk_mq_put_ctx(data.ctx); if (!old_rq) goto done; - if (test_bit(BLK_MQ_S_STOPPED, &data.hctx->state) || + if (blk_mq_hctx_stopped(data.hctx) || blk_mq_direct_issue_request(old_rq, &cookie) != 0) blk_mq_insert_request(old_rq, false, true, true); goto done; diff --git a/block/blk-mq.h b/block/blk-mq.h index e5d2524..ac772da 100644 --- a/block/blk-mq.h +++ b/block/blk-mq.h @@ -100,6 +100,11 @@ static inline void blk_mq_set_alloc_data(struct blk_mq_alloc_data *data, data->hctx = hctx; } +static inline bool blk_mq_hctx_stopped(struct blk_mq_hw_ctx *hctx) +{ + return test_bit(BLK_MQ_S_STOPPED, &hctx->state); +} + static inline bool blk_mq_hw_queue_mapped(struct blk_mq_hw_ctx *hctx) { return hctx->nr_ctx && hctx->tags; -- 2.10.1 -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html