sched/nohz: Correctly initialize 'next_balance' in 'nohz' idle balancer
authorDiwakar Tundlam <dtundlam@nvidia.com>
Wed, 7 Mar 2012 22:44:26 +0000 (14:44 -0800)
committerIngo Molnar <mingo@elte.hu>
Mon, 12 Mar 2012 19:43:16 +0000 (20:43 +0100)
The 'next_balance' field of 'nohz' idle balancer must be initialized
to jiffies. Since jiffies is initialized to negative 300 seconds the
'nohz' idle balancer does not run for the first 300s (5mins) after
bootup. If no new processes are spawed or no idle cycles happen, the
load on the cpus will remain unbalanced for that duration.

Signed-off-by: Diwakar Tundlam <dtundlam@nvidia.com>
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1DD7BFEDD3147247B1355BEFEFE4665237994F30EF@HQMAIL04.nvidia.com
Signed-off-by: Ingo Molnar <mingo@elte.hu>
kernel/sched/fair.c

index def17aa302d571a00b58ae87bdd64987d4f5cb80..11f3979bad2aaa04718c8054ab22f93d8e6bbc34 100644 (file)
@@ -5571,6 +5571,7 @@ __init void init_sched_fair_class(void)
        open_softirq(SCHED_SOFTIRQ, run_rebalance_domains);
 
 #ifdef CONFIG_NO_HZ
+       nohz.next_balance = jiffies;
        zalloc_cpumask_var(&nohz.idle_cpus_mask, GFP_NOWAIT);
        cpu_notifier(sched_ilb_notifier, 0);
 #endif