From patchwork Thu Nov 10 11:26:22 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yuwei Guan X-Patchwork-Id: 18078 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:6687:0:0:0:0:0 with SMTP id l7csp91423wru; Thu, 10 Nov 2022 03:40:12 -0800 (PST) X-Google-Smtp-Source: AMsMyM7oGk6qJsdEazstPc7HWwugBvpLHU4EB5M37KJ2eSSSpkxtflmbxqT9Awx20UffPRWkIe8R X-Received: by 2002:a17:907:76d6:b0:7ad:d250:b905 with SMTP id kf22-20020a17090776d600b007add250b905mr2585536ejc.742.1668080412623; Thu, 10 Nov 2022 03:40:12 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1668080412; cv=none; d=google.com; s=arc-20160816; b=0Ykj7N+B98em3Ain2H7C2RvsA9JC4m2ZL7hc4ZQrfebwZWVneRg19FSnxeDLms9nTY +AFuvXRiK+tCiAyvIYT6TZk7W0AXcryrPN4YCRAgxR6I+rKik5y2fPEDbu476fG2Hjwq x5UsPqpYtBM8CeEgE5Zt+ChjSPlhVy2xrYeRdHzw9P2rS2L+HSz0CjTn4U8cVdL/FLD+ v/0swyZYK6ftaC2djip8oELF9LECuk5Ygl7y4sam2o7cGn7vn/kRXOVKZHt4hg5caAWJ W5QN2t2XCndmwrTIWF235s71Y8u/yUOa4PpbWJjvEP1KRWobCT5YlQj7SHEdknCdt/IT QaEg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=R4JSNtBnOFBc3pGwCyNxt/wdF3MreeTClRovgXRSqJU=; b=p9oPsht3WiG+bFyiSFnwn2TMbmUJgGP+w6EKrWFgyaeAuLwERvddgdAKQZXyITBC6V AnDEiynvh1zj0fRpN0CbLBdiHso+gGASAy1HqNy1PVfHAwQZgZgo8YY3y+Cn3fRoUMD0 zdBxrjxwE6aq6sYHa25oOgHQK9lU/x+iQtkRdR2eLUlV3jUy+yDW323n18SuoizI0Ow/ EAVJIrW5onIyiusFjnVktjL2q6FzsjIltV6/hl5h3g58wHK2sEIr/6/rgAZQwqlCgQRc JtCErho3zL3h1naHdHk+RRuFmP99iJpNhZNOYL1H8+slEbr8whRvGEyQsyl8n/McHcFt a7Lg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=ovbGQqlc; 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=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id s3-20020a170906a18300b0073d71124609si13089518ejy.182.2022.11.10.03.39.48; Thu, 10 Nov 2022 03:40:12 -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; dkim=pass header.i=@gmail.com header.s=20210112 header.b=ovbGQqlc; 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=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230191AbiKJL1N (ORCPT + 99 others); Thu, 10 Nov 2022 06:27:13 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38658 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229601AbiKJL1M (ORCPT ); Thu, 10 Nov 2022 06:27:12 -0500 Received: from mail-pj1-x1035.google.com (mail-pj1-x1035.google.com [IPv6:2607:f8b0:4864:20::1035]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A5F3953EDC; Thu, 10 Nov 2022 03:27:11 -0800 (PST) Received: by mail-pj1-x1035.google.com with SMTP id v4-20020a17090a088400b00212cb0ed97eso1262810pjc.5; Thu, 10 Nov 2022 03:27:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=R4JSNtBnOFBc3pGwCyNxt/wdF3MreeTClRovgXRSqJU=; b=ovbGQqlcG0M/MlvAYZYDT34I/hzTHDI3pORy74lXMXlFO0ppRNriHlA+0MdN3fvAY3 NRUR2jJ6FyWek4QIs+bbVh4tv16g5l/vQ2vczEFxA77DgkFiY361iehUU8av2mVZkSK2 fqrQUwFYxnxc1u7W77JVB3NR+P2bpOdlY3d3ktnfZX4wvc3WdChIzOl/oMaRXhk85lY/ rhzr6fICE8C72mbnJxX8NPoNvavGAc+VBkpxOV0NY4WtH6mbuBpGT4t8m+ALS8zxaVUc Sy60DSabrva+VO3UId5Z3Ytc+qc7qnO+1azVkh/ib8L7Y6tsOyRafcTJ6WinEuj03nex 2Kcg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=R4JSNtBnOFBc3pGwCyNxt/wdF3MreeTClRovgXRSqJU=; b=PVeCuvu/EsbWNYJbl/LG9UAgSIjvIBPbAY6Hw3dR/qLemeczB6ZSZ7rwpzc1Ti8mYe 1cFRsYnOQ/uzj3N+2FM9PgNpn05Msv6ItdWQOn0BTE1SFIF2s8hZueNDGaMPo1prKiRu SYBJqZFehW0y+xsltHj4skS99oOxPotrVRURcpLECcsMp95FgEMRP+39R6EBssU3+zJU lzhaE5QwziKN99158H4nczCCyd/bkhzI9x0VoP8T9FT/WPBm8QgFNn1ue2hHhfx7FzMi 1eU5S2bwOGSaQdV9+w6Sd3ZP2I6keciyZJL46sYz7T+mlZYAMiG+P/rwP8DqGYZdO6ew uZZA== X-Gm-Message-State: ACrzQf1KeNQJUg4b1uPcmLvu1iDPaC0ZamPI1ckzfI9oT6czpwCbqDJc r6ukZUduuXwAAFFAISm+v5U= X-Received: by 2002:a17:903:2490:b0:17f:bf7e:c521 with SMTP id p16-20020a170903249000b0017fbf7ec521mr64440670plw.161.1668079631085; Thu, 10 Nov 2022 03:27:11 -0800 (PST) Received: from VirtualBox.. ([129.227.152.6]) by smtp.gmail.com with ESMTPSA id q12-20020a170902dacc00b001869f2120a4sm11061939plx.94.2022.11.10.03.27.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 10 Nov 2022 03:27:10 -0800 (PST) From: Yuwei Guan X-Google-Original-From: Yuwei Guan To: paolo.valente@linaro.org, axboe@kernel.dk Cc: linux-block@vger.kernel.org, linux-kernel@vger.kernel.org, Yuwei.Guan@zeekrlife.com, Yu Kuai Subject: [PATCH v1] block, bfq: do the all counting of pending-request if CONFIG_BFQ_GROUP_IOSCHED is enabled Date: Thu, 10 Nov 2022 19:26:22 +0800 Message-Id: <20221110112622.389332-1-Yuwei.Guan@zeekrlife.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM, RCVD_IN_DNSWL_NONE,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?1749025903874892831?= X-GMAIL-MSGID: =?utf-8?q?1749109086651965678?= The 'bfqd->num_groups_with_pending_reqs' is used when CONFIG_BFQ_GROUP_IOSCHED is enabled, so let the variables and processes take effect when ONFIG_BFQ_GROUP_IOSCHED is enabled. Cc: Yu Kuai Signed-off-by: Yuwei Guan Reviewed-by: Yu Kuai Reviewed-by: Jan Kara --- block/bfq-iosched.c | 2 ++ block/bfq-iosched.h | 4 ++++ block/bfq-wf2q.c | 8 ++++---- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/block/bfq-iosched.c b/block/bfq-iosched.c index 2381cf220ba2..5f54091e7fe9 100644 --- a/block/bfq-iosched.c +++ b/block/bfq-iosched.c @@ -7051,7 +7051,9 @@ static int bfq_init_queue(struct request_queue *q, struct elevator_type *e) bfqd->idle_slice_timer.function = bfq_idle_slice_timer; bfqd->queue_weights_tree = RB_ROOT_CACHED; +#ifdef CONFIG_BFQ_GROUP_IOSCHED bfqd->num_groups_with_pending_reqs = 0; +#endif INIT_LIST_HEAD(&bfqd->active_list); INIT_LIST_HEAD(&bfqd->idle_list); diff --git a/block/bfq-iosched.h b/block/bfq-iosched.h index 9fa89577322d..41aa151ccc22 100644 --- a/block/bfq-iosched.h +++ b/block/bfq-iosched.h @@ -197,8 +197,10 @@ struct bfq_entity { /* flag, set to request a weight, ioprio or ioprio_class change */ int prio_changed; +#ifdef CONFIG_BFQ_GROUP_IOSCHED /* flag, set if the entity is counted in groups_with_pending_reqs */ bool in_groups_with_pending_reqs; +#endif /* last child queue of entity created (for non-leaf entities) */ struct bfq_queue *last_bfqq_created; @@ -491,6 +493,7 @@ struct bfq_data { */ struct rb_root_cached queue_weights_tree; +#ifdef CONFIG_BFQ_GROUP_IOSCHED /* * Number of groups with at least one process that * has at least one request waiting for completion. Note that @@ -538,6 +541,7 @@ struct bfq_data { * with no request waiting for completion. */ unsigned int num_groups_with_pending_reqs; +#endif /* * Per-class (RT, BE, IDLE) number of bfq_queues containing diff --git a/block/bfq-wf2q.c b/block/bfq-wf2q.c index b02b53658ed4..ea4c3d757fdd 100644 --- a/block/bfq-wf2q.c +++ b/block/bfq-wf2q.c @@ -1612,28 +1612,28 @@ void bfq_requeue_bfqq(struct bfq_data *bfqd, struct bfq_queue *bfqq, void bfq_add_bfqq_in_groups_with_pending_reqs(struct bfq_queue *bfqq) { +#ifdef CONFIG_BFQ_GROUP_IOSCHED struct bfq_entity *entity = &bfqq->entity; if (!entity->in_groups_with_pending_reqs) { entity->in_groups_with_pending_reqs = true; -#ifdef CONFIG_BFQ_GROUP_IOSCHED if (!(bfqq_group(bfqq)->num_queues_with_pending_reqs++)) bfqq->bfqd->num_groups_with_pending_reqs++; -#endif } +#endif } void bfq_del_bfqq_in_groups_with_pending_reqs(struct bfq_queue *bfqq) { +#ifdef CONFIG_BFQ_GROUP_IOSCHED struct bfq_entity *entity = &bfqq->entity; if (entity->in_groups_with_pending_reqs) { entity->in_groups_with_pending_reqs = false; -#ifdef CONFIG_BFQ_GROUP_IOSCHED if (!(--bfqq_group(bfqq)->num_queues_with_pending_reqs)) bfqq->bfqd->num_groups_with_pending_reqs--; -#endif } +#endif } /*