Re: IRQ "nobody cared...Disabling" errors on linux-3.0.10-rt27 on SMP AMD64 system

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Further to my previous posts...

I don't know much about ACPI and how interrupt routing is supposed to work (especially on more complex systems such as this). AFAICT, this board has three PCI expansion buses (not including the AGP port), arranged like so (ASCII art at left is supposed to be the physical layout of the slots on the board):

  ====|==|==    AGP
=======|==      PCI 32-bit 33 MHz, PCI bus 01 (on nForce3),  BIOS slot # 1
==|=======|===  PCI-X,             PCI bus 04 (on AMD 8131), BIOS slot # 4
==|=======|===  PCI-X,             PCI bus 04 (on AMD 8131), BIOS slot # 5
==|=======|===  PCI 64-bit 66 MHz, PCI bus 05 (on AMD 8131), BIOS slot # 2
==|=======|===  PCI 64-bit 66 MHz, PCI bus 05 (on AMD 8131), BIOS slot # 3

Onboard Firewire/IEEE 1394 controller is also on PCI bus 01.
Onboard SiI 3114 SATA controller is also on PCI bus 06.

(This is based on what `biosdecode` and `lspci` report. Actually, the bus numbering changes depending on what cards are installed: I have a RAID card with a PCI bridge on it that bumps the higher bus numbers around.)


# biosdecode
# biosdecode 2.9
BIOS32 Service Directory present.
    Revision: 0
    Calling Interface Address: 0x000F0010
PCI Interrupt Routing 1.0 present.
    Router ID: 00:01.0
    Exclusive IRQs: None
    Compatible Router: 10de:00e0
    Slot Entry 1: ID 00:01, on-board
    Slot Entry 2: ID 00:02, on-board
    Slot Entry 3: ID 00:05, on-board
    Slot Entry 4: ID 00:06, on-board
    Slot Entry 5: ID 00:0b, on-board
    Slot Entry 6: ID 00:09, on-board
    Slot Entry 7: ID 00:0a, on-board
    Slot Entry 8: ID 01:07, slot number 1
    Slot Entry 9: ID 01:06, on-board
    Slot Entry 10: ID 05:01, slot number 2
    Slot Entry 11: ID 05:02, slot number 3
    Slot Entry 12: ID 04:01, slot number 4
    Slot Entry 13: ID 04:02, slot number 5
    Slot Entry 14: ID 05:03, on-board
PNP BIOS 1.0 present.
    Event Notification: Not Supported
    Real Mode 16-bit Code Address: F000:57D2
    Real Mode 16-bit Data Address: F000:0000
    16-bit Protected Mode Code Address: 0x000F57FA
    16-bit Protected Mode Data Address: 0x000F0000
ACPI 2.0 present.
    OEM Identifier: ACPIAM
    RSD Table 32-bit Address: 0xBFF40000
    XSD Table 64-bit Address: 0x00000000BFF40100
SMBIOS 2.3 present.
    Structure Table Length: 1933 bytes
    Structure Table Address: 0x000FA2F0
    Number Of Structures: 47
    Maximum Structure Size: 182 bytes


