Re: [PATCH v7 02/23] PM: EM: Extend em_cpufreq_update_efficiencies() argument list

From: Hongyan Xia
Date: Wed Jan 17 2024 - 06:11:47 EST


On 17/01/2024 09:56, Lukasz Luba wrote:
In order to prepare the code for the modifiable EM perf_state table,
make em_cpufreq_update_efficiencies() take a pointer to the EM table
as its second argument and modify it to use that new argument instead
of the 'table' member of dev->em_pd.

No functional impact.

Signed-off-by: Lukasz Luba <lukasz.luba@xxxxxxx>
---
kernel/power/energy_model.c | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/kernel/power/energy_model.c b/kernel/power/energy_model.c
index 8b9dd4a39f63..42486674b834 100644
--- a/kernel/power/energy_model.c
+++ b/kernel/power/energy_model.c
@@ -237,10 +237,10 @@ static int em_create_pd(struct device *dev, int nr_states,
return 0;
}
-static void em_cpufreq_update_efficiencies(struct device *dev)
+static void
+em_cpufreq_update_efficiencies(struct device *dev, struct em_perf_state *table)
{
struct em_perf_domain *pd = dev->em_pd;
- struct em_perf_state *table;
struct cpufreq_policy *policy;
int found = 0;
int i;
@@ -254,8 +254,6 @@ static void em_cpufreq_update_efficiencies(struct device *dev)
return;
}

NIT: It's not shown here, but in the check above this line

if (!_is_cpu_device(dev) || !pd)

The !pd check should be removed because em_cpufreq_update_efficiencies() is only called after doing

dev->em_pd->flags |= flags;

So compiler will optimize the !pd out anyway. But this is not directly related to the PR, so just a NIT.

- table = pd->table;
-
for (i = 0; i < pd->nr_perf_states; i++) {
if (!(table[i].flags & EM_PERF_STATE_INEFFICIENT))
continue;
@@ -397,7 +395,7 @@ int em_dev_register_perf_domain(struct device *dev, unsigned int nr_states,
dev->em_pd->flags |= flags;
- em_cpufreq_update_efficiencies(dev);
+ em_cpufreq_update_efficiencies(dev, dev->em_pd->table);
em_debug_create_pd(dev);
dev_info(dev, "EM: created perf domain\n");

Reviewed-by: Hongyan Xia <hongyan.xia2@xxxxxxx>