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

From: Mike Galbraith
Date: Fri Jun 17 2016 - 02:21:12 EST


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]#

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.

-Mike