RE: [RFC v1 0/2] vfio/pci: wrap pci device as mdev with vfio-pci driver

From: Liu, Yi L
Date: Fri Mar 08 2019 - 06:43:56 EST


> From: Alex Williamson [mailto:alex.williamson@xxxxxxxxxx]
> Sent: Friday, March 8, 2019 4:40 AM
> To: Liu, Yi L <yi.l.liu@xxxxxxxxx>
> Cc: kwankhede@xxxxxxxxxx; Tian, Kevin <kevin.tian@xxxxxxxxx>;
> baolu.lu@xxxxxxxxxxxxxxx; joro@xxxxxxxxxx; jean-philippe.brucker@xxxxxxx;
> peterx@xxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; Sun, Yi Y <yi.y.sun@xxxxxxxxx>
> Subject: Re: [RFC v1 0/2] vfio/pci: wrap pci device as mdev with vfio-pci driver
>
> On Sun, 3 Mar 2019 20:57:59 +0800
> "Liu, Yi L" <yi.l.liu@xxxxxxxxx> wrote:
>
> > This patchset aims to add a vfio-pci-like meta driver on existing
> > PCI devices, as a demo user of the vfio changes introduced in
> > "vfio/mdev: IOMMU aware mediated device" patchset from Baolu Lu.
> >
> > To build such a meta driver. We have two choices.
> > a) add a vfio-pci alike sample driver under samples directory
> > b) add some extensions in vfio-pci driver to make it wrap pci
> > device as mdev
> >
> > For choice a), the new sample driver will have quite a few
> > duplicated code with vfio-pci driver since the new sample
> > driver also wants to virtualize the PCI config space. So
> > this choice may bring in extra maintain effort in kernel
> > and also looks strange since there will be a bunch of
> > duplicated code with vfio-pci driver.
> >
> > For choice b), it may reuse the existing vfio-pci driver
> > by adding a new working mode. With this mode, user can wrap
> > a pci device as a mediated device by binding it with the
> > vfio-pci driver which works in the new mode. Thus can be used
> > to verify the ""vfio/mdev: IOMMU aware mediated device"
> > patchset.
> >
> > This patchset is following choice b). However, we are open on
> > the direction of the implementation of this vfio-pci-like meta
> > driver. Pls feel free give your suggestions.
>
> Thanks for doing this Yi! Rather than a module option for vfio-pci,
> what about having this build into a separate module (ex.
> vfio-pci-mdev)? Then we could test "regular" vfio-pci along side mdev
> wrapped devices simply by which driver we bind and it'd probably be more
> friendly to existing users, like libvirt. This might also make a good
> base driver for experimenting with device specific mdev migration as
> well. Thanks,

Yeah, much better user experience. Let me do that. Thanks for the suggestion. :-)

Regards,
Yi Liu