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

Re: [Xen-devel] Failure: passthrough of 2 PCIe devices



Hi Dietmar,

I can confirm i'm having the same issue, after outcommenting changeset 
7420:d93b3cb4cebe from qemu-xen-unstable.hg makes it get a pirq other than 0 
again.
Added some debug info as well:

    gvec = dev->msi->data & 0xFF;
+    PT_LOG("SEIK: %s 0x%02lX %d  \n",__FUNCTION__,dev->msi->data,gvec);
+    PT_LOG("SEIK: %s 0x%02lX 0x%02lX  
\n",__FUNCTION__,dev->msi->addr_hi,dev->msi->addr_lo);
-    if (!gvec) {
+    if (0) {



This results in:

dm-command: hot insert pass-through pci dev
register_real_device: Assigning real physical device 05:00.0 ...
register_real_device: Enable MSI translation via per device option
register_real_device: Disable power management
pt_iomul_init: Error: pt_iomul_init can't open file /dev/xen/pci_iomul: No such 
file or directory: 0x5:0x0.0x0
pt_register_regions: IO region registered (size=0x10000000 base_addr=0xb000000c)
pt_register_regions: IO region registered (size=0x00010000 base_addr=0xf9be0004)
pt_register_regions: IO region registered (size=0x00000100 base_addr=0x0000b001)
pt_register_regions: Expansion ROM registered (size=0x00020000 
base_addr=0xf9bc0000)
pt_msi_setup: SEIK: pt_msi_setup 0x00 0
pt_msi_setup: SEIK: pt_msi_setup 0x00 0x00
pt_msi_setup: msi mapped with pirq 57
pci_intx: intx=1
register_real_device: Real physical device 05:00.0 registered successfuly!
IRQ type = MSI-INTx


--
Sander


> Hi list,

> I did some tests with passthrough of 2 PCIe devices to a Windows 7 HVM and 
> both
> failed to work.
> # lspci
> ...
> 00:1b.0 Audio device: Intel Corporation 5 Series/3400 Series Chipset High 
> Definition Audio (rev 05)
> 10:00.0 Network controller: Intel Corporation Centrino Advanced-N 6200 (rev 
> 35)
> ...

> In the qemu log I found the following messages:

> register_real_device: Assigning real physical device 00:1b.0 ...
> register_real_device: Enable MSI translation via per device option
> register_real_device: Disable power management
> pt_iomul_init: Error: pt_iomul_init: No such device: setup io multiplexing 
> failed! 0x0:0x1b.0x0
> pt_register_regions: IO region registered (size=0x00004000 
> base_addr=0xf2720004)
> pt_msi_setup: pt_msi_setup requested pirq = 0
> pt_msi_setup: msi mapped with pirq 0
> pci_intx: intx=1
> register_real_device: Real physical device 00:1b.0 registered successfuly!
> IRQ type = MSI-INTx
> vcpu-set: watch node error.
> xs_read(/local/domain/3/log-throttling): read error
> qemu: ignoring not-understood drive `/local/domain/3/log-throttling'
> medium change watch on `/local/domain/3/log-throttling' - unknown device, 
> ignored
> dm-command: hot insert pass-through pci dev
> register_real_device: Assigning real physical device 10:00.0 ...
> register_real_device: Enable MSI translation via per device option
> register_real_device: Disable power management
> pt_iomul_init: Error: pt_iomul_init: No such device: setup io multiplexing 
> failed! 0x10:0x0.0x0
> pt_register_regions: IO region registered (size=0x00002000 
> base_addr=0xf2400004)
> pt_msi_setup: pt_msi_setup requested pirq = 0
> pt_msi_setup: msi mapped with pirq 0
> pci_intx: intx=1
> register_real_device: Real physical device 10:00.0 registered successfuly!

> On the xen serial console I saw:
> ...
> (XEN) [VT-D]io.c:327: d3: unbind: m_gsi=0 g_gsi=36 device=5 intx=0
> (XEN) [VT-D]io.c:386: d3 unmap: m_irq=0 device=5 intx=0
> (XEN) [VT-D]io.c:303: d3: bind: m_gsi=17 g_gsi=36 device=5 intx=0
> (XEN) domctl.c:920:d0 pt_irq_create_bind failed!
> (XEN) irq.c:1590: dom3: forcing unbind of pirq 0

> In xen-4.0 (SLES11-SP1) all went fine.
> I saw some added code in tools/ioemu-remote/hw/pt-msi.c function 
> pt_msi_setup()
> in xen-unstable:

>     gvec = dev->msi->data & 0xFF;
>     if (!gvec) {
>         /* if gvec is 0, the guest is asking for a particular pirq that
>          * is passed as dest_id */
>         pirq = (dev->msi->addr_hi & 0xffffff00) |
>                ((dev->msi->addr_lo >> MSI_TARGET_CPU_SHIFT) & 0xff);
>         PT_LOG("pt_msi_setup requested pirq = %d\n", pirq);
>     }

> If I remove this code the device 00:1b.0 gets pirq 37 and 00:10.0 gets pirq 
> 36.
> Now at least device 00:10.0 (WLAN) works. The audio device is still another 
> problem.

> Is this a already seen problem after all these msi discussions on the list?
> Thanks!

> Dietmar.





-- 
Best regards,
 Sander                            mailto:linux@xxxxxxxxxxxxxx


_______________________________________________
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®.