sched/fair: Revert sched-domain iteration breakage
authorPeter Zijlstra <a.p.zijlstra@chello.nl>
Thu, 10 May 2012 22:12:02 +0000 (00:12 +0200)
committerIngo Molnar <mingo@kernel.org>
Mon, 14 May 2012 13:05:26 +0000 (15:05 +0200)
commit04f733b4afac5dc93ae9b0a8703c60b87def491e
tree7ef166c4d1c1dffdc993efbf3791d0f745f5a80c
parent316ad248307fba13be40f01e92a22b89457c32bc
sched/fair: Revert sched-domain iteration breakage

Patches c22402a2f ("sched/fair: Let minimally loaded cpu balance the
group") and 0ce90475 ("sched/fair: Add some serialization to the
sched_domain load-balance walk") are horribly broken so revert them.

The problem is that while it sounds good to have the minimally loaded
cpu do the pulling of more load, the way we walk the domains there is
absolutely no guarantee this cpu will actually get to the domain. In
fact its very likely it wont. Therefore the higher up the tree we get,
the less likely it is we'll balance at all.

The first of mask always walks up, while sucky in that it accumulates
load on the first cpu and needs extra passes to spread it out at least
guarantees a cpu gets up that far and load-balancing happens at all.

Since its now always the first and idle cpus should always be able to
balance so they get a task as fast as possible we can also do away
with the added serialization.

Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/n/tip-rpuhs5s56aiv1aw7khv9zkw6@git.kernel.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
include/linux/sched.h
kernel/sched/core.c
kernel/sched/fair.c