Hi all, This patch series is an attempt to reduce lock contention when inserting commands into the Arm SMMUv3 command queue. Unfortunately, our initial benchmarking has shown mixed results across the board and the changes in the last patch don't appear to justify their complexity. Based on that, I only plan to queue the first patch for the time being.
Anyway, before I park this series, I thought it was probably worth sharing it in case it's useful to somebody. If you have a system where you believe I/O performance to be limited by the SMMUv3 command queue then please try these patches and let me know what happens, even if it's just more bad news. Patches based on 5.2-rc3. I've also pushed them out to my iommu/devel branch for the moment: https://git.kernel.org/pub/scm/linux/kernel/git/will/linux.git/log/?h=iommu/devel Thanks, Will --->8 Cc: Jean-Philippe Brucker <jean-philippe.bruc...@arm.com> Cc: Robin Murphy <robin.mur...@arm.com> Cc: Jayachandran Chandrasekharan Nair <jn...@marvell.com> Cc: Jan Glauber <jglau...@marvell.com> Cc: Jon Masters <j...@redhat.com> Cc: Eric Auger <eric.au...@redhat.com> Cc: Zhen Lei <thunder.leiz...@huawei.com> Cc: Jonathan Cameron <jonathan.came...@huawei.com> Cc: Vijay Kilary <vkil...@codeaurora.org> Cc: Joerg Roedel <j...@8bytes.org> Will Deacon (6): iommu/arm-smmu-v3: Increase maximum size of queues iommu/arm-smmu-v3: Separate s/w and h/w views of prod and cons indexes iommu/arm-smmu-v3: Drop unused 'q' argument from Q_OVF macro iommu/arm-smmu-v3: Move low-level queue fields out of arm_smmu_queue iommu/arm-smmu-v3: Operate directly on low-level queue where possible iommu/arm-smmu-v3: Reduce contention during command-queue insertion drivers/iommu/arm-smmu-v3.c | 725 ++++++++++++++++++++++++++++++++------------ 1 file changed, 534 insertions(+), 191 deletions(-) -- 2.11.0 _______________________________________________ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu