[libvirt PATCH v3 00/21] Add support for persistent mediated devices

Jonathon Jongsma jjongsma at redhat.com
Thu Jan 28 21:29:41 UTC 2021


On Thu, 7 Jan 2021 17:43:54 +0100
Erik Skultety <eskultet at redhat.com> wrote:

> > 
> > 4.Define a mdev device with the uuid specified, but the mdev device
> > defined seems using another uuid. Maybe it make a little confusion
> > about the use of uuid in the xml:
> > #cat mdev.xml
> > <device>
> >   <name>mdev_85531b6d_e5e4_41c1_aa2a_8844717f066a</name>   ****  
> 
> Yeah, the easy way out here is to document that the <name> element is
> read only, but that would be wrong, because we allow specifying it
> for domains, networks, interfaces, etc. So, we should give the end
> user the option to specify whatever name they want and generate one
> if none is provided.
> 

Unfortunately, this appears to be difficult to achieve for persistent
devices. For mediated devices, we are using mdevctl as our backend
persistent device definition storage. But mdevctl doesn't provide a way
to attach additional metadata along with a mdev definition. So we would
need to either modify mdevctl to allow us to store additional data with
a device definition, or we would need to create (and keep synchronized)
a separate persistent storage for libvirt-specific metadata about
mediated devices.

It's also worth noting that 'nodedev-create' previously allowed you to
create vHBA devices in libvirt, but the 'name' element is explicitly
ignored (see https://wiki.libvirt.org/page/NPIV_in_libvirt):

    "NOTE: If you specify "name" for the vHBA, then it will be ignored.
    The kernel will automatically pick the next SCSI host name in
    sequence not already used."

That said, I do think that it will be useful or even necessary to be
able to create mdevs with a specific UUID, but I think that's a separate
issue than being able to specify the 'name' of the nodedev. It seems
better to do that by specifying a 'uuid' element within the mdev caps,
rather than trying to parse a UUID from an arbitrary name string. For
example:

    <device>
      <capability type='mdev'>
        <type id='i915-GVTg_V5_8'/>
        <uuid>901891a6-2077-4476-9465-53d8995b81b4</uuid>
      </capability>
      <parent>pci_0000_00_02_0</parent>
    </device>

Thoughts? 

Jonathon




More information about the libvir-list mailing list