Re: booting SMP P6 kernel on P4 hangs.

Linus Torvalds (torvalds@transmeta.com)
Tue, 31 Jul 2001 10:57:32 -0700


In article <Pine.LNX.4.21.0107310705580.1374-100000@penguin.homenet> you write:
>
>Isn't SMP P6 kernel supposed to boot fine on a P4? Btw, booting with
>"nosmp" works but booting with "noapic" hangs just the same.

It should boot, and it looks like the problem may be a bad MP table.

The fact that it gets to the point of saying "only one processor found"
definitely means that it found a MP table. However, that MP table
doesn't seem to actually describe the (single) CPU in a way that Linux
likes:

>> CPU0: Intel(R) Pentium(R) 4 CPU 1300 Mhz stepping 0a
>> per-CPU timeslice cutoff: 731.49 usecs
>> weird, boot CPU (#0) not listed by the BIOS

Notice?

It looks like your MP table does list a CPU, but it doesn't match the
CPU that is the boot CPU. So first Linux is unhappy about not finding
the boot CPU, but once it has added it it gets to the point of trying to
use the "other" CPU (the one described in the MP table):

>> CPU#0 NMI appears to be stuck
>> testing the IO APIC.............
>> ..........................done
>> calibrating APIC timer...
>> .....CPU clock speed is 1285.2614 Mhz
>> ....host bus clock speed is 0.0000 Mhz
>> cpu:0, clocks:0, slice:0

And yeah, that's not going anywhere.

The way Linux gets the boot CPU ID is by reading the APIC ID. It's
supposed to match the one in the MP table.

The reason "nosmp" works for you is that then we just ignore the MP
table, and just use the boot CPU without worrying about anything else.

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/