Re: [PATCH v4 1/3] sched/fair: add util_est on top of PELT

From: Patrick Bellasi
Date: Wed Feb 07 2018 - 06:57:17 EST


On 06-Feb 20:15, Peter Zijlstra wrote:
> On Tue, Feb 06, 2018 at 08:09:00PM +0100, Peter Zijlstra wrote:
> > On Tue, Feb 06, 2018 at 06:33:15PM +0000, Patrick Bellasi wrote:
> >
> > > Good point, I was actually expecting this question and I should have
> > > added it to the cover letter, sorry.
> > >
> > > The reasoning was: the task's estimated utilization is defined as the
> > > max between PELT and the "estimation". Where "estimation" is
> > > the max between EWMA and the last ENQUEUED utilization.
> > >
> > > Thus I was envisioning these two calls:
> > >
> > > _task_util_est := max(EWMA, ENQUEUED)
> > > task_util_est := max(util_avg, _task_util_est)
> > >
> > > but since now we have clients only for the first API, I've not added
> > > the second one. Still I would prefer to keep the "_" to make it clear
> > > that's and util_est's internal signal, not the actual task's estimated
> > > utilization.
> > >
> > > Does it make sense?
> > >
> > > Do you prefer I just remove the "_" and we will refactor it once we
> > > should add a customer for the proper task's util_est?
> >
> > Hurm... I was thinking:
> >
> > task_util_est := max(util_avg, EWMA)
> >
> > But the above mixes ENQUEUED into it.. *confused*.
>
> So mixing in ENQUEUED seems to give it an upward BIAS if the very last
> activation was 'high'. Thereby improving ramp-up.
>
> That seems to be what we want.. might be nice to have that in a comment
> ;-)

Ok, I should have read this one before... to avoid you a longer
(boring) response to your previous email :/

> I'm thinking we want a different name for max(EWMA, ENQUEUED) though,
> but I really can't come up with a sensible suggestion, which I suppose,
> is why you stuck an underscore on it and went on with things.

The only sensible way I come up with is to consider that max as a
util_est "internals"... while the actual task_util_est() (without "_")
should consider util_avg as well, for PELT tracking when a task
is becoming bigger the it's previous activations.

Is that not reasonable enough?

Potentially I can add also the task_util_est() version... but right
now we do not have clients... still gcc should not be upset.

--
#include <best/regards.h>

Patrick Bellasi