Messages in this thread Patch in this message | | | From | brookxu <> | Subject | [RFC PATCH v2 04/11] bfq: limit the IO depth of idle_class to 1 | Date | Fri, 12 Mar 2021 19:08:38 +0800 |
| |
From: Chunguang Xu <brookxu@tencent.com>
The IO depth of queues belong to CLASS_IDLE is limited to 1, so that it can avoid introducing a larger tail latency under a device with a larger IO depth. Although limiting the IO depth may reduce the performance of idle_class, it is generally not a big problem, because idle_class usually does not have strict performance requirements.
Signed-off-by: Chunguang Xu <brookxu@tencent.com> --- block/bfq-iosched.c | 11 +++++++++++ 1 file changed, 11 insertions(+)
diff --git a/block/bfq-iosched.c b/block/bfq-iosched.c index f0f53d6f1f6e..91e903f1e550 100644 --- a/block/bfq-iosched.c +++ b/block/bfq-iosched.c @@ -4808,6 +4808,17 @@ static struct request *__bfq_dispatch_request(struct blk_mq_hw_ctx *hctx) if (!bfqq) goto exit; + /* + * Here, the IO depth of queues belong to CLASS_IDLE is limited + * to 1, so that it can avoid introducing a larger tail latency + * under a device with a larger IO depth. Although limiting the + * IO depth may reduce the performance of idle_class, it is + * generally not a big problem, because idle_class usually + * does not have strict performance requirements. + */ + if (bfq_class_idle(bfqq) && bfqq->dispatched) + goto exit; + rq = bfq_dispatch_rq_from_bfqq(bfqd, bfqq); if (rq) { -- 2.30.0
| |