sched: cgroup: Implement different treatment for idle shares
authorPeter Zijlstra <a.p.zijlstra@chello.nl>
Thu, 3 Dec 2009 17:00:07 +0000 (18:00 +0100)
committerIngo Molnar <mingo@elte.hu>
Wed, 9 Dec 2009 09:03:09 +0000 (10:03 +0100)
commitcd8ad40de36c2fe75f3b731bd70198b385895246
treec1e6d5c8dddfa0d9ad643a1df8e92f26700e3143
parentfb58bac5c75bfff8bbf7d02071a10a62f32fe28b
sched: cgroup: Implement different treatment for idle shares

When setting the weight for a per-cpu task-group, we have to put in a
phantom weight when there is no work on that cpu, otherwise we'll not
service that cpu when new work gets placed there until we again update
the per-cpu weights.

We used to add these phantom weights to the total, so that the idle
per-cpu shares don't get inflated, this however causes the non-idle
parts to get deflated, causing unexpected weight distibutions.

Reverse this, so that the non-idle shares are correct but the idle
shares are inflated.

Reported-by: Yasunori Goto <y-goto@jp.fujitsu.com>
Tested-by: Yasunori Goto <y-goto@jp.fujitsu.com>
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
LKML-Reference: <1257934048.23203.76.camel@twins>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
kernel/sched.c