Sebastien Dugue
94df7de028
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 >
2009-01-30 22:35:29 +01:00
..
2009-01-06 18:10:26 -08:00
2009-01-06 17:14:01 -08:00
2009-01-11 01:34:25 +01:00
2009-01-09 12:37:15 -08:00
2009-01-12 21:18:37 -08:00
2009-01-07 17:38:32 -05:00
2009-01-09 08:31:11 +11:00
2009-01-08 20:10:38 +00:00
2009-01-08 20:11:07 +00:00
2009-01-21 12:35:43 -08:00
2009-01-07 10:00:22 -08:00
2009-01-09 03:41:08 -05:00
2009-01-15 16:39:41 -08:00
2009-01-07 08:45:46 -08:00
2009-01-15 16:39:41 -08:00
2009-01-09 11:52:14 -08:00
2009-01-08 08:31:12 -08:00
2009-01-08 15:37:43 +00:00
2009-01-09 16:54:42 -08:00
2009-01-15 16:39:41 -08:00
2009-01-29 18:04:45 -08:00
2009-01-30 22:35:29 +01:00
2009-01-14 14:15:14 +01:00
2009-01-09 16:54:41 -08:00
2009-01-15 16:39:41 -08:00
2009-01-08 08:31:11 -08:00
2009-01-15 16:39:41 -08:00
2009-01-26 19:21:26 -08:00
2009-01-09 15:06:12 -08:00
2009-01-12 20:56:41 +01:00
2009-01-26 10:13:08 -08:00
2009-01-28 07:50:14 -08:00
2009-01-08 08:31:00 -08:00
2009-01-08 08:31:00 -08:00
2009-01-08 17:14:59 -08:00
2009-01-08 17:14:59 -08:00
2009-01-15 16:39:41 -08:00
2009-01-09 16:54:42 -08:00
2009-01-26 21:19:52 +01:00
2009-01-26 21:19:57 +01:00
2009-01-14 19:19:04 +01:00
2009-01-26 12:30:12 -08:00
2009-01-15 16:39:41 -08:00
2009-01-15 16:39:41 -08:00
2009-01-07 18:52:44 +01:00
2009-01-15 16:39:41 -08:00
2009-01-06 17:10:53 -08:00
2009-01-15 16:39:38 -08:00
2009-01-08 17:14:59 -08:00
2009-01-15 16:39:37 -08:00
2009-01-15 16:39:41 -08:00
2009-01-07 10:00:22 -08:00
2009-01-08 08:31:15 -08:00
2009-01-20 20:52:10 -08:00
2009-01-29 18:04:43 -08:00
2009-01-15 16:39:41 -08:00
2009-01-08 12:38:58 +00:00
2009-01-08 17:55:03 +00:00
2009-01-27 02:15:49 -05:00
2009-01-15 16:39:41 -08:00
2009-01-15 16:39:38 -08:00
2009-01-15 16:39:41 -08:00
2009-01-08 08:31:10 -08:00
2009-01-09 16:54:41 -08:00
2009-01-09 22:44:25 +01:00
2009-01-11 17:55:16 +01:00
2009-01-08 08:31:07 -08:00
2009-01-08 12:04:47 +00:00
2009-01-14 07:32:44 -08:00
2009-01-08 08:31:07 -08:00
2009-01-27 16:06:21 -08:00
2009-01-14 21:05:05 -08:00
2009-01-07 17:38:31 -05:00
2009-01-08 16:25:18 +11:00
2009-01-09 15:49:06 -07:00
2009-01-07 22:48:15 +01:00
2009-01-07 09:59:50 -08:00
2009-01-08 08:31:05 -08:00
2009-01-09 03:39:43 -05:00
2009-01-26 06:51:26 -05:00
2009-01-07 11:13:22 -08:00
2009-01-07 11:13:11 -08:00
2009-01-16 12:57:58 -08:00
2009-01-15 16:39:41 -08:00
2009-01-08 08:31:12 -08:00
2009-01-08 08:31:12 -08:00
2009-01-07 21:44:20 +01:00
2009-01-07 21:44:20 +01:00
2009-01-16 18:02:10 +01:00
2009-01-15 16:39:41 -08:00
2009-01-10 06:04:33 -08:00
2009-01-15 16:39:37 -08:00
2009-01-29 18:04:45 -08:00
2009-01-08 16:25:18 +11:00
2009-01-11 03:41:58 +01:00
2009-01-27 02:15:45 -05:00
2009-01-14 19:56:50 -08:00
2009-01-08 08:31:10 -08:00
2009-01-29 18:04:44 -08:00
2009-01-07 11:27:12 -08:00
2009-01-07 10:00:11 -08:00
2009-01-27 16:15:36 -08:00
2009-01-07 10:00:16 -08:00
2009-01-26 09:47:56 -08:00