From b68ea8c57662e1a5958c9a9c411b34ecdd08ef79 Mon Sep 17 00:00:00 2001 From: Yvonne Yip Date: Mon, 7 Aug 2023 13:01:46 -0700 Subject: [PATCH 1/4] powerhint: add tapered_dvfs_headroom_enabled node Test: Load powerhint on device and boot Bug: 294612493 Change-Id: I823a18d5ee7b072115442a9af19645cce0605d72 --- perf/powerhint-husky.json | 10 ++++++++++ perf/powerhint-ripcurrent.json | 10 ++++++++++ perf/powerhint-shiba.json | 10 ++++++++++ 3 files changed, 30 insertions(+) diff --git a/perf/powerhint-husky.json b/perf/powerhint-husky.json index c14d30a..9d59d12 100644 --- a/perf/powerhint-husky.json +++ b/perf/powerhint-husky.json @@ -249,6 +249,16 @@ "DefaultIndex": 0, "ResetOnInit": true }, + { + "Name": "CPUTaperedDVFSHeadroomEnable", + "Path": "/proc/vendor_sched/tapered_dvfs_headroom_enable", + "Values": [ + "0", + "1" + ], + "DefaultIndex": 0, + "ResetOnInit": true + }, { "Name": "CAMUClampBoost", "Path": "/proc/vendor_sched/cam_uclamp_min", diff --git a/perf/powerhint-ripcurrent.json b/perf/powerhint-ripcurrent.json index bbfbbf1..305c41b 100644 --- a/perf/powerhint-ripcurrent.json +++ b/perf/powerhint-ripcurrent.json @@ -232,6 +232,16 @@ "DefaultIndex": 0, "ResetOnInit": true }, + { + "Name": "CPUTaperedDVFSHeadroomEnable", + "Path": "/proc/vendor_sched/tapered_dvfs_headroom_enable", + "Values": [ + "0", + "1" + ], + "DefaultIndex": 0, + "ResetOnInit": true + }, { "Name": "CAMUClampBoost", "Path": "/proc/vendor_sched/cam_uclamp_min", diff --git a/perf/powerhint-shiba.json b/perf/powerhint-shiba.json index 77be402..79d3679 100644 --- a/perf/powerhint-shiba.json +++ b/perf/powerhint-shiba.json @@ -239,6 +239,16 @@ "DefaultIndex": 0, "ResetOnInit": true }, + { + "Name": "CPUTaperedDVFSHeadroomEnable", + "Path": "/proc/vendor_sched/tapered_dvfs_headroom_enable", + "Values": [ + "0", + "1" + ], + "DefaultIndex": 0, + "ResetOnInit": true + }, { "Name": "CAMUClampBoost", "Path": "/proc/vendor_sched/cam_uclamp_min", From ea96611d826a353aa98e4e358259a976c9286311 Mon Sep 17 00:00:00 2001 From: Yvonne Yip Date: Mon, 7 Aug 2023 13:07:41 -0700 Subject: [PATCH 2/4] powerhint: game mode tuning Test: Load powerhint file on device and verify tuned parameters are default. Start Subway Surfers game and verify tuned parameters are expected tuned values. Switch away from game, and quit the game, and verify tuned parameters return to default. Bug: 294612493 Change-Id: Ibc0ba8fb1a9f2714d9509cecaa30c227aa4f8b69 --- perf/powerhint-husky.json | 32 ++++++++++++++++++++++++++ perf/powerhint-ripcurrent.json | 41 +++++++++++++++++++++++++++++++--- perf/powerhint-shiba.json | 32 ++++++++++++++++++++++++++ 3 files changed, 102 insertions(+), 3 deletions(-) diff --git a/perf/powerhint-husky.json b/perf/powerhint-husky.json index 9d59d12..a01790f 100644 --- a/perf/powerhint-husky.json +++ b/perf/powerhint-husky.json @@ -150,6 +150,7 @@ "Path": "/sys/devices/system/cpu/cpu4/cpufreq/sched_pixel/down_rate_limit_us", "Values": [ "20000", + "3000", "2000", "500" ], @@ -195,6 +196,7 @@ "Path": "/sys/devices/system/cpu/cpu8/cpufreq/sched_pixel/down_rate_limit_us", "Values": [ "20000", + "3000", "2000", "500" ], @@ -2281,6 +2283,36 @@ "Duration": 0, "Value": "game" }, + { + "PowerHint": "GAME", + "Node": "CPUDVFSHeadroom", + "Duration": 0, + "Value": "1100" + }, + { + "PowerHint": "GAME", + "Node": "CPUTaperedDVFSHeadroomEnable", + "Duration": 0, + "Value": "1" + }, + { + "PowerHint": "GAME", + "Node": "CPULittleClusterDownRateLimitUs", + "Duration": 0, + "Value": "500" + }, + { + "PowerHint": "GAME", + "Node": "CPUMidClusterDownRateLimitUs", + "Duration": 0, + "Value": "3000" + }, + { + "PowerHint": "GAME", + "Node": "CPUBigClusterDownRateLimitUs", + "Duration": 0, + "Value": "3000" + }, { "PowerHint": "THERMAL_VIRTUAL-SKIN-HINT_LIGHT", "Node": "PMU_POLL", diff --git a/perf/powerhint-ripcurrent.json b/perf/powerhint-ripcurrent.json index 305c41b..0558959 100644 --- a/perf/powerhint-ripcurrent.json +++ b/perf/powerhint-ripcurrent.json @@ -105,8 +105,9 @@ "Name": "CPULittleClusterDownRateLimitUs", "Path": "/sys/devices/system/cpu/cpu0/cpufreq/sched_pixel/down_rate_limit_us", "Values": [ + "5000", "2000", - "5000" + "500" ], "ResetOnInit": true }, @@ -142,8 +143,10 @@ "Name": "CPUMidClusterDownRateLimitUs", "Path": "/sys/devices/system/cpu/cpu4/cpufreq/sched_pixel/down_rate_limit_us", "Values": [ + "20000", + "3000", "2000", - "20000" + "500" ], "ResetOnInit": true }, @@ -179,8 +182,10 @@ "Name": "CPUBigClusterDownRateLimitUs", "Path": "/sys/devices/system/cpu/cpu8/cpufreq/sched_pixel/down_rate_limit_us", "Values": [ + "20000", + "3000", "2000", - "20000" + "500" ], "ResetOnInit": true }, @@ -2092,6 +2097,36 @@ "Duration": 0, "Value": "419000" }, + { + "PowerHint": "GAME", + "Node": "CPUDVFSHeadroom", + "Duration": 0, + "Value": "1100" + }, + { + "PowerHint": "GAME", + "Node": "CPUTaperedDVFSHeadroomEnable", + "Duration": 0, + "Value": "1" + }, + { + "PowerHint": "GAME", + "Node": "CPULittleClusterDownRateLimitUs", + "Duration": 0, + "Value": "500" + }, + { + "PowerHint": "GAME", + "Node": "CPUMidClusterDownRateLimitUs", + "Duration": 0, + "Value": "3000" + }, + { + "PowerHint": "GAME", + "Node": "CPUBigClusterDownRateLimitUs", + "Duration": 0, + "Value": "3000" + }, { "PowerHint": "THERMAL_VIRTUAL-SKIN-HINT_LIGHT", "Node": "PMU_POLL", diff --git a/perf/powerhint-shiba.json b/perf/powerhint-shiba.json index 79d3679..1f47f00 100644 --- a/perf/powerhint-shiba.json +++ b/perf/powerhint-shiba.json @@ -146,6 +146,7 @@ "Path": "/sys/devices/system/cpu/cpu4/cpufreq/sched_pixel/down_rate_limit_us", "Values": [ "20000", + "3000", "2000", "500" ], @@ -185,6 +186,7 @@ "Path": "/sys/devices/system/cpu/cpu8/cpufreq/sched_pixel/down_rate_limit_us", "Values": [ "20000", + "3000", "2000", "500" ], @@ -2157,6 +2159,36 @@ "Duration": 0, "Value": "419000" }, + { + "PowerHint": "GAME", + "Node": "CPUDVFSHeadroom", + "Duration": 0, + "Value": "1100" + }, + { + "PowerHint": "GAME", + "Node": "CPUTaperedDVFSHeadroomEnable", + "Duration": 0, + "Value": "1" + }, + { + "PowerHint": "GAME", + "Node": "CPULittleClusterDownRateLimitUs", + "Duration": 0, + "Value": "500" + }, + { + "PowerHint": "GAME", + "Node": "CPUMidClusterDownRateLimitUs", + "Duration": 0, + "Value": "3000" + }, + { + "PowerHint": "GAME", + "Node": "CPUBigClusterDownRateLimitUs", + "Duration": 0, + "Value": "3000" + }, { "PowerHint": "GAME", "Node": "VIRTUAL-SKIN-CPU-MID", From b1aa8bb0ea5b9e4674f1c9afa6a3d9b8da92fbf2 Mon Sep 17 00:00:00 2001 From: Yvonne Yip Date: Wed, 9 Aug 2023 15:55:09 -0700 Subject: [PATCH 3/4] powerhint: disable prefer_idle in game mode Test: Load powerhint file on device and verify tuned parameters are default. Start Subway Surfers game and verify tuned parameters are expected tuned values. Switch away from game, and quit the game, and verify tuned parameters return to default. Bug: 294612493 Change-Id: I2c518b27fbe7191dd1033dd3f3d8044330ccdf8c --- perf/powerhint-husky.json | 12 ++++++++++++ perf/powerhint-ripcurrent.json | 12 ++++++++++++ perf/powerhint-shiba.json | 12 ++++++++++++ 3 files changed, 36 insertions(+) diff --git a/perf/powerhint-husky.json b/perf/powerhint-husky.json index a01790f..72d0696 100644 --- a/perf/powerhint-husky.json +++ b/perf/powerhint-husky.json @@ -2313,6 +2313,18 @@ "Duration": 0, "Value": "3000" }, + { + "PowerHint": "GAME", + "Node": "TAPreferIdle", + "Duration": 0, + "Value": "0" + }, + { + "PowerHint": "GAME", + "Node": "FGPreferIdle", + "Duration": 0, + "Value": "0" + }, { "PowerHint": "THERMAL_VIRTUAL-SKIN-HINT_LIGHT", "Node": "PMU_POLL", diff --git a/perf/powerhint-ripcurrent.json b/perf/powerhint-ripcurrent.json index 0558959..3a18a65 100644 --- a/perf/powerhint-ripcurrent.json +++ b/perf/powerhint-ripcurrent.json @@ -2127,6 +2127,18 @@ "Duration": 0, "Value": "3000" }, + { + "PowerHint": "GAME", + "Node": "TAPreferIdle", + "Duration": 0, + "Value": "0" + }, + { + "PowerHint": "GAME", + "Node": "FGPreferIdle", + "Duration": 0, + "Value": "0" + }, { "PowerHint": "THERMAL_VIRTUAL-SKIN-HINT_LIGHT", "Node": "PMU_POLL", diff --git a/perf/powerhint-shiba.json b/perf/powerhint-shiba.json index 1f47f00..5c12ec6 100644 --- a/perf/powerhint-shiba.json +++ b/perf/powerhint-shiba.json @@ -2189,6 +2189,18 @@ "Duration": 0, "Value": "3000" }, + { + "PowerHint": "GAME", + "Node": "TAPreferIdle", + "Duration": 0, + "Value": "0" + }, + { + "PowerHint": "GAME", + "Node": "FGPreferIdle", + "Duration": 0, + "Value": "0" + }, { "PowerHint": "GAME", "Node": "VIRTUAL-SKIN-CPU-MID", From c545c3bc081076becd6e1ae5223999a39d66d495 Mon Sep 17 00:00:00 2001 From: Wei Wang Date: Fri, 11 Aug 2023 23:51:55 -0700 Subject: [PATCH 4/4] powerhint: mask game mode tuning for app launch also clean up useless TAUClampBoost to reduce overhead Test: Build Bug: 294612493 Change-Id: I6a6082b860c5650bba87d48025da0e1c60f8dae8 Signed-off-by: Wei Wang --- perf/powerhint-husky.json | 119 ++++++++++++++++++++++++--------- perf/powerhint-ripcurrent.json | 119 ++++++++++++++++++++++++--------- perf/powerhint-shiba.json | 119 ++++++++++++++++++++++++--------- 3 files changed, 261 insertions(+), 96 deletions(-) diff --git a/perf/powerhint-husky.json b/perf/powerhint-husky.json index 72d0696..c0e61ec 100644 --- a/perf/powerhint-husky.json +++ b/perf/powerhint-husky.json @@ -373,9 +373,10 @@ "Name": "TAPreferIdle", "Path": "/proc/vendor_sched/ta_prefer_idle", "Values": [ - "0", - "1" + "1", + "0" ], + "DefaultIndex": 0, "ResetOnInit": true }, { @@ -774,12 +775,6 @@ "Duration": 1000, "Value": "10" }, - { - "PowerHint": "LAUNCH", - "Node": "FGPreferIdle", - "Duration": 5000, - "Value": "1" - }, { "PowerHint": "LAUNCH", "Type": "DoHint", @@ -873,6 +868,48 @@ "Type": "DoHint", "Value": "LAUNCH_EXTEND" }, + { + "PowerHint": "LAUNCH", + "Node": "CPUDVFSHeadroom", + "Duration": 5000, + "Value": "1280" + }, + { + "PowerHint": "LAUNCH", + "Node": "CPUTaperedDVFSHeadroomEnable", + "Duration": 5000, + "Value": "0" + }, + { + "PowerHint": "LAUNCH", + "Node": "CPULittleClusterDownRateLimitUs", + "Duration": 5000, + "Value": "5000" + }, + { + "PowerHint": "LAUNCH", + "Node": "CPUMidClusterDownRateLimitUs", + "Duration": 5000, + "Value": "20000" + }, + { + "PowerHint": "LAUNCH", + "Node": "CPUBigClusterDownRateLimitUs", + "Duration": 5000, + "Value": "20000" + }, + { + "PowerHint": "LAUNCH", + "Node": "TAPreferIdle", + "Duration": 5000, + "Value": "1" + }, + { + "PowerHint": "LAUNCH", + "Node": "FGPreferIdle", + "Duration": 5000, + "Value": "1" + }, { "PowerHint": "LAUNCH_EXTEND", "Node": "CPUBigClusterMaxFreq", @@ -891,6 +928,48 @@ "Duration": 2000, "Value": "9999999" }, + { + "PowerHint": "LAUNCH_EXTEND", + "Node": "CPUDVFSHeadroom", + "Duration": 2000, + "Value": "1280" + }, + { + "PowerHint": "LAUNCH_EXTEND", + "Node": "CPUTaperedDVFSHeadroomEnable", + "Duration": 2000, + "Value": "0" + }, + { + "PowerHint": "LAUNCH_EXTEND", + "Node": "CPULittleClusterDownRateLimitUs", + "Duration": 2000, + "Value": "5000" + }, + { + "PowerHint": "LAUNCH_EXTEND", + "Node": "CPUMidClusterDownRateLimitUs", + "Duration": 2000, + "Value": "20000" + }, + { + "PowerHint": "LAUNCH_EXTEND", + "Node": "CPUBigClusterDownRateLimitUs", + "Duration": 2000, + "Value": "20000" + }, + { + "PowerHint": "LAUNCH_EXTEND", + "Node": "TAPreferIdle", + "Duration": 2000, + "Value": "1" + }, + { + "PowerHint": "LAUNCH_EXTEND", + "Node": "FGPreferIdle", + "Duration": 2000, + "Value": "1" + }, { "PowerHint": "LAUNCH_PMU", "Node": "PMU_POLL", @@ -2188,36 +2267,12 @@ "Duration": 0, "Value": "1" }, - { - "PowerHint": "REFRESH_120FPS", - "Node": "TAUClampBoost", - "Duration": 0, - "Value": "1" - }, - { - "PowerHint": "REFRESH_60FPS", - "Node": "TAUClampBoost", - "Duration": 0, - "Value": "1" - }, - { - "PowerHint": "ADPF_DISABLE_TA_BOOST", - "Node": "TAUClampBoost", - "Duration": 0, - "Value": "1" - }, { "PowerHint": "DISPLAY_IDLE", "Node": "FGPreferIdle", "Duration": 0, "Value": "0" }, - { - "PowerHint": "DISPLAY_IDLE", - "Node": "TAUClampBoost", - "Duration": 0, - "Value": "1" - }, { "PowerHint": "DISPLAY_IDLE", "Type": "EndHint", diff --git a/perf/powerhint-ripcurrent.json b/perf/powerhint-ripcurrent.json index 3a18a65..b4c16b3 100644 --- a/perf/powerhint-ripcurrent.json +++ b/perf/powerhint-ripcurrent.json @@ -359,9 +359,10 @@ "Name": "TAPreferIdle", "Path": "/proc/vendor_sched/ta_prefer_idle", "Values": [ - "0", - "1" + "1", + "0" ], + "DefaultIndex": 0, "ResetOnInit": true }, { @@ -797,12 +798,6 @@ "Duration": 1000, "Value": "10" }, - { - "PowerHint": "LAUNCH", - "Node": "FGPreferIdle", - "Duration": 5000, - "Value": "1" - }, { "PowerHint": "LAUNCH", "Type": "DoHint", @@ -896,6 +891,48 @@ "Type": "DoHint", "Value": "LAUNCH_EXTEND" }, + { + "PowerHint": "LAUNCH", + "Node": "CPUDVFSHeadroom", + "Duration": 5000, + "Value": "1280" + }, + { + "PowerHint": "LAUNCH", + "Node": "CPUTaperedDVFSHeadroomEnable", + "Duration": 5000, + "Value": "0" + }, + { + "PowerHint": "LAUNCH", + "Node": "CPULittleClusterDownRateLimitUs", + "Duration": 5000, + "Value": "5000" + }, + { + "PowerHint": "LAUNCH", + "Node": "CPUMidClusterDownRateLimitUs", + "Duration": 5000, + "Value": "20000" + }, + { + "PowerHint": "LAUNCH", + "Node": "CPUBigClusterDownRateLimitUs", + "Duration": 5000, + "Value": "20000" + }, + { + "PowerHint": "LAUNCH", + "Node": "TAPreferIdle", + "Duration": 5000, + "Value": "1" + }, + { + "PowerHint": "LAUNCH", + "Node": "FGPreferIdle", + "Duration": 5000, + "Value": "1" + }, { "PowerHint": "LAUNCH_EXTEND", "Node": "CPUBigClusterMaxFreq", @@ -914,6 +951,48 @@ "Duration": 2000, "Value": "9999999" }, + { + "PowerHint": "LAUNCH_EXTEND", + "Node": "CPUDVFSHeadroom", + "Duration": 2000, + "Value": "1280" + }, + { + "PowerHint": "LAUNCH_EXTEND", + "Node": "CPUTaperedDVFSHeadroomEnable", + "Duration": 2000, + "Value": "0" + }, + { + "PowerHint": "LAUNCH_EXTEND", + "Node": "CPULittleClusterDownRateLimitUs", + "Duration": 2000, + "Value": "5000" + }, + { + "PowerHint": "LAUNCH_EXTEND", + "Node": "CPUMidClusterDownRateLimitUs", + "Duration": 2000, + "Value": "20000" + }, + { + "PowerHint": "LAUNCH_EXTEND", + "Node": "CPUBigClusterDownRateLimitUs", + "Duration": 2000, + "Value": "20000" + }, + { + "PowerHint": "LAUNCH_EXTEND", + "Node": "TAPreferIdle", + "Duration": 2000, + "Value": "1" + }, + { + "PowerHint": "LAUNCH_EXTEND", + "Node": "FGPreferIdle", + "Duration": 2000, + "Value": "1" + }, { "PowerHint": "LAUNCH_PMU", "Node": "PMU_POLL", @@ -2032,36 +2111,12 @@ "Duration": 0, "Value": "1" }, - { - "PowerHint": "REFRESH_120FPS", - "Node": "TAUClampBoost", - "Duration": 0, - "Value": "1" - }, - { - "PowerHint": "REFRESH_60FPS", - "Node": "TAUClampBoost", - "Duration": 0, - "Value": "1" - }, - { - "PowerHint": "ADPF_DISABLE_TA_BOOST", - "Node": "TAUClampBoost", - "Duration": 0, - "Value": "1" - }, { "PowerHint": "DISPLAY_IDLE", "Node": "FGPreferIdle", "Duration": 0, "Value": "0" }, - { - "PowerHint": "DISPLAY_IDLE", - "Node": "TAUClampBoost", - "Duration": 0, - "Value": "1" - }, { "PowerHint": "DISPLAY_IDLE", "Type": "EndHint", diff --git a/perf/powerhint-shiba.json b/perf/powerhint-shiba.json index 5c12ec6..cd25a2e 100644 --- a/perf/powerhint-shiba.json +++ b/perf/powerhint-shiba.json @@ -363,9 +363,10 @@ "Name": "TAPreferIdle", "Path": "/proc/vendor_sched/ta_prefer_idle", "Values": [ - "0", - "1" + "1", + "0" ], + "DefaultIndex": 0, "ResetOnInit": true }, { @@ -764,12 +765,6 @@ "Duration": 1000, "Value": "10" }, - { - "PowerHint": "LAUNCH", - "Node": "FGPreferIdle", - "Duration": 5000, - "Value": "1" - }, { "PowerHint": "LAUNCH", "Type": "DoHint", @@ -863,6 +858,48 @@ "Type": "DoHint", "Value": "LAUNCH_EXTEND" }, + { + "PowerHint": "LAUNCH", + "Node": "CPUDVFSHeadroom", + "Duration": 5000, + "Value": "1280" + }, + { + "PowerHint": "LAUNCH", + "Node": "CPUTaperedDVFSHeadroomEnable", + "Duration": 5000, + "Value": "0" + }, + { + "PowerHint": "LAUNCH", + "Node": "CPULittleClusterDownRateLimitUs", + "Duration": 5000, + "Value": "5000" + }, + { + "PowerHint": "LAUNCH", + "Node": "CPUMidClusterDownRateLimitUs", + "Duration": 5000, + "Value": "20000" + }, + { + "PowerHint": "LAUNCH", + "Node": "CPUBigClusterDownRateLimitUs", + "Duration": 5000, + "Value": "20000" + }, + { + "PowerHint": "LAUNCH", + "Node": "TAPreferIdle", + "Duration": 5000, + "Value": "1" + }, + { + "PowerHint": "LAUNCH", + "Node": "FGPreferIdle", + "Duration": 5000, + "Value": "1" + }, { "PowerHint": "LAUNCH_EXTEND", "Node": "CPUBigClusterMaxFreq", @@ -881,6 +918,48 @@ "Duration": 2000, "Value": "9999999" }, + { + "PowerHint": "LAUNCH_EXTEND", + "Node": "CPUDVFSHeadroom", + "Duration": 2000, + "Value": "1280" + }, + { + "PowerHint": "LAUNCH_EXTEND", + "Node": "CPUTaperedDVFSHeadroomEnable", + "Duration": 2000, + "Value": "0" + }, + { + "PowerHint": "LAUNCH_EXTEND", + "Node": "CPULittleClusterDownRateLimitUs", + "Duration": 2000, + "Value": "5000" + }, + { + "PowerHint": "LAUNCH_EXTEND", + "Node": "CPUMidClusterDownRateLimitUs", + "Duration": 2000, + "Value": "20000" + }, + { + "PowerHint": "LAUNCH_EXTEND", + "Node": "CPUBigClusterDownRateLimitUs", + "Duration": 2000, + "Value": "20000" + }, + { + "PowerHint": "LAUNCH_EXTEND", + "Node": "TAPreferIdle", + "Duration": 2000, + "Value": "1" + }, + { + "PowerHint": "LAUNCH_EXTEND", + "Node": "FGPreferIdle", + "Duration": 2000, + "Value": "1" + }, { "PowerHint": "LAUNCH_PMU", "Node": "PMU_POLL", @@ -2076,36 +2155,12 @@ "Duration": 0, "Value": "1" }, - { - "PowerHint": "REFRESH_120FPS", - "Node": "TAUClampBoost", - "Duration": 0, - "Value": "1" - }, - { - "PowerHint": "REFRESH_60FPS", - "Node": "TAUClampBoost", - "Duration": 0, - "Value": "1" - }, - { - "PowerHint": "ADPF_DISABLE_TA_BOOST", - "Node": "TAUClampBoost", - "Duration": 0, - "Value": "1" - }, { "PowerHint": "DISPLAY_IDLE", "Node": "FGPreferIdle", "Duration": 0, "Value": "0" }, - { - "PowerHint": "DISPLAY_IDLE", - "Node": "TAUClampBoost", - "Duration": 0, - "Value": "1" - }, { "PowerHint": "DISPLAY_IDLE", "Type": "EndHint",