RE: [RFC 03/20] vfio: Add vfio_[un]register_device()

From: Tian, Kevin
Date: Tue Sep 21 2021 - 20:59:43 EST


> From: Jason Gunthorpe <jgg@xxxxxxxxxx>
> Sent: Wednesday, September 22, 2021 8:54 AM
>
> On Tue, Sep 21, 2021 at 11:10:15PM +0000, Tian, Kevin wrote:
> > > From: Jason Gunthorpe <jgg@xxxxxxxxxx>
> > > Sent: Wednesday, September 22, 2021 12:01 AM
> > >
> > > On Sun, Sep 19, 2021 at 02:38:31PM +0800, Liu Yi L wrote:
> > > > With /dev/vfio/devices introduced, now a vfio device driver has three
> > > > options to expose its device to userspace:
> > > >
> > > > a) only legacy group interface, for devices which haven't been moved
> to
> > > > iommufd (e.g. platform devices, sw mdev, etc.);
> > > >
> > > > b) both legacy group interface and new device-centric interface, for
> > > > devices which supports iommufd but also wants to keep backward
> > > > compatibility (e.g. pci devices in this RFC);
> > > >
> > > > c) only new device-centric interface, for new devices which don't carry
> > > > backward compatibility burden (e.g. hw mdev/subdev with pasid);
> > >
> > > We shouldn't have 'b'? Where does it come from?
> >
> > a vfio-pci device can be opened via the existing group interface. if no b) it
> > means legacy vfio userspace can never use vfio-pci device any more
> > once the latter is moved to iommufd.
>
> Sorry, I think I ment a, which I guess you will say is SW mdev devices

We listed a) here in case we don't want to move all vfio device types to
use iommufd in one breath. It's supposed to be a type valid only in this
transition phase. In the end only b) and c) are valid.

>
> But even so, I think the way forward here is to still always expose
> the device /dev/vfio/devices/X and some devices may not allow iommufd
> usage initially.
>
> Providing an ioctl to bind to a normal VFIO container or group might
> allow a reasonable fallback in userspace..
>

but doesn't a new ioctl still imply breaking existing vfio userspace?

Thanks
Kevin