Re: [PATCH v13 0/8] iommu/arm-smmu-v3: Introduce an RCU-protected invalidation array

From: Will Deacon

Date: Thu Mar 19 2026 - 12:37:51 EST


On Tue, 17 Mar 2026 00:59:15 -0700, Nicolin Chen wrote:
> This is a work based on Jason's design and algorithm. This implementation
> follows his initial draft and revising as well.
>
> The new arm_smmu_invs array is an RCU-protected array, mutated when device
> attach to the domain, iterated when an invalidation is required for IOPTE
> changes in this domain. This keeps the current invalidation efficiency of
> a smb_mb() followed by a conditional rwlock replacing the atomic/spinlock
> combination.
>
> [...]

Applied to iommu (arm/smmu/updates), thanks!

[1/8] iommu/arm-smmu-v3: Add a missing dma_wmb() for hitless STE update
https://git.kernel.org/iommu/c/6fabce53f6b9
[2/8] iommu/arm-smmu-v3: Explicitly set smmu_domain->stage for SVA
https://git.kernel.org/iommu/c/9b056856880a
[3/8] iommu/arm-smmu-v3: Add an inline arm_smmu_domain_free()
https://git.kernel.org/iommu/c/c317452f5a22
[4/8] iommu/arm-smmu-v3: Introduce a per-domain arm_smmu_invs array
https://git.kernel.org/iommu/c/15a2a5645ad7
[5/8] iommu/arm-smmu-v3: Pre-allocate a per-master invalidation array
https://git.kernel.org/iommu/c/e3a56b37bf75
[6/8] iommu/arm-smmu-v3: Populate smmu_domain->invs when attaching masters
https://git.kernel.org/iommu/c/b77429757e45
[7/8] iommu/arm-smmu-v3: Add arm_smmu_invs based arm_smmu_domain_inv_range()
https://git.kernel.org/iommu/c/587bb3e56a2c
[8/8] iommu/arm-smmu-v3: Perform per-domain invalidations using arm_smmu_invs
https://git.kernel.org/iommu/c/4202fddd01c7

Cheers,
--
Will

https://fixes.arm64.dev
https://next.arm64.dev
https://will.arm64.dev