summary refs log tree commit diff
path: root/kernel
diff options
context:
space:
mode:
authorCharles Wang <muming.wq@taobao.com>2012-08-20 16:02:33 +0800
committerIngo Molnar <mingo@kernel.org>2012-09-04 14:30:29 +0200
commit749c8814f08f12baa4a9c2812a7c6ede7d69507d (patch)
treec557a90a5f5d94b6de660b293bc7c24cf7e0d0a4 /kernel
parentf319da0c6894fcf55e21320e40506418a2aad629 (diff)
downloadlinux-749c8814f08f12baa4a9c2812a7c6ede7d69507d.tar.gz
sched: Add missing call to calc_load_exit_idle()
Azat Khuzhin reported high loadavg in Linux v3.6

After checking the upstream scheduler code, I found Peter's commit:

  5167e8d5417b sched/nohz: Rewrite and fix load-avg computation -- again

not fully applied, missing the call to calc_load_exit_idle().

After that idle exit in sampling window will always be calculated
to non-idle, and the load will be higher than normal.

This patch adds the missing call to calc_load_exit_idle().

Signed-off-by: Charles Wang <muming.wq@taobao.com>
Cc: stable@kernel.org
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1345449754-27130-1-git-send-email-muming.wq@gmail.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'kernel')
-rw-r--r--kernel/time/tick-sched.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c
index 024540f97f74..3a9e5d5c1091 100644
--- a/kernel/time/tick-sched.c
+++ b/kernel/time/tick-sched.c
@@ -573,6 +573,7 @@ static void tick_nohz_restart_sched_tick(struct tick_sched *ts, ktime_t now)
 	tick_do_update_jiffies64(now);
 	update_cpu_load_nohz();
 
+	calc_load_exit_idle();
 	touch_softlockup_watchdog();
 	/*
 	 * Cancel the scheduled timer and restore the tick