From ecdb1fcf134c2771a2357e9391c14b7c7cc2601c Mon Sep 17 00:00:00 2001 From: Guixin Liu Date: Thu, 28 May 2026 16:44:16 +0800 Subject: [PATCH] block: rename need_dispatch to piecemeal_dispatch in blk-mq sched The local boolean in __blk_mq_sched_dispatch_requests() decides whether to fall back to the per-ctx round-robin path (blk_mq_do_dispatch_ctx()) instead of the batch flush path (blk_mq_flush_busy_ctxs()). The whole function is about dispatching anyway, so the name "need_dispatch" is not particularly informative and can mislead readers into thinking that a false value means "skip dispatching". Rename it to "piecemeal_dispatch" to match the comment right above the check ("dequeue request one by one from sw queue if queue is busy") and to convey the actual intent: take the piecemeal, fair, one-at-a-time path either when we just drained hctx->dispatch (so the device has recently pushed back) or when the dispatch_busy EWMA still indicates congestion. The fast batch path is only taken when neither signal suggests recent backpressure. No functional change. Signed-off-by: Guixin Liu --- block/blk-mq-sched.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/block/blk-mq-sched.c b/block/blk-mq-sched.c index 0a00f5a76f5a8..14dacf99e148c 100644 --- a/block/blk-mq-sched.c +++ b/block/blk-mq-sched.c @@ -267,7 +267,7 @@ static int blk_mq_do_dispatch_ctx(struct blk_mq_hw_ctx *hctx) static int __blk_mq_sched_dispatch_requests(struct blk_mq_hw_ctx *hctx) { - bool need_dispatch = false; + bool piecemeal_dispatch = false; LIST_HEAD(rq_list); /* @@ -298,16 +298,16 @@ static int __blk_mq_sched_dispatch_requests(struct blk_mq_hw_ctx *hctx) blk_mq_sched_mark_restart_hctx(hctx); if (!blk_mq_dispatch_rq_list(hctx, &rq_list, true)) return 0; - need_dispatch = true; + piecemeal_dispatch = true; } else { - need_dispatch = hctx->dispatch_busy; + piecemeal_dispatch = hctx->dispatch_busy; } if (hctx->queue->elevator) return blk_mq_do_dispatch_sched(hctx); /* dequeue request one by one from sw queue if queue is busy */ - if (need_dispatch) + if (piecemeal_dispatch) return blk_mq_do_dispatch_ctx(hctx); blk_mq_flush_busy_ctxs(hctx, &rq_list); blk_mq_dispatch_rq_list(hctx, &rq_list, true);