Re: simplify the mdev interface v6

Eric Farman
2022-07-19T02:01:55Z

On Mon, 2022-07-18 at 15:33 -0600, Alex Williamson wrote:
> On Mon, 18 Jul 2022 07:43:48 +0200
> Christoph Hellwig <hch@lst.de> wrote:
>
> > Alex, does this series look good to you now?
>
> It does. I was hoping we'd get a more complete set acks from the
> mdev
> driver owners, but I'll grab this within the next day or two with
> whatever additional reviews come in by then.

Apologies, I have been on vacation since this version was posted.

I'll get the problem with struct subchannel [1] sorted out in the next
couple of days. This series breaks vfio-ccw in its current form (see
reply to patch 14), but even with that addressed the placement of all
these other mdev structs needs to be handled differently.

Eric

[1] https://lore.kernel.org/r/20220707134017.GB19060@lst.de/

> Thanks,
>
> Alex
>
> > On Sat, Jul 09, 2022 at 06:54:36AM +0200, Christoph Hellwig wrote:
> > > Hi all,
> > >
> > > this series signigicantly simplies the mdev driver interface by
> > > following
> > > the patterns for device model interaction used elsewhere in the
> > > kernel.
> > >
> > > Changes since v5:
> > > - rebased to the latest vfio/next branch
> > > - drop the last patch again
> > > - make sure show_available_instances works properly for the
> > > internallly
> > > tracked case
> > >
> > > Changes since v4:
> > > - move the kobject_put later in mdev_device_release
> > > - add a Fixes tag for the first patch
> > > - add another patch to remove an extra kobject_get/put
> > >
> > > Changes since v3:
> > > - make the sysfs_name and pretty_name fields pointers instead of
> > > arrays
> > > - add an i915 cleanup to prepare for the above
> > >
> > > Changes since v2:
> > > - rebased to vfio/next
> > > - fix a pre-existing memory leak in i915 instead of making it
> > > worse
> > > - never manipulate if ->available_instances if drv-
> > > >get_available is
> > > provided
> > > - keep a parent reference for the mdev_type
> > > - keep a few of the sysfs.c helper function around
> > > - improve the documentation for the parent device lifetime
> > > - minor spellig / formatting fixes
> > >
> > > Changes since v1:
> > > - embedd the mdev_parent into a different sub-structure in i916
> > > - remove headers now inclued by mdev.h from individual source
> > > files
> > > - pass an array of mdev_types to mdev_register_parent
> > > - add additional patches to implement all attributes on the
> > > mdev_type in the core code
> > >
> > > Diffstat:
> > > Documentation/driver-api/vfio-mediated-device.rst | 26 +-
> > > Documentation/s390/vfio-ap.rst | 2
> > > Documentation/s390/vfio-ccw.rst | 2
> > > drivers/gpu/drm/i915/gvt/aperture_gm.c | 20 +-
> > > drivers/gpu/drm/i915/gvt/gvt.h | 42 ++--
> > > drivers/gpu/drm/i915/gvt/kvmgt.c | 168 ++++---
> > > ----------
> > > drivers/gpu/drm/i915/gvt/vgpu.c | 210
> > > +++++++---------------
> > > drivers/s390/cio/cio.h | 4
> > > drivers/s390/cio/vfio_ccw_drv.c | 12 -
> > > drivers/s390/cio/vfio_ccw_ops.c | 51 -----
> > > drivers/s390/cio/vfio_ccw_private.h | 2
> > > drivers/s390/crypto/vfio_ap_ops.c | 68 +------
> > > drivers/s390/crypto/vfio_ap_private.h | 6
> > > drivers/vfio/mdev/mdev_core.c | 190 ++++---
> > > ------------
> > > drivers/vfio/mdev/mdev_driver.c | 7
> > > drivers/vfio/mdev/mdev_private.h | 32 ---
> > > drivers/vfio/mdev/mdev_sysfs.c | 189
> > > ++++++++++---------
> > > include/linux/mdev.h | 77 ++++---
> > > -
> > > samples/vfio-mdev/mbochs.c | 103 +++--
> > > -----
> > > samples/vfio-mdev/mdpy.c | 115 +++--
> > > -------
> > > samples/vfio-mdev/mtty.c | 94 +++--
> > > ----
> > > 21 files changed, 463 insertions(+), 957 deletions(-)
> > ---end quoted text---
> >