[PATCH v2 01/40] iommu: Introduce Shared Virtual Addressing API
kevin.tian at intel.com
Thu Sep 13 00:26:30 PDT 2018
> From: Christian König
> Sent: Friday, September 7, 2018 4:56 PM
> 5. It would be nice to have to allocate multiple PASIDs for the same
> process address space.
> E.g. some teams at AMD want to use a separate GPU address space
> for their userspace client library. I'm still trying to avoid that, but
> it is perfectly possible that we are going to need that.
> Additional to that it is sometimes quite useful for debugging
> to isolate where exactly an incorrect access (segfault) is coming from.
> Let me know if there are some problems with that, especially I want to
> know if there is pushback on #5 so that I can forward that :)
We have similar requirement, except that it is "multiple PASIDs for
same process" instead of "for same process address space".
Intel VT-d goes to a 'true' system-wide PASID allocation policy,
cross both host processes and guest processes. As Jacob explains,
there will be a virtual cmd register on virtual vtd, through which
guest IOMMU driver requests to get system-wide PASIDs allocated
by host IOMMU driver.
with that design, Qemu represents all guest processes in host
side, thus will get "multiple PASIDs allocated for same process".
However instead of binding all PASIDs to same host address space
of Qemu, each of PASID entry points to guest address space if
used by guest process.
More information about the linux-arm-kernel