Re: [PATCH v4 1/3] sched/fair: add util_est on top of PELT
From: Peter Zijlstra
Date: Tue Feb 06 2018 - 15:09:00 EST
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
;-)
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.