Commit 1df9796b authored by Andrew Morton's avatar Andrew Morton Committed by Linus Torvalds

[PATCH] ppc64 gives up too quickly on hotplugged cpu

From: Nathan Lynch <nathanl@austin.ibm.com>

On some systems it can take a hotplugged cpu much longer to come up than it
would at boot.  If the cpu comes up after we've given up on it, it tends to
die in its first attempt to kmem_cache_alloc (uninitialized percpu data, I
imagine).

In my experimentation I haven't seen a processor take more than one second
to become available; the patch waits five seconds just to be safe.
Signed-off-by: default avatarNathan Lynch <nathanl@austin.ibm.com>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 0c2aaf20
......@@ -912,8 +912,20 @@ int __devinit __cpu_up(unsigned int cpu)
* use this value that I found through experimentation.
* -- Cort
*/
for (c = 5000; c && !cpu_callin_map[cpu]; c--)
udelay(100);
if (system_state == SYSTEM_BOOTING)
for (c = 5000; c && !cpu_callin_map[cpu]; c--)
udelay(100);
#ifdef CONFIG_HOTPLUG_CPU
else
/*
* CPUs can take much longer to come up in the
* hotplug case. Wait five seconds.
*/
for (c = 25; c && !cpu_callin_map[cpu]; c--) {
set_current_state(TASK_UNINTERRUPTIBLE);
schedule_timeout(HZ/5);
}
#endif
if (!cpu_callin_map[cpu]) {
printk("Processor %u is stuck.\n", cpu);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment