[PATCH v2 0/2] bugfix and optimization about CMD_SYNC

From: Zhen Lei
Date: Thu Aug 09 2018 - 07:50:38 EST


v1->v2:
1. move the call to arm_smmu_cmdq_build_cmd into the critical section,
and keep itself unchange.
2. Although patch2 can make sure no two CMD_SYNCs will be adjacent,
but patch1 is still needed, see below:

cpu0 cpu1 cpu2
msidata=0
msidata=1
insert cmd1
insert a TLBI command
insert cmd0
smmu execute cmd1
smmu execute TLBI
smmu execute cmd0
poll timeout, because msidata=1 is overridden by
cmd0, that means VAL=0, sync_idx=1.

Zhen Lei (2):
iommu/arm-smmu-v3: fix unexpected CMD_SYNC timeout
iommu/arm-smmu-v3: avoid redundant CMD_SYNCs if possible

drivers/iommu/arm-smmu-v3.c | 26 ++++++++++++++++++++------
1 file changed, 20 insertions(+), 6 deletions(-)

--
1.8.3