Re: simplify the mdev interface v6

Christoph Hellwig
2022-07-18T05:43:57Z

Alex, does this series look good to you now?

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---