ioapic irq distribution
Posted: Tue Mar 09, 2010 11:16 pm
I have a multi processor system which has 3 ioapics. I want to direct the intr from a particular device to always go to the second cpu. So, first, tried to dump the ioapic registers, but could not make any sense out of it or correlate with the lspci output from linux. Any help would be appreciated. The 4 page intel manual was of limited use.
ioapic register dump:
Code: Select all
00:18.0 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration
Flags: fast devsel
Capabilities: [80] HyperTransport: Host or Secondary Interface
Capabilities: [a0] HyperTransport: Host or Secondary Interface
Capabilities: [c0] HyperTransport: Host or Secondary Interface
00:18.1 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Address Map
Flags: fast devsel
00:18.2 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] DRAM Controller
Flags: fast devsel
00:18.3 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Miscellaneous Control
Flags: fast devsel
Kernel driver in use: k8temp
Kernel modules: k8temp
01:06.0 PCI bridge: Advanced Micro Devices [AMD] AMD-8111 PCI (rev 07)
Flags: bus master, 66MHz, medium devsel, latency 64
Bus: primary=01, secondary=02, subordinate=02, sec-latency=64
I/O behind bridge: 00001000-00001fff
Memory behind bridge: fc000000-fd0fffff
Prefetchable memory behind bridge: 50000000-500fffff
Capabilities: [c0] HyperTransport: Slave or Primary Interface
Capabilities: [f0] HyperTransport: Interrupt Discovery and Configuration
Kernel modules: shpchp
01:07.0 ISA bridge: Advanced Micro Devices [AMD] AMD-8111 LPC (rev 05)
Subsystem: Tyan Computer Device 2881
Flags: bus master, 66MHz, medium devsel, latency 0
01:07.1 IDE interface: Advanced Micro Devices [AMD] AMD-8111 IDE (rev 03) (prog-if 8a [Master SecP PriP])
Subsystem: Tyan Computer Device 2881
Flags: bus master, medium devsel, latency 32
[virtual] Memory at 000001f0 (32-bit, non-prefetchable) [disabled] [size=8]
[virtual] Memory at 000003f0 (type 3, non-prefetchable) [disabled] [size=1]
[virtual] Memory at 00000170 (32-bit, non-prefetchable) [disabled] [size=8]
[virtual] Memory at 00000370 (type 3, non-prefetchable) [disabled] [size=1]
I/O ports at 3420 [size=16]
Kernel driver in use: pata_amd
Kernel modules: pata_amd
01:07.2 SMBus: Advanced Micro Devices [AMD] AMD-8111 SMBus 2.0 (rev 02)
Subsystem: Tyan Computer Device 2881
Flags: medium devsel, IRQ 19
I/O ports at 3400 [size=32]
Kernel driver in use: amd8111_smbus2
Kernel modules: i2c-amd8111
01:07.3 Bridge: Advanced Micro Devices [AMD] AMD-8111 ACPI (rev 05)
Subsystem: Tyan Computer Device 2881
Flags: medium devsel
Kernel driver in use: amd756_smbus
Kernel modules: i2c-amd756, amd-rng
01:0a.0 PCI bridge: Advanced Micro Devices [AMD] AMD-8131 PCI-X Bridge (rev 12)
Flags: bus master, 66MHz, medium devsel, latency 64
Bus: primary=01, secondary=03, subordinate=03, sec-latency=64
I/O behind bridge: 00002000-00002fff
Memory behind bridge: fd100000-fd1fffff
Prefetchable memory behind bridge: 0000000050100000-00000000502fffff
Capabilities: [a0] PCI-X bridge device
Capabilities: [b8] HyperTransport: Interrupt Discovery and Configuration
Capabilities: [c0] HyperTransport: Slave or Primary Interface
Kernel modules: shpchp
01:0a.1 PIC: Advanced Micro Devices [AMD] AMD-8131 PCI-X IOAPIC (rev 01) (prog-if 10)
Subsystem: Tyan Computer Device 2881
Flags: bus master, medium devsel, latency 0
Memory at fd300000 (64-bit, non-prefetchable) [size=4K]
01:0b.0 PCI bridge: Advanced Micro Devices [AMD] AMD-8131 PCI-X Bridge (rev 12)
Flags: bus master, 66MHz, medium devsel, latency 64
Bus: primary=01, secondary=04, subordinate=04, sec-latency=64
Memory behind bridge: fd200000-fd2fffff
Prefetchable memory behind bridge: 00000000fd400000-00000000fd4fffff
Capabilities: [a0] PCI-X bridge device
Capabilities: [b8] HyperTransport: Interrupt Discovery and Configuration
Kernel modules: shpchp
01:0b.1 PIC: Advanced Micro Devices [AMD] AMD-8131 PCI-X IOAPIC (rev 01) (prog-if 10)
Subsystem: Tyan Computer Device 2881
Flags: bus master, medium devsel, latency 0
Memory at fd301000 (64-bit, non-prefetchable) [size=4K]
02:00.0 USB Controller: Advanced Micro Devices [AMD] AMD-8111 USB (rev 0b) (prog-if 10)
Subsystem: Tyan Computer Device 2881
Flags: bus master, medium devsel, latency 64, IRQ 19
Memory at fd000000 (32-bit, non-prefetchable) [size=4K]
Kernel driver in use: ohci_hcd
Kernel modules: ohci-hcd
02:00.1 USB Controller: Advanced Micro Devices [AMD] AMD-8111 USB (rev 0b) (prog-if 10)
Subsystem: Tyan Computer Device 2881
Flags: bus master, medium devsel, latency 64, IRQ 19
Memory at fd001000 (32-bit, non-prefetchable) [size=4K]
Kernel driver in use: ohci_hcd
Kernel modules: ohci-hcd
02:05.0 Mass storage controller: Silicon Image, Inc. SiI 3114 [SATALink/SATARaid] Serial ATA Controller (rev 02)
Subsystem: Silicon Image, Inc. SiI 3114 [SATALink/SATARaid] Serial ATA Controller
Flags: bus master, 66MHz, medium devsel, latency 64, IRQ 17
I/O ports at 1410 [size=8]
I/O ports at 1430 [size=4]
I/O ports at 1420 [size=8]
I/O ports at 1440 [size=4]
I/O ports at 1400 [size=16]
Memory at fd003000 (32-bit, non-prefetchable) [size=1K]
[virtual] Expansion ROM at 50000000 [disabled] [size=512K]
Capabilities: [60] Power Management version 2
Kernel driver in use: sata_sil
Kernel modules: sata_sil
02:06.0 VGA compatible controller: ATI Technologies Inc Rage XL (rev 27)
Subsystem: ATI Technologies Inc Device 0000
Flags: bus master, stepping, medium devsel, latency 64, IRQ 18
Memory at fc000000 (32-bit, non-prefetchable) [size=16M]
I/O ports at 1000 [size=256]
Memory at fd002000 (32-bit, non-prefetchable) [size=4K]
Expansion ROM at 50080000 [disabled] [size=128K]
Capabilities: [5c] Power Management version 2
Kernel modules: atyfb
03:09.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5704 Gigabit Ethernet (rev 03)
Subsystem: Broadcom Corporation Device 1644
Flags: bus master, 66MHz, medium devsel, latency 64, IRQ 24
Memory at fd100000 (64-bit, non-prefetchable) [size=64K]
Memory at fd110000 (64-bit, non-prefetchable) [size=64K]
Expansion ROM at 50200000 [disabled] [size=64K]
Capabilities: [40] PCI-X non-bridge device
Capabilities: [48] Power Management version 2
Capabilities: [50] Vital Product Data <?>
Capabilities: [58] Message Signalled Interrupts: Mask- 64bit+ Queue=0/3 Enable-
Kernel driver in use: tg3
Kernel modules: tg3
03:09.1 Ethernet controller: Broadcom Corporation NetXtreme BCM5704 Gigabit Ethernet (rev 03)
Subsystem: Broadcom Corporation Device 1644
Flags: bus master, 66MHz, medium devsel, latency 64, IRQ 25
Memory at fd120000 (64-bit, non-prefetchable) [size=64K]
Memory at fd130000 (64-bit, non-prefetchable) [size=64K]
Expansion ROM at 50210000 [disabled] [size=64K]
Capabilities: [40] PCI-X non-bridge device
Capabilities: [48] Power Management version 2
Capabilities: [50] Vital Product Data <?>
Capabilities: [58] Message Signalled Interrupts: Mask- 64bit+ Queue=0/3 Enable-
Kernel driver in use: tg3
Kernel modules: tg3
03:0a.0 SCSI storage controller: Adaptec AIC-7902 U320 (rev 10)
Subsystem: Adaptec Device ffff
Flags: bus master, 66MHz, slow devsel, latency 64, IRQ 24
I/O ports at 2000 [disabled] [size=256]
Memory at fd140000 (64-bit, non-prefetchable) [size=8K]
I/O ports at 2400 [disabled] [size=256]
[virtual] Expansion ROM at 50100000 [disabled] [size=512K]
Capabilities: [dc] Power Management version 2
Capabilities: [a0] Message Signalled Interrupts: Mask- 64bit+ Queue=0/1 Enable-
Capabilities: [94] PCI-X non-bridge device
Kernel driver in use: aic79xx
Kernel modules: aic79xx
03:0a.1 SCSI storage controller: Adaptec AIC-7902 U320 (rev 10)
Subsystem: Adaptec Device ffff
Flags: bus master, 66MHz, slow devsel, latency 64, IRQ 25
I/O ports at 2800 [disabled] [size=256]
Memory at fd142000 (64-bit, non-prefetchable) [size=8K]
I/O ports at 2c00 [disabled] [size=256]
[virtual] Expansion ROM at 50180000 [disabled] [size=512K]
Capabilities: [dc] Power Management version 2
Capabilities: [a0] Message Signalled Interrupts: Mask- 64bit+ Queue=0/1 Enable-
Capabilities: [94] PCI-X non-bridge device
Kernel driver in use: aic79xx
Kernel modules: aic79xx
04:03.0 RAID bus controller: LSI Logic / Symbios Logic MegaRAID (rev 01)
Subsystem: Dell Device 0518
Flags: bus master, 66MHz, slow devsel, latency 64, IRQ 28
Memory at fd400000 (32-bit, prefetchable) [size=64K]
Expansion ROM at fd200000 [disabled] [size=64K]
Capabilities: [80] Power Management version 2
Kernel driver in use: megaraid
Kernel modules: megaraid_mbox
Code: Select all
number of MP IRQ sources: 34.
number of IO-APIC #2 registers: 0.
number of IO-APIC #3 registers: 0.
number of IO-APIC #4 registers: 0.
testing the IO APIC.......................
IO APIC #2......
.... register #00: 5F504D5F
....... : physical APIC id: 5F
....... : Delivery Type: 0
....... : LTS : 1
.... register #01: 5F504D5F
....... : max redirection entries: 0050
....... : PRQ implemented: 0
....... : IO APIC version: 005F
.... IRQ redirection table:
NR Dst Mask Trig IRR Pol Stat Dmod Deli Vect:
00 05F 0 0 1 0 0 1 5 5F
01 05F 0 0 1 0 0 1 5 5F
02 05F 0 0 1 0 0 1 5 5F
03 05F 0 0 1 0 0 1 5 5F
04 05F 0 0 1 0 0 1 5 5F
05 05F 0 0 1 0 0 1 5 5F
06 05F 0 0 1 0 0 1 5 5F
07 05F 0 0 1 0 0 1 5 5F
08 05F 0 0 1 0 0 1 5 5F
09 05F 0 0 1 0 0 1 5 5F
0a 05F 0 0 1 0 0 1 5 5F
0b 05F 0 0 1 0 0 1 5 5F
0c 05F 0 0 1 0 0 1 5 5F
0d 05F 0 0 1 0 0 1 5 5F
0e 05F 0 0 1 0 0 1 5 5F
0f 05F 0 0 1 0 0 1 5 5F
10 05F 0 0 1 0 0 1 5 5F
11 05F 0 0 1 0 0 1 5 5F
12 05F 0 0 1 0 0 1 5 5F
13 05F 0 0 1 0 0 1 5 5F
14 05F 0 0 1 0 0 1 5 5F
15 05F 0 0 1 0 0 1 5 5F
16 05F 0 0 1 0 0 1 5 5F
17 05F 0 0 1 0 0 1 5 5F
18 05F 0 0 1 0 0 1 5 5F
19 05F 0 0 1 0 0 1 5 5F
1a 05F 0 0 1 0 0 1 5 5F
1b 05F 0 0 1 0 0 1 5 5F
1c 05F 0 0 1 0 0 1 5 5F
1d 05F 0 0 1 0 0 1 5 5F
1e 05F 0 0 1 0 0 1 5 5F
1f 05F 0 0 1 0 0 1 5 5F
20 05F 0 0 1 0 0 1 5 5F
21 05F 0 0 1 0 0 1 5 5F
22 05F 0 0 1 0 0 1 5 5F
23 05F 0 0 1 0 0 1 5 5F
24 05F 0 0 1 0 0 1 5 5F
25 05F 0 0 1 0 0 1 5 5F
26 05F 0 0 1 0 0 1 5 5F
27 05F 0 0 1 0 0 1 5 5F
28 05F 0 0 1 0 0 1 5 5F
29 05F 0 0 1 0 0 1 5 5F
2a 05F 0 0 1 0 0 1 5 5F
2b 05F 0 0 1 0 0 1 5 5F
2c 05F 0 0 1 0 0 1 5 5F
2d 05F 0 0 1 0 0 1 5 5F
2e 05F 0 0 1 0 0 1 5 5F
2f 05F 0 0 1 0 0 1 5 5F
30 05F 0 0 1 0 0 1 5 5F
31 05F 0 0 1 0 0 1 5 5F
32 05F 0 0 1 0 0 1 5 5F
33 05F 0 0 1 0 0 1 5 5F
34 05F 0 0 1 0 0 1 5 5F
35 05F 0 0 1 0 0 1 5 5F
36 05F 0 0 1 0 0 1 5 5F
37 05F 0 0 1 0 0 1 5 5F
38 05F 0 0 1 0 0 1 5 5F
39 05F 0 0 1 0 0 1 5 5F
3a 05F 0 0 1 0 0 1 5 5F
3b 05F 0 0 1 0 0 1 5 5F
3c 05F 0 0 1 0 0 1 5 5F
3d 05F 0 0 1 0 0 1 5 5F
3e 05F 0 0 1 0 0 1 5 5F
3f 05F 0 0 1 0 0 1 5 5F
40 05F 0 0 1 0 0 1 5 5F
41 05F 0 0 1 0 0 1 5 5F
42 05F 0 0 1 0 0 1 5 5F
43 05F 0 0 1 0 0 1 5 5F
44 05F 0 0 1 0 0 1 5 5F
45 05F 0 0 1 0 0 1 5 5F
46 05F 0 0 1 0 0 1 5 5F
47 05F 0 0 1 0 0 1 5 5F
48 05F 0 0 1 0 0 1 5 5F
49 05F 0 0 1 0 0 1 5 5F
4a 05F 0 0 1 0 0 1 5 5F
4b 05F 0 0 1 0 0 1 5 5F
4c 05F 0 0 1 0 0 1 5 5F
4d 05F 0 0 1 0 0 1 5 5F
4e 05F 0 0 1 0 0 1 5 5F
4f 05F 0 0 1 0 0 1 5 5F
50 05F 0 0 1 0 0 1 5 5F
IO APIC #3......
.... register #00: 205F504D
....... : physical APIC id: 20
....... : Delivery Type: 0
....... : LTS : 1
.... register #01: 205F504D
....... : max redirection entries: 005F
....... : PRQ implemented: 0
....... : IO APIC version: 004D
.... IRQ redirection table:
NR Dst Mask Trig IRR Pol Stat Dmod Deli Vect:
00 020 1 0 1 0 1 0 0 4D
01 020 1 0 1 0 1 0 0 4D
02 020 1 0 1 0 1 0 0 4D
03 020 1 0 1 0 1 0 0 4D
04 020 1 0 1 0 1 0 0 4D
05 020 1 0 1 0 1 0 0 4D
06 020 1 0 1 0 1 0 0 4D
07 020 1 0 1 0 1 0 0 4D
08 020 1 0 1 0 1 0 0 4D
09 020 1 0 1 0 1 0 0 4D
0a 020 1 0 1 0 1 0 0 4D
0b 020 1 0 1 0 1 0 0 4D
0c 020 1 0 1 0 1 0 0 4D
0d 020 1 0 1 0 1 0 0 4D
0e 020 1 0 1 0 1 0 0 4D
0f 020 1 0 1 0 1 0 0 4D
10 020 1 0 1 0 1 0 0 4D
11 020 1 0 1 0 1 0 0 4D
12 020 1 0 1 0 1 0 0 4D
13 020 1 0 1 0 1 0 0 4D
14 020 1 0 1 0 1 0 0 4D
15 020 1 0 1 0 1 0 0 4D
16 020 1 0 1 0 1 0 0 4D
17 020 1 0 1 0 1 0 0 4D
18 020 1 0 1 0 1 0 0 4D
19 020 1 0 1 0 1 0 0 4D
1a 020 1 0 1 0 1 0 0 4D
1b 020 1 0 1 0 1 0 0 4D
1c 020 1 0 1 0 1 0 0 4D
1d 020 1 0 1 0 1 0 0 4D
1e 020 1 0 1 0 1 0 0 4D
1f 020 1 0 1 0 1 0 0 4D
20 020 1 0 1 0 1 0 0 4D
21 020 1 0 1 0 1 0 0 4D
22 020 1 0 1 0 1 0 0 4D
23 020 1 0 1 0 1 0 0 4D
24 020 1 0 1 0 1 0 0 4D
25 020 1 0 1 0 1 0 0 4D
26 020 1 0 1 0 1 0 0 4D
27 020 1 0 1 0 1 0 0 4D
28 020 1 0 1 0 1 0 0 4D
29 020 1 0 1 0 1 0 0 4D
2a 020 1 0 1 0 1 0 0 4D
2b 020 1 0 1 0 1 0 0 4D
2c 020 1 0 1 0 1 0 0 4D
2d 020 1 0 1 0 1 0 0 4D
2e 020 1 0 1 0 1 0 0 4D
2f 020 1 0 1 0 1 0 0 4D
30 020 1 0 1 0 1 0 0 4D
31 020 1 0 1 0 1 0 0 4D
32 020 1 0 1 0 1 0 0 4D
33 020 1 0 1 0 1 0 0 4D
34 020 1 0 1 0 1 0 0 4D
35 020 1 0 1 0 1 0 0 4D
36 020 1 0 1 0 1 0 0 4D
37 020 1 0 1 0 1 0 0 4D
38 020 1 0 1 0 1 0 0 4D
39 020 1 0 1 0 1 0 0 4D
3a 020 1 0 1 0 1 0 0 4D
3b 020 1 0 1 0 1 0 0 4D
3c 020 1 0 1 0 1 0 0 4D
3d 020 1 0 1 0 1 0 0 4D
3e 020 1 0 1 0 1 0 0 4D
3f 020 1 0 1 0 1 0 0 4D
40 020 1 0 1 0 1 0 0 4D
41 020 1 0 1 0 1 0 0 4D
42 020 1 0 1 0 1 0 0 4D
43 020 1 0 1 0 1 0 0 4D
44 020 1 0 1 0 1 0 0 4D
45 020 1 0 1 0 1 0 0 4D
46 020 1 0 1 0 1 0 0 4D
47 020 1 0 1 0 1 0 0 4D
48 020 1 0 1 0 1 0 0 4D
49 020 1 0 1 0 1 0 0 4D
4a 020 1 0 1 0 1 0 0 4D
4b 020 1 0 1 0 1 0 0 4D
4c 020 1 0 1 0 1 0 0 4D
4d 020 1 0 1 0 1 0 0 4D
4e 020 1 0 1 0 1 0 0 4D
4f 020 1 0 1 0 1 0 0 4D
50 020 1 0 1 0 1 0 0 4D
51 020 1 0 1 0 1 0 0 4D
52 020 1 0 1 0 1 0 0 4D
53 020 1 0 1 0 1 0 0 4D
54 020 1 0 1 0 1 0 0 4D
55 020 1 0 1 0 1 0 0 4D
56 020 1 0 1 0 1 0 0 4D
57 020 1 0 1 0 1 0 0 4D
58 020 1 0 1 0 1 0 0 4D
59 020 1 0 1 0 1 0 0 4D
5a 020 1 0 1 0 1 0 0 4D
5b 020 1 0 1 0 1 0 0 4D
5c 020 1 0 1 0 1 0 0 4D
5d 020 1 0 1 0 1 0 0 4D
5e 020 1 0 1 0 1 0 0 4D
5f 020 1 0 1 0 1 0 0 4D
IO APIC #4......
.... register #00: 00205F50
....... : physical APIC id: 00
....... : Delivery Type: 0
....... : LTS : 1
.... register #01: 00205F50
....... : max redirection entries: 0020
....... : PRQ implemented: 0
....... : IO APIC version: 0050
.... IRQ redirection table:
NR Dst Mask Trig IRR Pol Stat Dmod Deli Vect:
00 000 0 0 1 0 1 1 7 50
01 000 0 0 1 0 1 1 7 50
02 000 0 0 1 0 1 1 7 50
03 000 0 0 1 0 1 1 7 50
04 000 0 0 1 0 1 1 7 50
05 000 0 0 1 0 1 1 7 50
06 000 0 0 1 0 1 1 7 50
07 000 0 0 1 0 1 1 7 50
08 000 0 0 1 0 1 1 7 50
09 000 0 0 1 0 1 1 7 50
0a 000 0 0 1 0 1 1 7 50
0b 000 0 0 1 0 1 1 7 50
0c 000 0 0 1 0 1 1 7 50
0d 000 0 0 1 0 1 1 7 50
0e 000 0 0 1 0 1 1 7 50
0f 000 0 0 1 0 1 1 7 50
10 000 0 0 1 0 1 1 7 50
11 000 0 0 1 0 1 1 7 50
12 000 0 0 1 0 1 1 7 50
13 000 0 0 1 0 1 1 7 50
14 000 0 0 1 0 1 1 7 50
15 000 0 0 1 0 1 1 7 50
16 000 0 0 1 0 1 1 7 50
17 000 0 0 1 0 1 1 7 50
18 000 0 0 1 0 1 1 7 50
19 000 0 0 1 0 1 1 7 50
1a 000 0 0 1 0 1 1 7 50
1b 000 0 0 1 0 1 1 7 50
1c 000 0 0 1 0 1 1 7 50
1d 000 0 0 1 0 1 1 7 50
1e 000 0 0 1 0 1 1 7 50
1f 000 0 0 1 0 1 1 7 50
20 000 0 0 1 0 1 1 7 50
IRQ to pin mappings: