[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


 


Rackspace

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