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

From: Jason Gunthorpe
Date: Tue Sep 21 2021 - 20:53:52 EST


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

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

Jason