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

[Xen-devel] pvops-2.6.32 - Interrupt routing problem



Hi

I was able to test Xen 3.4.3-rc3 and the current 2.6.32 tree on a
HP DL385 G6. It booted after some time, but was unuable to access
several devices using traditional IO-APIC. The interrupt configuration listed
for these is identical between Xen and native except that in the native case
several of them are marked as "IO-APIC-fasteoi". Devices using MSI are working
fine.

Partial /proc/interrupts output with comparation of Xen and native:
|  5:  IO-APIC-fasteoi   ehci_hcd:usb1, ohci_hcd:usb3, ohci_hcd:usb4
|  5: xen-pirq-ioapic-edge  ehci_hcd:usb1, ohci_hcd:usb2, ohci_hcd:usb4
| 14:  IO-APIC-fasteoi   sata_svw
| 14: xen-pirq-ioapic-edge  sata_svw

Kernel log showing the setup of this devices:
[    0.000000] xen: registering gsi 5 triggering 1 polarity 0
[    0.000000] xen: --> irq=5
[    0.000000] Already setup the GSI :5
[    0.000000] xen: registering gsi 14 triggering 1 polarity 0
[    0.000000] xen: --> irq=14
[    0.000000] Already setup the GSI :14
[    1.625355] ACPI: PCI Interrupt Link [IUSB] enabled at IRQ 5
[    1.625594] xen: registering gsi 5 triggering 0 polarity 1
[    1.625607] xen_allocate_pirq: returning irq 5 for gsi 5
[    1.625872] xen: --> irq=5
[    1.625883] Already setup the GSI :5
[    1.626062] ehci_hcd 0000:00:07.2: PCI INT A -> Link[IUSB] -> GSI 5 (level, 
low) -> IRQ 5
[    1.626506] ehci_hcd 0000:00:07.2: EHCI Host Controller
[    1.626805] ehci_hcd 0000:00:07.2: new USB bus registered, assigned bus 
number 1
[    1.652169] ehci_hcd 0000:00:07.2: irq 5, io mem 0xf3dc0000
[    1.717401] sata_svw 0000:01:0e.0: version 2.3
[    1.718282] ACPI: PCI Interrupt Link [ISF0] enabled at IRQ 14
[    1.718520] xen: registering gsi 14 triggering 0 polarity 1
[    1.718533] xen_allocate_pirq: returning irq 14 for gsi 14
[    1.718747] xen: --> irq=14
[    1.718754] Already setup the GSI :14
[    1.718903] sata_svw 0000:01:0e.0: PCI INT A -> Link[ISF0] -> GSI 14 (level, 
low) -> IRQ 14
[    1.719514] scsi0 : sata_svw
[    1.719922] scsi1 : sata_svw
[    1.720404] scsi2 : sata_svw
[    1.720739] scsi3 : sata_svw
[    1.720996] ata1: SATA max UDMA/133 mmio m8192@0xf3ff0000 port 0xf3ff0000 
irq 14
[    1.721272] ata2: SATA max UDMA/133 mmio m8192@0xf3ff0000 port 0xf3ff0100 
irq 14
[    1.721536] ata3: SATA max UDMA/133 mmio m8192@0xf3ff0000 port 0xf3ff0200 
irq 14
[    1.721809] ata4: SATA max UDMA/133 mmio m8192@0xf3ff0000 port 0xf3ff0300 
irq 14

Kernel log showing interrupt problems on GSI 5:
[    7.452081] ohci_hcd 0000:00:07.1: Unlink after no-IRQ?  Controller is 
probably using the wrong IRQ.

