• Lu Baolu's avatar
    iommu/vt-d: Add cache tag assignment interface · 3b1d9e2b
    Lu Baolu authored
    Caching tag is a combination of tags used by the hardware to cache various
    translations. Whenever a mapping in a domain is changed, the IOMMU driver
    should invalidate the caches with the caching tags. The VT-d specification
    describes caching tags in section 6.2.1, Tagging of Cached Translations.
    
    Add interface to assign caching tags to an IOMMU domain when attached to a
    RID or PASID, and unassign caching tags when a domain is detached from a
    RID or PASID. All caching tags are listed in the per-domain tag list and
    are protected by a dedicated lock.
    
    In addition to the basic IOTLB and devTLB caching tag types, NESTING_IOTLB
    and NESTING_DEVTLB tag types are also introduced. These tags are used for
    caches that store translations for DMA accesses through a nested user
    domain. They are affected by changes to mappings in the parent domain.
    Signed-off-by: default avatarLu Baolu <baolu.lu@linux.intel.com>
    Reviewed-by: default avatarKevin Tian <kevin.tian@intel.com>
    Link: https://lore.kernel.org/r/20240416080656.60968-2-baolu.lu@linux.intel.comSigned-off-by: default avatarJoerg Roedel <jroedel@suse.de>
    3b1d9e2b
iommu.h 37.8 KB