[PATCH 00/11] Convert Intel IOMMU to use sva-lib helpers

From: Lu Baolu
Date: Wed May 19 2021 - 23:16:52 EST


This patch series converts the Intel IOMMU to use the generic sva
helpers defined in iommu-sva-lib.c and io-pgfault.c. It includes the
SVA pasid management and IO page fault handling.

This series could be divided into below parts:
PATCH[1~3]: Use iommu_sva_alloc/free_pasid() to manage the SVA pasid.
PATCH[4-6]: Use the generic sva io page fault handler iommu_queue_iopf.
PATCH[7-11]: Add ftrace and debugfs support for io page fault handling.

Please help to review.

Best regards,
baolu

Lu Baolu (11):
iommu/vt-d: Add pasid private data helpers
iommu/vt-d: Use iommu_sva_alloc(free)_pasid() helpers
iommu/vt-d: Use common helper to lookup svm devices
iommu/vt-d: Refactor prq_event_thread()
iommu/vt-d: Allocate/register iopf queue for sva devices
iommu/vt-d: Report prq to io-pgfault framework
iommu/vt-d: Add prq_report trace event
iommu/vt-d: Add common code for dmar latency performance monitors
iommu/vt-d: Expose latency monitor data through debugfs
iommu/vt-d: Add cache invalidation latency sampling
iommu/vt-d: Add PRQ handling latency sampling

include/linux/intel-iommu.h | 33 +-
drivers/iommu/intel/perf.h | 73 ++++
include/trace/events/intel_iommu.h | 37 ++
drivers/iommu/intel/debugfs.c | 111 +++++
drivers/iommu/intel/dmar.c | 31 ++
drivers/iommu/intel/iommu.c | 73 +++-
drivers/iommu/intel/perf.c | 166 ++++++++
drivers/iommu/intel/svm.c | 627 ++++++++++++++---------------
drivers/iommu/intel/Kconfig | 5 +
drivers/iommu/intel/Makefile | 1 +
10 files changed, 819 insertions(+), 338 deletions(-)
create mode 100644 drivers/iommu/intel/perf.h
create mode 100644 drivers/iommu/intel/perf.c

--
2.25.1