diff options
author | Paul Turner <pjt@google.com> | 2010-11-15 15:47:07 -0800 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2010-11-18 13:27:49 +0100 |
commit | c66eaf619c0c7937e9ded160ae83b5a7a6b19b56 (patch) | |
tree | 04fca9a8b4c017efa00d7e7077a1aba9d454248a /kernel/sched_fair.c | |
parent | a7a4f8a752ec734b2eab904fc863d5dc873de338 (diff) | |
download | lwn-c66eaf619c0c7937e9ded160ae83b5a7a6b19b56.tar.gz lwn-c66eaf619c0c7937e9ded160ae83b5a7a6b19b56.zip |
sched: Update shares on idle_balance
Since shares updates are no longer expensive and effectively local, update them
at idle_balance(). This allows us to more quickly redistribute shares to
another cpu when our load becomes idle.
Signed-off-by: Paul Turner <pjt@google.com>
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
LKML-Reference: <20101115234938.204191702@google.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'kernel/sched_fair.c')
-rw-r--r-- | kernel/sched_fair.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/kernel/sched_fair.c b/kernel/sched_fair.c index 6c84439ce987..33f941dcf88c 100644 --- a/kernel/sched_fair.c +++ b/kernel/sched_fair.c @@ -3343,6 +3343,7 @@ static void idle_balance(int this_cpu, struct rq *this_rq) */ raw_spin_unlock(&this_rq->lock); + update_shares(this_cpu); for_each_domain(this_cpu, sd) { unsigned long interval; int balance = 1; |