Kernel log showing interrupt problems on GSI 14:
[    2.044101] ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
[    2.068427] ata1.00: ATAPI: Optiarc DVD RW AD-7561S, AH52, max UDMA/100
[    2.100357] ata1.00: configured for UDMA/100
[    7.100098] ata1.00: qc timeout (cmd 0xa0)
[    7.100263] ata1.00: TEST_UNIT_READY failed (err_mask=0x5)
[    7.420101] ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
[    7.476356] ata1.00: configured for UDMA/100
[   12.476098] ata1.00: qc timeout (cmd 0xa0)
[   12.476264] ata1.00: TEST_UNIT_READY failed (err_mask=0x5)
[   12.476463] ata1: limiting SATA link speed to 1.5 Gbps
[   12.476647] ata1.00: limiting speed to UDMA/100:PIO3
[   12.796136] ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 310)
[   12.852354] ata1.00: configured for UDMA/100
[   17.852103] ata1.00: qc timeout (cmd 0xa0)
[   17.852267] ata1.00: TEST_UNIT_READY failed (err_mask=0x5)
[   17.852463] ata1.00: disabled
[   17.852593] ata1: hard resetting link
[   18.172109] ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 310)
[   18.172351] ata1: EH complete
[   18.496032] ata2: SATA link down (SStatus 4 SControl 300)
[   18.824031] ata3: SATA link down (SStatus 4 SControl 300)
[   19.152032] ata4: SATA link down (SStatus 4 SControl 300)