# lspci
00:00.0 Host bridge: nVidia Corporation nForce3 250Gb Host Bridge (rev a1)
00:01.0 ISA bridge: nVidia Corporation nForce3 250Gb LPC Bridge (rev a2)
00:01.1 SMBus: nVidia Corporation nForce 250Gb PCI System Management (rev a1)
00:02.0 USB Controller: nVidia Corporation CK8S USB Controller (rev a1)
00:02.1 USB Controller: nVidia Corporation CK8S USB Controller (rev a1)
00:02.2 USB Controller: nVidia Corporation nForce3 EHCI USB 2.0 Controller (rev a2) 00:05.0 Ethernet controller: nVidia Corporation CK8S Ethernet Controller (rev a2) 00:08.0 IDE interface: nVidia Corporation CK8S Parallel ATA Controller (v2.5) (rev a2) 00:0a.0 IDE interface: nVidia Corporation nForce3 Serial ATA Controller (rev a2) 00:0b.0 PCI bridge: nVidia Corporation nForce3 250Gb AGP Host to PCI Bridge (rev a2) 00:0e.0 PCI bridge: nVidia Corporation nForce3 250Gb PCI-to-PCI Bridge (rev a2)
00:17.0 Communication controller: nVidia Corporation Device 00ec (rev a1)
00:18.0 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration 00:18.1 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Address Map 00:18.2 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] DRAM Controller 00:18.3 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Miscellaneous Control 00:19.0 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration 00:19.1 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Address Map 00:19.2 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] DRAM Controller 00:19.3 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Miscellaneous Control 01:06.0 FireWire (IEEE 1394): Texas Instruments TSB43AB22/A IEEE-1394a-2000 Controller (PHY/Link)
01:07.0 Multimedia controller: Motorola DSP56361 Digital Signal Processor
02:00.0 VGA compatible controller: ATI Technologies Inc R420 JP [Radeon X800XT] 02:00.1 Display controller: ATI Technologies Inc R420 [X800XT-PE] (Secondary) 03:01.0 PCI bridge: Advanced Micro Devices [AMD] AMD-8131 PCI-X Bridge (rev 12)
03:01.1 PIC: Advanced Micro Devices [AMD] AMD-8131 PCI-X IOAPIC (rev 01)
03:02.0 PCI bridge: Advanced Micro Devices [AMD] AMD-8131 PCI-X Bridge (rev 12)
03:02.1 PIC: Advanced Micro Devices [AMD] AMD-8131 PCI-X IOAPIC (rev 01)
05:02.0 Ethernet controller: Intel Corporation 82545GM Gigabit Ethernet Controller (rev 04) 05:03.0 Mass storage controller: Silicon Image, Inc. SiI 3114 [SATALink/SATARaid] Serial ATA Controller (rev 02)


There seem to be 3 IOAPICs: one on the nForce3, I presume, and two on the AMD 8131.

# dmesg | grep -i ioapic
[    0.000000] ACPI: IOAPIC (id[0x02] address[0xfec00000] gsi_base[0])
[ 0.000000] IOAPIC[0]: apic_id 2, version 17, address 0xfec00000, GSI 0-23
[    0.000000] ACPI: IOAPIC (id[0x03] address[0xfebfe000] gsi_base[24])
[ 0.000000] IOAPIC[1]: apic_id 3, version 17, address 0xfebfe000, GSI 24-27
[    0.000000] ACPI: IOAPIC (id[0x04] address[0xfebff000] gsi_base[28])
[ 0.000000] IOAPIC[2]: apic_id 4, version 17, address 0xfebff000, GSI 28-31
[    0.143685] ACPI: Using IOAPIC for interrupt routing

So it seems the problematic IRQs are both on the nForce3: the onboard Firewire controller and the Gina24 sound card (IRQs 17 and 18) are both on the nForce3's 32-bit 33 MHz PCI bus, and both experience those "irq ... nobody cared" errors. I can't move the Gina24 sound card, as the other slots are keyed for a different voltage, and moving the on-board Firewire controller is obviously not an option either. :)

I also noticed the following groups of kernel messages, which might be of use to someone:

[    0.165850] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]
[    0.166337] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.P0P1._PRT]
[    0.184280] ACPI: PCI Interrupt Routing Table [\_SB_.PCIB.GOLA._PRT]
[    0.184550] ACPI: PCI Interrupt Routing Table [\_SB_.PCIB.GOLB._PRT]

