On 03/09/2016 01:57, Laine Stump wrote:
>
> mdevs do not exist on the host (they do not have a driver on the host
> because they are not PCI devices) so they do need any management. At
> least I hope that's good news. :)
What's your definition of "management"? They don't need the same type
of
management as a traditional hostdev, but they certainly don't just
appear by magic! :-)
For standard PCI devices, the managed attribute says whether or not the
device needs to be detached from the host driver and attached to
vfio-pci. For other kinds of hostdev devices, we could decide that it
meant something different. In this case, perhaps managed='yes' could
mean that the vGPU will be created as needed, and destroyed when the
guest is finished with it, and managed='no' could mean that we expect a
vGPU to already exist, and just need starting.
Yes, you're 100% right. vGPUs have to be created through sysfs, and
that is indeed a kind of management. My point is that for now, given
there is no support in libvirt for persistent nodedevs, it is safe to
let the user do that and reject managed='yes' for mdev-based <hostdev>.
If later you want to add nodedev-define, then managed='yes' might mean
"create and destroy the nodedev automatically" based on a persistent
definition. But for now, you can enforce managed='no' (it's the default
anyway) and have the user create a transient nodedev manually before the
domain. More features can be added incrementally on top.
Thanks,
Paolo