sched: optimize group load balancer
authorPeter Zijlstra <a.p.zijlstra@chello.nl>
Fri, 17 Oct 2008 17:27:02 +0000 (19:27 +0200)
committerIngo Molnar <mingo@elte.hu>
Mon, 20 Oct 2008 12:05:02 +0000 (14:05 +0200)
I noticed that tg_shares_up() unconditionally takes rq-locks for all cpus
in the sched_domain. This hurts.

We need the rq-locks whenever we change the weight of the per-cpu group sched
entities. To allevate this a little, only change the weight when the new
weight is at least shares_thresh away from the old value.

This avoids the rq-lock for the top level entries, since those will never
be re-weighted, and fuzzes the lower level entries a little to gain performance
in semi-stable situations.

Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Signed-off-by: Ingo Molnar <mingo@elte.hu>

No differences found