Messages in this thread | | | Subject | Re: [PATCH v2 2/4] block, bfq: do not idle if only one cgroup is activated | From | Paolo Valente <> | Date | Tue, 7 Sep 2021 11:10:02 +0200 |
| |
> Il giorno 2 set 2021, alle ore 15:31, yukuai (C) <yukuai3@huawei.com> ha scritto: > > On 2021/08/27 1:00, Paolo Valente wrote: >> Why do you make these extensive changes, while you can leave all the >> function unchanged and just modify the above condition to something >> like >> || bfqd->num_groups_with_pending_reqs > 1 >> || (bfqd->num_groups_with_pending_reqs && bfqd->num_queues_with_pending_reqs_in_root) > > Hi, Paolo > > I was thinking that if CONFIG_BFQ_GROUP_IOSCHED is enabled, there is no > need to caculate smallest_weight, varied_queue_weights, and > multiple_classes_busy: > > If we count root group into num_groups_with_pending_reqs > - If num_groups_with_pending_reqs <= 1, idle is not needed
Unfortunately, if active queues have different weights or belong to different classes, then idling is needed to preserve per-queue bandwidths.
Thanks, Paolo
> - If num_groups_with_pending_reqs > 1, idle is needed > > Thus such changes can save some additional overhead. > > Thanks > Yu Kuai > >> In addition, I still wonder whether you can simply add also the root >> group to bfqd->num_groups_with_pending_reqs (when the root group is >> active). This would make the design much cleaner. >> Thanks, >> Paolo >>> -#endif >>> - ; >>> + return varied_queue_weights || multiple_classes_busy; >>> } >>> >>> /* >>> -- >>> 2.31.1 >>> >> .
| |