On 9/3/2016 5:27 AM, Laine Stump wrote:
On 09/02/2016 05:44 PM, Paolo Bonzini wrote:
>
>
> On 02/09/2016 22:19, John Ferlan wrote:
>> We don't have such a pool for GPU's (yet) - although I suppose they
>> could just become a class of storage pools.
>>
>> The issue being nodedev device objects are not saved between reboots.
>> They are generated on the fly. Hence the "create-nodedev' API - notice
>> there's no "define-nodedev' API, although I suppose one could be
>> created. It's just more work to get this all to work properly.
>
> It can all be made transient to begin with. The VM can be defined but
> won't start unless the mdev(s) exist with the right UUIDs.
>
>>> After creating the vGPU, if required by the host driver, all the other
>>> type ids would disappear from "virsh nodedev-dumpxml
>>> pci_0000_86_00_0" too.
>>
>> Not wanting to make assumptions, but this reads as if I create one type
>> 11 vGPU, then I can create no others on the host. Maybe I'm reading it
>> wrong - it's been a long week.
>
> Correct, at least for NVIDIA.
>
>> PCI devices have the "managed='yes|no'" attribute as well.
That's what
>> determines whether the device is to be detached from the host or not.
>> That's been something very painful to manage for vfio and well libvirt!
>
> 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.
Or not. Maybe that's a pointless distinction in this case. Just pointing
out the option...
Mediated devices are like virtual device, there could be no direct
physical device associated with it. All mdev devices are owned by
vfio_mdev module, which is similar to vfio_pci module. I don't think we
need to interpret 'managed' attribute for mdev devices same as standard
PCI devices.
If mdev device is created, you would find the device directory in
/sys/bus/mdev/devices/ directory.
Kirti.