2023-09-14 03:58:26

by Chengming Zhou

[permalink] [raw]
Subject: [PATCH v2 3/5] blk-mq: support batched queue_rqs() on shared tags queue

From: Chengming Zhou <[email protected]>

Since active requests have been accounted when allocate driver tags,
we can remove this limit now.

Signed-off-by: Chengming Zhou <[email protected]>
---
block/blk-mq.c | 7 +------
1 file changed, 1 insertion(+), 6 deletions(-)

diff --git a/block/blk-mq.c b/block/blk-mq.c
index c209a7dddee3..68ce9357463b 100644
--- a/block/blk-mq.c
+++ b/block/blk-mq.c
@@ -2781,13 +2781,8 @@ void blk_mq_flush_plug_list(struct blk_plug *plug, bool from_schedule)
* If we do, we can dispatch the whole plug list in one go. We
* already know at this point that all requests belong to the
* same queue, caller must ensure that's the case.
- *
- * Since we pass off the full list to the driver at this point,
- * we do not increment the active request count for the queue.
- * Bypass shared tags for now because of that.
*/
- if (q->mq_ops->queue_rqs &&
- !(rq->mq_hctx->flags & BLK_MQ_F_TAG_QUEUE_SHARED)) {
+ if (q->mq_ops->queue_rqs) {
blk_mq_run_dispatch_ops(q,
__blk_mq_flush_plug_list(q, plug));
if (rq_list_empty(plug->mq_list))
--
2.40.1


2023-09-22 12:52:59

by Ming Lei

[permalink] [raw]
Subject: Re: [PATCH v2 3/5] blk-mq: support batched queue_rqs() on shared tags queue

On Wed, Sep 13, 2023 at 03:16:14PM +0000, [email protected] wrote:
> From: Chengming Zhou <[email protected]>
>
> Since active requests have been accounted when allocate driver tags,
> we can remove this limit now.
>
> Signed-off-by: Chengming Zhou <[email protected]>
> ---
> block/blk-mq.c | 7 +------
> 1 file changed, 1 insertion(+), 6 deletions(-)
>
> diff --git a/block/blk-mq.c b/block/blk-mq.c
> index c209a7dddee3..68ce9357463b 100644
> --- a/block/blk-mq.c
> +++ b/block/blk-mq.c
> @@ -2781,13 +2781,8 @@ void blk_mq_flush_plug_list(struct blk_plug *plug, bool from_schedule)
> * If we do, we can dispatch the whole plug list in one go. We
> * already know at this point that all requests belong to the
> * same queue, caller must ensure that's the case.
> - *
> - * Since we pass off the full list to the driver at this point,
> - * we do not increment the active request count for the queue.
> - * Bypass shared tags for now because of that.
> */
> - if (q->mq_ops->queue_rqs &&
> - !(rq->mq_hctx->flags & BLK_MQ_F_TAG_QUEUE_SHARED)) {
> + if (q->mq_ops->queue_rqs) {
> blk_mq_run_dispatch_ops(q,
> __blk_mq_flush_plug_list(q, plug));
> if (rq_list_empty(plug->mq_list))

Reviewed-by: Ming Lei <[email protected]>

Thanks,
Ming