Broken LPAR cpu bringup

Nathan Lynch nathanl at austin.ibm.com
Tue Jul 20 08:10:14 EST 2004


On Thu, 2004-07-15 at 17:57, Dave Hansen wrote:
> > They still get stuck on my tree.  I'll try on a plain tree in a little
> > bit.
>
> Nope, still oopses in the load_balance sched domains code:

Ok, third (and hopefully final) attempt.  Try this without any of the
others I sent.  I think this change caused it:

http://kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.8-rc1/2.6.8-rc1-mm1/broken-out/detect-too-early-schedule-attempts.patch

Backing out the above change works, too.

Tested on a 4-way partition on an 8-way p650.

Nathan

diff -prauN -X /home/nathanl/working/dontdiff 2.6.8-rc1-mm1/arch/ppc64/kernel/smp.c 2.6.8-rc1-mm1.1/arch/ppc64/kernel/smp.c
--- 2.6.8-rc1-mm1/arch/ppc64/kernel/smp.c	2004-07-19 15:54:22.000000000 -0500
+++ 2.6.8-rc1-mm1.1/arch/ppc64/kernel/smp.c	2004-07-19 16:16:44.000000000 -0500
@@ -374,7 +374,7 @@ static inline int __devinit smp_startup_

 	/* At boot time the cpus are already spinning in hold
 	 * loops, so nothing to do. */
- 	if (system_state == SYSTEM_BOOTING)
+ 	if (system_state < SYSTEM_RUNNING)
 		return 1;

 	pcpu = find_physical_cpu_to_start(get_hard_smp_processor_id(lcpu));
@@ -868,7 +868,7 @@ int __devinit __cpu_up(unsigned int cpu)
 	int c;

 	/* At boot, don't bother with non-present cpus -JSCHOPP */
-	if (system_state == SYSTEM_BOOTING && !cpu_present_at_boot(cpu))
+	if (system_state < SYSTEM_RUNNING && !cpu_present_at_boot(cpu))
 		return -ENOENT;

 	paca[cpu].prof_counter = 1;
@@ -902,7 +902,7 @@ int __devinit __cpu_up(unsigned int cpu)
 	 * use this value that I found through experimentation.
 	 * -- Cort
 	 */
-	if (system_state == SYSTEM_BOOTING)
+	if (system_state < SYSTEM_RUNNING)
 		for (c = 5000; c && !cpu_callin_map[cpu]; c--)
 			udelay(100);
 #ifdef CONFIG_HOTPLUG_CPU


** Sent via the linuxppc64-dev mail list. See http://lists.linuxppc.org/





More information about the Linuxppc64-dev mailing list