Re: [PATCH v2 2/4] block, bfq: do not idle if only one cgroup is activated
From: Paolo Valente <hidden>
Date: 2021-09-07 09:10:21
Also in:
lkml
Il giorno 2 set 2021, alle ore 15:31, yukuai (C) [off-list ref] ha scritto: On 2021/08/27 1:00, Paolo Valente wrote:quoted
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 Kuaiquoted
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, Paoloquoted
-#endif - ; + return varied_queue_weights || multiple_classes_busy; } /* -- 2.31.1.