[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <D3FF0820-6A51-46A1-A363-8FFA8CCD2851@linaro.org>
Date: Fri, 10 Dec 2021 10:20:29 +0100
From: Paolo Valente <paolo.valente@...aro.org>
To: Yu Kuai <yukuai3@...wei.com>
Cc: tj@...nel.org, axboe@...nel.dk, cgroups@...r.kernel.org,
linux-block@...r.kernel.org, linux-kernel@...r.kernel.org,
yi.zhang@...wei.com
Subject: Re: [PATCH RFC 0/9] support concurrent sync io for bfq on a specail
occasion
> Il giorno 27 nov 2021, alle ore 11:11, Yu Kuai <yukuai3@...wei.com> ha scritto:
>
> Bfq can't handle sync io concurrently as long as the io are not issued
> from root group currently.
>
> Previous patch set:
> https://lore.kernel.org/lkml/20211014014556.3597008-2-yukuai3@huawei.com/t/
>
> During implemting the method mentioned by the above patch set, I found
> more problems that will block implemting concurrent sync io. The
> modifications of this patch set are as follows:
>
> 1) count root group into 'num_groups_with_pending_reqs';
> 2) don't idle if 'num_groups_with_pending_reqs' is 1;
> 3) If the group doesn't have pending requests while it's child groups
> have pending requests, don't count the group.
Why don't yo count the parent group? It seems to me that we should count it.
> 4) Once the group doesn't have pending requests, decrease
> 'num_groups_with_pending_reqs' immediately. Don't delay to when all
> it's child groups don't have pending requests.
>
I guess this action is related to 3).
Thanks,
Paolo
> Noted that I just tested basic functionality of this patchset, and I
> think it's better to see if anyone have suggestions or better
> solutions.
>
> Yu Kuai (9):
> block, bfq: add new apis to iterate bfq entities
> block, bfq: apply news apis where root group is not expected
> block, bfq: handle the case when for_each_entity() access root group
> block, bfq: count root group into 'num_groups_with_pending_reqs'
> block, bfq: do not idle if only one cgroup is activated
> block, bfq: only count group that the bfq_queue belongs to
> block, bfq: record how many queues have pending requests in bfq_group
> block, bfq: move forward __bfq_weights_tree_remove()
> block, bfq: decrease 'num_groups_with_pending_reqs' earlier
>
> block/bfq-cgroup.c | 3 +-
> block/bfq-iosched.c | 92 +++++++++++++++++++++++----------------------
> block/bfq-iosched.h | 41 +++++++++++++-------
> block/bfq-wf2q.c | 44 +++++++++++++++-------
> 4 files changed, 106 insertions(+), 74 deletions(-)
>
> --
> 2.31.1
>
Powered by blists - more mailing lists