[ 0.185842] ACPI: PCI Interrupt Link [LNKA] (IRQs 16 17 18 19) *0, disabled. [ 0.186111] ACPI: PCI Interrupt Link [LNKB] (IRQs 16 17 18 19) *0, disabled.
[    0.186366] ACPI: PCI Interrupt Link [LNKC] (IRQs 16 17 18 19) *11
[    0.186621] ACPI: PCI Interrupt Link [LNKD] (IRQs 16 17 18 19) *9
[    0.186876] ACPI: PCI Interrupt Link [LNKE] (IRQs 16 17 18 19) *11
[    0.187127] ACPI: PCI Interrupt Link [LUS0] (IRQs 20 21 22) *11
[    0.187364] ACPI: PCI Interrupt Link [LUS1] (IRQs 20 21 22) *7
[    0.187601] ACPI: PCI Interrupt Link [LUS2] (IRQs 20 21 22) *5
[    0.187844] ACPI: PCI Interrupt Link [LKLN] (IRQs 20 21 22) *9
[    0.188099] ACPI: PCI Interrupt Link [LAUI] (IRQs 20 21 22) *0, disabled.
[    0.188338] ACPI: PCI Interrupt Link [LKMO] (IRQs 20 21 22) *0, disabled.
[    0.188578] ACPI: PCI Interrupt Link [LKSM] (IRQs 20 21 22) *9
[    0.188819] ACPI: PCI Interrupt Link [LTID] (IRQs 20 21 22) *0
[    0.189084] ACPI: PCI Interrupt Link [LTIE] (IRQs 20 21 22) *0, disabled.
[    0.189385] ACPI: PCI Interrupt Link [LATA] (IRQs 20 21 22) *14

[ 3.076267] ACPI: PCI Interrupt Link [LTID] BIOS reported IRQ 0, using IRQ 22
[    3.076270] ACPI: PCI Interrupt Link [LTID] enabled at IRQ 22
[    3.087843] ACPI: PCI Interrupt Link [LUS2] enabled at IRQ 21
[    3.095754] ACPI: PCI Interrupt Link [LUS0] enabled at IRQ 20
[    3.149622] ACPI: PCI Interrupt Link [LUS1] enabled at IRQ 22
[    5.116414] ACPI: PCI Interrupt Link [LKLN] enabled at IRQ 21
[    6.803745] ACPI: PCI Interrupt Link [LNKE] enabled at IRQ 19
[    7.073385] ACPI: PCI Interrupt Link [LNKD] enabled at IRQ 18
[    7.433420] ACPI: PCI Interrupt Link [LNKC] enabled at IRQ 17

[ 3.076289] sata_nv 0000:00:0a.0: PCI INT A -> Link[LTID] -> GSI 22 (level, low) -> IRQ 22 [ 3.078327] sata_sil 0000:05:03.0: PCI INT A -> GSI 27 (level, low) -> IRQ 27 [ 3.087859] ehci_hcd 0000:00:02.2: PCI INT C -> Link[LUS2] -> GSI 21 (level, low) -> IRQ 21 [ 3.095766] ohci_hcd 0000:00:02.0: PCI INT A -> Link[LUS0] -> GSI 20 (level, low) -> IRQ 20 [ 3.149626] ohci_hcd 0000:00:02.1: PCI INT B -> Link[LUS1] -> GSI 22 (level, low) -> IRQ 22 [ 5.116423] forcedeth 0000:00:05.0: PCI INT A -> Link[LKLN] -> GSI 21 (level, low) -> IRQ 21 [ 5.167149] e1000 0000:05:02.0: PCI INT A -> GSI 26 (level, low) -> IRQ 26 [ 6.803787] pci 0000:02:00.0: PCI INT A -> Link[LNKE] -> GSI 19 (level, low) -> IRQ 19 [ 7.073410] Echoaudio Gina24 0000:01:07.0: PCI INT A -> Link[LNKD] -> GSI 18 (level, low) -> IRQ 18 [ 7.433444] firewire_ohci 0000:01:06.0: PCI INT A -> Link[LNKC] -> GSI 17 (level, low) -> IRQ 17


Is the kernel "pirq" command-line parameter worth trying? I'm not exactly sure how it works - it seems you specify sequences of numbers in groups of 4 corresponding to the IRQs that you want the kernel to use for each PCI IRQ (PIRQ). Does the ordering of these quads correspond to the PCI bus numbering? (In my case, I have PCI buses 00, 01, 02, 03, 04 and 05, but would bus 00 (nForce3 host bridge), 02 (AGP) and 03 (AMD 8131 bridges) be excluded?) And how would I know what system IRQ number to specify at each position? Should they be chosen to match the BIOS IRQ numbers reported at POST?

Also, are there any disadvantages to running with "noapic" as a permanent fix? Performance? Increased IRQ sharing?

Thanks again,
Chris

--
To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [RT Stable]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]

  Powered by Linux