[PATCH v8 0/9] iommu: I/O page faults for SMMUv3
Vivek Gautam
vivek.gautam at arm.com
Thu Dec 3 01:52:59 EST 2020
Hi Jean,
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 [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.
>
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>
Best regards
Vivek
[A] https://developer.arm.com/tools-and-software/open-source-software/arm-platforms-software/arm-ecosystem-fvps
[B] https://git.linaro.org/landing-teams/working/arm/arm-reference-platforms.git/about/docs/rdn1edge/user-guide.rst
[C] https://jpbrucker.net/git/linux/log/?h=sva/smmute-2020-11-12
> [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
>
> _______________________________________________
> iommu mailing list
> iommu at lists.linux-foundation.org
> https://lists.linuxfoundation.org/mailman/listinfo/iommu
More information about the linux-arm-kernel
mailing list