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

From: Baolu Lu
Date: Thu Apr 11 2024 - 09:18:15 EST


On 2024/4/11 7:14, Tian, Kevin wrote:
From: Jason Gunthorpe <jgg@xxxxxxxx>
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.

Is NESTING_IOTLB more readable?

Best regards,
baolu