Messages in this thread | | | Date | Fri, 20 Sep 2019 18:38:43 +0200 | From | Jean-Philippe Brucker <> | Subject | Re: [PATCH 4/4] iommu: Introduce guest PASID bind function |
| |
On Wed, Sep 18, 2019 at 04:26:34PM -0700, Jacob Pan wrote: > Guest shared virtual address (SVA) may require host to shadow guest > PASID tables. Guest PASID can also be allocated from the host via > enlightened interfaces. In this case, guest needs to bind the guest > mm, i.e. cr3 in guest physical address to the actual PASID table in > the host IOMMU. Nesting will be turned on such that guest virtual > address can go through a two level translation: > - 1st level translates GVA to GPA > - 2nd level translates GPA to HPA > This patch introduces APIs to bind guest PASID data to the assigned > device entry in the physical IOMMU. See the diagram below for usage > explaination.
explanation
Otherwise Looks fine to me. I was wondering if we would be able to reuse the API for Arm SMMUv2, which allows nesting translation, but without PASID - there is a single address space per device, with two stages of translation. I think it would work, although it would look better with something like "PGD" instead of "PASID" in the API names (e.g. iommu_sva_bind_gpgd) since that case wouldn't use PASID at all. But I don't want to quibble over names, so
Reviewed-by: Jean-Philippe Brucker <jean-philippe@linaro.org>
| |