From patchwork Tue Nov 29 03:01:38 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kemeng Shi X-Patchwork-Id: 27046 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp94236wrr; Mon, 28 Nov 2022 19:02:54 -0800 (PST) X-Google-Smtp-Source: AA0mqf7FKr8yxmNGt08PxB9AJG2npdOPpDDedrByhKzmEDy0KFmEH1CMmNH14saAxPYCvvzkMAMj X-Received: by 2002:aa7:dd43:0:b0:467:4595:fc5c with SMTP id o3-20020aa7dd43000000b004674595fc5cmr49018616edw.114.1669690974108; Mon, 28 Nov 2022 19:02:54 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669690974; cv=none; d=google.com; s=arc-20160816; b=dYOXIpysWCtuxztOyUZqUzHoOc//3Dxs4l7u+rhNmc4cNQbCWBFbwAbG3gNuGUEt52 uWeD0GUnCM59buEdVEDHuZtkjUjA2cEaENBNWUngtGwSqjsLHZLnjvmEeactdzjv2YmF 7YijrGqQLGF9WFFphW1BV69OA1iO7qpMsMdpLiiJ/Z4WOf0C98yL/IcOaymL/1Qdsybq 3iTLE9Vx7nyqSy0LPp8/qzBJHv60J5V5s3Xl3kvb4eQ0P7ThF4b/GllStVkWcNaPBZTe 1246etTPg+4b8SVC9qP7eBtOFXuHWc25yn/5WvPM6yry6IwHTUsH0OWsW9zgM0AYBwsF NU8g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from; bh=gaxYLStHWF6T4kbi1isL/UNVCnxhiTfLl0Fiiab+aII=; b=0Fl4FKvl2Mw8jXbcTChNbi3BOosY6DN6cFJKXhFuJRTwyalb+hHkRSEqGBLH2s8J+L ViHxYlaTg9uSpDZPHuBOUzdSXvNEShl4lLBHLO6RCD2RomaKkvT+3khcICzOJB4WsIJ+ KsM7/Pl7Qa1QvWh4M/PDY6ElKohK2YYsNNSnEirD76w1Z/Y3isxuExkHmBw1C8oo+wZG r+JXcpCN1BmDPg5QatQLOonPjzj9tqXj3KuQ+76JGk6Fr7ZKj1UMvyfBD15ATB7rjKwG bNu9TJzRaF1bxidRFK0iDtEAbgBIXDbLTFz0luDJr6qoPEcCErSR90CPntuZrnQKU43m 9A5g== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id sc26-20020a1709078a1a00b007bfa94543b3si4133580ejc.764.2022.11.28.19.02.25; Mon, 28 Nov 2022 19:02:54 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235320AbiK2DCI (ORCPT + 99 others); Mon, 28 Nov 2022 22:02:08 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55922 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235205AbiK2DBx (ORCPT ); Mon, 28 Nov 2022 22:01:53 -0500 Received: from szxga02-in.huawei.com (szxga02-in.huawei.com [45.249.212.188]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CA80C3D92C; Mon, 28 Nov 2022 19:01:52 -0800 (PST) Received: from kwepemi500016.china.huawei.com (unknown [172.30.72.54]) by szxga02-in.huawei.com (SkyGuard) with ESMTP id 4NLnCn4JGkzCqj2; Tue, 29 Nov 2022 11:01:09 +0800 (CST) Received: from huawei.com (10.174.178.129) by kwepemi500016.china.huawei.com (7.221.188.220) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Tue, 29 Nov 2022 11:01:50 +0800 From: Kemeng Shi To: , , CC: , , , Subject: [PATCH v2 01/10] blk-throttle: correct stale comment in throtl_pd_init Date: Tue, 29 Nov 2022 11:01:38 +0800 Message-ID: <20221129030147.27400-2-shikemeng@huawei.com> X-Mailer: git-send-email 2.14.1.windows.1 In-Reply-To: <20221129030147.27400-1-shikemeng@huawei.com> References: <20221129030147.27400-1-shikemeng@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.174.178.129] X-ClientProxiedBy: dggems702-chm.china.huawei.com (10.3.19.179) To kwepemi500016.china.huawei.com (7.221.188.220) X-CFilter-Loop: Reflected X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1750797882901787087?= X-GMAIL-MSGID: =?utf-8?q?1750797882901787087?= On the default hierarchy (cgroup2), the throttle interface files don't exist in the root cgroup, so the ablity to limit the whole system by configuring root group is not existing anymore. In general, cgroup doesn't wanna be in the business of restricting resources at the system level, so correct the stale comment that we can limit whole system to we can only limit subtree. Signed-off-by: Kemeng Shi Acked-by: Tejun Heo --- block/blk-throttle.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/block/blk-throttle.c b/block/blk-throttle.c index 847721dc2b2b..59acfac87764 100644 --- a/block/blk-throttle.c +++ b/block/blk-throttle.c @@ -395,8 +395,9 @@ static void throtl_pd_init(struct blkg_policy_data *pd) * If on the default hierarchy, we switch to properly hierarchical * behavior where limits on a given throtl_grp are applied to the * whole subtree rather than just the group itself. e.g. If 16M - * read_bps limit is set on the root group, the whole system can't - * exceed 16M for the device. + * read_bps limit is set on a "parent" group, summary bps of + * "parent" group and its subtree groups can't exceed 16M for the + * device. * * If not on the default hierarchy, the broken flat hierarchy * behavior is retained where all throtl_grps are treated as if From patchwork Tue Nov 29 03:01:39 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kemeng Shi X-Patchwork-Id: 27045 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp94112wrr; Mon, 28 Nov 2022 19:02:38 -0800 (PST) X-Google-Smtp-Source: AA0mqf6OT18Enc+zQR3bmIa/ht8eg+n6ZFMVCaQb0J+SXygv5Dn4Ypi6a5QFvG84orZw1FQ0167D X-Received: by 2002:a17:906:2bd9:b0:7ad:934e:d542 with SMTP id n25-20020a1709062bd900b007ad934ed542mr35104999ejg.20.1669690958576; Mon, 28 Nov 2022 19:02:38 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669690958; cv=none; d=google.com; s=arc-20160816; b=HoFQOZK7DcR5xjWqo4I+ri0pI8gLf9giMIyTCFThq9ZDrZoKzwmo3KGeY8bSzaqEqm SOiz8i+JaXcVTuVi9EpuqMxzqacXhqX8rnV1463noZq4FY+3EuRMywvbo90QenoN8Czc SDAYI4yht6NQNpp5hQvmKVqa/IIaTaEDglZyUgLC15EJr1uLAQMoecE5RFjWYJ80cJr2 726NYsztcssuif+NZB9sxuHmZL2HpPX/wcMLsQarT4GXm/DyWqumX1f7X/lrPKRtFtR2 8ZI9chIVh0ymLe8JnhkU1p/aAS+Qf/Dm7M0LeHTnDTb9Ke/CL1qMiQrWsDZb83SzXX4a q3lg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from; bh=SYJSGdVEgApKM1c+RztiM2bdceMQvV9vJgYHprNhZbI=; b=VULGEdhhvc7oFAOQSxImNnTeVIs9YanBapM25cc2PftoEt0FlkKSKVGJnLwYR6XUgm crwOeuyx3+UPTjlgN8qNq9cr5bl1GP4L8qGG2dBQQ9xuDzVatGEbrnixWmnZHj6tSbPf EUAkBDmyoX8ZjBTj9Z2LwRUTNrR0777xAozr7NMycqS2QYAh4azTFNLMmLRiBiCqm13t 3nKDpLPu/3npv3e+lPqpql7h+gkT+DKWnhJ3sh2RPSs+TVqbbzQUzMygagFZf46VUARf itci46zWViLBVz//eEU2ux6x26vYmOrGRV5xNPrkXjvI7BtXa5lTCOUbCmaGsUH1JcSp XwFw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id cs12-20020a170906dc8c00b0073da0ce043csi12199897ejc.619.2022.11.28.19.02.12; Mon, 28 Nov 2022 19:02:38 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235304AbiK2DB4 (ORCPT + 99 others); Mon, 28 Nov 2022 22:01:56 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55928 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235290AbiK2DBy (ORCPT ); Mon, 28 Nov 2022 22:01:54 -0500 Received: from szxga08-in.huawei.com (szxga08-in.huawei.com [45.249.212.255]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7C77445084; Mon, 28 Nov 2022 19:01:53 -0800 (PST) Received: from kwepemi500016.china.huawei.com (unknown [172.30.72.53]) by szxga08-in.huawei.com (SkyGuard) with ESMTP id 4NLnCs3z0Jz15Mxb; Tue, 29 Nov 2022 11:01:13 +0800 (CST) Received: from huawei.com (10.174.178.129) by kwepemi500016.china.huawei.com (7.221.188.220) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Tue, 29 Nov 2022 11:01:51 +0800 From: Kemeng Shi To: , , CC: , , , Subject: [PATCH v2 02/10] blk-throttle: Fix that bps of child could exceed bps limited in parent Date: Tue, 29 Nov 2022 11:01:39 +0800 Message-ID: <20221129030147.27400-3-shikemeng@huawei.com> X-Mailer: git-send-email 2.14.1.windows.1 In-Reply-To: <20221129030147.27400-1-shikemeng@huawei.com> References: <20221129030147.27400-1-shikemeng@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.174.178.129] X-ClientProxiedBy: dggems702-chm.china.huawei.com (10.3.19.179) To kwepemi500016.china.huawei.com (7.221.188.220) X-CFilter-Loop: Reflected X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1750797866433305483?= X-GMAIL-MSGID: =?utf-8?q?1750797866433305483?= Consider situation as following (on the default hierarchy): HDD | root (bps limit: 4k) | child (bps limit :8k) | fio bs=8k Rate of fio is supposed to be 4k, but result is 8k. Reason is as following: Size of single IO from fio is larger than bytes allowed in one throtl_slice in child, so IOs are always queued in child group first. When queued IOs in child are dispatched to parent group, BIO_BPS_THROTTLED is set and these IOs will not be limited by tg_within_bps_limit anymore. Fix this by only set BIO_BPS_THROTTLED when the bio traversed the entire tree. There patch has no influence on situation which is not on the default hierarchy as each group is a single root group without parent. Signed-off-by: Kemeng Shi Acked-by: Tejun Heo --- block/blk-throttle.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/block/blk-throttle.c b/block/blk-throttle.c index 59acfac87764..d516a37e82fb 100644 --- a/block/blk-throttle.c +++ b/block/blk-throttle.c @@ -1067,7 +1067,6 @@ static void tg_dispatch_one_bio(struct throtl_grp *tg, bool rw) sq->nr_queued[rw]--; throtl_charge_bio(tg, bio); - bio_set_flag(bio, BIO_BPS_THROTTLED); /* * If our parent is another tg, we just need to transfer @bio to @@ -1080,6 +1079,7 @@ static void tg_dispatch_one_bio(struct throtl_grp *tg, bool rw) throtl_add_bio_tg(bio, &tg->qnode_on_parent[rw], parent_tg); start_parent_slice_with_credit(tg, parent_tg, rw); } else { + bio_set_flag(bio, BIO_BPS_THROTTLED); throtl_qnode_add_bio(bio, &tg->qnode_on_parent[rw], &parent_sq->queued[rw]); BUG_ON(tg->td->nr_queued[rw] <= 0); From patchwork Tue Nov 29 03:01:40 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kemeng Shi X-Patchwork-Id: 27047 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp94376wrr; Mon, 28 Nov 2022 19:03:09 -0800 (PST) X-Google-Smtp-Source: AA0mqf66Wv3lwYluTovpPuyjKN/krPfDkuXCikVu9W8Tz00YIxA9xE3AUvT7I3xg3KO0Tpzcchng X-Received: by 2002:a05:6402:3642:b0:459:53dc:adc9 with SMTP id em2-20020a056402364200b0045953dcadc9mr43041392edb.166.1669690989721; Mon, 28 Nov 2022 19:03:09 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669690989; cv=none; d=google.com; s=arc-20160816; b=OErIjHXPPPxh5cWhSE8ot0d6rLEHqNvWg/6SFLf1BmZ2LAGv5bjcrhwBFlvkib7CIV /DCK4Tj6qLzGJXhfYLOiccbqjUwWTbbVVe8/spcg1TV9nD4mpoFraXGdN/uF5VLMD8ur CQWo8VNPz3tdb0CUdx4xAV4GeaV+5KsxiMsqWgqPQQ95QMaMWScxSxtaT4tGNc/vNyfQ KXMju0cE6AgPz29OTEx3FTVXuJjIw5OAQ+IDdrUqqPzo0LHKGLuMrOwEr5RPTFtVKLoj GPtcFFL4A+Q5zLosygPBsIUQgY7HLfP2p9WegCGZ0GGdToztF4wO4SHY5I4HEnt1hwNk U11Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from; bh=d5/X4b4v5p1MG25H4IG3atyWjYcr8tJMCXl7vn6DZro=; b=mfGdBniBVj9f20a3KkcOTJYsoNnzGdPzGKumjRQ1cvurCoam9mrKGlDiT53uFjbjPS Ki9iznysI2cWhYzpz98Ff1s9PnfTqrErLhhwi/Ezclz1Yb2au4CXhzC2GvLYkLndE5gP igQUc9ZN2lHzAgDHFYL6B08V/miIJsRSzfrPxC1d4S0hRD5ZQCIRbnGIDjKAvMMqlDF5 rWmovs0eLGAAwnJnjTV6r5cwdMNT1PM0dHaEgv+zm5pmu6EaAv2cnvaXdRGTDOEf6Jc5 AWZouRA/qj2MIMaM0YElD9z2ZFMl2s0pWSEz4UU7Lr9KcE/VbO2rdfDAIxk+Se3ESyiA u0Jg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id fj27-20020a0564022b9b00b0046a7c877f58si9602327edb.335.2022.11.28.19.02.43; Mon, 28 Nov 2022 19:03:09 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235375AbiK2DCQ (ORCPT + 99 others); Mon, 28 Nov 2022 22:02:16 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55934 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235291AbiK2DBy (ORCPT ); Mon, 28 Nov 2022 22:01:54 -0500 Received: from szxga08-in.huawei.com (szxga08-in.huawei.com [45.249.212.255]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1509845097; Mon, 28 Nov 2022 19:01:54 -0800 (PST) Received: from kwepemi500016.china.huawei.com (unknown [172.30.72.57]) by szxga08-in.huawei.com (SkyGuard) with ESMTP id 4NLnCt1XVRz15MpD; Tue, 29 Nov 2022 11:01:14 +0800 (CST) Received: from huawei.com (10.174.178.129) by kwepemi500016.china.huawei.com (7.221.188.220) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Tue, 29 Nov 2022 11:01:51 +0800 From: Kemeng Shi To: , , CC: , , , Subject: [PATCH v2 03/10] blk-throttle: ignore cgroup without io queued in blk_throtl_cancel_bios Date: Tue, 29 Nov 2022 11:01:40 +0800 Message-ID: <20221129030147.27400-4-shikemeng@huawei.com> X-Mailer: git-send-email 2.14.1.windows.1 In-Reply-To: <20221129030147.27400-1-shikemeng@huawei.com> References: <20221129030147.27400-1-shikemeng@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.174.178.129] X-ClientProxiedBy: dggems702-chm.china.huawei.com (10.3.19.179) To kwepemi500016.china.huawei.com (7.221.188.220) X-CFilter-Loop: Reflected X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1750797899393539064?= X-GMAIL-MSGID: =?utf-8?q?1750797899393539064?= Ignore cgroup without io queued in blk_throtl_cancel_bios for two reasons: 1. Save cpu cycle for trying to dispatch cgroup which is no io queued. 2. Avoid non-consistent state that cgroup is inserted to service queue without THROTL_TG_PENDING set as tg_update_disptime will unconditional re-insert cgroup to service queue. If we are on the default hierarchy, IO dispatched from child in tg_dispatch_one_bio will trigger inserting cgroup to service queue without erase first and ruin the tree. Signed-off-by: Kemeng Shi Acked-by: Tejun Heo --- block/blk-throttle.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/block/blk-throttle.c b/block/blk-throttle.c index d516a37e82fb..ee7dc1a0adfd 100644 --- a/block/blk-throttle.c +++ b/block/blk-throttle.c @@ -1738,7 +1738,18 @@ void blk_throtl_cancel_bios(struct gendisk *disk) * Set the flag to make sure throtl_pending_timer_fn() won't * stop until all throttled bios are dispatched. */ - blkg_to_tg(blkg)->flags |= THROTL_TG_CANCELING; + tg->flags |= THROTL_TG_CANCELING; + + /* + * Do not dispatch cgroup without THROTL_TG_PENDING or cgroup + * will be inserted to service queue without THROTL_TG_PENDING + * set in tg_update_disptime below. Then IO dispatched from + * child in tg_dispatch_one_bio will trigger double insertion + * and corrupt the tree. + */ + if (!(tg->flags & THROTL_TG_PENDING)) + continue; + /* * Update disptime after setting the above flag to make sure * throtl_select_dispatch() won't exit without dispatching. From patchwork Tue Nov 29 03:01:41 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kemeng Shi X-Patchwork-Id: 27049 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp94817wrr; Mon, 28 Nov 2022 19:03:51 -0800 (PST) X-Google-Smtp-Source: AA0mqf48bg3hA7IicV6aVbumKk90mmmg+d0VbUrlQW1scz8FrCJR8Vde0WOgA26bt9XVFLGKShoI X-Received: by 2002:a05:6402:5388:b0:46a:f4b0:2d23 with SMTP id ew8-20020a056402538800b0046af4b02d23mr11510253edb.78.1669691031600; Mon, 28 Nov 2022 19:03:51 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669691031; cv=none; d=google.com; s=arc-20160816; b=GSD2phpsuVzMYraxWMq+6GAFCrkwTJ0tna1Kd9dzcJDppV5SDtvNRs4HTCjaoSmOfL Lru8DYbuozBCweCw3X5/Mj9wPW1gPdKeBocXOadyKufm8dpIqxAsb/YwWEsHLH7+eIjx nDLAS4mOUbDLoxCIS64hLjN83c9knBItXknbuM51KcKMw23zYe88EZL8EJnVl1kCV6LL 5D6XS6fp6KWBHCmprLbEvKRTClZ6uwsSkjuK4Y1NADoSIJ9vEksvXEgcNKCkBaIl17GL j66RASiRwwLFHMVojdjIJav8Cd8ZiIYrHOjNfM+RWboKSge7D3EWxaNYR58f7yR8Xo3B OQ7w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from; bh=wzCx2pc0FeivN79rOdKB1fBwABGAcZiJ89hoqbZCkjY=; b=B4heAxDPFifN2sLD2pHcaGcJMWrUEyCN8Q6H/n3pK4F4Wci4FPmAbwys3Z5BkKM9Sz x9B78Fc/gSI0qEBoXEjaYjyK8HxYbYNSqXor+qCZA9ZqIysu0frKKFBDdn2lmMythjbs lktGS9I48VcgghCrmIPi9lLvpZscunaLzxASgTVCtFLuE8eVkesFw12t8jt6W34DcfhL gRenSyq4Vq+ZvN+Kqpk4bYIvwqkBX2qVeUZMuKrJE4QX9t9vpRcr+yW8gXGKBfnlsG8h 8V6yDPV+q/lMRXLcCZC3q3vtBL1sDbWE/36THLCRN5iybD/51JRGimFL4UzVg/ge84zd 9nmQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id sb29-20020a1709076d9d00b0078d9f1f72bcsi12191613ejc.726.2022.11.28.19.03.27; Mon, 28 Nov 2022 19:03:51 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235380AbiK2DCV (ORCPT + 99 others); Mon, 28 Nov 2022 22:02:21 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55944 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235301AbiK2DB4 (ORCPT ); Mon, 28 Nov 2022 22:01:56 -0500 Received: from szxga02-in.huawei.com (szxga02-in.huawei.com [45.249.212.188]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BB3CD45EF1; Mon, 28 Nov 2022 19:01:54 -0800 (PST) Received: from kwepemi500016.china.huawei.com (unknown [172.30.72.53]) by szxga02-in.huawei.com (SkyGuard) with ESMTP id 4NLnCq49DWzCqjJ; Tue, 29 Nov 2022 11:01:11 +0800 (CST) Received: from huawei.com (10.174.178.129) by kwepemi500016.china.huawei.com (7.221.188.220) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Tue, 29 Nov 2022 11:01:52 +0800 From: Kemeng Shi To: , , CC: , , , Subject: [PATCH v2 04/10] blk-throttle: correct calculation of wait time in tg_may_dispatch Date: Tue, 29 Nov 2022 11:01:41 +0800 Message-ID: <20221129030147.27400-5-shikemeng@huawei.com> X-Mailer: git-send-email 2.14.1.windows.1 In-Reply-To: <20221129030147.27400-1-shikemeng@huawei.com> References: <20221129030147.27400-1-shikemeng@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.174.178.129] X-ClientProxiedBy: dggems702-chm.china.huawei.com (10.3.19.179) To kwepemi500016.china.huawei.com (7.221.188.220) X-CFilter-Loop: Reflected X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1750797943285729053?= X-GMAIL-MSGID: =?utf-8?q?1750797943285729053?= In C language, When executing "if (expression1 && expression2)" and expression1 return false, the expression2 may not be executed. For "tg_within_bps_limit(tg, bio, bps_limit, &bps_wait) && tg_within_iops_limit(tg, bio, iops_limit, &iops_wait))", if bps is limited, tg_within_bps_limit will return false and tg_within_iops_limit will not be called. So even bps and iops are both limited, iops_wait will not be calculated and is always zero. So wait time of iops is always ignored. Fix this by always calling tg_within_bps_limit and tg_within_iops_limit to get wait time for both bps and iops. Observed that: 1. Wait time in tg_within_iops_limit/tg_within_bps_limit need always be stored as wait argument is always passed. 2. wait time is stored to zero if iops/bps is limited otherwise non-zero is stored. Simpfy tg_within_iops_limit/tg_within_bps_limit by removing wait argument and return wait time directly. Caller tg_may_dispatch checks if wait time is zero to find if iops/bps is limited. Signed-off-by: Kemeng Shi Acked-by: Tejun Heo --- block/blk-throttle.c | 38 +++++++++++++------------------------- 1 file changed, 13 insertions(+), 25 deletions(-) diff --git a/block/blk-throttle.c b/block/blk-throttle.c index ee7dc1a0adfd..06e4193b064e 100644 --- a/block/blk-throttle.c +++ b/block/blk-throttle.c @@ -822,17 +822,15 @@ static void tg_update_carryover(struct throtl_grp *tg) tg->carryover_ios[READ], tg->carryover_ios[WRITE]); } -static bool tg_within_iops_limit(struct throtl_grp *tg, struct bio *bio, - u32 iops_limit, unsigned long *wait) +static unsigned long tg_within_iops_limit(struct throtl_grp *tg, struct bio *bio, + u32 iops_limit) { bool rw = bio_data_dir(bio); unsigned int io_allowed; unsigned long jiffy_elapsed, jiffy_wait, jiffy_elapsed_rnd; if (iops_limit == UINT_MAX) { - if (wait) - *wait = 0; - return true; + return 0; } jiffy_elapsed = jiffies - tg->slice_start[rw]; @@ -842,21 +840,16 @@ static bool tg_within_iops_limit(struct throtl_grp *tg, struct bio *bio, io_allowed = calculate_io_allowed(iops_limit, jiffy_elapsed_rnd) + tg->carryover_ios[rw]; if (tg->io_disp[rw] + 1 <= io_allowed) { - if (wait) - *wait = 0; - return true; + return 0; } /* Calc approx time to dispatch */ jiffy_wait = jiffy_elapsed_rnd - jiffy_elapsed; - - if (wait) - *wait = jiffy_wait; - return false; + return jiffy_wait; } -static bool tg_within_bps_limit(struct throtl_grp *tg, struct bio *bio, - u64 bps_limit, unsigned long *wait) +static unsigned long tg_within_bps_limit(struct throtl_grp *tg, struct bio *bio, + u64 bps_limit) { bool rw = bio_data_dir(bio); u64 bytes_allowed, extra_bytes; @@ -865,9 +858,7 @@ static bool tg_within_bps_limit(struct throtl_grp *tg, struct bio *bio, /* no need to throttle if this bio's bytes have been accounted */ if (bps_limit == U64_MAX || bio_flagged(bio, BIO_BPS_THROTTLED)) { - if (wait) - *wait = 0; - return true; + return 0; } jiffy_elapsed = jiffy_elapsed_rnd = jiffies - tg->slice_start[rw]; @@ -880,9 +871,7 @@ static bool tg_within_bps_limit(struct throtl_grp *tg, struct bio *bio, bytes_allowed = calculate_bytes_allowed(bps_limit, jiffy_elapsed_rnd) + tg->carryover_bytes[rw]; if (tg->bytes_disp[rw] + bio_size <= bytes_allowed) { - if (wait) - *wait = 0; - return true; + return 0; } /* Calc approx time to dispatch */ @@ -897,9 +886,7 @@ static bool tg_within_bps_limit(struct throtl_grp *tg, struct bio *bio, * up we did. Add that time also. */ jiffy_wait = jiffy_wait + (jiffy_elapsed_rnd - jiffy_elapsed); - if (wait) - *wait = jiffy_wait; - return false; + return jiffy_wait; } /* @@ -947,8 +934,9 @@ static bool tg_may_dispatch(struct throtl_grp *tg, struct bio *bio, jiffies + tg->td->throtl_slice); } - if (tg_within_bps_limit(tg, bio, bps_limit, &bps_wait) && - tg_within_iops_limit(tg, bio, iops_limit, &iops_wait)) { + bps_wait = tg_within_bps_limit(tg, bio, bps_limit); + iops_wait = tg_within_iops_limit(tg, bio, iops_limit); + if (bps_wait + iops_wait == 0) { if (wait) *wait = 0; return true; From patchwork Tue Nov 29 03:01:42 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kemeng Shi X-Patchwork-Id: 27050 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp94870wrr; Mon, 28 Nov 2022 19:03:56 -0800 (PST) X-Google-Smtp-Source: AA0mqf4O9iJpThRdPPjMvNyiKvooWclTwcvG9C6xoC9aEYkpqV0QHYkYPzcdI6PkF7vKurr27oI2 X-Received: by 2002:a17:907:3117:b0:7ae:6746:f26b with SMTP id wl23-20020a170907311700b007ae6746f26bmr46059086ejb.171.1669691036695; Mon, 28 Nov 2022 19:03:56 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669691036; cv=none; d=google.com; s=arc-20160816; b=hddTZDLCOCEvzSBVpDFbJVL0Pf0qqaJqnHNiGsKjxpGolUfhA1KucTeb4i1YiB3bqc 4Gra8n7ct9BUCu2S3qevFuDB3GnXnckZdwKSOmoYJDL5XsySBM9hHl2jSXEtRd02FzxB Q2lLms/F+2QnFCQ1FLv3NKyPo+C9hE3i1QA6mwRs5JpsQ7Tf/rSF2DKHm62e71yBId2E kG2l0g84cfvXjT4Z2VqKtCTdUMSt1YPiLQocFCa1FPaVSjlunq9UbASMGrM1R9/8xLYP JSLi4ikOYYNEAmSwUdugicE02OBWsYUqTqFCxlAoMFkdAZAIvkXsRbXFijqxEEI1FiS9 dp6g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from; bh=QLZIC6OfslK+/R7AUg4m3p5hi/kaVE843vgYAD+mxDc=; b=mSAul7j3j/0yAr8Lx/unIe6abdGH1A2QNWyTrS6wLeucEsRRdiscAHSsZK0G/kuBkG g6h2X90RJsUrGW+hFwwGsBjCsy8OhGbNt3QjhMDeetFWZV7KFFGRG2pAAydy2coRGdAr Wdx8FuF9HKmu55zOcvE3Q1JJ/o9whP34Gs3gzwv1D3f0AMrkmrS9ut/uPR+mXYFVE9qT J490TaQ1Ekw+UJfsXYTOC6tZRt/pfKq41Y74Gn9V5QPIiuyKC+tYDrpU/dsyu5t1Z81V hcCIzOfl7cfwtm6qlhFieDJaNfCVkgYMv93oETlOWmKntL1fc+FOVoBFo8vPCWeUiagx Tf7A== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id dm17-20020a170907949100b007919c624eadsi10745457ejc.522.2022.11.28.19.03.33; Mon, 28 Nov 2022 19:03:56 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235394AbiK2DC1 (ORCPT + 99 others); Mon, 28 Nov 2022 22:02:27 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55950 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235305AbiK2DB4 (ORCPT ); Mon, 28 Nov 2022 22:01:56 -0500 Received: from szxga02-in.huawei.com (szxga02-in.huawei.com [45.249.212.188]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 68B85303F3; Mon, 28 Nov 2022 19:01:55 -0800 (PST) Received: from kwepemi500016.china.huawei.com (unknown [172.30.72.56]) by szxga02-in.huawei.com (SkyGuard) with ESMTP id 4NLnCr1jMyzCqjL; Tue, 29 Nov 2022 11:01:12 +0800 (CST) Received: from huawei.com (10.174.178.129) by kwepemi500016.china.huawei.com (7.221.188.220) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Tue, 29 Nov 2022 11:01:53 +0800 From: Kemeng Shi To: , , CC: , , , Subject: [PATCH v2 05/10] blk-throttle: simpfy low limit reached check in throtl_tg_can_upgrade Date: Tue, 29 Nov 2022 11:01:42 +0800 Message-ID: <20221129030147.27400-6-shikemeng@huawei.com> X-Mailer: git-send-email 2.14.1.windows.1 In-Reply-To: <20221129030147.27400-1-shikemeng@huawei.com> References: <20221129030147.27400-1-shikemeng@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.174.178.129] X-ClientProxiedBy: dggems702-chm.china.huawei.com (10.3.19.179) To kwepemi500016.china.huawei.com (7.221.188.220) X-CFilter-Loop: Reflected X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1750797948742739985?= X-GMAIL-MSGID: =?utf-8?q?1750797948742739985?= Commit c79892c557616 ("blk-throttle: add upgrade logic for LIMIT_LOW state") added upgrade logic for low limit and methioned that 1. "To determine if a cgroup exceeds its limitation, we check if the cgroup has pending request. Since cgroup is throttled according to the limit, pending request means the cgroup reaches the limit." 2. "If a cgroup has limit set for both read and write, we consider the combination of them for upgrade. The reason is read IO and write IO can interfere with each other. If we do the upgrade based in one direction IO, the other direction IO could be severly harmed." Besides, we also determine that cgroup reaches low limit if low limit is 0, see comment in throtl_tg_can_upgrade. Collect the information above, the desgin of upgrade check is as following: 1.The low limit is reached if limit is zero or io is already queued. 2.Cgroup will pass upgrade check if low limits of READ and WRITE are both reached. Simpfy the check code described above to removce repeat check and improve readability. There is no functional change. Detail equivalence proof is as following: All replaced conditions to return true are as following: condition 1 (!read_limit && !write_limit) condition 2 read_limit && sq->nr_queued[READ] && (!write_limit || sq->nr_queued[WRITE]) condition 3 write_limit && sq->nr_queued[WRITE] && (!read_limit || sq->nr_queued[READ]) Transferring condition 2 as following: read_limit && sq->nr_queued[READ] && (!write_limit || sq->nr_queued[WRITE]) is equivalent to (read_limit && sq->nr_queued[READ]) && (!write_limit || (write_limit && sq->nr_queued[WRITE])) is equivalent to condition 2.1 (read_limit && sq->nr_queued[READ] && !write_limit) || condition 2.2 (read_limit && sq->nr_queued[READ] && (write_limit && sq->nr_queued[WRITE])) Transferring condition 3 as following: write_limit && sq->nr_queued[WRITE] && (!read_limit || sq->nr_queued[READ]) is equivalent to (write_limit && sq->nr_queued[WRITE]) && (!read_limit || (read_limit && sq->nr_queued[READ])) is equivalent to condition 3.1 ((write_limit && sq->nr_queued[WRITE]) && !read_limit) || condition 3.2 ((write_limit && sq->nr_queued[WRITE]) && (read_limit && sq->nr_queued[READ])) Condition 3.2 is the same as condition 2.2, so all conditions we get to return are as following: (!read_limit && !write_limit) (1) (!read_limit && (write_limit && sq->nr_queued[WRITE])) (3.1) ((read_limit && sq->nr_queued[READ]) && !write_limit) (2.1) ((write_limit && sq->nr_queued[WRITE]) && (read_limit && sq->nr_queued[READ])) (2.2) As we can extract conditions "(a1 || a2) && (b1 || b2)" to: a1 && b1 a1 && b2 a2 && b1 ab && b2 Considering that: a1 = !read_limit a2 = read_limit && sq->nr_queued[READ] b1 = !write_limit b2 = write_limit && sq->nr_queued[WRITE] We can pack replaced conditions to (!read_limint || (read_limit && sq->nr_queued[READ])) && (!write_limit || (write_limit && sq->nr_queued[WRITE]) which is equivalent to (!read_limint || sq->nr_queued[READ]) && (!write_limit || sq->nr_queued[WRITE]) Signed-off-by: Kemeng Shi Reported-by: kernel test robot Acked-by: Tejun Heo --- block/blk-throttle.c | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/block/blk-throttle.c b/block/blk-throttle.c index 06e4193b064e..4977fac56a00 100644 --- a/block/blk-throttle.c +++ b/block/blk-throttle.c @@ -1816,24 +1816,29 @@ static bool throtl_tg_is_idle(struct throtl_grp *tg) return ret; } -static bool throtl_tg_can_upgrade(struct throtl_grp *tg) +static bool throtl_tg_reach_low_limit(struct throtl_grp *tg, int rw) { struct throtl_service_queue *sq = &tg->service_queue; - bool read_limit, write_limit; + bool limit = tg->bps[rw][LIMIT_LOW] || tg->iops[rw][LIMIT_LOW]; /* - * if cgroup reaches low limit (if low limit is 0, the cgroup always - * reaches), it's ok to upgrade to next limit + * if low limit is zero, low limit is always reached. + * if low limit is non-zero, we can check if there is any request + * is queued to determine if low limit is reached as we throttle + * request according to limit. */ - read_limit = tg->bps[READ][LIMIT_LOW] || tg->iops[READ][LIMIT_LOW]; - write_limit = tg->bps[WRITE][LIMIT_LOW] || tg->iops[WRITE][LIMIT_LOW]; - if (!read_limit && !write_limit) - return true; - if (read_limit && sq->nr_queued[READ] && - (!write_limit || sq->nr_queued[WRITE])) - return true; - if (write_limit && sq->nr_queued[WRITE] && - (!read_limit || sq->nr_queued[READ])) + return !limit || sq->nr_queued[rw]; +} + +static bool throtl_tg_can_upgrade(struct throtl_grp *tg) +{ + /* + * cgroup reaches low limit when low limit of READ and WRITE are + * both reached, it's ok to upgrade to next limit if cgroup reaches + * low limit + */ + if (throtl_tg_reach_low_limit(tg, READ) && + throtl_tg_reach_low_limit(tg, WRITE)) return true; if (time_after_eq(jiffies, From patchwork Tue Nov 29 03:01:43 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kemeng Shi X-Patchwork-Id: 27048 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp94813wrr; Mon, 28 Nov 2022 19:03:51 -0800 (PST) X-Google-Smtp-Source: AA0mqf7YI9tGHPoN2mUS8ED6fLZ5A3KCa9le43GRNU5EQTCgkH2kIzC5dliAfl8zUR0SqsMaH/ZW X-Received: by 2002:a17:906:5398:b0:7be:43a6:a8f0 with SMTP id g24-20020a170906539800b007be43a6a8f0mr10920699ejo.758.1669691031054; Mon, 28 Nov 2022 19:03:51 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669691031; cv=none; d=google.com; s=arc-20160816; b=XIXWanWHaC8kNCRiXRzQZocqfEyKCuInPgpumHTpGP2WjYk+Kqvu8EinvAsDvE7KYy U5pracv9QjxIb1cgK9j2BmLey3/5Q5w02QYmtr+e9N16egBsK9/QIv7DjHySE9JwHBKC rhGEpjeF0xMAaYygGpEEKutADPj99uroGLAF2XSaAoeUVDMs5uhodbxoxbRIVtLUT2Z7 b8OiPnhzTYsePG+EMn+Gh9dTzXPbkhlU/6iKtKLUd8c2YDlWCDtHZKQJROH3Q5ejNvcI 8O3lmiOTrtZT4qQdIT/jwkXk6Uvbj0XCdEB1j/PPQO+UaQgcMurX997T8quZl+qnzcbh ek/Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from; bh=W7fWqTI4gXbI3c52gw33mOlRk6epPDneTk3f8/pxw/8=; b=VMfBwTUY+0iBa1ZPP0wf5W7/WSg6HggHEm9DTRAqTTRYmxzgtcL/Vn6gJnc4GvBTlR ieZm9ja3XoaRtDWvSBi7/oqQBVl4ZFqrgZFszusDcqrMcAqygxm3Owzus+PCD5sGsYNx r+uj+dMWesMNmjWZHiOFwBotQsHjeoe19ERLeJKzb/hfC3YB0RazW9exjRpkO51GVHmI clvLEnCjlR8JchlkSXlsthYf58494fjrWFjVKA/1dv3LBv9ONSOXqXx1HVdut6Xm/RIN mj1Nii/UjkfMcFxsUKq0Nf6AAkVGxUanRnqg1cu0HxUAoqmkq51uGDmrEFBzxtTwgp/D /RxA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id i15-20020a05640242cf00b00453a0393deasi13064704edc.368.2022.11.28.19.03.27; Mon, 28 Nov 2022 19:03:51 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235385AbiK2DCY (ORCPT + 99 others); Mon, 28 Nov 2022 22:02:24 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55952 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235306AbiK2DB4 (ORCPT ); Mon, 28 Nov 2022 22:01:56 -0500 Received: from szxga02-in.huawei.com (szxga02-in.huawei.com [45.249.212.188]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 126D43D92C; Mon, 28 Nov 2022 19:01:56 -0800 (PST) Received: from kwepemi500016.china.huawei.com (unknown [172.30.72.57]) by szxga02-in.huawei.com (SkyGuard) with ESMTP id 4NLnCr6DsJzCqjd; Tue, 29 Nov 2022 11:01:12 +0800 (CST) Received: from huawei.com (10.174.178.129) by kwepemi500016.china.huawei.com (7.221.188.220) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Tue, 29 Nov 2022 11:01:53 +0800 From: Kemeng Shi To: , , CC: , , , Subject: [PATCH v2 06/10] blk-throttle: fix typo in comment of throtl_adjusted_limit Date: Tue, 29 Nov 2022 11:01:43 +0800 Message-ID: <20221129030147.27400-7-shikemeng@huawei.com> X-Mailer: git-send-email 2.14.1.windows.1 In-Reply-To: <20221129030147.27400-1-shikemeng@huawei.com> References: <20221129030147.27400-1-shikemeng@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.174.178.129] X-ClientProxiedBy: dggems702-chm.china.huawei.com (10.3.19.179) To kwepemi500016.china.huawei.com (7.221.188.220) X-CFilter-Loop: Reflected X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1750797942917292813?= X-GMAIL-MSGID: =?utf-8?q?1750797942917292813?= lapsed time -> elapsed time Signed-off-by: Kemeng Shi Acked-by: Tejun Heo --- block/blk-throttle.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/block/blk-throttle.c b/block/blk-throttle.c index 4977fac56a00..4b11099625da 100644 --- a/block/blk-throttle.c +++ b/block/blk-throttle.c @@ -129,7 +129,7 @@ static struct throtl_data *sq_to_td(struct throtl_service_queue *sq) /* * cgroup's limit in LIMIT_MAX is scaled if low limit is set. This scale is to * make the IO dispatch more smooth. - * Scale up: linearly scale up according to lapsed time since upgrade. For + * Scale up: linearly scale up according to elapsed time since upgrade. For * every throtl_slice, the limit scales up 1/2 .low limit till the * limit hits .max limit * Scale down: exponentially scale down if a cgroup doesn't hit its .low limit From patchwork Tue Nov 29 03:01:44 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kemeng Shi X-Patchwork-Id: 27052 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp95554wrr; Mon, 28 Nov 2022 19:05:31 -0800 (PST) X-Google-Smtp-Source: AA0mqf5sSDQzA/wabWhvnIxC6EIQI5xf5RteLqLLGjQQNeMgcXrW32pbxGnsZiIYXIyfv2LbL+Id X-Received: by 2002:a17:90b:b17:b0:218:a733:25ec with SMTP id bf23-20020a17090b0b1700b00218a73325ecmr45989240pjb.152.1669691131019; Mon, 28 Nov 2022 19:05:31 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669691131; cv=none; d=google.com; s=arc-20160816; b=P6QEolyAAsUZ58jfRrlCTXMw/r43MlWIS0NcnXy2Ur9lvBHKzx4flS5qeOenZV7JVY VflhRSM0peqXKakVC8fPLM9Tk1K54ktrYVsY6lO++R4VlxunSjlyjxOFj+L2HSjRVMEk Y11PVn8pvPia/1O47BgqjyKCsPSmJ/lpT0BZgUZbpadOUjDWZ+a0lH7tPIizX3eA40Qn t269Q6BS1loi/nlr/+4pDH/sOboB5HB66eRK0kQ8UIxgMtyUiHl96BTgilggipSvy6xM ZKpdNugkUl9LIao8boU3abO4u0WaT0GJ01PuRqg40kfiRZVhvq48TzOoKtFjsx83RZ7y aFjg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from; bh=xIiDaTRzQYu/CT7gcrbysz66AbK1+PDPmjYR16II8IM=; b=CSLB0viEmcEhL8ZXkud0TBoh8AgxCiRCRRZHi9zAMH0d9lAR6yDFqhuyWclSfAKEWc V/pTzn8mfTl3vLTXk6tJ8sODWM3HQQsKxTSulf12it+i+wVKIfXMz31Li+nfUvV53yTH +taAccChgTgmPJ787+CbfnkAB88vbT4z8htvYAlsyhP8VAtZevVcbK9MJJk2MZccUGW7 mvtJz1HPJ6xS3h+kXBnVUVDkZ9PdtNY2M+ik7CozM5AeTwPNb4GOOJ2/sU/TgLWSHGSR RlOo6q2qW3nFPjD/GKxrgvixjHTVsISDeRktZ32jW44Ph5jxB7MMqufSfOgg72Xq8Qsn hjBw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id d22-20020a056a0024d600b00562a1693523si13082954pfv.20.2022.11.28.19.05.16; Mon, 28 Nov 2022 19:05:31 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235344AbiK2DCc (ORCPT + 99 others); Mon, 28 Nov 2022 22:02:32 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55962 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235314AbiK2DB6 (ORCPT ); Mon, 28 Nov 2022 22:01:58 -0500 Received: from szxga03-in.huawei.com (szxga03-in.huawei.com [45.249.212.189]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2B10E45084; Mon, 28 Nov 2022 19:01:57 -0800 (PST) Received: from kwepemi500016.china.huawei.com (unknown [172.30.72.54]) by szxga03-in.huawei.com (SkyGuard) with ESMTP id 4NLn8n0j6jzJp0N; Tue, 29 Nov 2022 10:58:33 +0800 (CST) Received: from huawei.com (10.174.178.129) by kwepemi500016.china.huawei.com (7.221.188.220) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Tue, 29 Nov 2022 11:01:54 +0800 From: Kemeng Shi To: , , CC: , , , Subject: [PATCH v2 07/10] blk-throttle: remove incorrect comment for tg_last_low_overflow_time Date: Tue, 29 Nov 2022 11:01:44 +0800 Message-ID: <20221129030147.27400-8-shikemeng@huawei.com> X-Mailer: git-send-email 2.14.1.windows.1 In-Reply-To: <20221129030147.27400-1-shikemeng@huawei.com> References: <20221129030147.27400-1-shikemeng@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.174.178.129] X-ClientProxiedBy: dggems702-chm.china.huawei.com (10.3.19.179) To kwepemi500016.china.huawei.com (7.221.188.220) X-CFilter-Loop: Reflected X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1750798047481211895?= X-GMAIL-MSGID: =?utf-8?q?1750798047481211895?= Function tg_last_low_overflow_time is called with intermediate node as following: throtl_hierarchy_can_downgrade throtl_tg_can_downgrade tg_last_low_overflow_time throtl_hierarchy_can_upgrade throtl_tg_can_upgrade tg_last_low_overflow_time throtl_hierarchy_can_downgrade/throtl_hierarchy_can_upgrade will traverse from leaf node to sub-root node and pass traversed intermediate node to tg_last_low_overflow_time. No such limit could be found from context and implementation of tg_last_low_overflow_time, so remove this limit in comment. Signed-off-by: Kemeng Shi Acked-by: Tejun Heo --- block/blk-throttle.c | 1 - 1 file changed, 1 deletion(-) diff --git a/block/blk-throttle.c b/block/blk-throttle.c index 4b11099625da..3ddd8a15aa3f 100644 --- a/block/blk-throttle.c +++ b/block/blk-throttle.c @@ -1762,7 +1762,6 @@ static unsigned long __tg_last_low_overflow_time(struct throtl_grp *tg) return min(rtime, wtime); } -/* tg should not be an intermediate node */ static unsigned long tg_last_low_overflow_time(struct throtl_grp *tg) { struct throtl_service_queue *parent_sq; From patchwork Tue Nov 29 03:01:45 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kemeng Shi X-Patchwork-Id: 27051 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp95183wrr; Mon, 28 Nov 2022 19:04:40 -0800 (PST) X-Google-Smtp-Source: AA0mqf7g+Wen7t0mw4xMavvFRSo5HUVSgeIQpKQ6Ge+libJbsO5+zsyDv8gKg1uyY9n+vEBjq/cg X-Received: by 2002:a17:907:b014:b0:7b4:86be:f3e3 with SMTP id fu20-20020a170907b01400b007b486bef3e3mr39222451ejc.741.1669691080438; Mon, 28 Nov 2022 19:04:40 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669691080; cv=none; d=google.com; s=arc-20160816; b=dQmEeryZEOcfZnQOSnXATJG8oLQ1Jw8PJWUlgq45rXeqTxgS5UYJH0tFwiiWwxeirL vyiujdHZyPaPZ/28guZoBBx1Ln++Ve3bfgl/1CdXI1ROgPpdnOr2Kgr6Ykxf9bBp70ua DDwvobJuVKJ0pJkK4ATx8Hl4yH36sF12eeLzuzZrR0DoQBPUGPWR14/Aq+2aO9WAW3Ay 5SSAUli8Rlp9yU6LPYyw1hgfxC+uqf9fd80OuZ8MhuCZ61BWOZeJoHLH7wfqL6BcgMaf vjYF80nN89QHQDwog4lskypgHuByBjPDpTo9m0CaRfjHYJOhqlwQStJBR2spfddZCUxp Gv1w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from; bh=Sgb5hCQxnlKQLn/+H8RvdoH8SP0Qae/o0cU1WMxBTcw=; b=S8c4I82FcrHB5eI4ju2jTJTwiWlFwhUrOhp4+HU91lJdL2Cm+C/32Fx4O9FrJo1CRO ziWkM8xOWUQZ+upqTrJxZWVkeZlzFiePbJNcxtuMKowYcP6T5+fhv4LfXb3A/XVWY4jO FLE6h84GIalfzTX0XdctFQwn5E7G3Kil+rqfn9dOwWWgqnBzEKozoyNQZfMJl068c/D9 HWIU/MUKYtVVQOOX+gCJGeKnXLpLWGlaFrcIftjGWYzbjPXw66W32pBrXwZcA+VI/fuF xelVPXNNHYTqBwsC4YrjF7sVUODji0wgj1UQfmYMtgSBG6OBHgNXvaNmnk7zR22LDkMj vB3Q== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id dd5-20020a1709069b8500b0078d44c5da0esi12013896ejc.667.2022.11.28.19.04.17; Mon, 28 Nov 2022 19:04:40 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235399AbiK2DC3 (ORCPT + 99 others); Mon, 28 Nov 2022 22:02:29 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55964 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235313AbiK2DB6 (ORCPT ); Mon, 28 Nov 2022 22:01:58 -0500 Received: from szxga08-in.huawei.com (szxga08-in.huawei.com [45.249.212.255]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6AB6C45097; Mon, 28 Nov 2022 19:01:57 -0800 (PST) Received: from kwepemi500016.china.huawei.com (unknown [172.30.72.57]) by szxga08-in.huawei.com (SkyGuard) with ESMTP id 4NLnCx4dyFz15Mxq; Tue, 29 Nov 2022 11:01:17 +0800 (CST) Received: from huawei.com (10.174.178.129) by kwepemi500016.china.huawei.com (7.221.188.220) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Tue, 29 Nov 2022 11:01:55 +0800 From: Kemeng Shi To: , , CC: , , , Subject: [PATCH v2 08/10] blk-throttle: remove repeat check of elapsed time from last upgrade in throtl_hierarchy_can_downgrade Date: Tue, 29 Nov 2022 11:01:45 +0800 Message-ID: <20221129030147.27400-9-shikemeng@huawei.com> X-Mailer: git-send-email 2.14.1.windows.1 In-Reply-To: <20221129030147.27400-1-shikemeng@huawei.com> References: <20221129030147.27400-1-shikemeng@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.174.178.129] X-ClientProxiedBy: dggems702-chm.china.huawei.com (10.3.19.179) To kwepemi500016.china.huawei.com (7.221.188.220) X-CFilter-Loop: Reflected X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1750797994245560931?= X-GMAIL-MSGID: =?utf-8?q?1750797994245560931?= There is no need to check elapsed time from last upgrade for each node in hierarchy. Move this check before traversing as throtl_can_upgrade do to remove repeat check. Signed-off-by: Kemeng Shi Reported-by: kernel test robot Acked-by: Tejun Heo --- block/blk-throttle.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/block/blk-throttle.c b/block/blk-throttle.c index 3ddd8a15aa3f..94d850b57462 100644 --- a/block/blk-throttle.c +++ b/block/blk-throttle.c @@ -1955,8 +1955,7 @@ static bool throtl_tg_can_downgrade(struct throtl_grp *tg) * If cgroup is below low limit, consider downgrade and throttle other * cgroups */ - if (time_after_eq(now, td->low_upgrade_time + td->throtl_slice) && - time_after_eq(now, tg_last_low_overflow_time(tg) + + if (time_after_eq(now, tg_last_low_overflow_time(tg) + td->throtl_slice) && (!throtl_tg_is_idle(tg) || !list_empty(&tg_to_blkg(tg)->blkcg->css.children))) @@ -1966,6 +1965,11 @@ static bool throtl_tg_can_downgrade(struct throtl_grp *tg) static bool throtl_hierarchy_can_downgrade(struct throtl_grp *tg) { + struct throtl_data *td = tg->td; + + if (time_before(jiffies, td->low_upgrade_time + td->throtl_slice)) + return false; + while (true) { if (!throtl_tg_can_downgrade(tg)) return false; From patchwork Tue Nov 29 03:01:46 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kemeng Shi X-Patchwork-Id: 27053 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp95845wrr; Mon, 28 Nov 2022 19:06:13 -0800 (PST) X-Google-Smtp-Source: AA0mqf77IoKywxmzhPG81YmlFn9o175DTxoM5cKMkx0GG7ULSG1XkFY8fiqPr3Zukq6czoT1vc9e X-Received: by 2002:a17:906:b108:b0:7b5:dd3e:69c1 with SMTP id u8-20020a170906b10800b007b5dd3e69c1mr30141768ejy.381.1669691173278; Mon, 28 Nov 2022 19:06:13 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669691173; cv=none; d=google.com; s=arc-20160816; b=Qp2/GkmuJhkmSeJ+Y5y1iCXBWibQXRrdhqF0Vu6B6xUyUo9Ax5/ZHKxUwLkmaqF632 0/aM9g2Z4UXRctlmJtBwTzqvaRuNR0xMSoyDsoq85yETpN/XDT+bClAaunMmGT0bw8kA csMEKs1Fpq6MxpBU2ecLvknV92lrqKg002ylARCCdVKCQTk5p3P/V8Tup+42cVopBCvE gPpKX3S7PDHv0wOMC22bKLr5m+n8ujIvQFyFtAjWSO6AHhvr3VdvsIZbYjpxkoAEk4U1 pIqLmlLh86IHWpHIcOEPcSATcG0TbOPk5WpOJ5XsNYjjAyEOjnW8aOQmJNZvbStuOE6Z eO1Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from; bh=IEquTkWHMi+Wzx6hPIjS99NLgqZfTbZz9cU1OpEL2mY=; b=gKKKo6Q67AGz6wISFOgnTM5UYqzslRGOBk8ooDJpTGfPrTyUlD9/U0203E7RJS1yUS xo/96/FGinHCrNwrVz1qXW7eJYqEU+Pq7m2w51jms4XKbHm+BEfGL3b7VfDwK3kgVdoz rvar84E3VbNVt32IXK75CdKhuvbYiOPdpYbT5RXP+Dgwvk8GDJDp0IFK4aH9B2QWzvAu rTNjpDVaLXdHcDrFpX9vNfEWmP+UMvBC6Lp6HBTc3G3/6hiRtW9ArZr3aB15iefU2HTJ S+nlzf5xnZPJG6Y301DGH+hH6JtCmnh4N1MyGdGG5hpeUoZi4xkVXYsnu9zLRNs3z/hw BL4Q== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id m19-20020a056402431300b004693eaeac13si12636010edc.570.2022.11.28.19.05.50; Mon, 28 Nov 2022 19:06:13 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235373AbiK2DCg (ORCPT + 99 others); Mon, 28 Nov 2022 22:02:36 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55974 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235316AbiK2DB7 (ORCPT ); Mon, 28 Nov 2022 22:01:59 -0500 Received: from szxga02-in.huawei.com (szxga02-in.huawei.com [45.249.212.188]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2874E3D92C; Mon, 28 Nov 2022 19:01:58 -0800 (PST) Received: from kwepemi500016.china.huawei.com (unknown [172.30.72.53]) by szxga02-in.huawei.com (SkyGuard) with ESMTP id 4NLnCy0SkqzRpWf; Tue, 29 Nov 2022 11:01:18 +0800 (CST) Received: from huawei.com (10.174.178.129) by kwepemi500016.china.huawei.com (7.221.188.220) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Tue, 29 Nov 2022 11:01:55 +0800 From: Kemeng Shi To: , , CC: , , , Subject: [PATCH v2 09/10] blk-throttle: Use more siutable time_after check for update of slice_start Date: Tue, 29 Nov 2022 11:01:46 +0800 Message-ID: <20221129030147.27400-10-shikemeng@huawei.com> X-Mailer: git-send-email 2.14.1.windows.1 In-Reply-To: <20221129030147.27400-1-shikemeng@huawei.com> References: <20221129030147.27400-1-shikemeng@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.174.178.129] X-ClientProxiedBy: dggems702-chm.china.huawei.com (10.3.19.179) To kwepemi500016.china.huawei.com (7.221.188.220) X-CFilter-Loop: Reflected X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1750798091664562549?= X-GMAIL-MSGID: =?utf-8?q?1750798091664562549?= There is no need to update tg->slice_start[rw] to start when they are equal already. So remove "eq" part of check before update slice_start. Signed-off-by: Kemeng Shi Acked-by: Tejun Heo --- block/blk-throttle.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/block/blk-throttle.c b/block/blk-throttle.c index 94d850b57462..4c80f2aa1e29 100644 --- a/block/blk-throttle.c +++ b/block/blk-throttle.c @@ -645,7 +645,7 @@ static inline void throtl_start_new_slice_with_credit(struct throtl_grp *tg, * that bandwidth. Do try to make use of that bandwidth while giving * credit. */ - if (time_after_eq(start, tg->slice_start[rw])) + if (time_after(start, tg->slice_start[rw])) tg->slice_start[rw] = start; tg->slice_end[rw] = jiffies + tg->td->throtl_slice; From patchwork Tue Nov 29 03:01:47 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kemeng Shi X-Patchwork-Id: 27054 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp101319wrr; Mon, 28 Nov 2022 19:20:44 -0800 (PST) X-Google-Smtp-Source: AA0mqf7sjqmsR0XO8GQRhpqvhpNxRn8JjFklcwFl1BMErAGiYGgTaqft9HYwzCzPHUt8/yf2jN7x X-Received: by 2002:a17:90a:7e0d:b0:213:d630:f4af with SMTP id i13-20020a17090a7e0d00b00213d630f4afmr58188489pjl.77.1669692044662; Mon, 28 Nov 2022 19:20:44 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669692044; cv=none; d=google.com; s=arc-20160816; b=WfsPweN+p17ncDj+jTxlLBse5BhSy6kqdWsLCXN/5fId5WH6QpHzQvWDvzFzRSNjid HqqipAlB3k42nOk6IaMa9zTxdVhIQTaUW2ZjnYfacdeTFyabWNO9YAyDEUWe894qXxRS VKdPO+zUG3aYPCrWBgtkw0P0/07QC+BXxEPkyKjlTakbEjL9VWkD5XTsadwenqgqrva1 HhMQ8NtVShIgB5zovk356CAYO275Y8qCcvdtP77Fl/S3jgNAI3YMYRg0HEyr3cPXgKnk mUm11CWmqOp2lrPde22xfem4pXKS1pP6+C+QKpCTanVAp6Lg47UqiDL7Ky/jryUtsqXK lYLw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from; bh=S4Tq52lxeYWl2BC+Uou6Ihyg54euLcPlgL4zeIFThJ0=; b=d/IrMUo7aQ5gHP96BU/mz9aZqW97Pd8bgQOdfxsOJlIybCXZ5V0dgYdI1a1UNFka0N erpcrUng1JmNWgTwL4DeUIAvJ011dmXmpHmdK8i2Eda6uL67qjVOG06QU2jv1nzRxs4a D8ABG3fnPMmCIExnJHPiAiNiewno14570lXoxgz6AKEFy8Ogtw1LVat6G4nY8AdXMV5G 3IdnPzaLaX4J91avSssZc7OcMaIzSWqh6ADP7JBf8DPga40csEfJKt66Zste5sGDRF8C Ay5qzC0YvU6Nd+0dLPYLRTA+5gOeKT1Nz/yXNHizCVwa+lIEBQjxXq3sTl0crqhZwMtV bu8g== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id s1-20020a170902ea0100b0018554535de8si14780466plg.83.2022.11.28.19.20.30; Mon, 28 Nov 2022 19:20:44 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235417AbiK2DCj (ORCPT + 99 others); Mon, 28 Nov 2022 22:02:39 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55980 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235317AbiK2DB7 (ORCPT ); Mon, 28 Nov 2022 22:01:59 -0500 Received: from szxga02-in.huawei.com (szxga02-in.huawei.com [45.249.212.188]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CBBE445084; Mon, 28 Nov 2022 19:01:58 -0800 (PST) Received: from kwepemi500016.china.huawei.com (unknown [172.30.72.53]) by szxga02-in.huawei.com (SkyGuard) with ESMTP id 4NLnCy4y5WzRpX3; Tue, 29 Nov 2022 11:01:18 +0800 (CST) Received: from huawei.com (10.174.178.129) by kwepemi500016.china.huawei.com (7.221.188.220) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Tue, 29 Nov 2022 11:01:56 +0800 From: Kemeng Shi To: , , CC: , , , Subject: [PATCH v2 10/10] blk-throttle: avoid dead code in throtl_hierarchy_can_upgrade Date: Tue, 29 Nov 2022 11:01:47 +0800 Message-ID: <20221129030147.27400-11-shikemeng@huawei.com> X-Mailer: git-send-email 2.14.1.windows.1 In-Reply-To: <20221129030147.27400-1-shikemeng@huawei.com> References: <20221129030147.27400-1-shikemeng@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.174.178.129] X-ClientProxiedBy: dggems702-chm.china.huawei.com (10.3.19.179) To kwepemi500016.china.huawei.com (7.221.188.220) X-CFilter-Loop: Reflected X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1750799005393103414?= X-GMAIL-MSGID: =?utf-8?q?1750799005393103414?= Function throtl_hierarchy_can_upgrade will always return from while loop, so the return outside while loop is never reached. Break the loop when we traverse to root as throtl_hierarchy_can_downgrade do to avoid dead code. Signed-off-by: Kemeng Shi --- block/blk-throttle.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/block/blk-throttle.c b/block/blk-throttle.c index 4c80f2aa1e29..9946524de158 100644 --- a/block/blk-throttle.c +++ b/block/blk-throttle.c @@ -1854,7 +1854,7 @@ static bool throtl_hierarchy_can_upgrade(struct throtl_grp *tg) return true; tg = sq_to_tg(tg->service_queue.parent_sq); if (!tg || !tg_to_blkg(tg)->parent) - return false; + break; } return false; }