-
Notifications
You must be signed in to change notification settings - Fork 9
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
新增:关闭一加固定UI线程在大核的opchain,与其他平台统一 新增:使用prefer_idle+boost方案固定topapp在大核,放弃colocate与sched_boost方案 新增:所有性能模式启用top-app的prefer_idle,在小核都有进程占用的情况唤醒任务到大核 新增:调整C-state降低UiBench渲染抖动40%,C0与C3在低频率未见显著功耗差异 新增:滑动时提升cpullccbw/cpubw的最小频率避免成为瓶颈 新增:调整不同性能模式的llcc带宽和ddr带宽限制,降低一点DDR功耗 新增:降低大核访存缓存命中率降低时提升DDR频率的阈值,减少小掉帧(90fps) 新增:使用blkio保留90%的IO带宽给前台进程 新增:限制传感器服务相关线程在小核集群,减少唤醒大核集群 新增:同步qti-mem-opt的libcommon,libpowercfg,path header 改进:panel的default_mode不会随着热切换而改变了 改进:各个性能模式频率范围调整,见项目连接内的readme 改进:滑动时foreground分组只使用小核 改进:执行脚本不再依赖于sh文件可执行权限 改进:读取目标性能模式的逻辑更加通顺 改进:加大一点二段式app启动boost的时长 改进:全部去除QTI Boost Framework对sched_boost的设置,改用其他方式实现类似效果 修复:在Android 10没有sched_boost_enabled,改用其他方式实现类似效果 修复:最大频率限制不再只靠targetconfig,补上mem_performance频率范围设置 修复:补上cpuset/restricted分组的cpu限制 修复:减少perf框架的一些报警 Signed-off-by: Matt Yang <yccy@outlook.com>
- Loading branch information
Showing
57 changed files
with
2,119 additions
and
2,761 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,138 @@ | ||
#!/system/bin/sh | ||
# Platform Power Modes | ||
# Perfd-opt https://github.com/yc9559/perfd-opt/ | ||
# Author: Matt Yang | ||
# Platform: sm6150 | ||
# Version: v3 (20200222) | ||
|
||
BASEDIR="$(dirname "$0")" | ||
. $BASEDIR/pathinfo.sh | ||
. $BASEDIR/libpowercfg.sh | ||
|
||
# "365,366"="sdmmagpie"="sdm730" | ||
# "355,369"="msmsteppe"="sdm675" | ||
[ -f /sys/devices/soc0/soc_id ] && SOC_ID="$(cat /sys/devices/soc0/soc_id)" | ||
[ -f /sys/devices/system/soc/soc0/id ] && SOC_ID="$(cat /sys/devices/system/soc/soc0/id)" | ||
|
||
case "$SOC_ID" in | ||
365|366) PLATFORM_NAME="sdm730" ;; | ||
355|369) PLATFORM_NAME="sdm675" ;; | ||
esac | ||
BWMON_CPU_LLC="soc:qcom,cpu-cpu-llcc-bw" | ||
BWMON_LLC_DDR="soc:qcom,cpu-llcc-ddr-bw" | ||
BIG_L3_LAT="soc:qcom,cpu6-cpu-l3-lat" | ||
BIG_DDR_LAT="soc:qcom,cpu6-llcc-ddr-lat" | ||
STUNE_BG_CPUS="0-5" | ||
STUNE_FG_CPUS="0-7" | ||
|
||
apply_common() | ||
{ | ||
set_governor_param "scaling_governor" "0:schedutil 6:schedutil" | ||
set_governor_param "schedutil/hispeed_load" "0:90 6:90" | ||
set_governor_param "schedutil/hispeed_freq" "0:1000000 6:1200000" | ||
set_cpufreq_max "0:9999000 6:9999000" | ||
set_cpufreq_dyn_max "0:9999000 6:9999000" | ||
lock_val "bw_hwmon" $DEVFREQ/$BWMON_CPU_LLC/governor | ||
lock_val "bw_hwmon" $DEVFREQ/$BWMON_LLC_DDR/governor | ||
mutate "0" $DEVFREQ/$BWMON_CPU_LLC/min_freq | ||
mutate "0" $DEVFREQ/$BWMON_LLC_DDR/min_freq | ||
lock_val "8000" $DEVFREQ/$BIG_L3_LAT/mem_latency/ratio_ceil | ||
lock_val "800" $DEVFREQ/$BIG_DDR_LAT/mem_latency/ratio_ceil | ||
mutate "0" $LPM/lpm_prediction | ||
mutate "0" $LPM/sleep_disabled | ||
} | ||
|
||
apply_powersave() | ||
{ | ||
set_cpufreq_min "0:300000 6:300000" | ||
case "$PLATFORM_NAME" in | ||
sdm730) set_cpufreq_max "0:1708800 6:1555200" ;; | ||
sdm675) set_cpufreq_max "0:1708800 6:1516800" ;; | ||
esac | ||
set_sched_migrate "95" "95" "140" "100" | ||
set_corectl_param "min_cpus" "0:4 6:1" | ||
set_governor_param "schedutil/pl" "0:0 6:0" | ||
lock_val "0:1000000 6:1000000" $CPU_BOOST/input_boost_freq | ||
lock_val "800" $CPU_BOOST/input_boost_ms | ||
lock_val "2" $CPU_BOOST/sched_boost_on_input | ||
mutate "1" $ST_TOP/schedtune.sched_boost_enabled | ||
mutate "0" $ST_TOP/schedtune.boost | ||
mutate "1" $ST_TOP/schedtune.prefer_idle | ||
mutate "13000" $DEVFREQ/$BWMON_CPU_LLC/max_freq | ||
mutate "6000" $DEVFREQ/$BWMON_LLC_DDR/max_freq | ||
mutate "25" $LPM/bias_hyst | ||
} | ||
|
||
apply_balance() | ||
{ | ||
set_cpufreq_min "0:576000 6:652800" | ||
case "$SOC_ID" in | ||
sdm730) set_cpufreq_max "0:1708800 6:1939200" ;; | ||
sdm675) set_cpufreq_max "0:1708800 6:1708800" ;; | ||
esac | ||
set_sched_migrate "95" "95" "140" "100" | ||
set_corectl_param "min_cpus" "0:4 6:2" | ||
set_governor_param "schedutil/pl" "0:0 6:0" | ||
lock_val "0:1000000 6:1000000" $CPU_BOOST/input_boost_freq | ||
lock_val "800" $CPU_BOOST/input_boost_ms | ||
lock_val "2" $CPU_BOOST/sched_boost_on_input | ||
mutate "1" $ST_TOP/schedtune.sched_boost_enabled | ||
mutate "0" $ST_TOP/schedtune.boost | ||
mutate "1" $ST_TOP/schedtune.prefer_idle | ||
mutate "13000" $DEVFREQ/$BWMON_CPU_LLC/max_freq | ||
mutate "6000" $DEVFREQ/$BWMON_LLC_DDR/max_freq | ||
mutate "25" $LPM/bias_hyst | ||
} | ||
|
||
apply_performance() | ||
{ | ||
set_cpufreq_min "0:576000 6:652800" | ||
case "$SOC_ID" in | ||
sdm730) set_cpufreq_max "0:1804800 6:2208000" ;; | ||
sdm675) set_cpufreq_max "0:1804800 6:2016000" ;; | ||
esac | ||
set_sched_migrate "80" "80" "100" "90" | ||
set_corectl_param "min_cpus" "0:6 6:2" | ||
set_governor_param "schedutil/pl" "0:0 6:1" | ||
lock_val "0:1000000 6:1200000" $CPU_BOOST/input_boost_freq | ||
lock_val "2000" $CPU_BOOST/input_boost_ms | ||
lock_val "2" $CPU_BOOST/sched_boost_on_input | ||
mutate "1" $ST_TOP/schedtune.sched_boost_enabled | ||
mutate "10" $ST_TOP/schedtune.boost | ||
mutate "1" $ST_TOP/schedtune.prefer_idle | ||
mutate "15000" $DEVFREQ/$BWMON_CPU_LLC/max_freq | ||
mutate "7000" $DEVFREQ/$BWMON_LLC_DDR/max_freq | ||
mutate "100" $LPM/bias_hyst | ||
} | ||
|
||
apply_fast() | ||
{ | ||
set_cpufreq_min "0:576000 6:1209600" | ||
case "$SOC_ID" in | ||
sdm730) set_cpufreq_max "0:1804800 6:1939200" ;; | ||
sdm675) set_cpufreq_max "0:1804800 6:1708800" ;; | ||
esac | ||
set_sched_migrate "80" "80" "100" "90" | ||
set_corectl_param "min_cpus" "0:6 6:2" | ||
set_governor_param "schedutil/pl" "0:1 6:1" | ||
lock_val "0:1000000 6:1200000" $CPU_BOOST/input_boost_freq | ||
lock_val "2000" $CPU_BOOST/input_boost_ms | ||
lock_val "1" $CPU_BOOST/sched_boost_on_input | ||
mutate "1" $ST_TOP/schedtune.sched_boost_enabled | ||
mutate "30" $ST_TOP/schedtune.boost | ||
mutate "1" $ST_TOP/schedtune.prefer_idle | ||
mutate "15000" $DEVFREQ/$BWMON_CPU_LLC/max_freq | ||
mutate "7000" $DEVFREQ/$BWMON_LLC_DDR/max_freq | ||
mutate "1000" $LPM/bias_hyst | ||
} | ||
|
||
apply_once() | ||
{ | ||
mutate "$STUNE_FG_CPUS" /dev/cpuset/foreground/cpus | ||
lock_val "$STUNE_BG_CPUS" /dev/cpuset/restricted/cpus | ||
lock_val "$STUNE_BG_CPUS" /dev/cpuset/display/cpus | ||
set_corectl_param "enable" "0:1 6:1" | ||
set_corectl_param "busy_down_thres" "0:20 6:20" | ||
set_corectl_param "busy_up_thres" "0:40 6:40" | ||
set_corectl_param "offline_delay_ms" "0:100 6:100" | ||
} |
Oops, something went wrong.