Page 1 of 1

ioapic irq distribution

Posted: Tue Mar 09, 2010 11:16 pm
by sawdust
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.

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

ioapic register dump:

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:

Re: ioapic irq distribution

Posted: Wed Mar 10, 2010 5:28 pm
by Brendan
Hi,
sawdust wrote:I have a multi processor system which has 3 ioapics.
Are you sure? Nothing in your I/O APIC dump makes any sense. For example, most I/O APICs have 16, 24 or 32 entries, but you've got 80, 95 and 32 (and it's rare to have more than one I/O APIC and very rare to have more than 2). In all cases I've ever seen where there's more than one I/O APIC, all of the I/O APICs are the same (same number of entries, same I/O APIC version), and the I/O APIC IDs are sequential (e.g. 0x04, 0x05, 0x06 and not 0x5F,0x20 and 0x00). Also, the "I/O APIC version" is very unlikely - for Intel's newest chipsets the I/O APIC version number is 0x20 (where older I/O APICs have lower version numbers).
sawdust wrote:I want to direct the intr from a particular device to always go to the second cpu.
That part will be easy (eventually).
sawdust wrote: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.
When the computer boots the BIOS configures the PIC chips and leaves the I/O APICs disabled (and unconfigured). When your OS boots it has to figure out how to configure the I/O APIC redirection entries (using information the Multi-processor Specification tables and/or ACPI Specification tables). There's no real point in reading from the I/O APIC redirection entries before an OS has configured them properly - it won't tell you anything about how it should be configured or which devices use which I/O APIC redirection entries.


Cheers,

Brendan