[BUG] SMP, IRQ, USB, ksyms wiredness

Philipp Matthias Hahn pmhahn en titan.lahn.de
Lun Ene 31 21:20:16 CST 2000


On Sat, 29 Jan 2000, Philipp Matthias Hahn wrote:

> Hello Kernel folks!

> Then I tried loading usb-uhci.o which slowed down my machine. A look at
> /proc/interrupts showed the problem:
>  11:          0   IO-APIC-edge  usb-uhci
>  19:    3557778   IO-APIC-level  eth0
I took a look at the source and found some answers:
During boot arch/i386/kernel/pci-pc.c:1134 calls

IO_APIC_get_PCI_irq_vector(dev->bus->number, PCI_SLOT(dev->devfn), pin);

pin=4 is read from pic_config_space. lspci confirms this.

$ /sbin/lspci -s 00:07.2 -vv
00:07.2 USB Controller: Intel Corporation 82371AB PIIX4 USB (rev 01) (prog-if 00 [UHCI])
        Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
        Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
        Latency: 64 set
        Interrupt: pin D routed to IRQ 11
        Region 4: I/O ports at d000

In arch/i386/kernel/io_apic.c:240 this is checked against
(mp_irqs[i].mpc_srcbusirq & 3), which is 0. So PIC->APIC translation fails
an IRQ11 is assigned to usb.

I removed this comparison and usb works fine now.

Is this a bug with APIC, PCI or is my BIOS broken?
My board is a gigabyte 6BXD with 2.4ir with IDE disabled.
When I use MT1.1 the interrupts are mapped as shown during boot:
03 00 0f 00 02 0f 02 10   ISA 15 -> APIC 2 INT 10h
When I use MT1.4 APIC mapping fails for:
03 00 0f 00 00 1c 02 13   PCI 7.0 -> APIC 2 INT 13h

By the way: drivers/usb/usb-uhci.c:2309 calls pci_enable_device()
This call can fail (mentioned in drivers/pci/pci.c:186) but is not
checked!

> Those 35k NMIs are also strange.
Ok, i didn't disable the nmi watchdog.

Philipp
-- 
  / /  (_)__  __ ____  __ Philipp Hahn
 / /__/ / _ \/ // /\ \/ /
/____/_/_//_/\_,_/ /_/\_\ pmhahn en titan.lahn.de


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo en vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/



Más información sobre la lista de distribución Ayuda