Re: [PATCH v3 4/5] sched/pelt: Add a new runnable average signal

From: Mel Gorman
Date: Fri Feb 21 2020 - 05:40:25 EST


On Fri, Feb 21, 2020 at 10:25:27AM +0100, Vincent Guittot wrote:
> On Fri, 21 Feb 2020 at 10:04, Mel Gorman <mgorman@xxxxxxx> wrote:
> >
> > On Thu, Feb 20, 2020 at 04:11:18PM +0000, Valentin Schneider wrote:
> > > On 20/02/2020 14:36, Vincent Guittot wrote:
> > > > I agree that setting by default to SCHED_CAPACITY_SCALE is too much
> > > > for little core.
> > > > The problem for little core can be fixed by using the cpu capacity instead
> > > >
> > >
> > > So that's indeed better for big.LITTLE & co. Any reason however for not
> > > aligning with the initialization of util_avg ?
> > >
> > > With the default MC imbalance_pct (117), it takes 875 utilization to make
> > > a single CPU group (with 1024 capacity) overloaded (group_is_overloaded()).
> > > For a completely idle CPU, that means forking at least 3 tasks (512 + 256 +
> > > 128 util_avg)
> > >
> > > With your change, it only takes 2 tasks. I know I'm being nitpicky here, but
> > > I feel like those should be aligned, unless we have a proper argument against
> > > it - in which case this should also appear in the changelog with so far only
> > > mentions issues with util_avg migration, not the fork time initialization.
> > >
> >
> > So, what is the way forward here? Should this patch be modified now,
> > a patch be placed on top or go with what we have for the moment that
> > works for symmetric CPUs and deal with the asym case later?
> >
> > I do not have any asym systems at all so I've no means of checking
> > whether there is a problem or not.
>
> I'm going to send a new version at least for patch 4 and 5 using
> cpu_scale as initial value and fixing update_sg_wakeup_stats()
>

No problem. FWIW, when I see them, I'll slot them in and rerun the tests
as the previous results will be invalidated. Obviously the asym case will
not be tested by me but I imagine you or Valentin have that covered.

Thanks.

--
Mel Gorman
SUSE Labs