[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] libxl: Don't insert PCI device into xenstore for HVM guests
On 01/06/15 16:43, Ross Lagerwall wrote: > On 06/01/2015 04:26 PM, Konrad Rzeszutek Wilk wrote: >> On Fri, May 29, 2015 at 08:59:45AM +0100, Ross Lagerwall wrote: >>> When doing passthrough of a PCI device for an HVM guest, don't insert >>> the device into xenstore, otherwise pciback attempts to use it which >>> conflicts with QEMU. >> >> How does it conflict? > > It doesn't work with repeated use. See below. > >>> >>> This manifests itself such that the first time a device is passed to a >>> domain, it succeeds. Subsequent attempts fail unless the device is >>> unbound from pciback or the machine rebooted. >> >> Can you be more specific please? What are the issues? Why does it >> fail? > > Without this patch, if a device (e.g. a GPU) is bound to pciback and > then passed through to a guest using xl pci-attach, it appears in the > guest and works fine. If the guest is rebooted, and the device is again > passed through with xl pci-attach, it appears in the guest as before but > does not work. In Windows, it gets something like Error Code 43 and on > Linux, the Nouveau driver fails to initialize the device (with error -22 > or something). The only way to get the device to work again is to reboot > the host or unbind and rebind it to pciback. > > With this patch, it works as expected. The device is bound to pciback > and works after being passed through, even after the VM is rebooted. > >> >> There are certain things that pciback does to "prepare" an PCI device >> which QEMU also does. Some of them - such as saving the configuration >> registers (And then restoring them after the device has been detached) - >> is something that QEMU does not do. >> > > I really have no idea what the correct thing to do is, but the current > code with qemu-trad doesn't seem to work (for me). The pciback pci_stub.c implements the pciback.hide and the device reset logic. The rest of pciback implements the pciback xenbus device which PV guests need in order to map/unmap MSI interrupts and access PCI config space. QEMU emulates and handles the MSI interrupt capabilities and PCI config space directly. This is why a pciback xenbus device should not be created for passthrough PCI device being handled by QEMU. Malcolm > > Regards _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |