public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Mark Hemment <markhe@veritas.com>
To: Linus Torvalds <torvalds@transmeta.com>,
	Alan Cox <alan@lxorguk.ukuu.org.uk>
Cc: <linux-kernel@vger.kernel.org>
Subject: Re: booting SMP P6 kernel on P4 hangs.
Date: Fri, 3 Aug 2001 11:48:01 +0100 (BST)	[thread overview]
Message-ID: <Pine.LNX.4.33.0108031140410.26125-200000@alloc.wat.veritas.com> (raw)
In-Reply-To: <200107311757.f6VHvWH01678@penguin.transmeta.com>

[-- Attachment #1: Type: TEXT/PLAIN, Size: 2006 bytes --]

Hi,

On Tue, 31 Jul 2001, Linus Torvalds wrote:
> 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 problem is the MP table contains no configuration blocks, and a zero
local APIC address.  I've attached the full boot messages.

  The work around is trap that there are no config blocks, and fall back
to UP.  Patch attached.

Mark



diff -ur -X dontdiff linux-2.4.7/arch/i386/kernel/apic.c p4-2.4.7/arch/i386/kernel/apic.c
--- linux-2.4.7/arch/i386/kernel/apic.c	Wed Jun 20 18:06:38 2001
+++ p4-2.4.7/arch/i386/kernel/apic.c	Fri Aug  3 11:10:55 2001
@@ -345,9 +345,8 @@
 {
 	unsigned long apic_phys;

-	if (smp_found_config) {
-		apic_phys = mp_lapic_addr;
-	} else {
+	apic_phys = mp_lapic_addr;
+	if (!apic_phys) {
 		/*
 		 * set up a fake all zeroes page to simulate the
 		 * local APIC and another one for the IO-APIC. We
diff -ur -X dontdiff linux-2.4.7/arch/i386/kernel/mpparse.c p4-2.4.7/arch/i386/kernel/mpparse.c
--- linux-2.4.7/arch/i386/kernel/mpparse.c	Tue Jun 12 02:15:27 2001
+++ p4-2.4.7/arch/i386/kernel/mpparse.c	Fri Aug  3 11:04:18 2001
@@ -306,6 +306,23 @@
 	mp_lapic_addr = mpc->mpc_lapic;

 	/*
+	 * Buggy BIOS work around.
+	 * Some BIOSes report an MP table, with correct signature, checksum,
+	 * etc, but with no configuration blocks.
+	 * In this case fall back to UP.
+	 *
+	 * Note: On a system which showed this problem, the local APIC
+	 * address was given as NULL.  This may not be the case for all
+	 * systems, so take the address (incase it is valid) and check it
+	 * init_apic_mappings().
+	 */
+	if (count >= mpc->mpc_length) {
+		printk("Short mptable - assuming UP system\n");
+		smp_found_config = 0;
+		return 1;
+	}
+
+	/*
 	 *	Now process the configuration blocks.
 	 */
 	while (count < mpc->mpc_length) {

[-- Attachment #2: bootmsg --]
[-- Type: TEXT/PLAIN, Size: 4469 bytes --]

Linux version 2.4.7-VxOS (root@einstein) (gcc version egcs-2.91.66
19990314/Lin
x (egcs-1.1.2 release)) #1 SMP Sun Jul 29 17:07:50 BST 2001
BIOS-provided physical RAM map:
 BIOS-e820: 0000000000000000 - 00000000000a0000 (usable)
 BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)
 BIOS-e820: 0000000000100000 - 000000000ff87000 (usable)
 BIOS-e820: 000000000ff87000 - 000000000ffa6000 (ACPI data)
 BIOS-e820: 000000000ffa6000 - 0000000010000000 (reserved)
 BIOS-e820: 00000000fec00000 - 00000000fec10000 (reserved)
 BIOS-e820: 00000000fee00000 - 00000000fee10000 (reserved)
 BIOS-e820: 00000000ffb00000 - 0000000100000000 (reserved)
Scan SMP from 40000000 for 1024 bytes.
Scan SMP from 4009fc00 for 1024 bytes.
Scan SMP from 400f0000 for 65536 bytes.
found SMP MP-table at 000fe710
hm, page 000fe000 reserved twice.
hm, page 000ff000 reserved twice.
hm, page 000f0000 reserved twice.
On node 0 totalpages: 65415
zone(0): 4096 pages.
zone(1): 61319 pages.
zone(2): 0 pages.
Intel MultiProcessor Specification v1.4
    IMCR and PIC compatibility mode.
OEM ID: DELL     Product ID: WS 330       APIC at: 0x0
BIOS bug, no explicit IRQ entries, using default mptable. (tell your hw
vendor)
Bus #0 is ISA
Int: type 0, pol 0, trig 0, bus 0, IRQ 00, APIC ID 0, APIC INT 02
Int: type 0, pol 0, trig 0, bus 0, IRQ 01, APIC ID 0, APIC INT 01
Int: type 0, pol 0, trig 0, bus 0, IRQ 03, APIC ID 0, APIC INT 03
Int: type 0, pol 0, trig 0, bus 0, IRQ 04, APIC ID 0, APIC INT 04
Int: type 0, pol 0, trig 0, bus 0, IRQ 05, APIC ID 0, APIC INT 05
Int: type 0, pol 0, trig 0, bus 0, IRQ 06, APIC ID 0, APIC INT 06
Int: type 0, pol 0, trig 0, bus 0, IRQ 07, APIC ID 0, APIC INT 07
Int: type 0, pol 0, trig 0, bus 0, IRQ 08, APIC ID 0, APIC INT 08
Int: type 0, pol 0, trig 0, bus 0, IRQ 09, APIC ID 0, APIC INT 09
Int: type 0, pol 0, trig 0, bus 0, IRQ 0a, APIC ID 0, APIC INT 0a
Int: type 0, pol 0, trig 0, bus 0, IRQ 0b, APIC ID 0, APIC INT 0b
Int: type 0, pol 0, trig 0, bus 0, IRQ 0c, APIC ID 0, APIC INT 0c
Int: type 0, pol 0, trig 0, bus 0, IRQ 0d, APIC ID 0, APIC INT 0d
Int: type 0, pol 0, trig 0, bus 0, IRQ 0e, APIC ID 0, APIC INT 0e
Int: type 0, pol 0, trig 0, bus 0, IRQ 0f, APIC ID 0, APIC INT 0f
Int: type 3, pol 0, trig 0, bus 0, IRQ 00, APIC ID 0, APIC INT 00
Processors: 0
mapped APIC to ffffe000 (00000000)
Kernel command line: auto BOOT_IMAGE=linux-nopae ro root=305
BOOT_FILE=/boot/vm
inuz-2.4.7-nopae console=ttyS0,9600 console=tty0
Initializing CPU#0
Detected 1285.359 MHz processor.
Console: colour VGA+ 80x25
Calibrating delay loop... 2562.45 BogoMIPS
Memory: 253632k/261660k available (1445k kernel code, 7644k reserved, 1139k
dat
, 352k init, 0k highmem)
kdb version 1.8 by Scott Lurndal, Keith Owens. Copyright SGI, All Rights
Reserv
d
Dentry-cache hash table entries: 32768 (order: 6, 262144 bytes)
Inode-cache hash table entries: 16384 (order: 5, 131072 bytes)
Mount-cache hash table entries: 4096 (order: 3, 32768 bytes)
Buffer-cache hash table entries: 16384 (order: 4, 65536 bytes)
Page-cache hash table entries: 65536 (order: 6, 262144 bytes)
CPU: L1 I cache: 12K, L1 D cache: 8K
CPU: L2 cache: 256K
Intel machine check architecture supported.
Intel machine check reporting enabled on CPU#0.
Enabling fast FPU save and restore... done.
Enabling unmasked SIMD FPU exception support... done.
Checking 'hlt' instruction... OK.
POSIX conformance testing by UNIFIX
mtrr: v1.40 (20010327) Richard Gooch (rgooch@atnf.csiro.au)
mtrr: detected mtrr type: Intel
CPU: L1 I cache: 12K, L1 D cache: 8K
CPU: L2 cache: 256K
Intel machine check reporting enabled on CPU#0.
CPU0: Intel(R) Pentium(R) 4 CPU 1300MHz stepping 0a
per-CPU timeslice cutoff: 731.49 usecs.
weird, boot CPU (#0) not listed by the BIOS.
Getting VERSION: f000acde
Getting VERSION: f0ffac21
leaving PIC mode, enabling symmetric IO mode.
enabled ExtINT on CPU#0
ESR value before enabling vector: 00000000
ESR value after enabling vector: 00000000
CPU present map: 1
Before bogomips.
Error: only one processor found.
Boot done.
ENABLING IO-APIC IRQs
Synchronizing Arb IDs.
..TIMER: vector=31 pin1=2 pin2=0
activating NMI Watchdog ... done.
CPU#0 NMI appears to be stuck.
testing the IO APIC.......................
.................................... done.
calibrating APIC timer ...
..... CPU clock speed is 1285.3667 MHz.
..... host bus clock speed is 0.0000 MHz.
cpu: 0, clocks: 0, slice: 0

  parent reply	other threads:[~2001-08-03 10:47 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-07-31  6:10 booting SMP P6 kernel on P4 hangs Tigran Aivazian
2001-07-31 17:57 ` Linus Torvalds
2001-08-01  9:39   ` Arjan van de Ven
2001-08-01  9:47     ` Tigran Aivazian
2001-08-01 11:49     ` Maciej W. Rozycki
2001-08-02 12:30       ` Alan Cox
2001-08-02 14:00         ` john slee
2001-08-02 14:50           ` Alan Cox
2001-08-03  9:10             ` Chris Wedgwood
2001-08-03  8:50           ` Steffen Persvold
2001-08-01 16:18     ` Linus Torvalds
2001-08-02  0:51       ` Alan Cox
2001-08-03 10:48   ` Mark Hemment [this message]
2001-08-06 14:48     ` Maciej W. Rozycki
2001-08-06 15:08       ` Mark Hemment
  -- strict thread matches above, loose matches on Subject: below --
2001-07-31 10:45 Mikael Pettersson
2001-08-01 16:00 Petr Vandrovec

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Pine.LNX.4.33.0108031140410.26125-200000@alloc.wat.veritas.com \
    --to=markhe@veritas.com \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=linux-kernel@vger.kernel.org \
    --cc=torvalds@transmeta.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox