sched: Ditch per cgroup task lists for load-balancing
authorPeter Zijlstra <a.p.zijlstra@chello.nl>
Mon, 20 Feb 2012 20:49:09 +0000 (21:49 +0100)
committerIngo Molnar <mingo@elte.hu>
Thu, 1 Mar 2012 12:08:37 +0000 (13:08 +0100)
commit367456c756a6b84f493ca9cc5b17b1f5d38ef466
tree0e95a2fa5cb25ea14e2841d84d4d2410ff383e33
parentddcdf6e7d9919d139031fa2a6addd9544a9a833e
sched: Ditch per cgroup task lists for load-balancing

Per cgroup load-balance has numerous problems, chief amongst them that
there is no real sane order in them. So stop pretending it makes sense
and enqueue all tasks on a single list.

This also allows us to more easily fix the fwd progress issue
uncovered by the lock-break stuff. Rotate the list on failure to
migreate and limit the total iterations to nr_running (which with
releasing the lock isn't strictly accurate but close enough).

Also add a filter that skips very light tasks on the first attempt
around the list, this attempts to avoid shooting whole cgroups around
without affecting over balance.

Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: pjt@google.com
Link: http://lkml.kernel.org/n/tip-tx8yqydc7eimgq7i4rkc3a4g@git.kernel.org
Signed-off-by: Ingo Molnar <mingo@elte.hu>
kernel/sched/core.c
kernel/sched/fair.c
kernel/sched/sched.h