Received: by 2002:a05:6a10:17d3:0:0:0:0 with SMTP id hz19csp3255874pxb; Tue, 20 Apr 2021 04:22:23 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwkv+AQmI4jAPDeLYAVSmqeyoGPRbEve92G8+1tnglPGlT1KzvXs09amPYEyACOA9Z4omik X-Received: by 2002:aa7:cd90:: with SMTP id x16mr23961243edv.182.1618917743719; Tue, 20 Apr 2021 04:22:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1618917743; cv=none; d=google.com; s=arc-20160816; b=osFRl9eEBiYa9rDOJ2Feaw8Jl4cGLzGTA0z6ifvbf8+dJfN2foxyzglwELBoeII5us Av9FbV669odlUZ0NjqjyyEL9CMLYAjI7spzX8Xm6HG3tnmSy0pl5Gbccj1da8t4iSD/9 R4AzmOd+Y5VpMJI093WV6JVs6xyJxLoVpJpvPIxFcidQYbHPWmPoczW8jM8MEEmoXGJl cLD9IhXvB2R1oiIN2THmLxsZF7dyDKk5gJvkLyB4wgq4PTF9IsjFMrHURlgyApRsQlBm nB1jf/4c/XFosc2jVMOEVgI23KQPs747FKBt1sT1ThbltXMXEAkbbr0rCFuPRv2GeaSp I1OQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:references:in-reply-to:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=GxLL6QnmEPTEzqADHSi/TrcJeIj4iMdkXLkWOx3ig7I=; b=RTzCFkEGvTt/gQT+G32SrO+SMKRQXcgetxkLQd/yfFFv2YG8sOaJcDs6n4ZG/UFGyq UWbOWnCBvFOUpe3/kqYwyab5IiEtfzpLhpFC/RYkIgbv8EkOhnbmrn33eL/0hl/FXeTe s1mA8qFBUiMfiJm85xf1f0EFZLxJMlsU5dJE7KD5T6+DPwXif+/8KlieRY8TCbdJkUwA 0xyAxRBAYM+3HlxxOG4XMLQt1UENJPwonQmCKWo7yHy8vJg7kA3iy+lkTBIyPxXZ21JC r8asO+yADMcKfhxnED5ep0/C7Q67CcVgykil4nuSWs9ibt90DRm3F5M1fA9t49X7JQJS y6OQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b="f/GxmF//"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id cw5si8479343ejc.596.2021.04.20.04.21.59; Tue, 20 Apr 2021 04:22:23 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b="f/GxmF//"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231887AbhDTLVM (ORCPT + 99 others); Tue, 20 Apr 2021 07:21:12 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37772 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231709AbhDTLVD (ORCPT ); Tue, 20 Apr 2021 07:21:03 -0400 Received: from mail-pf1-x42a.google.com (mail-pf1-x42a.google.com [IPv6:2607:f8b0:4864:20::42a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 64685C06138A; Tue, 20 Apr 2021 04:20:32 -0700 (PDT) Received: by mail-pf1-x42a.google.com with SMTP id i190so25313942pfc.12; Tue, 20 Apr 2021 04:20:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :in-reply-to:references; bh=GxLL6QnmEPTEzqADHSi/TrcJeIj4iMdkXLkWOx3ig7I=; b=f/GxmF//G+P7rb8pmjQBa4IVXX0FDe7U0Qpf6CzuPTbnlj8W6de+iMKco88AZrpQYG Ebnz0w00K96fChD1IQvQO4mkrz3MXU8MkwkQPaq/5lBRTPaxlsN5cvUlJYTpSB399BO5 ksZqBfyuw0pnJF0dLMnQESNcMiMNg39jcqSn2BvYPz0mr6m3ChwPWwMSiYXRQT1wpY13 gV5wzhhXOGgyscDj+H+UMNUkp/EDMPIgIdFvBKD6TtmxLLalLvAn/7kmumhhVDVgcCh7 UQgQtCD2aiOxUC/KNxlPOfTi/ZsTVZY+I7qmR2GMSEv3vkWkXlHQ3gMONXUl4eP5SOgM e42Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:in-reply-to:references; bh=GxLL6QnmEPTEzqADHSi/TrcJeIj4iMdkXLkWOx3ig7I=; b=nEiKJ6tvy4+3Xz9c93w7M6bZ0YlutdyGdHYjxZFnrb29YYLK8iGy4DY2/EOZBqpXA6 DTXt5mu5heamQTKMNHlpJflQ1qVLwUtmbzxWa/KlqDptrNnE1u0KDcYAjAXNcFFc98tF AliSY3EJDJI6c9UD3//n1Ut6H5jXo5/acufw25xc1gtEaM5sG45aORKvfJLhbH/AlFnX jyYnriOvA8bvL8UQrYrJ5R8OcbEMQtclkdBg2Hq5GyuXgqwZPeOl3HiKEk67IZCnpRvC CF92w191/ig89E/yrstHveifvidXzt8au7dj8K1jSq/FWYdfkMSq1MjEw3d7UYgGQVJJ rwFQ== X-Gm-Message-State: AOAM533WkjSgNqdnbACobkBxzTHYJmxIJnJofocrnjuKZCgM0y1RVdxm DCeJRx8t54i5fjr77DMvSt0= X-Received: by 2002:a65:4d4c:: with SMTP id j12mr16127000pgt.346.1618917632065; Tue, 20 Apr 2021 04:20:32 -0700 (PDT) Received: from VM-0-3-centos.localdomain ([101.32.213.191]) by smtp.gmail.com with ESMTPSA id s40sm14187367pfw.100.2021.04.20.04.20.30 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 20 Apr 2021 04:20:31 -0700 (PDT) From: brookxu To: paolo.valente@linaro.org, axboe@kernel.dk, tj@kernel.org Cc: linux-block@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 3/8] bfq: limit the IO depth of CLASS_IDLE to 1 Date: Tue, 20 Apr 2021 19:20:20 +0800 Message-Id: <34edd545a9f6f6b327fc6779fbd17fd3a519ed4c.1618916839.git.brookxu@tencent.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: References: In-Reply-To: References: Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Chunguang Xu 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 --- block/bfq-iosched.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/block/bfq-iosched.c b/block/bfq-iosched.c index ec482e6..29940ec 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) { -- 1.8.3.1