2020-01-20 19:23:26 +00:00
|
|
|
#!/system/bin/sh
|
2019-12-05 23:17:29 +00:00
|
|
|
|
|
|
|
################################################################################
|
|
|
|
# helper functions to allow Android init like script
|
|
|
|
|
|
|
|
function write() {
|
|
|
|
echo -n $2 > $1
|
|
|
|
}
|
|
|
|
|
2020-01-20 19:23:26 +00:00
|
|
|
function copy() {
|
|
|
|
cat $1 > $2
|
|
|
|
}
|
|
|
|
|
2019-12-05 23:17:29 +00:00
|
|
|
function get-set-forall() {
|
|
|
|
for f in $1 ; do
|
|
|
|
cat $f
|
|
|
|
write $f $2
|
|
|
|
done
|
|
|
|
}
|
|
|
|
|
|
|
|
################################################################################
|
|
|
|
|
|
|
|
# disable thermal bcl hotplug to switch governor
|
|
|
|
write /sys/module/msm_thermal/core_control/enabled 0
|
|
|
|
get-set-forall /sys/devices/soc.0/qcom,bcl.*/mode disable
|
|
|
|
bcl_hotplug_mask=`get-set-forall /sys/devices/soc.0/qcom,bcl.*/hotplug_mask 0`
|
|
|
|
bcl_hotplug_soc_mask=`get-set-forall /sys/devices/soc.0/qcom,bcl.*/hotplug_soc_mask 0`
|
2020-01-20 19:23:26 +00:00
|
|
|
get-set-forall /sys/devices/soc.0/qcom,bcl.*/mode enable
|
2019-12-05 23:17:29 +00:00
|
|
|
|
|
|
|
# some files in /sys/devices/system/cpu are created after the restorecon of
|
|
|
|
# /sys/. These files receive the default label "sysfs".
|
2020-01-20 19:23:26 +00:00
|
|
|
# Restorecon again to give new files the correct label.
|
2019-12-05 23:17:29 +00:00
|
|
|
restorecon -R /sys/devices/system/cpu
|
|
|
|
|
|
|
|
# ensure at most one A57 is online when thermal hotplug is disabled
|
|
|
|
write /sys/devices/system/cpu/cpu5/online 0
|
|
|
|
write /sys/devices/system/cpu/cpu6/online 0
|
|
|
|
write /sys/devices/system/cpu/cpu7/online 0
|
|
|
|
|
2020-01-20 19:23:26 +00:00
|
|
|
# Best effort limiting for first time boot if msm_performance module is absent
|
|
|
|
write /sys/devices/system/cpu/cpu4/cpufreq/scaling_max_freq 960000
|
2019-12-05 23:17:29 +00:00
|
|
|
|
2020-01-20 19:23:26 +00:00
|
|
|
# Limit A57 max freq from msm_perf module in case CPU 4 is offline
|
|
|
|
write /sys/module/msm_performance/parameters/cpu_max_freq "4:960000 5:960000 6:960000 7:960000"
|
2019-12-05 23:17:29 +00:00
|
|
|
|
|
|
|
# configure governor settings for little cluster
|
|
|
|
write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor interactive
|
|
|
|
restorecon -R /sys/devices/system/cpu # must restore after interactive
|
|
|
|
write /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_sched_load 1
|
|
|
|
write /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_migration_notif 1
|
|
|
|
write /sys/devices/system/cpu/cpu0/cpufreq/interactive/above_hispeed_delay 19000
|
|
|
|
write /sys/devices/system/cpu/cpu0/cpufreq/interactive/go_hispeed_load 90
|
2020-01-20 19:23:26 +00:00
|
|
|
write /sys/devices/system/cpu/cpu0/cpufreq/interactive/timer_rate 10000
|
2019-12-05 23:17:29 +00:00
|
|
|
write /sys/devices/system/cpu/cpu0/cpufreq/interactive/hispeed_freq 960000
|
|
|
|
write /sys/devices/system/cpu/cpu0/cpufreq/interactive/io_is_busy 1
|
2020-01-20 19:23:26 +00:00
|
|
|
write /sys/devices/system/cpu/cpu0/cpufreq/interactive/target_loads 85
|
|
|
|
write /sys/devices/system/cpu/cpu0/cpufreq/interactive/min_sample_time 20000
|
|
|
|
write /sys/devices/system/cpu/cpu0/cpufreq/interactive/max_freq_hysteresis 20000
|
2019-12-05 23:17:29 +00:00
|
|
|
write /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq 384000
|
|
|
|
|
2020-01-20 19:23:26 +00:00
|
|
|
# online CPU4
|
|
|
|
write /sys/devices/system/cpu/cpu4/online 1
|
|
|
|
|
2019-12-05 23:17:29 +00:00
|
|
|
# configure governor settings for big cluster
|
|
|
|
write /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor interactive
|
|
|
|
restorecon -R /sys/devices/system/cpu # must restore after interactive
|
|
|
|
write /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_sched_load 1
|
|
|
|
write /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_migration_notif 1
|
2020-01-20 19:23:26 +00:00
|
|
|
write /sys/devices/system/cpu/cpu4/cpufreq/interactive/above_hispeed_delay "19000 1400000:39000 1700000:19000"
|
2019-12-05 23:17:29 +00:00
|
|
|
write /sys/devices/system/cpu/cpu4/cpufreq/interactive/go_hispeed_load 90
|
2020-01-20 19:23:26 +00:00
|
|
|
write /sys/devices/system/cpu/cpu4/cpufreq/interactive/timer_rate 10000
|
2019-12-05 23:17:29 +00:00
|
|
|
write /sys/devices/system/cpu/cpu4/cpufreq/interactive/hispeed_freq 1248000
|
|
|
|
write /sys/devices/system/cpu/cpu4/cpufreq/interactive/io_is_busy 1
|
2020-01-20 19:23:26 +00:00
|
|
|
write /sys/devices/system/cpu/cpu4/cpufreq/interactive/target_loads "85 1500000:90 1800000:70"
|
2019-12-05 23:17:29 +00:00
|
|
|
write /sys/devices/system/cpu/cpu4/cpufreq/interactive/min_sample_time 40000
|
2020-01-20 19:23:26 +00:00
|
|
|
write /sys/devices/system/cpu/cpu4/cpufreq/interactive/max_freq_hysteresis 20000
|
|
|
|
write /sys/devices/system/cpu/cpu4/cpufreq/interactive/timer_slack 10000
|
2019-12-05 23:17:29 +00:00
|
|
|
write /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq 384000
|
|
|
|
|
2020-01-20 19:23:26 +00:00
|
|
|
# Enable boost for cgroup's tasks
|
|
|
|
write /dev/cpuctl/cpu.sched_boost 1
|
|
|
|
|
|
|
|
# Disallow upmigrate for cgroup's tasks
|
|
|
|
write /dev/cpuctl/bg_non_interactive/cpu.upmigrate_discourage 1
|
|
|
|
|
|
|
|
# restore A57's max
|
|
|
|
copy /sys/devices/system/cpu/cpu4/cpufreq/cpuinfo_max_freq /sys/devices/system/cpu/cpu4/cpufreq/scaling_max_freq
|
|
|
|
|
2019-12-05 23:17:29 +00:00
|
|
|
# plugin remaining A57s
|
|
|
|
write /sys/devices/system/cpu/cpu5/online 1
|
|
|
|
write /sys/devices/system/cpu/cpu6/online 1
|
|
|
|
write /sys/devices/system/cpu/cpu7/online 1
|
|
|
|
|
2020-01-20 19:23:26 +00:00
|
|
|
# Restore CPU 4 max freq from msm_performance
|
|
|
|
write /sys/module/msm_performance/parameters/cpu_max_freq "4:4294967295 5:4294967295 6:4294967295 7:4294967295"
|
|
|
|
|
|
|
|
# input boost configuration
|
|
|
|
write /sys/module/cpu_boost/parameters/input_boost_freq "0:1344000"
|
|
|
|
write /sys/module/cpu_boost/parameters/input_boost_ms 40
|
|
|
|
|
2019-12-05 23:17:29 +00:00
|
|
|
# Configure core_ctl module parameters
|
|
|
|
write /sys/devices/system/cpu/cpu4/core_ctl/max_cpus 4
|
2020-01-20 19:23:26 +00:00
|
|
|
write /sys/devices/system/cpu/cpu4/core_ctl/min_cpus 1
|
2019-12-05 23:17:29 +00:00
|
|
|
write /sys/devices/system/cpu/cpu4/core_ctl/busy_up_thres 60
|
|
|
|
write /sys/devices/system/cpu/cpu4/core_ctl/busy_down_thres 30
|
2020-01-20 19:23:26 +00:00
|
|
|
write /sys/devices/system/cpu/cpu4/core_ctl/offline_delay_ms 100
|
2020-01-20 15:30:22 +00:00
|
|
|
write /sys/devices/system/cpu/cpu4/core_ctl/is_big_cluster 1
|
2020-01-20 19:23:26 +00:00
|
|
|
write /sys/devices/system/cpu/cpu4/core_ctl/task_thres 4
|
2019-12-05 23:17:29 +00:00
|
|
|
|
|
|
|
# Setting B.L scheduler parameters
|
|
|
|
write /proc/sys/kernel/sched_migration_fixup 1
|
2020-01-20 19:23:26 +00:00
|
|
|
write /proc/sys/kernel/sched_small_task 60
|
|
|
|
write /proc/sys/kernel/sched_upmigrate 99
|
|
|
|
write /proc/sys/kernel/sched_downmigrate 90
|
|
|
|
write /proc/sys/kernel/sched_init_task_load 30
|
2019-12-05 23:17:29 +00:00
|
|
|
write /proc/sys/kernel/sched_freq_inc_notify 400000
|
|
|
|
write /proc/sys/kernel/sched_freq_dec_notify 400000
|
|
|
|
|
2020-01-20 19:23:26 +00:00
|
|
|
get-set-forall /sys/devices/system/cpu/cpu\[0-3\]/sched_mostly_idle_nr_run 5
|
|
|
|
get-set-forall /sys/devices/system/cpu/cpu\[0-3\]/sched_mostly_idle_load 60
|
|
|
|
get-set-forall /sys/devices/system/cpu/cpu\[0-3\]/sched_mostly_idle_freq 960000
|
|
|
|
get-set-forall /sys/devices/system/cpu/cpu\[0-3\]/sched_prefer_idle 0
|
|
|
|
get-set-forall /sys/devices/system/cpu/cpu\[4-7\]/sched_mostly_idle_nr_run 3
|
|
|
|
get-set-forall /sys/devices/system/cpu/cpu\[4-7\]/sched_mostly_idle_load 20
|
|
|
|
get-set-forall /sys/devices/system/cpu/cpu\[4-7\]/sched_mostly_idle_freq 0
|
|
|
|
get-set-forall /sys/devices/system/cpu/cpu\[4-7\]/sched_prefer_idle 0
|
|
|
|
|
|
|
|
# android background processes are set to nice 10. Never schedule these on the a57s.
|
|
|
|
write /proc/sys/kernel/sched_upmigrate_min_nice 9
|
2019-12-05 23:17:29 +00:00
|
|
|
|
2020-01-20 19:23:26 +00:00
|
|
|
get-set-forall /sys/class/devfreq/qcom,cpubw*/governor bw_hwmon
|
|
|
|
get-set-forall /sys/class/devfreq/qcom,mincpubw*/governor cpufreq
|
2019-12-05 23:17:29 +00:00
|
|
|
|
|
|
|
# Disable sched_boost
|
|
|
|
write /proc/sys/kernel/sched_boost 0
|
|
|
|
|
|
|
|
# re-enable thermal and BCL hotplug
|
|
|
|
write /sys/module/msm_thermal/core_control/enabled 1
|
2020-01-20 19:23:26 +00:00
|
|
|
get-set-forall /sys/devices/soc.0/qcom,bcl.*/mode disable
|
2019-12-05 23:17:29 +00:00
|
|
|
get-set-forall /sys/devices/soc.0/qcom,bcl.*/hotplug_mask $bcl_hotplug_mask
|
|
|
|
get-set-forall /sys/devices/soc.0/qcom,bcl.*/hotplug_soc_mask $bcl_hotplug_soc_mask
|
|
|
|
get-set-forall /sys/devices/soc.0/qcom,bcl.*/mode enable
|
2020-01-20 19:23:26 +00:00
|
|
|
|
|
|
|
# change GPU initial power level from 305MHz(level 4) to 180MHz(level 5) for power savings
|
|
|
|
write /sys/class/kgsl/kgsl-3d0/default_pwrlevel 5
|