[PATCH v8 0/9] iommu: I/O page faults for SMMUv3
Jean-Philippe Brucker
jean-philippe at linaro.org
Thu Nov 12 07:55:12 EST 2020
Add support for stall and PRI to the SMMUv3 driver, along with a common
I/O Page Fault handler.
These patches were last sent as part of v7 of the larger SVA series [1].
Main changes since v7:
* Dropped CONFIG_IOMMU_PAGE_FAULT, reuse CONFIG_IOMMU_SVA_LIB instead.
* Extracted devicetree support into patch 4.
* Added patch 5 for ACPI support.
* Dropped event queue flush on unbind(). Since device drivers must
complete DMA transactions before calling unbind(), there cannot be any
pending stalled event.
* A few small fixes.
The series depends on "iommu/sva: Add PASID helpers" [2], since it
provides the function to search an mm_struct by PASID.
Has anyone been testing the PRI patches on hardware? I still only have a
software model to test them, so as much as I'd like to cross this off my
list, we could leave out patches 7-9 for now.
[1] https://lore.kernel.org/linux-iommu/20200519175502.2504091-1-jean-philippe@linaro.org/
[2] https://lore.kernel.org/linux-iommu/20201106155048.997886-1-jean-philippe@linaro.org/
Jean-Philippe Brucker (9):
iommu: Add a page fault handler
iommu/arm-smmu-v3: Maintain a SID->device structure
dt-bindings: document stall property for IOMMU masters
of/iommu: Support dma-can-stall property
ACPI/IORT: Enable stall support for platform devices
iommu/arm-smmu-v3: Add stall support for platform devices
PCI/ATS: Add PRI stubs
PCI/ATS: Export PRI functions
iommu/arm-smmu-v3: Add support for PRI
drivers/iommu/Makefile | 1 +
.../devicetree/bindings/iommu/iommu.txt | 18 +
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h | 69 +-
drivers/iommu/iommu-sva-lib.h | 53 ++
include/linux/iommu.h | 4 +
include/linux/pci-ats.h | 7 +
drivers/acpi/arm64/iort.c | 1 +
.../iommu/arm/arm-smmu-v3/arm-smmu-v3-sva.c | 52 +-
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 605 +++++++++++++++---
drivers/iommu/io-pgfault.c | 462 +++++++++++++
drivers/iommu/of_iommu.c | 5 +-
drivers/pci/ats.c | 4 +
12 files changed, 1191 insertions(+), 90 deletions(-)
create mode 100644 drivers/iommu/io-pgfault.c
--
2.29.1
More information about the linux-arm-kernel
mailing list