Messages in this thread | | | Date | Thu, 31 Aug 2023 12:12:58 +0530 | Subject | Re: [PATCH v2 4/5] iommu: Support mm PASID 1:n with sva domains | From | Vasant Hegde <> |
| |
On 8/31/2023 2:06 AM, Jason Gunthorpe wrote: > On Mon, Aug 28, 2023 at 02:02:52PM +0530, Vasant Hegde wrote: > >> I am not sure whether I understood the flow completely. Just wondering why you >> are not freeing pasid in iommu_sva_unbind_device(). >> I mean once iommu_mm->sva_domains becomes free shouldn't we free the >> iommu_mm->pasid? > > No, for Intel use cases that PASID permanently becomes part of the > ENQCMD MSR and cannot be revoked once it has been set >
Fair enough.
Patch description did explain it to some extent. ("The PASID is released in __mmdrop()"). May be this needs to be expanded to cover why pasid is not released in iommu_sva_unbind_device().
>> Also in this function (mm_pasid_drop()), should we check/free sva domains? > > No, the driver must support a SVA domain with an empty mm_struct, eg > by hooking release.
Sorry. Looks like confused you. Looking into code I got this.
My question was: when PASID is enabled, is there any chance of mm_pasid_drop() getting called before freeing all SVA domains?
-Vasant
| |