Messages in this thread | ![/](/images/icornerl.gif) | | Date | Fri, 29 Sep 2023 09:32:09 +0100 | Subject | Re: [PATCH v4 03/18] PM: EM: Find first CPU online while updating OPP efficiency | From | Lukasz Luba <> |
| |
Hi Rafael,
Thank you having reviewing those patches!
On 9/26/23 19:32, Rafael J. Wysocki wrote: > On Mon, Sep 25, 2023 at 10:11 AM Lukasz Luba <lukasz.luba@arm.com> wrote: >> >> The Energy Model might be updated at runtime and the energy efficiency >> for each OPP may change. Thus, there is a need to update also the >> cpufreq framework and make it aligned to the new values. In order to >> do that, use a first online CPU from the Performance Domain. >> >> Signed-off-by: Lukasz Luba <lukasz.luba@arm.com> >> --- >> kernel/power/energy_model.c | 11 +++++++++-- >> 1 file changed, 9 insertions(+), 2 deletions(-) >> >> diff --git a/kernel/power/energy_model.c b/kernel/power/energy_model.c >> index 42486674b834..3dafdd7731c4 100644 >> --- a/kernel/power/energy_model.c >> +++ b/kernel/power/energy_model.c >> @@ -243,12 +243,19 @@ em_cpufreq_update_efficiencies(struct device *dev, struct em_perf_state *table) >> struct em_perf_domain *pd = dev->em_pd; >> struct cpufreq_policy *policy; >> int found = 0; >> - int i; >> + int i, cpu; >> >> if (!_is_cpu_device(dev) || !pd) >> return; >> >> - policy = cpufreq_cpu_get(cpumask_first(em_span_cpus(pd))); >> + /* Try to get a CPU which is online and in this PD */ >> + cpu = cpumask_first_and(em_span_cpus(pd), cpu_active_mask); > > The comment talks about "online" and cpu_active_mask is used. Isn't > it a bit inconsistent?
good point, I'll change the word to 'active'
> >> + if (cpu >= nr_cpu_ids) { >> + dev_warn(dev, "EM: No online CPU for CPUFreq policy\n"); >> + return; >> + } >> + >> + policy = cpufreq_cpu_get(cpu); >> if (!policy) { >> dev_warn(dev, "EM: Access to CPUFreq policy failed\n"); >> return; >> -- >> 2.25.1 >>
| ![\](/images/icornerr.gif) |