Re: [PATCH v2] sched/fair: Make PELT signal more accurate

From: Joel Fernandes
Date: Sat Aug 19 2017 - 13:58:41 EST


Hi Mike,

On Fri, Aug 18, 2017 at 9:57 PM, Mike Galbraith <efault@xxxxxx> wrote:
> On Fri, 2017-08-18 at 16:50 -0700, Joel Fernandes wrote:
>> The PELT signal (sa->load_avg and sa->util_avg) are not updated if the amount
>> accumulated during a single update doesn't cross a period boundary. This is
>> fine in cases where the amount accrued is much smaller than the size of a
>> single PELT window (1ms) however if the amount accrued is high then the
>> relative error (calculated against what the actual signal would be had we
>> updated the averages) can be high - as much 2% in my testing. On plotting
>> signals, I found that there are errors especially high when we update just
>> before the period boundary is hit. These errors can be significantly reduced if
>> we update the averages more often.
>>
>> Inorder to fix this, this patch does the average update by also checking how
>> much time has elapsed since the last update and update the averages if it has
>> been long enough (as a threshold I chose 512us).
>
> Ok, I gotta ask: In order to fix what? What exactly does the small
> but existent overhead increase buy us other than an ever so slightly
> different chart? What is your motivation to care about a microscopic
> change in signal shape?

I wouldn't call the change "microscopic", its about 2% absolute which
comes down to 1% with this change (if you count in relative terms, its
higher and you can see the bump as the signal rises).
If you look at the first chart at [1] at 3.74, that's not microscopic
at all to me.

Also about motivation, as I described in previous threads - I didn't
nail this down to a particular change in behavior but other patches
have been posted before that do things to improve signal accuracy,
this is just one step in that direction.

thanks,

-Joel

[1] https://github.com/joelagnel/joelagnel.github.io/blob/master/misc/pelt-error-v4.pdf

>
> -Mike
>
> --
> You received this message because you are subscribed to the Google Groups "kernel-team" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to kernel-team+unsubscribe@xxxxxxxxxxxx
>