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

Re: [Xen-devel] Xen-unstable: xen panic RIP: dpci_softirq



Monday, November 17, 2014, 9:43:47 PM, you wrote:

> . snip..
>> > # cat /proc/interrupts |grep eth
>> >  36:     384183          0  xen-pirq-ioapic-level  eth0
>> >  63:          1          0  xen-pirq-msi-x     eth1
>> >  64:         24     661961  xen-pirq-msi-x     eth1-rx-0
>> >  65:        205          0  xen-pirq-msi-x     eth1-rx-1
>> >  66:        162          0  xen-pirq-msi-x     eth1-tx-0
>> >  67:        190          0  xen-pirq-msi-x     eth1-tx-1
>> > Is that a similar distribution of IRQ/MSIx you end up having?
>> 
>> These are when they are still active and assigned to dom0 (and not owned by 
>> pci-back) or in the guest ?

> In the guest.
>> 
>> I attached my /proc/interrupts for both dom0 as guest 16 with all guests 
>> running 
>> (on a Xen from before the dpci changes). 
>> With the devices passed through I only see one line with the IRQ of a 
>> PCI soundcard passed through to a PV guest:
>>   22:      38959          0          0          0          0          0  
>> xen-pirq-ioapic-level  xen-pciback[0000:03:06.0]
>> 
>> All the other devices passed through (to HVM guests) are not visible in 
>> /proc/interrupts of dom0.

> Right.
>> 
>> In the guest i do get these:
>>  23:         35          0          0          0  xen-pirq-ioapic-level  
>> uhci_hcd:usb3
>>  40:   13440077          0          0          0  xen-pirq-ioapic-level  
>> cx25821[1], cx25821[1]

> That is a bit odd. You have two 'request_irq' off this sole device, which 
> would
> imply that there are _two_ devices which are using the same interrupt line.

> But how is that possible when your device:

> 0a:00.0 Multimedia video controller: Conexant Systems, Inc. Device 8210
>         Flags: bus master, fast devsel, latency 0, IRQ 47
>         Memory at fe200000 (64-bit, non-prefetchable) [size=2M]
>         Capabilities: [40] Express Endpoint, MSI 00
>         Capabilities: [80] Power Management version 3
>         Capabilities: [90] Vital Product Data
>         Capabilities: [a0] MSI: Enable- Count=1/1 Maskable- 64bit+
>         Capabilities: [100] Advanced Error Reporting
>         Capabilities: [200] Virtual Channel
>         Kernel driver in use: pciback

> Has only one IRQ! What is the name of this device? Perhaps I've another one 
> that
> is similar to this. Could you attach

Well it's a videograbber .. with also one port for audio (not used) that 
registers with alsa. I can have a look if i can disable the audio part and see 
if it makes a 
difference, i don't use it anyway.


>  a) 'lspci -vvvv' from your guest please?
Attached

>  b) The  the full 'dmesg' from your guest?
Attached

>  c) the /var/log/xen/qemu-dm-XXX ? Hmm, you are using qemu-xen so it won't log
>     that much information. Could you try 'qemu-traditional' or would that
>     mess up with XHCI?
Attached, it contains some info (since i enabled debugging already) but most 
about MSI-X and not much about the legacy irq case though ...

I don't think traditional will mess up XHCI, it's also worth a try.

When looking at the driver /drivers/media/pci/cx25821 it's also clear why it 
doesn't enable MSI, though the card would support it according to lspci, the 
drivers lacks support (when i grep for MSI).

Also the driver seems to have an parameter to do irq debugging .. no idea how 
hard that will flood logs, but it's also worth a try :-)
cx25821-video.c:47:MODULE_PARM_DESC(irq_debug, "enable debug messages [IRQ 
handler]");


> In regards to your other question:
>         Hi Konrad,
>         Here is the xl dmesg output with this patch (attached with debug-key 
> i and M
>         output). What i don't get .. is that d16 and d17 each have a device 
> passed through
>         that seems to be using the same pirq 87 ?

> Those are per guest. They are the MSI values after 84 or so.
Hrrm yes i had found that already :-) 
All those (legacy) irq, msi, gsi, vector, pirq numbers can be a bit mind 
boggling ..  what corresponds to what where and when.

> Back to your crash:

