Re: [Intel-gfx] [PATCH v5 06/10] vfio-iommufd: Add helper to retrieve iommufd_ctx and devid for vfio_device

Jason Gunthorpe
2023-05-17T18:44:05Z

On Wed, May 17, 2023 at 12:40:32PM -0600, Alex Williamson wrote:
> On Wed, 17 May 2023 15:22:27 -0300
> Jason Gunthorpe <jgg@nvidia.com> wrote:
>
> > On Wed, May 17, 2023 at 12:15:17PM -0600, Alex Williamson wrote:
> >
> > > > +int vfio_iommufd_physical_devid(struct vfio_device *vdev)
> > > > +{
> > > > + if (vdev->iommufd_device)
> > > > + return iommufd_device_to_id(vdev->iommufd_device);
> > > > + if (vdev->noiommu_access)
> > > > + return iommufd_access_to_id(vdev->noiommu_access);
> > > > + return -EINVAL;
> > > > +}
> > > > +EXPORT_SYMBOL_GPL(vfio_iommufd_physical_devid);
> > >
> > > I think these exemplify that it would be better if both emulated and
> > > noiommu use the same iommufd_access pointer. Thanks,
> >
> > Oh, I mis understood your other remark.. Yeah good question I have to
> > study this also
>
> I guess I also missed that this wasn't iommufd_access vs
> noiommu_access, it's device vs access, but shouldn't any iommufd_access
> pointer provide the devid? I need to go look why we need two different
> methods to get a devid...

At least this hunk above makes sense, access and device are two
different objects with different types, so having different ID
accessors is reasonably logical.

But it is a good point that this should return the dev id of the
normal access for a normal mdev too

Ideally I'd like to see that we always return a dev id to userspace
for all vfio device types. Then we can rely on it

Jason