[PATCH 0/2 v3] sched: improve spread of tasks during fork

From: Vincent Guittot
Date: Thu Dec 08 2016 - 11:57:08 EST

Performance regression has been raised by Matt Fleming for fork intensive
bench like hackbench [1]
The patch 1/2 skips the spare_capacity test for fork task because the
utilization has not beed init yet.
The patch 2/2 takes into account load_avg for selecting CPU when
runnable_load of CPUs are close

Tests done by Matt Fleming show perf improvements with the patchset : [2] [3]

Changes since v2:
- renamed no_spare label to skip_spare
- changed load_avg test condition to prefer local cpu when load are similar
- added explanation for using absoluate margin instead of scale factor when
comparing runnable_load

[1] https://lkml.org/lkml/2016/10/18/206
[2] https://lkml.org/lkml/2016/12/8/260
[3] https://lkml.org/lkml/2016/12/8/260

Vincent Guittot (2):
sched: fix find_idlest_group for fork
sched: use load_avg for selecting idlest group

kernel/sched/fair.c | 54 +++++++++++++++++++++++++++++++++++++++++++----------
1 file changed, 44 insertions(+), 10 deletions(-)