Messages in this thread | | | From | "Tian, Kevin" <> | Subject | RE: [PATCH 0/5] Share sva domains with all devices bound to a mm | Date | Wed, 9 Aug 2023 09:41:20 +0000 |
| |
> From: Zhang, Tina <tina.zhang@intel.com> > Sent: Tuesday, August 8, 2023 3:50 PM > > A sva domain's lifetime begins with binding a device to a mm and ends > by releasing all the bound devices from that sva domain. Technically, > there could be more than one sva domain identified by the mm PASID for > the use of bound devices issuing DMA transactions.
Could you elaborate it with some concrete examples which motivate this change?
> > To support mm PASID 1:n with sva domains, each mm needs to keep both a > reference list of allocated sva domains and the corresponding PASID. > However, currently, mm struct only has one pasid field for sva usage, > which is used to keep the info of an assigned PASID. That pasid field > cannot provide sufficient info to build up the 1:n mapping between PASID > and sva domains. > > This patch-set fills the gap by adding an mm_iommu field[1], whose type is > mm_iommu_data struct, to replace the old pasid field. The introduced > mm_iommu_data struct keeps info of both a reference list of sva domains > and an assigned PASID. > > > [1]: https://lore.kernel.org/linux-iommu/ZIBxPd1%2FJCAle6yP@nvidia.com/ > > > The RFC version of this patch-set is here: > https://lore.kernel.org/linux-iommu/20230707013441.365583-1- > tina.zhang@intel.com/ > > Tina Zhang (5): > iommu: Add mm_get_pasid() helper function > iommu: Call helper function to get assigned pasid value > mm: Add structure to keep sva information > iommu: Support mm PASID 1:n with sva domains > mm: Deprecate pasid field > > arch/x86/kernel/traps.c | 2 +- > .../iommu/arm/arm-smmu-v3/arm-smmu-v3-sva.c | 12 ++--- > drivers/iommu/intel/svm.c | 8 +-- > drivers/iommu/iommu-sva.c | 50 ++++++++++++------- > include/linux/iommu.h | 19 +++++-- > include/linux/mm_types.h | 3 +- > kernel/fork.c | 1 - > mm/init-mm.c | 3 -- > 8 files changed, 58 insertions(+), 40 deletions(-) > > -- > 2.17.1
| |