> d16 OK-softirq 458msec ago, state:1, 52039 count, [prev:ffff83054ef283e0, 
> next:ffff83054ef283e0] ffff83051b95fd28MACH_PCI_SHIFT MAPPED_SHIFT 
> GUEST_PCI_SHIFT  PIRQ:0
> d16 OK-raise   489msec ago, state:1, 52049 count, [prev:0000000000200200, 
> next:0000000000100100] ffff83051b95fd28MACH_PCI_SHIFT MAPPED_SHIFT 
> GUEST_PCI_SHIFT  PIRQ:0
> d16 ERR-poison 561msec ago, state:0, 1 count, [prev:0000000000200200, 
> next:0000000000100100] ffff83051b95fd28MACH_PCI_SHIFT MAPPED_SHIFT 
> GUEST_PCI_SHIFT  PIRQ:0
> d16 Z-softirq  731msec ago, state:3, 3 count, [prev:ffff83054ef283e0, 
> next:ffff83054ef283e0] ffff83051b95fd28MACH_PCI_SHIFT MAPPED_SHIFT 
> GUEST_PCI_SHIFT  PIRQ:0
> domain_crash called from io.c:938
> Domain 16 reported crashed by domain 32767 on cpu#5:

> All of it point to the legacy interrupt - that is the on that starts at Xen 
> IRQ 47 (guest IRQ 40):
>  io.c:550: d16: bind: m_gsi=47 g_gsi=40 dev=00.00.6 intx=0
> IRQ:  47 affinity:02 vec:d1 type=IO-APIC-level   status=00000030 in-flight=1 
> domain-list=16: +47(P-M),

> which looks OK.
OK, i still don't get why the output of debug-key 'i' reports +47 as pirq here 
instead of the guest value 
(g_gsi of for this legacy interrupt which is 40 ?), like it does when it's a 
MSI with the PIRQ ?

> I am puzzled by the driver binding twice to the same interrupt, but perhaps 
> that
> is just a buggy driver.

Doesn't that happen more often like with integrated USB controllers ?
  17:          4          0          0          0          0          0  
xen-pirq-ioapic-level  ehci_hcd:usb1, ehci_hcd:usb2, ehci_hcd:usb3
  18:       4385          0          0          0          0          0  
xen-pirq-ioapic-level  ohci_hcd:usb4, ohci_hcd:usb5, ohci_hcd:usb6, 
ohci_hcd:usb7


And on host boot (with still some extra printk's):
[   12.773709] xen: registering gsi 18 triggering 0 polarity 1
[   12.773731] xen: --> pirq=18 -> irq=18 (gsi=18)
[   12.773749] pci 0000:00:12.0: ?!?!? acpi_pci_irq_enable: PCI INT A -> GSI 18 
(level, low) -> IRQ/rc 18
[   12.848820] pci 0000:00:12.2: calling quirk_usb_early_handoff+0x0/0x6f0
[   12.848942] xen: registering gsi 17 triggering 0 polarity 1
[   12.848957] xen: --> pirq=17 -> irq=17 (gsi=17)
[   12.848975] pci 0000:00:12.2: ?!?!? acpi_pci_irq_enable: PCI INT B -> GSI 17 
(level, low) -> IRQ/rc 17
[   12.849120] pci 0000:00:13.0: calling quirk_usb_early_handoff+0x0/0x6f0
[   12.849236] xen: registering gsi 18 triggering 0 polarity 1
[   12.849240] Already setup the GSI :18
[   12.849245] pci 0000:00:13.0: ?!?!? acpi_pci_irq_enable: PCI INT A -> GSI 18 
(level, low) -> IRQ/rc 18
[   12.925464] pci 0000:00:13.2: calling quirk_usb_early_handoff+0x0/0x6f0
[   12.925583] xen: registering gsi 17 triggering 0 polarity 1
[   12.925589] Already setup the GSI :17
[   12.925593] pci 0000:00:13.2: ?!?!? acpi_pci_irq_enable: PCI INT B -> GSI 17 
(level, low) -> IRQ/rc 17
[   12.925748] pci 0000:00:14.5: calling quirk_usb_early_handoff+0x0/0x6f0
[   12.925863] xen: registering gsi 18 triggering 0 polarity 1
[   12.925868] Already setup the GSI :18
[   12.925872] pci 0000:00:14.5: ?!?!? acpi_pci_irq_enable: PCI INT C -> GSI 18 
(level, low) -> IRQ/rc 18
[   13.002145] pci 0000:00:16.0: calling quirk_usb_early_handoff+0x0/0x6f0
[   13.002264] xen: registering gsi 18 triggering 0 polarity 1
[   13.002269] Already setup the GSI :18
[   13.002273] pci 0000:00:16.0: ?!?!? acpi_pci_irq_enable: PCI INT A -> GSI 18 
(level, low) -> IRQ/rc 18
[   13.078814] pci 0000:00:16.2: calling quirk_usb_early_handoff+0x0/0x6f0

Attachment: dmesg-guest.txt
Description: Text document

Attachment: lspci-guest.txt
Description: Text document

Attachment: qemu-dm-guest.txt
Description: Text document

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel

 


Rackspace

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