Messages in this thread | | | Date | Thu, 10 Aug 2023 09:23:23 +0800 | Subject | Re: [PATCH 0/5] Share sva domains with all devices bound to a mm | From | Baolu Lu <> |
| |
On 2023/8/9 22:46, Jason Gunthorpe wrote: > On Wed, Aug 09, 2023 at 08:18:18AM +0800, Baolu Lu wrote: >> On 2023/8/8 15:49, Tina Zhang wrote: >>> 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. >>> >>> 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. >> Is it more appropriate to have the same life cycle for sva domain and mm >> pasid? I feel that they represent the same thing, that is, the address >> space shared by mm to a device. > No! The iommu_domain and the PASID are totally seperate objects with > their own lifecycles. > > The SVA domain should NEVER be tied to the mm enqcmd PASID.
Okay. Fair enough.
> > We might decide to free all the domains and keep the PASID around (can > we even revoke the enqcmd pasid while the MM is alive?)
We ever did this and was removed to make code simple.
Best regards, baolu
| |