Re: [PATCH v2 3/5] vfio-pci/zdev: define the vfio_zdev header

From: Cornelia Huck
Date: Mon Oct 05 2020 - 12:28:43 EST


On Mon, 5 Oct 2020 12:16:10 -0400
Matthew Rosato <mjrosato@xxxxxxxxxxxxx> wrote:

> On 10/5/20 12:01 PM, Cornelia Huck wrote:
> > On Mon, 5 Oct 2020 09:52:25 -0400
> > Matthew Rosato <mjrosato@xxxxxxxxxxxxx> wrote:
> >
> >> On 10/2/20 5:44 PM, Alex Williamson wrote:
> >
> >>> Can you discuss why a region with embedded capability chain is a better
> >>> solution than extending the VFIO_DEVICE_GET_INFO ioctl to support a
> >>> capability chain and providing this info there? This all appears to be
> >>> read-only info, so what's the benefit of duplicating yet another
> >>
> >> It is indeed read-only info, and the device region was defined as such.
> >>
> >> I would not necessarily be opposed to extending VFIO_DEVICE_GET_INFO
> >> with these defined as capabilities; I'd say a primary motivating factor
> >> to putting these in their own region was to avoid stuffing a bunch of
> >> s390-specific capabilities into a general-purpose ioctl response.
> >
> > Can't you make the zdev code register the capabilities? That would put
> > them nicely into their own configurable part.
> >
>
> I can still keep the code that adds these capabilities in the zdev .c
> file, thus meaning they will only be added for s390 zpci devices -- but
> the actual definition of them should probably instead be in vfio.h, no?
> (maybe that's what you mean, but let's lay it out just in case)
>
> The capability IDs would be shared with any other potential user of
> VFIO_DEVICE_GET_INFO (I guess there is precedent for this already,
> nvlink2 does this for vfio_region_info, see
> VFIO_REGION_INFO_CAP_NVLINK2_SSATGT as an example).
>
> Today, ZPCI would be the only users of VFIO_DEVICE_GET_INFO capability
> chains. Tomorrow, some other type might use them too. Unless we want
> to put a stake in the ground that says there will never be a case for a
> capability that all devices share on VFIO_DEVICE_GET_INFO, I think we
> should keep the IDs unique and define the capabilities in vfio.h but do
> the corresponding add_capability() calls from a zdev-specific file.

Agreed. We should have enough space for multiple users, and I do not
consider reserving the IDs cluttering.