On 25/06/2021 17:26, Lukasz Luba wrote:
The Energy Model (EM) provides useful information about device power in^^^^^^^^^^^^
each performance state to other subsystems like: Energy Aware Scheduler
(EAS). The energy calculation in EAS does arithmetic operation based on
the EM em_cpu_energy(). Current implementation of that function uses
em_perf_state::cost as a pre-computed cost coefficient equal to:
cost = power * max_frequency / frequency.
The 'power' is expressed in milli-Watts (or in abstract scale).
There are corner cases then the EAS energy calculation for two Performance
Again, an easy to understand example to describe in which situation this
change would bring a benefit would help.
Domains (PDs) return the same value, e.g. 10mW. The EAS compares these
values to choose smaller one. It might happen that this values are equal
due to rounding error. In such scenario, we need better precision, e.g.
10000 times better. To provide this possibility increase the precision on
the em_perf_state::cost.
This patch allows to avoid the rounding to milli-Watt errors, which might
occur in EAS energy estimation for each Performance Domains (PD). The
rounding error is common for small tasks which have small utilization
values.
What's the influence of the CPU utilization 'cpu_util_next()' here?
compute_energy()
em_cpu_energy()
return ps->cost * sum_util / scale_cpu
^^^^^^^^
The rest of the EM code doesn't change, em_perf_state::power is still
expressed in milli-Watts (or in abstract scale). Thus, all existing
platforms don't have to change their reported power. The same applies to
Not only existing platforms since there are no changes. So why
highlighting `existing` here.?