WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

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

To: Jeremy Fitzhardinge <jeremy@xxxxxxxx>, xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-devel] pvops-2.6.32 - Interrupt routing problem
From: Bastian Blank <waldi@xxxxxxxxxx>
Date: Wed, 10 Mar 2010 12:19:23 +0100
Cc:
Delivery-date: Wed, 10 Mar 2010 03:20:46 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mutt/1.5.18 (2008-05-17)
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