Messages in this thread | ![/](/images/icornerl.gif) | | Subject | Re: PCI init issues | From | david.knierim@tekelec ... | Date | Tue, 4 Mar 2003 16:50:27 -0500 |
| |
I added the following line just before "return best_guess;" in the io_apic.c file:
printk("IO_APIC: APIC:%d, BUS:%d, SLOT:%d, IRQ BEST_GUESS: %d\n",apic, bus, slot, best_guess);
I also increased the size of the kernel syslog ring buffer so the important information would not be lost.
Here is the whole messages file including the debug output (search for BEST_GUESS):
(See attached file: msg)
I'll try the ACPI irq lookup stuff to see if it makes a difference.
David
Linus Torvalds <torvalds@transm To: david.knierim@tekelec.com eta.com> cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru>, <alexander@netintact.se>, Donald Becker <becker@scyld.com>, Greg KH <greg@kroah.com>, jamal <hadi@cyberus.ca>, Jeff 03/04/2003 11:41 Garzik <jgarzik@pobox.com>, <kuznet@ms2.inr.ac.ru>, <linux-kernel@vger.kernel.org>, AM <raarts@office.netland.nl>, Robert Olsson <Robert.Olsson@data.slu.se> Subject: Re: PCI init issues
On Tue, 4 Mar 2003 david.knierim@tekelec.com wrote: > > Here is the full messages output for a system with this problem. I had > only provided part of the > messages file to him earlier. This is the entire output.
Well, the interesting parts are missing, because your klogd output has been truncated due to the huge output from the md layer etc. However, I suspect strongly that the issue is in IO_APIC_get_PCI_irq_vector() in arch/i386/kernel/io_apic.c, and I would further guess that it's the fact that your MP tables don't have the full mapping or we're somehow screwing it up.
Can you add a printk() to the case where we return "best_guess" at the end of that function? We have that fuzzy match thing where if we cannot find the exact entry in the MP table we instead use the first entry that matches in everything but the <pin> number, and it would be interesting to hear if that's the logic that triggers.
It's also quite possible that your MP tables just aren't right, and the reason XP works on the machine is that XP uses the ACPI irq lookup stuff. You could try enabling ACPI bootup support (I've never used it on 2.4.x myself, but it's required for at least one of my machines and works fine on 2.5.x).
Linus
(See attached file: msg) [unhandled content-type:application/octet-stream]
| ![\](/images/icornerr.gif) |