RE: [PATCH V4 05/18] iommu/ioasid: Redefine IOASID set and allocation APIs

From: Tian, Kevin
Date: Thu May 13 2021 - 02:52:52 EST


> From: David Gibson <david@xxxxxxxxxxxxxxxxxxxxx>
> Sent: Thursday, May 13, 2021 2:01 PM
> >
> > But this definitely all becomes HW specific.
> >
> > For instance I want to have an ARM vIOMMU driver it needs to do some
> >
> > ret = ioctl(ioasid_fd, CREATE_NESTED_IOASID, [page table format is
> ARMvXXX])
> > if (ret == -EOPNOTSUPP)
> > ret = ioctl(ioasid_fd, CREATE_NORMAL_IOASID, ..)
> > // and do completely different and more expensive emulation
> >
> > I can get a little bit of generality, but at the end of the day the
> > IOMMU must create a specific HW layout of the nested page table, if it
> > can't, it can't.
>
> Erm.. I don't really know how your IOASID interface works here. I'm
> thinking about the VFIO interface where maps and unmaps are via
> explicit ioctl()s, which provides an obvious point to do translation
> between page table formats.
>

We are working on a draft uAPI proposal based on the discussions in this
thread. expect to send it out next week.

Thanks
Kevin