All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/2] sched/fair: find_energy_efficient_cpu() enhancements
@ 2021-04-29 10:19 Pierre.Gondois
  2021-04-29 10:19 ` [PATCH v2 1/2] sched/fair: Only compute base_energy_pd if necessary Pierre.Gondois
  2021-04-29 10:19 ` [PATCH v2 2/2] sched/fair: Fix negative energy delta in find_energy_efficient_cpu() Pierre.Gondois
  0 siblings, 2 replies; 8+ messages in thread
From: Pierre.Gondois @ 2021-04-29 10:19 UTC (permalink / raw)
  To: linux-kernel, xuewen.yan, qperret, dietmar.eggemann
  Cc: Lukasz.Luba, Vincent.Donnefort, Pierre Gondois, mingo, peterz,
	juri.lelli, vincent.guittot, rostedt, bsegall, mgorman, bristot

From: Pierre Gondois <Pierre.Gondois@arm.com>

V2:
 - Split the patch in 2. [Quentin]
 - Add testing results to the cover-letter. [Dietmar]
 - Put back 'rcu_read_unlock()' to unlock the rcu
   earlier. [Dietmar]
 - Various comments. [Dietmar/Quentin]

This patchset prevents underflows in find_energy_efficient_cpu().
This is done in the second patch:
sched/fair: Fix negative energy delta in find_energy_efficient_cpu()

The first patch:
sched/fair: Only compute base_energy_pd if necessary
prevents an unnecessary call to compute_energy() if no CPU is available
in a performance domain (pd).
When looping over the pds, it also allows to gather the calls
to compute_energy(), reducing the chances of having utilization signals
being concurrently updated and having a 'negative delta'.

The energy tests of the initial EAS enablement at:
https://lkml.kernel.org/r/20181203095628.11858-1-quentin.perret@arm.com
have been executed using LISA on a Juno-r2 (2xA57 + 4xA53).

To recall the test:
"10 iterations of between 10 and 50 periodic rt-app tasks (16ms period, 
5% duty-cycle) for 30 seconds with energy measurement. Unit is Joules. 
The goal is to save energy, so lower is better."
"Energy is measured with the onboard energy meter. Numbers include 
consumption of big and little CPUs."

+----------+-----------------+-------------------------+
|          | Without patches | With patches            |
+----------+--------+--------+------------------+------+
| Tasks nb |  Mean  |    CI* | Mean             |  CI* |
+----------+--------+--------+------------------+------+
|       10 |   6.57 |   0.24 |   6.46 (-1.63%)  | 0.27 |
|       20 |  12.44 |   0.21 |  12.44 (-0.01%)  | 0.14 |
|       30 |  19.10 |   0.78 |  18.75 (-1.85%)  | 0.15 |
|       40 |  27.27 |   0.53 |  27.35 (+0.31%)  | 0.33 |
|       50 |  36.55 |   0.42 |  36.28 (-0.74%)  | 0.42 |
+----------+-----------------+-------------------------+
CI: confidence interval

For each line, the intervals of values w/ w/o the patches are 
overlapping (consider Mean +/- CI). Thus, the energy results shouldn't 
have been impacted.

Pierre Gondois (2):
  sched/fair: Only compute base_energy_pd if necessary
  sched/fair: Fix negative energy delta in find_energy_efficient_cpu()

 kernel/sched/fair.c | 66 ++++++++++++++++++++++++++-------------------
 1 file changed, 38 insertions(+), 28 deletions(-)

-- 
2.17.1


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2021-05-04  9:27 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-04-29 10:19 [PATCH v2 0/2] sched/fair: find_energy_efficient_cpu() enhancements Pierre.Gondois
2021-04-29 10:19 ` [PATCH v2 1/2] sched/fair: Only compute base_energy_pd if necessary Pierre.Gondois
2021-04-30 11:03   ` Lukasz Luba
2021-05-03 12:52   ` Dietmar Eggemann
2021-04-29 10:19 ` [PATCH v2 2/2] sched/fair: Fix negative energy delta in find_energy_efficient_cpu() Pierre.Gondois
2021-04-30 11:13   ` Lukasz Luba
2021-05-03 12:52   ` Dietmar Eggemann
2021-05-04  9:27   ` Vincent Donnefort

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.