aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/clockchips.h
diff options
context:
space:
mode:
authorSebastien Dugue <sebastien.dugue@bull.net>2008-12-01 08:09:07 -0500
committerIngo Molnar <mingo@elte.hu>2008-12-30 01:37:19 -0500
commit5762ba1873b0bb9faa631aaa02f533c2b9837f82 (patch)
tree3ea61b03a12ec16620f8527c4c83cb90d80cf6cc /include/linux/clockchips.h
parent0ce74d9296c971b2355c26984ad0bc538e34dd6c (diff)
hrtimers: allow the hot-unplugging of all cpus
Impact: fix CPU hotplug hang on Power6 testbox On architectures that support offlining all cpus (at least powerpc/pseries), hot-unpluging the tick_do_timer_cpu can result in a system hang. This comes from the fact that if the cpu going down happens to be the cpu doing the tick, then as the tick_do_timer_cpu handover happens after the cpu is dead (via the CPU_DEAD notification), we're left without ticks, jiffies are frozen and any task relying on timers (msleep, ...) is stuck. That's particularly the case for the cpu looping in __cpu_die() waiting for the dying cpu to be dead. This patch addresses this by having the tick_do_timer_cpu handover happen earlier during the CPU_DYING notification. For this, a new clockevent notification type is introduced (CLOCK_EVT_NOTIFY_CPU_DYING) which is triggered in hrtimer_cpu_notify(). Signed-off-by: Sebastien Dugue <sebastien.dugue@bull.net> Cc: <stable@kernel.org> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'include/linux/clockchips.h')
-rw-r--r--include/linux/clockchips.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/clockchips.h b/include/linux/clockchips.h
index ed3a5d473e52..c6de413c5dd1 100644
--- a/include/linux/clockchips.h
+++ b/include/linux/clockchips.h
@@ -36,6 +36,7 @@ enum clock_event_nofitiers {
36 CLOCK_EVT_NOTIFY_BROADCAST_EXIT, 36 CLOCK_EVT_NOTIFY_BROADCAST_EXIT,
37 CLOCK_EVT_NOTIFY_SUSPEND, 37 CLOCK_EVT_NOTIFY_SUSPEND,
38 CLOCK_EVT_NOTIFY_RESUME, 38 CLOCK_EVT_NOTIFY_RESUME,
39 CLOCK_EVT_NOTIFY_CPU_DYING,
39 CLOCK_EVT_NOTIFY_CPU_DEAD, 40 CLOCK_EVT_NOTIFY_CPU_DEAD,
40}; 41};
41 42