Messages in this thread | | | Date | Sun, 30 Jan 2000 20:17:20 +0100 (MET) | From | Philipp Matthias Hahn <> | Subject | Re: [BUG] SMP, IRQ, USB, ksyms wiredness |
| |
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@titan.lahn.de
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |