Re: [patch] sched/fair: Use instantaneous load in wakeup paths

Dietmar Eggemann
2016-06-17T10:55:09Z

On 17/06/16 07:21, Mike Galbraith wrote:
> Here are some schbench runs on an 8x8 box to show that longish
> run/sleep period corner I mentioned.
>
> vogelweide:~/:[1]# for i in `seq 5`; do schbench -m 8 -t 1 -a -r 10 2>&1 | grep 'threads 8'; done
> cputime 30000 threads 8 p99 68
> cputime 30000 threads 8 p99 46
> cputime 30000 threads 8 p99 46
> cputime 30000 threads 8 p99 45
> cputime 30000 threads 8 p99 49
> vogelweide:~/:[0]# echo NO_WAKE_INSTANTANEOUS_LOAD > /sys/kernel/debug/sched_features
> vogelweide:~/:[0]# for i in `seq 5`; do schbench -m 8 -t 1 -a -r 10 2>&1 | grep 'threads 8'; done
> cputime 30000 threads 8 p99 9968
> cputime 30000 threads 8 p99 10224
> vogelweide:~/:[0]#
>

Is this the influence of wake_affine using instantaneous load now too or
did you set SD_BALANCE_WAKE on sd's or both?

> Using instantaneous load, we fill the box every time, without, we stack
> every time. This was with Peter's select_idle_sibling() rewrite
> applied as well, but you can see that it does matter.
>
> That doesn't mean I think my patch should immediately fly upstream
> 'course, who knows, there may be a less messy way to deal with it, or,
> as already stated, maybe it just doesn't matter enough to the real
> world to even bother with.

IMHO, if it would be possible to get rid of sd->wake_idx,
sd->forkexec_idx, the implementation would be less messy. Is there
anyone changing these values to something other that the default 0?

>
> -Mike
>