linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Yu Kuai <yukuai3@huawei.com>
To: <tj@kernel.org>, <axboe@kernel.dk>, <paolo.valente@linaro.org>,
	<jack@suse.cz>
Cc: <cgroups@vger.kernel.org>, <linux-block@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>, <yukuai3@huawei.com>,
	<yi.zhang@huawei.com>
Subject: [PATCH -next 06/11] block, bfq: do not idle if only one cgroup is activated
Date: Sat, 5 Mar 2022 17:12:00 +0800	[thread overview]
Message-ID: <20220305091205.4188398-7-yukuai3@huawei.com> (raw)
In-Reply-To: <20220305091205.4188398-1-yukuai3@huawei.com>

Now that root group is counted into 'num_groups_with_pending_reqs',
'num_groups_with_pending_reqs > 0' is always true in
bfq_asymmetric_scenario().

Thus change the condition to 'num_groups_with_pending_reqs > 1', so
it's consistent without counting root group.

On the other hand, with the following patches to only count groups(not
ancestors) with pending requests, sync io can be handled concurrently
if only one group has pending requests.

Signed-off-by: Yu Kuai <yukuai3@huawei.com>
---
 block/bfq-iosched.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/block/bfq-iosched.c b/block/bfq-iosched.c
index 3bc7a7686aad..07027dc9dc4c 100644
--- a/block/bfq-iosched.c
+++ b/block/bfq-iosched.c
@@ -812,7 +812,7 @@ bfq_pos_tree_add_move(struct bfq_data *bfqd, struct bfq_queue *bfqq)
  * much easier to maintain the needed state:
  * 1) all active queues have the same weight,
  * 2) all active queues belong to the same I/O-priority class,
- * 3) there are no active groups.
+ * 3) there are one active groups at most.
  * In particular, the last condition is always true if hierarchical
  * support or the cgroups interface are not enabled, thus no state
  * needs to be maintained in this case.
@@ -844,7 +844,7 @@ static bool bfq_asymmetric_scenario(struct bfq_data *bfqd,
 
 	return varied_queue_weights || multiple_classes_busy
 #ifdef CONFIG_BFQ_GROUP_IOSCHED
-	       || bfqd->num_groups_with_pending_reqs > 0
+	       || bfqd->num_groups_with_pending_reqs > 1
 #endif
 		;
 }
-- 
2.31.1


  parent reply	other threads:[~2022-03-05  8:57 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-03-05  9:11 [PATCH -next 00/11] support concurrent sync io for bfq on a specail occasion Yu Kuai
2022-03-05  9:11 ` [PATCH -next 01/11] block, bfq: add new apis to iterate bfq entities Yu Kuai
2022-03-05  9:11 ` [PATCH -next 02/11] block, bfq: apply news apis where root group is not expected Yu Kuai
2022-04-13  9:50   ` Jan Kara
2022-04-13 10:59     ` Jan Kara
2022-04-13 11:11       ` yukuai (C)
2022-03-05  9:11 ` [PATCH -next 03/11] block, bfq: cleanup for __bfq_activate_requeue_entity() Yu Kuai
2022-03-05  9:11 ` [PATCH -next 04/11] block, bfq: move the increasement of 'num_groups_with_pending_reqs' to it's caller Yu Kuai
2022-03-05  9:11 ` [PATCH -next 05/11] block, bfq: count root group into 'num_groups_with_pending_reqs' Yu Kuai
2022-04-13 11:05   ` Jan Kara
2022-03-05  9:12 ` Yu Kuai [this message]
2022-03-05  9:12 ` [PATCH -next 07/11] block, bfq: only count parent bfqg when bfqq is activated Yu Kuai
2022-03-05  9:12 ` [PATCH -next 08/11] block, bfq: record how many queues have pending requests in bfq_group Yu Kuai
2022-03-05  9:12 ` [PATCH -next 09/11] block, bfq: move forward __bfq_weights_tree_remove() Yu Kuai
2022-03-05  9:12 ` [PATCH -next 10/11] block, bfq: decrease 'num_groups_with_pending_reqs' earlier Yu Kuai
2022-04-13 11:28   ` Jan Kara
2022-04-13 11:40     ` yukuai (C)
2022-04-15  1:10       ` yukuai (C)
2022-04-19  9:49         ` Jan Kara
2022-04-19 11:37           ` yukuai (C)
2022-04-21  8:17             ` Jan Kara
2022-03-05  9:12 ` [PATCH -next 11/11] block, bfq: cleanup bfqq_group() Yu Kuai
2022-03-11  6:31 ` [PATCH -next 00/11] support concurrent sync io for bfq on a specail occasion yukuai (C)
2022-03-17  1:49   ` yukuai (C)
2022-03-18 12:38     ` Paolo Valente
2022-03-19  2:34       ` yukuai (C)
2022-03-25  7:30     ` yukuai (C)
2022-04-01  3:43       ` yukuai (C)
2022-04-08  6:50         ` yukuai (C)
2022-04-13 11:12 ` Jan Kara
2022-04-13 11:33   ` yukuai (C)
2022-04-26 14:24   ` Paolo Valente

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220305091205.4188398-7-yukuai3@huawei.com \
    --to=yukuai3@huawei.com \
    --cc=axboe@kernel.dk \
    --cc=cgroups@vger.kernel.org \
    --cc=jack@suse.cz \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=paolo.valente@linaro.org \
    --cc=tj@kernel.org \
    --cc=yi.zhang@huawei.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).