[libvirt PATCH v2 07/16] nodedev: add mdevctl devices to node device list

Erik Skultety eskultet at redhat.com
Mon Aug 24 13:06:47 UTC 2020


On Tue, Aug 18, 2020 at 09:47:57AM -0500, Jonathon Jongsma wrote:
> At startup, query devices that are defined by 'mdevctl' and add them to
> the node device list.
>
> This adds a complication: we now have two potential sources of
> information for a node device:
>  - udev for all devices and for activated mediated devices
>  - mdevctl for persistent mediated devices
>
> Unfortunately, neither backend returns full information for a mediated
> device. For example, if a persistent mediated device in the list (with
> information provided from mdevctl) is 'started', that same device will
> now be detected by udev. If we simply overwrite the existing device
> definition with the new one provided by the udev backend, we will lose
> extra information that was provided by mdevctl (e.g. attributes, etc).
> To avoid this, make sure to copy the extra information into the new
> device definition.
>
> Signed-off-by: Jonathon Jongsma <jjongsma at redhat.com>
> ---
...

>
>  static int
>  udevAddOneDevice(struct udev_device *device)
> @@ -1341,6 +1380,8 @@ udevAddOneDevice(struct udev_device *device)
>          goto cleanup;
>
>      if ((obj = virNodeDeviceObjListFindByName(driver->devs, def->name))) {
> +        nodeDeviceDefCopyExtraData(def, virNodeDeviceObjGetDef(obj));

I'm a tiny bit lost here, what scenario does ^this address?

Erik




More information about the libvir-list mailing list