Linux ARM-MSM sub-architecture
 help / color / mirror / Atom feed
* [PATCH v3] soc: qcom: icc-bwmon: Update zone1_thres_count to 3
@ 2026-02-27 11:10 Pushpendra Singh
  2026-02-27 19:57 ` Dmitry Baryshkov
  2026-02-28  9:49 ` Krzysztof Kozlowski
  0 siblings, 2 replies; 6+ messages in thread
From: Pushpendra Singh @ 2026-02-27 11:10 UTC (permalink / raw)
  To: Krzysztof Kozlowski, Bjorn Andersson, Konrad Dybcio
  Cc: linux-arm-msm, linux-kernel, Shivnandan Kumar, Pushpendra Singh

From: Shivnandan Kumar <quic_kshivnan@quicinc.com>

Reduce zone1_thres_count from 16 to 3 so the driver can lower the bus
vote after 3 sample windows instead of waiting for 16. The previous
16‑window delay (~64 ms) is too long at higher FPS workloads,
causing delayed decision making and measurable power regression.

Empirical tuning showed that lower values (e.g., 2) made bwmon behavior
jittery, while higher values (4–6) were stable but less responsive and
reduced power savings. A value of 3 provided the best balance: responsive
enough for timely power reduction while maintaining stable bwmon
operation.

Significant power savings were observed across multiple use cases when
reducing the threshold from 16 to 3:

USECASE			zone1_thres_count=16     zone1_thres_count=3
4K video playback	   236.15 mA                  203.15 mA
Sleep			    7mA			        6.9mA
Display (idle display)	  71.95mA			67.11mA

Signed-off-by: Shivnandan Kumar <quic_kshivnan@quicinc.com>
Signed-off-by: Pushpendra Singh <pussin@qti.qualcomm.com>
---
Chages in v3:
- Update commit message
- Link to v2: https://lore.kernel.org/lkml/d72182bc-f8d4-4314-b2f1-c9242618eb67@quicinc.com/

Changes in v2:
- Update commit message
- Link to v1: https://lore.kernel.org/lkml/463eb7c8-00fc-4441-91d1-6e48f6b052c8@quicinc.com
---
 drivers/soc/qcom/icc-bwmon.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/soc/qcom/icc-bwmon.c b/drivers/soc/qcom/icc-bwmon.c
index 597f9025e422..e46975da7dba 100644
--- a/drivers/soc/qcom/icc-bwmon.c
+++ b/drivers/soc/qcom/icc-bwmon.c
@@ -830,7 +830,7 @@ static const struct icc_bwmon_data msm8998_bwmon_data = {
 static const struct icc_bwmon_data sdm845_cpu_bwmon_data = {
 	.sample_ms = 4,
 	.count_unit_kb = 64,
-	.zone1_thres_count = 16,
+	.zone1_thres_count = 3,
 	.zone3_thres_count = 1,
 	.quirks = BWMON_HAS_GLOBAL_IRQ,
 	.regmap_fields = sdm845_cpu_bwmon_reg_fields,
@@ -849,7 +849,7 @@ static const struct icc_bwmon_data sdm845_llcc_bwmon_data = {
 static const struct icc_bwmon_data sc7280_llcc_bwmon_data = {
 	.sample_ms = 4,
 	.count_unit_kb = 64,
-	.zone1_thres_count = 16,
+	.zone1_thres_count = 3,
 	.zone3_thres_count = 1,
 	.quirks = BWMON_NEEDS_FORCE_CLEAR,
 	.regmap_fields = sdm845_llcc_bwmon_reg_fields,
-- 
2.34.1


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

end of thread, other threads:[~2026-03-17 15:36 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-27 11:10 [PATCH v3] soc: qcom: icc-bwmon: Update zone1_thres_count to 3 Pushpendra Singh
2026-02-27 19:57 ` Dmitry Baryshkov
2026-02-28  9:49 ` Krzysztof Kozlowski
2026-03-17  5:45   ` Pushpendra Singh
2026-03-17  7:13     ` Krzysztof Kozlowski
2026-03-17 15:36     ` Dmitry Baryshkov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox