public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] ppc64 gives up too quickly on hotplugged cpu
@ 2004-06-02 22:57 Nathan Lynch
  2004-06-10 12:03 ` Pavel Machek
  0 siblings, 1 reply; 2+ messages in thread
From: Nathan Lynch @ 2004-06-02 22:57 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel, Anton Blanchard

[-- Attachment #1: Type: text/plain, Size: 486 bytes --]

Hi-

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.

Patch is against 2.6.7-rc2; please apply.

Signed-off-by: Nathan Lynch <nathanl@austin.ibm.com>

[-- Attachment #2: ppc64_cpu_up_be_more_patient.patch --]
[-- Type: text/x-patch, Size: 910 bytes --]

diff -Naurp -X ../dontdiff 2.6.7-rc2/arch/ppc64/kernel/smp.c 2.6.7-rc2.new/arch/ppc64/kernel/smp.c
--- 2.6.7-rc2/arch/ppc64/kernel/smp.c	2004-06-02 17:08:48.000000000 -0500
+++ 2.6.7-rc2.new/arch/ppc64/kernel/smp.c	2004-06-02 17:12:16.000000000 -0500
@@ -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);

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH] ppc64 gives up too quickly on hotplugged cpu
  2004-06-02 22:57 [PATCH] ppc64 gives up too quickly on hotplugged cpu Nathan Lynch
@ 2004-06-10 12:03 ` Pavel Machek
  0 siblings, 0 replies; 2+ messages in thread
From: Pavel Machek @ 2004-06-10 12:03 UTC (permalink / raw)
  To: Nathan Lynch; +Cc: Andrew Morton, linux-kernel, Anton Blanchard

Hi!

> 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).

Should not CPU check if system given up on it, and go to infinite
loop if it did to prevent data corruption?

Ouch and please inline patches.
-- 
64 bytes from 195.113.31.123: icmp_seq=28 ttl=51 time=448769.1 ms         


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2004-06-10 19:52 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-06-02 22:57 [PATCH] ppc64 gives up too quickly on hotplugged cpu Nathan Lynch
2004-06-10 12:03 ` Pavel Machek

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox