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