[PATCH 0/2] Batch IOTLB/dev-IOTLB invalidation

From: Tina Zhang
Date: Thu May 16 2024 - 20:37:50 EST


IOTLB and dev-IOTLB invalidation operations are performance-critical.
The current implementation in the VT-d driver submits these commands
individually, leading to some inefficiencies due to the IOMMU
programming and invalidation command processing overhead for each
operation.

This patch series, based on "Consolidate domain cache invalidation"
series[1], enhances the efficiency of Queue Invalidation (QI)
operations by adding support for batch processing. Microbenchmarks
show that with a DSA device working in SVA, batching IOTLB and dev-IOTLB
invalidations can decrease the time spent in qi_submit_sync()
by roughly more than 800 cycles.

Tina Zhang (2):
iommu/vt-d: Support batching IOTLB/dev-IOTLB invalidation commands
iommu/vt-d: Batch IOTLB/dev-IOTLB invalidation commands

[1]: https://lore.kernel.org/linux-iommu/20240416080656.60968-1-baolu.lu@xxxxxxxxxxxxxxx/

drivers/iommu/intel/cache.c | 89 ++++++++++++++++++++++++++++++-------
drivers/iommu/intel/dmar.c | 67 +++++++++++++++-------------
drivers/iommu/intel/iommu.c | 27 ++++++-----
drivers/iommu/intel/iommu.h | 21 ++++++---
drivers/iommu/intel/pasid.c | 20 +++++----
5 files changed, 152 insertions(+), 72 deletions(-)

--
2.39.3