Re: [BUG] 2.5.63: ESR killed my box!

Linus Torvalds (torvalds@transmeta.com)
Wed, 26 Feb 2003 13:30:09 -0800 (PST)


On Wed, 26 Feb 2003, Ion Badulescu wrote:
> > diff -urpN -X /home/fletch/.diff.exclude virgin/arch/i386/kernel/smpboot.c
> > nonzero_apicid/arch/i386/kernel/smpboot.c
> > --- virgin/arch/i386/kernel/smpboot.c Sat Feb 15 16:11:40 2003
> > +++ nonzero_apicid/arch/i386/kernel/smpboot.c Wed Feb 26 13:02:10 2003
> > @@ -951,6 +951,7 @@ static void __init smp_boot_cpus(unsigne
> > print_cpu_info(&cpu_data[0]);
> >
> > boot_cpu_logical_apicid = logical_smp_processor_id();
> > + boot_cpu_physical_apicid = hard_smp_processor_id();
> >
> > current_thread_info()->cpu = 0;
> > smp_tune_scheduling();
>
> But this patch is for smpboot.c, which is not even compiled in for a UP
> kernel...
>
> Both Rusty and I had problems with a UP+APIC kernel running on an SMP box.

What about detect_init_APIC()?

That one currently does an unconditional

boot_cpu_physical_apicid = 0;

and as far as I can see, this is the path taken by the UP case (because it
doesn't even _try_ to find the SMP config tables).

What happens if you just remove that line (which means that the code
further on will do

*/
if (boot_cpu_physical_apicid == -1U)
boot_cpu_physical_apicid = GET_APIC_ID(apic_read(APIC_ID));

which might be correct.

Linus

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/