Messages in this thread | | | From | "Tian, Kevin" <> | Subject | RE: [PATCH 01/12] iommu/vt-d: Add cache tag assignment interface | Date | Wed, 10 Apr 2024 23:14:30 +0000 |
| |
> From: Jason Gunthorpe <jgg@ziepe.ca> > Sent: Wednesday, April 10, 2024 11:42 PM > > On Mon, Mar 25, 2024 at 10:16:54AM +0800, Lu Baolu wrote: > > +static int __cache_tag_assign_parent_domain(struct dmar_domain > *domain, u16 did, > > + struct device *dev, ioasid_t pasid) > > +{ > > + struct device_domain_info *info = dev_iommu_priv_get(dev); > > + int ret; > > + > > + ret = cache_tag_assign(domain, did, dev, pasid, > CACHE_TAG_TYPE_PARENT_IOTLB); > > + if (ret || !info->ats_enabled) > > + return ret; > > I'm not sure I understood the point of PARENT_IOTLB? I didn't see any > different implementation? > > Isn't this backwards though? Each domain should have a list of things > to invalidate if the domain itself changes. > > So the nesting parent should have a list of CHILD_DEVTLB's that need > cleaning. That list is changed when the nesting domains are attached > to something. >
probably just a naming confusion. it's called PARENT_IOTLB from the angle that this domain is used as a parent domain but actually it tracks the child tags in nested attach.
| |