Re: [patch] sched/fair: Use instantaneous load in wakeup paths
From: Dietmar Eggemann
Date: Fri Jun 17 2016 - 06:55:14 EST
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
>