linux-stable/kernel/sched
Mike Galbraith e0a79f529d sched: Fix select_idle_sibling() bouncing cow syndrome
If the previous CPU is cache affine and idle, select it.

The current implementation simply traverses the sd_llc domain,
taking the first idle CPU encountered, which walks buddy pairs
hand in hand over the package, inflicting excruciating pain.

1 tbench pair (worst case) in a 10 core + SMT package:

  pre   15.22 MB/sec 1 procs
  post 252.01 MB/sec 1 procs

Signed-off-by: Mike Galbraith <bitbucket@online.de>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1359371965.5783.127.camel@marge.simpson.net
Signed-off-by: Ingo Molnar <mingo@kernel.org>
2013-02-04 20:07:24 +01:00
..
auto_group.c Revert "sched/autogroup: Fix crash on reboot when autogroup is disabled" 2012-12-11 10:23:45 +01:00
auto_group.h Revert "sched/autogroup: Fix crash on reboot when autogroup is disabled" 2012-12-11 10:23:45 +01:00
clock.c
core.c wake_up_process() should be never used to wakeup a TASK_STOPPED/TRACED task 2013-01-22 10:08:17 -08:00
cpupri.c sched: Fix minor code style issues 2012-07-26 11:47:00 +02:00
cpupri.h
cputime.c cputime: Avoid multiplication overflow on utime scaling 2013-01-27 14:04:44 +01:00
debug.c sched: Replace update_shares weight distribution with per-entity computation 2012-10-24 10:27:28 +02:00
fair.c sched: Fix select_idle_sibling() bouncing cow syndrome 2013-02-04 20:07:24 +01:00
features.h Automatic NUMA Balancing V11 2012-12-16 15:18:08 -08:00
idle_task.c sched/nohz: Rewrite and fix load-avg computation -- again 2012-07-05 20:58:13 +02:00
Makefile sched: Move cputime code to its own file 2012-08-20 13:05:17 +02:00
rt.c sched/rt: Further simplify pick_rt_task() 2013-02-03 19:54:58 +01:00
sched.h Automatic NUMA Balancing V11 2012-12-16 15:18:08 -08:00
stats.c sched: Remove sched_switch 2012-01-27 13:28:53 +01:00
stats.h
stop_task.c sched: Fix migration thread runtime bogosity 2012-08-13 18:41:55 +02:00