aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/sched
diff options
context:
space:
mode:
authorIngo Molnar <mingo@kernel.org>2015-03-27 05:04:06 -0400
committerIngo Molnar <mingo@kernel.org>2015-03-27 05:04:06 -0400
commit4bfe186dbe0a058680e4bfb0d673194f0ceaffd4 (patch)
tree5e374857dcd979d50f51c7091505784cb053d078 /kernel/sched
parent3c435c1e472ba344ee25f795f4807d4457e61f6c (diff)
parent42528795ac1c8d7ba021797ec004904168956d64 (diff)
Merge branch 'for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu into core/rcu
Pull RCU updates from Paul E. McKenney: - Documentation updates. - Changes permitting use of call_rcu() and friends very early in boot, for example, before rcu_init() is invoked. - Miscellaneous fixes. - Add in-kernel API to enable and disable expediting of normal RCU grace periods. - Improve RCU's handling of (hotplug-) outgoing CPUs. Note: ARM support is lagging a bit here, and these improved diagnostics might generate (harmless) splats. - NO_HZ_FULL_SYSIDLE fixes. - Tiny RCU updates to make it more tiny. Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'kernel/sched')
-rw-r--r--kernel/sched/idle.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/kernel/sched/idle.c b/kernel/sched/idle.c
index 80014a178342..d27d36476dca 100644
--- a/kernel/sched/idle.c
+++ b/kernel/sched/idle.c
@@ -210,6 +210,8 @@ use_default:
210 goto exit_idle; 210 goto exit_idle;
211} 211}
212 212
213DEFINE_PER_CPU(bool, cpu_dead_idle);
214
213/* 215/*
214 * Generic idle loop implementation 216 * Generic idle loop implementation
215 * 217 *
@@ -234,8 +236,13 @@ static void cpu_idle_loop(void)
234 check_pgt_cache(); 236 check_pgt_cache();
235 rmb(); 237 rmb();
236 238
237 if (cpu_is_offline(smp_processor_id())) 239 if (cpu_is_offline(smp_processor_id())) {
240 rcu_cpu_notify(NULL, CPU_DYING_IDLE,
241 (void *)(long)smp_processor_id());
242 smp_mb(); /* all activity before dead. */
243 this_cpu_write(cpu_dead_idle, true);
238 arch_cpu_idle_dead(); 244 arch_cpu_idle_dead();
245 }
239 246
240 local_irq_disable(); 247 local_irq_disable();
241 arch_cpu_idle_enter(); 248 arch_cpu_idle_enter();