Re: [libvirt] [PATCH v2 1/2] vfio/mdev: add version attribute for mdev device

From: Alex Williamson
Date: Tue May 14 2019 - 11:33:29 EST


On Wed, 8 May 2019 17:27:47 +0200
Boris Fiuczynski <fiuczy@xxxxxxxxxxxxx> wrote:

> On 5/8/19 11:22 PM, Alex Williamson wrote:
> >>> I thought there was a request to make this more specific to migration
> >>> by renaming it to something like migration_version. Also, as an
> >>>
> >> so this attribute may not only include a mdev device's parent device info and
> >> mdev type, but also include numeric software version of vendor specific
> >> migration code, right?
> > It's a vendor defined string, it should be considered opaque to the
> > user, the vendor can include whatever they feel is relevant.
> >
> Would a vendor also be allowed to provide a string expressing required
> features as well as containing backend resource requirements which need
> to be compatible for a successful migration? Somehow a bit like a cpu
> model... maybe even as json or xml...
> I am asking this with vfio-ap in mind. In that context checking
> compatibility of two vfio-ap mdev devices is not as simple as checking
> if version A is smaller or equal to version B.

Two pieces to this, the first is that the string is opaque exactly so
that the vendor driver can express whatever they need in it. The user
should never infer that two devices are compatible. The second is that
this is not a resource availability or reservation interface. The fact
that a target device would be compatible for migration should not take
into account whether the target has the resources to actually create
such a device. Doing so would imply some sort of resource reservation
support that does not exist. Matrix devices are clearly a bit
complicated here since maybe the source is expressing a component of
the device that doesn't exist on the target. In such a "resource not
available at all" case, it might be fair to nak the compatibility test,
but a "ok, but resource not currently available" case should pass,
imo. Thanks,

Alex