RE: [PATCH 01/12] iommu/vt-d: Add cache tag assignment interface

From: Tian, Kevin
Date: Sun Apr 07 2024 - 22:28:27 EST


> From: Baolu Lu <baolu.lu@xxxxxxxxxxxxxxx>
> Sent: Sunday, April 7, 2024 12:35 PM
>
> On 4/6/24 8:55 PM, Baolu Lu wrote:
> >>
> >>> @@ -4607,10 +4623,11 @@ static void
> >>> intel_iommu_remove_dev_pasid(struct device *dev, ioasid_t pasid)
> >>>        */
> >>>       if (domain->type == IOMMU_DOMAIN_SVA) {
> >>>           intel_svm_remove_dev_pasid(dev, pasid);
> >>> +        cache_tag_unassign_domain(dmar_domain,
> >>> +                      FLPT_DEFAULT_DID, dev, pasid);
> >>
> >> is it correct to destroy the tag before teardown completes, e.g. iotlb
> >> still
> >> needs to be flushed in intel_pasid_tear_down_entry()?
> >
> > You are right. iotlb still needs to be there until the teardown
> > completes. I will investigate this more later.
>
> I reviewed this again. Cache tags are designed specifically for mapping
> and unmapping paths. Therefore, there is no required order for attaching
> and detaching paths.
>

Okay. intel_pasid_tear_down_entry() directly retrieves the information
from the pasid entry instead of relying on the domain cache tag info.
so yes destroying the tag at this point is fine.