Re: [PATCH v2 2/2] cpufreq: schedutil: Optimize operations with single max CPU capacity

From: Lukasz Luba
Date: Thu Dec 08 2022 - 03:43:53 EST




On 12/8/22 04:09, Viresh Kumar wrote:
On 07-12-22, 10:17, Lukasz Luba wrote:
The max CPU capacity is the same for all CPUs sharing frequency domain
and thus 'policy' object. There is a way to avoid heavy operations
in a loop for each CPU by leveraging this knowledge. Thus, simplify
the looping code in the sugov_next_freq_shared() and drop heavy
multiplications. Instead, use simple max() to get the highest utilization
from these CPUs. This is useful for platforms with many (4 or 6) little
CPUs.

The max CPU capacity must be fetched every time we are called, due to
difficulties during the policy setup, where we are not able to get the
normalized CPU capacity at the right time.

The stored value in sugov_policy::max is also than used in
sugov_iowait_apply() to calculate the right boost. Thus, that field is
useful to have in that sugov_policy struct.

Signed-off-by: Lukasz Luba <lukasz.luba@xxxxxxx>
---
kernel/sched/cpufreq_schedutil.c | 22 +++++++++++-----------
1 file changed, 11 insertions(+), 11 deletions(-)

Looks okay to me.

Acked-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>


Thank you Viresh!

As Rafael said, it will wait after 6.2-rc1 is out.

Regards,
Lukasz