On Mon, Mar 14, 2016 at 03:41:48PM -0400, Laine Stump wrote: > Suggested by Alex Williamson. > > If you plan to assign a GPU to a virtual machine, but that GPU happens > to be the host system console, you likely want it to start out using > the host driver (so that boot messages/etc will be displayed), then > later have the host driver replaced with vfio-pci for assignment to > the virtual machine. > > However, in at least some cases (e.g. Intel i915) once the device has > been detached from the host driver and attached to vfio-pci, attempts > to reattach to the host driver only lead to "grief" (ask Alex for > details). This means that simply using "managed='yes'" in libvirt > won't work. > > And if you set "managed='no'" in libvirt then either you have to > manually run virsh nodedev-detach prior to the first start of the > guest, or you have to have a management application intelligent enough > to know that it should detach from the host driver, but never reattach > to it. > > This patch makes it simple/automatic to deal with such a case - it > adds a third "managed" mode for assigned PCI devices, called > "detach". It will detach ("unbind" in driver parlance) the device from > the host driver prior to assigning it to the guest, but when the guest > is finished with the device, will leave it bound to vfio-pci. This > allows re-using the device for another guest, without requiring > initial out-of-band intervention to unbind the host driver. You say that managed=yes causes pain upon re-attachment and that apps should use managed=detach to avoid it, but how do management apps know which devices are going to cause pain ? Libvirt isn't providing any info on whether a particular device id needs to use managed=yes vs managed=detach, and we don't want to be asking the user to choose between modes in openstack/ovirt IMHO. I think thats a fundamental problem with inventing a new value for managed here. Can you provide more details about the problems with detaching ? Is this inherant to all VGA cards, or is it specific to the Intel i915, or specific to a kernel version or something else ? I feel like this is something where libvirt should "do the right thing", since that's really what managed=yes is all about. eg, if we have managed=yes and we see an i915, we should automatically skip re-attach for that device. Regards, Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :| -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list