public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* Re: PROBLEM: APIC on a Pentium Classic SMP, kernel 2.4.21-pre5 to 2.4.23-pre3
@ 2003-09-08  9:33 Mikael Pettersson
  2003-09-08 10:40 ` joe briggs
                   ` (2 more replies)
  0 siblings, 3 replies; 8+ messages in thread
From: Mikael Pettersson @ 2003-09-08  9:33 UTC (permalink / raw)
  To: linux-kernel, mathieu.desnoyers, mingo

On Sun, 07 Sep 2003 18:37:48 -0400, Mathieu Desnoyers wrote:
>IRQ problems with APIC enabled on a Neptune chipset, Pentium 90 SMP.
>
>Description
>
>Since kernel 2.4.21-pre2, IRQ problems are present on my Pentium 90 SMP, wi=
>th
>APIC enabled. It works well with 2.4.20 with APIC enabled, or with newer
>kernels with "noapic" kernel option.

There were a lot of I/O-APIC & MP table parsing changes in 2.4.21
for clustered apic. Chances are something there broke on your
ancient BIOS & mobo. I can't immediately see anything obviously
broken in 2.4.21: you'll have to identify the first pre-patch where
things broke and then test or revert it piece by piece.

>On kernel 2.4.21-pre2, there is a kernel oops before this, with a
>"Dereferencing NULL pointer".

You didn't run that through ksymoops and post it, so how is anyone
supposed to be able to debug it?

^ permalink raw reply	[flat|nested] 8+ messages in thread
* Re: PROBLEM: APIC on a Pentium Classic SMP, 2.4.21-pre2 and 2.4.21-pre3 ksymoops
@ 2003-09-09 20:31 Mikael Pettersson
  2003-09-10 10:26 ` Maciej W. Rozycki
  0 siblings, 1 reply; 8+ messages in thread
From: Mikael Pettersson @ 2003-09-09 20:31 UTC (permalink / raw)
  To: mathieu.desnoyers; +Cc: linux-kernel, mingo

On Mon, 08 Sep 2003 19:22:17 -0400, Mathieu Desnoyers wrote:
>> >On kernel 2.4.21-pre2, there is a kernel oops before this, with a
>> >"Dereferencing NULL pointer".
>> 
>> You didn't run that through ksymoops and post it, so how is anyone
>> supposed to be able to debug it?
>
>As only 2.4.21-pre2 and 2.4.21-pre3 kernels show this problem, I thought
>it has been corrected in 2.4.21-pre4. But, as it can be very useful in
>finding the problem, here are the ksymoops for 2.4.21-pre2 and
>2.4.21-pre3 kernels, quite similar though.
...
>Code;  c0115da7 <IO_APIC_get_PCI_irq_vector+17/130>
>00000000 <_EIP>:
>Code;  c0115da7 <IO_APIC_get_PCI_irq_vector+17/130>   <=====
>   0:   83 3c 90 ff               cmpl   $0xffffffff,(%eax,%edx,4)   <=====

Ok, that one is line 295 in io_apic.c. It bombs in 2.4.21-pre{2,3}
because mp_bus_id_to_pci_bus was changed from a static array to
a dynamically allocated array. On your machine, smp_read_mpc() in
mpparse.c doesn't get to the point where it allocates that array,
so the array is NULL in io_apic.c and you get an oops.

Fixing the oops is easy (see below), but the real problem is
that 2.4.21-pre2 apparently broke MP table parsing on your HW.
I suggest you sprinkle tracing printk()s in setup/smpboot/mpparse
and compare 2.4.20 (good) and later (bad) to see where things
start to diverge.

/Mikael

--- linux-2.4.21-pre2/arch/i386/kernel/io_apic.c.~1~	2003-09-09 21:27:39.000000000 +0200
+++ linux-2.4.21-pre2/arch/i386/kernel/io_apic.c	2003-09-09 22:17:02.464082064 +0200
@@ -292,7 +292,7 @@
 
 	Dprintk("querying PCI -> IRQ mapping bus:%d, slot:%d, pin:%d.\n",
 		bus, slot, pin);
-	if (mp_bus_id_to_pci_bus[bus] == -1) {
+	if ((mp_bus_id_to_pci_bus==NULL) || mp_bus_id_to_pci_bus[bus] == -1) {
 		printk(KERN_WARNING "PCI BIOS passed nonexistent PCI bus %d!\n", bus);
 		return -1;
 	}

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2003-09-10 16:59 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-09-08  9:33 PROBLEM: APIC on a Pentium Classic SMP, kernel 2.4.21-pre5 to 2.4.23-pre3 Mikael Pettersson
2003-09-08 10:40 ` joe briggs
2003-09-08 15:06 ` Maciej W. Rozycki
2003-09-08 23:22 ` PROBLEM: APIC on a Pentium Classic SMP, 2.4.21-pre2 and 2.4.21-pre3 ksymoops Mathieu Desnoyers
  -- strict thread matches above, loose matches on Subject: below --
2003-09-09 20:31 Mikael Pettersson
2003-09-10 10:26 ` Maciej W. Rozycki
2003-09-10 16:18   ` Mikael Pettersson
2003-09-10 16:58     ` Maciej W. Rozycki

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox