iommu/arm-smmu-v3: Add and use static helper function arm_smmu_cmdq_issue_cmd_with_sync()
authorZhen Lei <thunder.leizhen@huawei.com>
Wed, 11 Aug 2021 11:48:50 +0000 (19:48 +0800)
committerWill Deacon <will@kernel.org>
Fri, 13 Aug 2021 13:17:16 +0000 (14:17 +0100)
commit4537f6f1e2d8d22ec6f9c6bd3844fdccb931f46e
tree88d40e19c0855c55209055fd13d29030a9fcdfff
parenteff19474b1bd60286213e5052ccf246b6a6c7199
iommu/arm-smmu-v3: Add and use static helper function arm_smmu_cmdq_issue_cmd_with_sync()

The obvious key to the performance optimization of commit 587e6c10a7ce
("iommu/arm-smmu-v3: Reduce contention during command-queue insertion") is
to allow multiple cores to insert commands in parallel after a brief mutex
contention.

Obviously, inserting as many commands at a time as possible can reduce the
number of times the mutex contention participates, thereby improving the
overall performance. At least it reduces the number of calls to function
arm_smmu_cmdq_issue_cmdlist().

Therefore, function arm_smmu_cmdq_issue_cmd_with_sync() is added to insert
the 'cmd+sync' commands at a time.

Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com>
Link: https://lore.kernel.org/r/20210811114852.2429-3-thunder.leizhen@huawei.com
Signed-off-by: Will Deacon <will@kernel.org>
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c