All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] Use another method to avoid resource conflicts between the SMMU and PMCG drivers
@ 2021-01-19  1:59 ` Zhen Lei
  0 siblings, 0 replies; 42+ messages in thread
From: Zhen Lei @ 2021-01-19  1:59 UTC (permalink / raw)
  To: Will Deacon, Robin Murphy, Mark Rutland, Joerg Roedel,
	linux-arm-kernel, iommu, linux-kernel
  Cc: Zhen Lei, Jean-Philippe Brucker, Neil Leeder, Shameer Kolothum

Since the PMCG may implement its resigters space(4KB Page0 and 4KB Page1)
within the SMMUv3 64KB Page0. In this case, when the SMMUv3 driver reserves the
64KB Page0 resource in advance, the PMCG driver try to reserve its Page0 and
Page1 resources, a resource conflict occurs.

commit 52f3fab0067d6fa ("iommu/arm-smmu-v3: Don't reserve implementation
defined register space") reduce the resource reservation range of the SMMUv3
driver, it only reserves the first 0xe00 bytes in the 64KB Page0, to avoid
the above-mentioned resource conflicts.

But the SMMUv3.3 add support for ECMDQ, its registers space is also implemented
in the SMMUv3 64KB Page0. This means we need to build two separate mappings.
New features may be added in the future, and more independent mappings may be
required. The simple problem is complicated because the user expects to map the
entire SMMUv3 64KB Page0.

Therefore, the proper solution is: If the PMCG register resources are located in
the 64KB Page0 of the SMMU, the PMCG driver does not reserve the conflict resources
when the SMMUv3 driver has reserved the conflict resources before. Instead, the PMCG
driver only performs devm_ioremap() to ensure that it can work properly.


Zhen Lei (2):
  perf/smmuv3: Don't reserve the register space that overlaps with the
    SMMUv3
  Revert "iommu/arm-smmu-v3: Don't reserve implementation defined
    register space"

 drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 32 +++-------------------
 drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h |  3 ---
 drivers/perf/arm_smmuv3_pmu.c               | 42 +++++++++++++++++++++++++++--
 3 files changed, 44 insertions(+), 33 deletions(-)

-- 
1.8.3



^ permalink raw reply	[flat|nested] 42+ messages in thread

end of thread, other threads:[~2021-01-22  2:52 UTC | newest]

Thread overview: 42+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-01-19  1:59 [PATCH 0/2] Use another method to avoid resource conflicts between the SMMU and PMCG drivers Zhen Lei
2021-01-19  1:59 ` Zhen Lei
2021-01-19  1:59 ` Zhen Lei
2021-01-19  1:59 ` [PATCH 1/2] perf/smmuv3: Don't reserve the register space that overlaps with the SMMUv3 Zhen Lei
2021-01-19  1:59   ` Zhen Lei
2021-01-19  1:59   ` Zhen Lei
2021-01-19 12:32   ` Robin Murphy
2021-01-19 12:32     ` Robin Murphy
2021-01-19 12:32     ` Robin Murphy
2021-01-20  3:37     ` Leizhen (ThunderTown)
2021-01-20  3:37       ` Leizhen (ThunderTown)
2021-01-20  3:37       ` Leizhen (ThunderTown)
2021-01-20  9:26       ` Leizhen (ThunderTown)
2021-01-20  9:26         ` Leizhen (ThunderTown)
2021-01-20  9:26         ` Leizhen (ThunderTown)
2021-01-20 13:27         ` Robin Murphy
2021-01-20 13:27           ` Robin Murphy
2021-01-20 13:27           ` Robin Murphy
2021-01-20 14:14           ` Leizhen (ThunderTown)
2021-01-20 14:14             ` Leizhen (ThunderTown)
2021-01-20 14:14             ` Leizhen (ThunderTown)
2021-01-20 15:54             ` Robin Murphy
2021-01-20 15:54               ` Robin Murphy
2021-01-20 15:54               ` Robin Murphy
2021-01-21  2:19               ` Leizhen (ThunderTown)
2021-01-21  2:19                 ` Leizhen (ThunderTown)
2021-01-21  2:19                 ` Leizhen (ThunderTown)
2021-01-19  1:59 ` [PATCH 2/2] Revert "iommu/arm-smmu-v3: Don't reserve implementation defined register space" Zhen Lei
2021-01-19  1:59   ` Zhen Lei
2021-01-19  1:59   ` Zhen Lei
2021-01-20 15:02   ` Robin Murphy
2021-01-20 15:02     ` Robin Murphy
2021-01-20 15:02     ` Robin Murphy
2021-01-21  2:04     ` Leizhen (ThunderTown)
2021-01-21  2:04       ` Leizhen (ThunderTown)
2021-01-21  2:04       ` Leizhen (ThunderTown)
2021-01-21 12:50       ` Robin Murphy
2021-01-21 12:50         ` Robin Murphy
2021-01-21 12:50         ` Robin Murphy
2021-01-22  2:50         ` Leizhen (ThunderTown)
2021-01-22  2:50           ` Leizhen (ThunderTown)
2021-01-22  2:50           ` Leizhen (ThunderTown)

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.