Re: [PATCH v3 0/2] sched/fair: find_energy_efficient_cpu() enhancements

From: Xuewen Yan
Date: Tue May 04 2021 - 07:49:54 EST


Hi Pierre,

The two patches look good to me.

Thanks
Xuewen Yan

On Tue, May 4, 2021 at 5:11 PM Pierre Gondois <pierre.gondois@xxxxxxx> wrote:
>
> Hi Xuewen,
>
> Please let me know if you have some comments,
> Pierre
>
> On 5/4/21 10:07 AM, Pierre Gondois wrote:
> > 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]
> >
> > V3:
> > - Layout/phrasing. [Dietmar]
> >
> > 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@xxxxxxx
> > 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 | 68 ++++++++++++++++++++++++++-------------------
> > 1 file changed, 39 insertions(+), 29 deletions(-)
> >