soc: qcom: icc-bwmon: Add bandwidth monitoring driver
authorKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Mon, 4 Jul 2022 12:17:28 +0000 (14:17 +0200)
committerBjorn Andersson <bjorn.andersson@linaro.org>
Wed, 6 Jul 2022 20:57:51 +0000 (15:57 -0500)
commitb9c2ae6cac403dee3195fda9eb28d8ee733b225b
tree38d56940663d36c26d9b73db3901da36ebb04775
parenta7ee53e19b6234834acc8f27f8ddb64ef73eebdb
soc: qcom: icc-bwmon: Add bandwidth monitoring driver

Bandwidth monitoring (BWMON) sits between various subsytems like CPU,
GPU, Last Level caches and memory subsystem.  The BWMON can be
configured to monitor the data throuhput between memory and other
subsytems.  The throughput is measured within specified sampling window
and is used to vote for corresponding interconnect bandwidth.

Current implementation brings support for BWMON v4, used for example on
SDM845 to measure bandwidth between CPU (gladiator_noc) and Last Level
Cache (memnoc).  Usage of this BWMON allows to remove fixed bandwidth
votes from cpufreq (CPU nodes) thus achieve high memory throughput even
with lower CPU frequencies.

The driver was tested on SDM845.

Co-developed-by: Thara Gopinath <thara.gopinath@gmail.com>
Signed-off-by: Thara Gopinath <thara.gopinath@gmail.com>
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Link: https://lore.kernel.org/r/20220704121730.127925-3-krzysztof.kozlowski@linaro.org
MAINTAINERS
drivers/soc/qcom/Kconfig
drivers/soc/qcom/Makefile
drivers/soc/qcom/icc-bwmon.c [new file with mode: 0644]