[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20241217160720.2397239-5-vincent.guittot@linaro.org>
Date: Tue, 17 Dec 2024 17:07:17 +0100
From: Vincent Guittot <vincent.guittot@...aro.org>
To: mingo@...hat.com,
peterz@...radead.org,
juri.lelli@...hat.com,
dietmar.eggemann@....com,
rostedt@...dmis.org,
bsegall@...gle.com,
mgorman@...e.de,
vschneid@...hat.com,
lukasz.luba@....com,
rafael.j.wysocki@...el.com,
linux-kernel@...r.kernel.org
Cc: qyousef@...alina.io,
hongyan.xia2@....com,
pierre.gondois@....com,
christian.loehle@....com,
qperret@...gle.com,
Vincent Guittot <vincent.guittot@...aro.org>
Subject: [PATCH 4/7 v2] energy model: Remove unused em_cpu_energy()
Remove the unused function em_cpu_energy()
Signed-off-by: Vincent Guittot <vincent.guittot@...aro.org>
---
include/linux/energy_model.h | 99 ------------------------------------
1 file changed, 99 deletions(-)
diff --git a/include/linux/energy_model.h b/include/linux/energy_model.h
index 26d0ff72feac..c766642dc541 100644
--- a/include/linux/energy_model.h
+++ b/include/linux/energy_model.h
@@ -235,99 +235,6 @@ em_pd_get_previous_state(struct em_perf_state *table,
return -1;
}
-/**
- * em_cpu_energy() - Estimates the energy consumed by the CPUs of a
- * performance domain
- * @pd : performance domain for which energy has to be estimated
- * @max_util : highest utilization among CPUs of the domain
- * @sum_util : sum of the utilization of all CPUs in the domain
- * @allowed_cpu_cap : maximum allowed CPU capacity for the @pd, which
- * might reflect reduced frequency (due to thermal)
- *
- * This function must be used only for CPU devices. There is no validation,
- * i.e. if the EM is a CPU type and has cpumask allocated. It is called from
- * the scheduler code quite frequently and that is why there is not checks.
- *
- * Return: the sum of the energy consumed by the CPUs of the domain assuming
- * a capacity state satisfying the max utilization of the domain.
- */
-static inline unsigned long em_cpu_energy(struct em_perf_domain *pd,
- unsigned long max_util, unsigned long sum_util,
- unsigned long allowed_cpu_cap)
-{
- struct em_perf_table *em_table;
- struct em_perf_state *ps;
- int i;
-
-#ifdef CONFIG_SCHED_DEBUG
- WARN_ONCE(!rcu_read_lock_held(), "EM: rcu read lock needed\n");
-#endif
-
- if (!sum_util)
- return 0;
-
- /*
- * In order to predict the performance state, map the utilization of
- * the most utilized CPU of the performance domain to a requested
- * performance, like schedutil. Take also into account that the real
- * performance might be set lower (due to thermal capping). Thus, clamp
- * max utilization to the allowed CPU capacity before calculating
- * effective performance.
- */
- max_util = min(max_util, allowed_cpu_cap);
-
- /*
- * Find the lowest performance state of the Energy Model above the
- * requested performance.
- */
- em_table = rcu_dereference(pd->em_table);
- i = em_pd_get_efficient_state(em_table->state, pd, max_util);
- ps = &em_table->state[i];
-
- /*
- * The performance (capacity) of a CPU in the domain at the performance
- * state (ps) can be computed as:
- *
- * ps->freq * scale_cpu
- * ps->performance = -------------------- (1)
- * cpu_max_freq
- *
- * So, ignoring the costs of idle states (which are not available in
- * the EM), the energy consumed by this CPU at that performance state
- * is estimated as:
- *
- * ps->power * cpu_util
- * cpu_nrg = -------------------- (2)
- * ps->performance
- *
- * since 'cpu_util / ps->performance' represents its percentage of busy
- * time.
- *
- * NOTE: Although the result of this computation actually is in
- * units of power, it can be manipulated as an energy value
- * over a scheduling period, since it is assumed to be
- * constant during that interval.
- *
- * By injecting (1) in (2), 'cpu_nrg' can be re-expressed as a product
- * of two terms:
- *
- * ps->power * cpu_max_freq
- * cpu_nrg = ------------------------ * cpu_util (3)
- * ps->freq * scale_cpu
- *
- * The first term is static, and is stored in the em_perf_state struct
- * as 'ps->cost'.
- *
- * Since all CPUs of the domain have the same micro-architecture, they
- * share the same 'ps->cost', and the same CPU capacity. Hence, the
- * total energy of the domain (which is the simple sum of the energy of
- * all of its CPUs) can be factorized as:
- *
- * pd_nrg = ps->cost * \Sum cpu_util (4)
- */
- return ps->cost * sum_util;
-}
-
/**
* em_pd_nr_perf_states() - Get the number of performance states of a perf.
* domain
@@ -394,12 +301,6 @@ em_pd_get_previous_state(struct em_perf_state *table, int nr_perf_states,
{
return -1;
}
-static inline unsigned long em_cpu_energy(struct em_perf_domain *pd,
- unsigned long max_util, unsigned long sum_util,
- unsigned long allowed_cpu_cap)
-{
- return 0;
-}
static inline int em_pd_nr_perf_states(struct em_perf_domain *pd)
{
return 0;
--
2.43.0
Powered by blists - more mailing lists