[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