Re: [RFC PATCH] vfio/ccw: Move mdev stuff out of struct subchannel

Eric Farman
2022-08-18T13:24:48Z

On Thu, 2022-08-18 at 06:53 +0000, Tian, Kevin wrote:
> Hi, Eric,
>
> > From: Eric Farman
> > Sent: Tuesday, July 26, 2022 11:37 PM
> >
> > --- a/drivers/s390/cio/vfio_ccw_private.h
> > +++ b/drivers/s390/cio/vfio_ccw_private.h
> > @@ -111,6 +111,10 @@ struct vfio_ccw_private {
> >         struct eventfd_ctx      *req_trigger;
> >         struct work_struct      io_work;
> >         struct work_struct      crw_work;
> > +
> > +       struct mdev_parent      parent;
> > +       struct mdev_type        mdev_type;
> > +       struct mdev_type        *mdev_types[1];
> >  } __aligned(8);
> >
>
> IMHO creating a separate structure to encapsulate parent related
> information is far cleaner than mixing both mdev and parent into
> one structure.
>
> mdev and parent have different life cycles. mdev is between
> mdev probe/remove while parent is between css probe/remove.

I don't disagree with any of that. My point with the suggested patch
was a way to get this working without disrupting the cio's subchannel
(which is used for many non-mdev things).

Un-mixing the mdev from the parent stuff wouldn't be impossible, but
requires consideration I haven't had the bandwidth to do (which is why
the cleanup you reference below was dropped from later versions of that
series [3]).

Thanks,
Eric

[3]
https://lore.kernel.org/all/20220615203318.3830778-1-farman@linux.ibm.com/

>
> Mixing them together prevents further cleanup in vfio core [1]
> which you posted in earlier series and also other upcoming
> improvements [2].
>
> Thanks
> Kevin
>
> [1]
> https://lore.kernel.org/all/20220602171948.2790690-16-farman@linux.ibm.com/
> [2]
> https://listman.redhat.com/archives/libvir-list/2022-August/233482.html