IO-APIC info from Xen:
(XEN) number of MP IRQ sources: 15.
(XEN) number of IO-APIC #8 registers: 16.
(XEN) number of IO-APIC #9 registers: 16.
(XEN) number of IO-APIC #10 registers: 16.
(XEN) testing the IO APIC.......................
(XEN) IO APIC #8......
(XEN) .... register #00: 08000000
(XEN) .......    : physical APIC id: 08
(XEN) .......    : Delivery Type: 0
(XEN) .......    : LTS          : 0
(XEN) .... register #01: 000F0011
(XEN) .......     : max redirection entries: 000F
(XEN) .......     : PRQ implemented: 0
(XEN) .......     : IO APIC version: 0011
(XEN) .... register #02: 08000000
(XEN) .......     : arbitration: 08
(XEN) .... IRQ redirection table:
(XEN)  NR Log Phy Mask Trig IRR Pol Stat Dest Deli Vect:   
(XEN)  00 000 00  1    0    0   0   0    0    0    00
(XEN)  01 008 08  0    0    0   0   0    0    0    20
(XEN)  02 000 00  0    0    0   0   0    0    0    F0
(XEN)  03 000 00  0    0    0   0   0    0    0    28
(XEN)  04 000 00  0    0    0   0   0    0    0    F1
(XEN)  05 005 05  0    0    0   0   0    0    0    30
(XEN)  06 000 00  0    0    0   0   0    0    0    38
(XEN)  07 000 00  0    0    0   0   0    0    0    40
(XEN)  08 008 08  0    0    0   0   0    0    0    48
(XEN)  09 000 00  0    1    0   1   0    0    0    50
(XEN)  0a 000 00  0    0    0   0   0    0    0    58
(XEN)  0b 000 00  0    0    0   0   0    0    0    60
(XEN)  0c 008 08  0    0    0   0   0    0    0    68
(XEN)  0d 000 00  0    0    0   0   0    0    0    70
(XEN)  0e 00B 0B  0    0    0   0   0    0    0    78
(XEN)  0f 000 00  0    0    0   0   0    0    0    88
(XEN) IO APIC #9......
(XEN) .... register #00: 09000000
(XEN) .......    : physical APIC id: 09
(XEN) .......    : Delivery Type: 0
(XEN) .......    : LTS          : 0
(XEN) .... register #01: 000F0011
(XEN) .......     : max redirection entries: 000F
(XEN) .......     : PRQ implemented: 0
(XEN) .......     : IO APIC version: 0011
(XEN) .... register #02: 09000000
(XEN) .......     : arbitration: 09
(XEN) .... IRQ redirection table:
(XEN)  NR Log Phy Mask Trig IRR Pol Stat Dest Deli Vect:   
(XEN)  00 000 00  1    0    0   0   0    0    0    00
(XEN)  01 000 00  1    0    0   0   0    0    0    00
(XEN)  02 000 00  1    0    0   0   0    0    0    00
(XEN)  03 000 00  1    0    0   0   0    0    0    00
(XEN)  04 000 00  1    0    0   0   0    0    0    00
(XEN)  05 000 00  1    0    0   0   0    0    0    00
(XEN)  06 000 00  1    0    0   0   0    0    0    00
(XEN)  07 000 00  1    0    0   0   0    0    0    00
(XEN)  08 000 00  1    0    0   0   0    0    0    00
(XEN)  09 000 00  1    0    0   0   0    0    0    00
(XEN)  0a 000 00  1    0    0   0   0    0    0    00
(XEN)  0b 000 00  1    0    0   0   0    0    0    00
(XEN)  0c 000 00  1    0    0   0   0    0    0    00
(XEN)  0d 000 00  1    0    0   0   0    0    0    00
(XEN)  0e 000 00  1    0    0   0   0    0    0    00
(XEN)  0f 000 00  1    0    0   0   0    0    0    00
(XEN) IO APIC #10......
(XEN) .... register #00: 0A000000
(XEN) .......    : physical APIC id: 0A
(XEN) .......    : Delivery Type: 0
(XEN) .......    : LTS          : 0
(XEN) .... register #01: 000F0011
(XEN) .......     : max redirection entries: 000F
(XEN) .......     : PRQ implemented: 0
(XEN) .......     : IO APIC version: 0011
(XEN) .... register #02: 0A000000
(XEN) .......     : arbitration: 0A
(XEN) .... IRQ redirection table:
(XEN)  NR Log Phy Mask Trig IRR Pol Stat Dest Deli Vect:   
(XEN)  00 000 00  1    1    0   1   0    0    0    C0
(XEN)  01 000 00  1    1    0   1   0    0    0    C8
(XEN)  02 000 00  1    1    0   1   0    0    0    D0
(XEN)  03 000 00  1    1    0   1   0    0    0    D8
(XEN)  04 000 00  1    1    0   1   0    0    0    B8
(XEN)  05 000 00  1    0    0   0   0    0    0    00
(XEN)  06 000 00  1    1    0   1   0    0    0    98
(XEN)  07 000 00  1    1    0   1   0    0    0    A0
(XEN)  08 000 00  1    1    0   1   0    0    0    A8
(XEN)  09 000 00  1    1    0   1   0    0    0    B0
(XEN)  0a 000 00  1    1    0   1   0    0    0    90
(XEN)  0b 000 00  1    0    0   0   0    0    0    00
(XEN)  0c 000 00  1    1    0   1   0    0    0    A1
(XEN)  0d 00B 0B  0    1    0   1   0    0    0    91
(XEN)  0e 008 08  0    1    0   1   0    0    0    99
(XEN)  0f 000 00  1    0    0   0   0    0    0    00
(XEN) Using vector-based indexing
(XEN) IRQ to pin mappings:
(XEN) IRQ240 -> 0:2
(XEN) IRQ32 -> 0:1
(XEN) IRQ40 -> 0:3
(XEN) IRQ241 -> 0:4
(XEN) IRQ48 -> 0:5
(XEN) IRQ56 -> 0:6
(XEN) IRQ64 -> 0:7
(XEN) IRQ72 -> 0:8
(XEN) IRQ80 -> 0:9
(XEN) IRQ88 -> 0:10
(XEN) IRQ96 -> 0:11
(XEN) IRQ104 -> 0:12
(XEN) IRQ112 -> 0:13
(XEN) IRQ120 -> 0:14
(XEN) IRQ136 -> 0:15
(XEN) IRQ192 -> 2:0
(XEN) IRQ200 -> 2:1
(XEN) IRQ208 -> 2:2
(XEN) IRQ216 -> 2:3
(XEN) IRQ184 -> 2:4
(XEN) IRQ152 -> 2:6
(XEN) IRQ160 -> 2:7
(XEN) IRQ168 -> 2:8
(XEN) IRQ176 -> 2:9
(XEN) IRQ144 -> 2:10
(XEN) IRQ161 -> 2:12
(XEN) IRQ145 -> 2:13
(XEN) IRQ153 -> 2:14

-- 
Kirk to Enterprise -- beam down yeoman Rand and a six-pack.

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.