From: David Gibson <redacted>
Sent: Thursday, May 13, 2021 2:01 PM
quoted
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])
quoted
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