Re: [rfc patch] sched/fair: Use instantaneous load for fork/exec balancing

From: Dietmar Eggemann
Date: Wed Jun 15 2016 - 15:03:28 EST


On 15/06/16 17:03, Mike Galbraith wrote:
> On Wed, 2016-06-15 at 16:32 +0100, Dietmar Eggemann wrote:
>
>>> In general, the fuzz helps us to not be so spastic. I'm not sure that
>>> we really really need to care all that much, because I strongly suspect
>>> that it's only gonna make any difference at all in corner cases, but
>>> there are real world cases that matter. I know for fact that schbench
>>> (facebook) which is at least based on a real world load fails early due
>>> to us stacking tasks due to that fuzzy view of reality. In that case,
>>> it's because the fuzz consists of a high amplitude aging sawtooth..
>>
>> ... only for fork/exec?
>
> No. Identical workers had longish work/sleep cycle, aging resulted in
> weights that ranged from roughly 300-700(ish), depending on when you
> peeked at them.
>
> -Mike
>

Isn't there a theoretical problem with the scale_load() on CONFIG_64BIT
machines on tip/sched/core? load.weight has a higher resolution than
runnable_load_avg (and so the values in the rq->cpu_load[] array).
Theoretically because [forkexec|wake]_idx is 0 so [target|source]_load()
is nothing else than weighted_cpuload().