iommu/arm-smmu-v3: Reduce contention during command-queue insertion
authorWill Deacon <will@kernel.org>
Tue, 2 Jul 2019 16:16:25 +0000 (17:16 +0100)
committerWill Deacon <will@kernel.org>
Thu, 8 Aug 2019 12:31:54 +0000 (13:31 +0100)
commit587e6c10a7ce89a5924fdbeff2ec524fbd6a124b
tree6cc02601cd05efcfebb712a740a22cea60784e1e
parent7c288a5b27934281d9ea8b5807bc727268b7001a
iommu/arm-smmu-v3: Reduce contention during command-queue insertion

The SMMU command queue is a bottleneck in large systems, thanks to the
spin_lock which serialises accesses from all CPUs to the single queue
supported by the hardware.

Attempt to improve this situation by moving to a new algorithm for
inserting commands into the queue, which is lock-free on the fast-path.

Tested-by: Ganapatrao Kulkarni <gkulkarni@marvell.com>
Signed-off-by: Will Deacon <will@kernel.org>
drivers/iommu/arm-smmu-v3.c