Messages in this thread | | | From | "Tian, Kevin" <> | Subject | RE: [PATCH v4 05/22] iommu: introduce iommu invalidate API function | Date | Sat, 28 Apr 2018 02:41:08 +0000 |
| |
> From: Jean-Philippe Brucker [mailto:jean-philippe.brucker@arm.com] > Sent: Saturday, April 28, 2018 2:08 AM > > [...] > >> If this corresponds to QI_GRAN_ALL_ALL in patch 9, the comment should > >> be "Cache of all PASIDs"? Or maybe "all entries for all PASIDs"? Is it > >> different from GRANU_DOMAIN then? > > QI_GRAN_ALL_ALL maps to VT-d spec 6.5.2.4, which invalidates all ext > > TLB cache within a domain. It could reuse GRANU_DOMAIN but I was > > also trying to match the naming convention in the spec. > > Sorry I don't quite understand the difference between TLB and ext TLB > invalidation. Can an ext TLB invalidation do everything a TLB can do > plus some additional parameters (introduced in more recent version of > the spec), or do they have distinct purposes? I'm trying to understand > why it needs to be user-visible
distinct purpose though some overlapped effect:
IOTLB invalidate is more for 2nd-level cache on granularity (global/ domain/PSI), with side effect on 1st-level and nested caches (global/ domain).
Extended IOTLB invalidate is specifically for 1st-level and nested caches on granularity (per-domain: all PASIDs/per PASID/PSI).
Thanks Kevin
| |