> Il giorno 2 set 2021, alle ore 15:31, yukuai (C) <yukuai3@xxxxxxxxxx> 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 >>> >> .