> From: Baolu Lu > Sent: Friday, June 10, 2022 3:16 PM > > > >> +#define __IOMMU_DOMAIN_HOST_VA (1U << 5) /* Host CPU virtual > address */ > > > > Do you mean general CPU VA? or Host CPU VA, I'm reading the latter as > 2nd > > stage? > > Host CPU VA. In the near future, we will add another flag _GUEST_VA, so > that the shared page table types are distiguished.
How does the kernel knows that an user page table translates guest VA? IMHO I don't think the kernel should care about it except managing all the aspects related to the user page table itself... > > > > >> + > >> /* > >> * This are the possible domain-types > >> * > >> @@ -86,15 +89,24 @@ struct iommu_domain_geometry { > >> #define IOMMU_DOMAIN_DMA_FQ > (__IOMMU_DOMAIN_PAGING | \ > >> __IOMMU_DOMAIN_DMA_API | \ > >> __IOMMU_DOMAIN_DMA_FQ) > >> +#define IOMMU_DOMAIN_SVA (__IOMMU_DOMAIN_SHARED | > \ > >> + __IOMMU_DOMAIN_HOST_VA) > > > > Doesn't shared automatically mean CPU VA? Do we need another flag? > > Yes. Shared means CPU VA, but there're many types. Besides above two, we > also see the shared KVM/EPT. > Will the two sharing scenarios share any common code? If not then having a separate flag bit is meaningless. It might be more straightforward to be: #define IOMMU_DOMAIN_SVA __IOMMU_DOMAIN_SVA #define IOMMU_DOMAIN_KVM __IOMMU_DOMAIN_KVM #define IOMMU_DOMAIN_USER __IOMMU_DOMAIN_USER Thanks Kevin _______________________________________________ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu