[PATCH v8 0/9] iommu: I/O page faults for SMMUv3
vivek.gautam at arm.com
Thu Dec 3 01:52:59 EST 2020
On Thu, Nov 12, 2020 at 6:33 PM Jean-Philippe Brucker
<jean-philippe at linaro.org> wrote:
> 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 .
> 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" , 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.
I have been testing this series for sometime now with a RDN1Edge platform model.
The public model for N1-Edge rd FVP can be found at [A].
With reference software [B] and your kernel branch with smmute [C], I
was able to
test smmute by initiating different DMA transactions. With model logs I was able
to validate ATS and PRI command flows as well.
So I am happy to give my tested-by tag.
Tested-by: Vivek Gautam <vivek.gautam at arm.com>
>  https://email@example.com/
>  https://firstname.lastname@example.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
> iommu mailing list
> iommu at lists.linux-foundation.org
More information about the linux-arm-kernel