|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [xen-unstable] [qemu-xen] pci passthrough msi-x returns same pirq
Friday, December 7, 2012, 6:24:10 PM, you wrote:
> On Thu, 6 Dec 2012, Sander Eikelenboom wrote:
>> Hi Stefano / Anthony,
>>
>> With the debug output turned on i see some difference between
>> qemu-traditional and qemu-upstream:
>>
>> With the pci passthroughed device that fails with msi-x, in qemu-xen it
>> seems to get the same pirq back for every entry
>>
>> in qemu-traditional:
>>
>> pt_msix_update_one: pt_msix_update_one requested pirq = 87
>> pt_msix_update_one: Update msix entry 0 with pirq 57 gvec 0
>> pt_msix_update_one: pt_msix_update_one requested pirq = 86
>> pt_msix_update_one: Update msix entry 1 with pirq 56 gvec 0
>> pt_msix_update_one: pt_msix_update_one requested pirq = 85
>> pt_msix_update_one: Update msix entry 2 with pirq 55 gvec 0
>> pt_msix_update_one: pt_msix_update_one requested pirq = 84
>> pt_msix_update_one: Update msix entry 3 with pirq 54 gvec 0
>>
>>
>> in qemu-xen (upstream):
>>
>> [00:05.0] msi_msix_setup: requested pirq 4 for MSI-X (vec: 0, entry: 0)
>> [00:05.0] msi_msix_update: Updating MSI-X with pirq 4 gvec 0 gflags 0x3057
>> (entry: 0)
>> [00:05.0] msi_msix_setup: requested pirq 4 for MSI-X (vec: 0, entry: 0x1)
>> [00:05.0] msi_msix_update: Updating MSI-X with pirq 4 gvec 0 gflags 0x3056
>> (entry: 0x1)
>> [00:05.0] msi_msix_setup: requested pirq 4 for MSI-X (vec: 0, entry: 0x2)
>> [00:05.0] msi_msix_update: Updating MSI-X with pirq 4 gvec 0 gflags 0x3055
>> (entry: 0x2)
>> [00:05.0] msi_msix_setup: requested pirq 4 for MSI-X (vec: 0, entry: 0x3)
>> [00:05.0] msi_msix_update: Updating MSI-X with pirq 4 gvec 0 gflags 0x3054
>> (entry: 0x3)
> That is a good pointer, but unfortunately the code that parses those
> entries look exactly alike in both QEMU trees:
> qemu-xen-traditional/hw/pt-msi.c:pt_msix_update_one
> if (!gvec) {
> /* if gvec is 0, the guest is asking for a particular pirq that
> * is passed as dest_id */
> pirq = ((gaddr >> 32) & 0xffffff00) |
> (((gaddr & 0xffffffff) >> MSI_TARGET_CPU_SHIFT) & 0xff);
> qemu-xen/hw/xen_pt_msi.c:msi_msix_setup
> if (gvec == 0) {
> /* if gvec is 0, the guest is asking for a particular pirq that
> * is passed as dest_id */
> *ppirq = msi_ext_dest_id(addr >> 32) | msi_dest_id(addr);
> given how msi_ext_dest_id and msi_dest_id are defined, they should
> behave the same way.
> Maybe adding a printk in msi_msix_setup to show addr would help
> nonetheless...
Hi Stefano,
I have added some printk's attached i have:
- qemu-upstream.log boot of the guest with qemu upstream, device not
working
- qemu-traditional.log boot of the same guest with qemu traditional,
device is working
- xl-dmesg-upstream.txt part of xl-dmesg related to boot of guest with
qemu-upstream
- xl-dmesg-traditional.txt part of xl-dmesg related to boot of sameguest
with qemu-traditional
- xl-dmesg.txt complete xl-dmesg
- interrupts-dom0.txt /proc/interrupts of dom0
- interrupts-upstream.txt /proc/interrupts of guest with qemu-upstream
--
SanderAttachment:
interrupts-dom0.txt Attachment:
interrupts-upstream.txt Attachment:
qemu-traditional.log Attachment:
qemu-upstream.log Attachment:
xl-dmesg.txt Attachment:
xl-dmesg-traditional.txt Attachment:
xl-dmesg-upstream.txt _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |