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

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

To: Dietmar Hahn <dietmar.hahn@xxxxxxxxxxxxxx>
Subject: Re: [Xen-devel] Failure: passthrough of 2 PCIe devices
From: Sander Eikelenboom <linux@xxxxxxxxxxxxxx>
Date: Mon, 13 Dec 2010 17:58:58 +0100
Cc: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>, Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
Delivery-date: Tue, 14 Dec 2010 02:13:42 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <201012131523.42642.dietmar.hahn@xxxxxxxxxxxxxx>
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>
Organization: Eikelenboom IT services
References: <201012131523.42642.dietmar.hahn@xxxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
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

<Prev in Thread] Current Thread [Next in Thread>