Re: v2.6.26-rc9: ACPI PCI irq routing on NUMA? + early_ioremaptrouble

From: Maciej W. Rozycki
Date: Thu Jul 17 2008 - 20:48:57 EST


On Thu, 17 Jul 2008, Vegard Nossum wrote:

> Hah, I actually managed to get netconsole working. This is the log
> that fails (v2.6.26):
>
> http://folk.uio.no/vegardno/linux/numa-netconsole.txt
>
> I think this looks really interesting:
>
> [ 0.093562] ExtINT not setup in hardware but reported by MP table
> [ 0.093854] ENABLING IO-APIC IRQs
> [ 0.094244] ..TIMER: vector=0x31 apic1=-1 pin1=2 apic2=-1 pin2=0
> [ 0.094985] ..MP-BIOS bug: 8254 timer not connected to IO-APIC
> [ 0.094985] ...trying to set up timer (IRQ0) through the 8259A ...
> [ 0.094985] ..... (found pin 0) ...<7>APIC error on CPU0: 00(80)
> [ 0.094985] failed.
> [ 0.094985] ...trying to set up timer as Virtual Wire IRQ...<7>APIC
> error on CPU0: 80(80)
> [ 0.105761] works.
>
> This error would be:
> 7: Illegal register address
>
> Looks like APIC was misconfigured, which might explain IRQ routing weirdness?

Here pin1 and pin2 have been correctly initialised, but apic1 and apic2
are both set to -1. This is an "impossible scenario." Because of that
I/O APIC code actually pokes at random registers of the local APIC which
immediately precedes I/O APIC #0 in the fixmap. Results may be arbitrary.

> Will try to provide the booting one later. Now zZz...

Your system uses an MP table and there were quite a lot of changes in its
support code recently. A bug must have crept in. Please try the appended
patch and the "apic=debug" option for both cases and the resulting logs
may shed some light.

Maciej

patch-next-2.6.26-rc9-20080711-apic-dprintk-0
diff -up --recursive --new-file linux-next-2.6.26-rc9-20080711.macro/include/asm-x86/apic.h linux-next-2.6.26-rc9-20080711/include/asm-x86/apic.h
--- linux-next-2.6.26-rc9-20080711.macro/include/asm-x86/apic.h 2008-07-16 14:50:07.000000000 +0000
+++ linux-next-2.6.26-rc9-20080711/include/asm-x86/apic.h 2008-07-18 00:33:19.000000000 +0000
@@ -10,7 +10,7 @@

#define ARCH_APICTIMER_STOPS_ON_C3 1

-#define Dprintk(x...)
+#define Dprintk printk

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