sdm710-common: rootdir: Move all static parameters to init.qcom.power.rc

Move the rest of static configuration parameters from
init.qcom.post_boot.sh to init.qcom.power.rc.

Change-Id: I18d8aa7bdd4f2807246dafd9c47fc7fb9b65dc71
This commit is contained in:
Ivan Vecera
2024-01-19 18:05:05 +01:00
parent 0e6d050fdd
commit 0833af2c38
3 changed files with 99 additions and 108 deletions

View File

@@ -73,115 +73,11 @@ function configure_read_ahead_kb_values() {
done done
} }
function configure_memory_parameters() { # Set ZRAM parameters
# Set Memory parameters. configure_zram_parameters
#
# Set per_process_reclaim tuning parameters
# All targets will use vmpressure range 50-70,
# All targets will use 512 pages swap size.
#
# Set allocstall_threshold to 0 for all targets.
# Set PPR parameters # Set read ahead parameters
echo 6 > /sys/module/process_reclaim/parameters/min_score_adj configure_read_ahead_kb_values
echo 0 > /sys/module/process_reclaim/parameters/enable_process_reclaim
echo 50 > /sys/module/process_reclaim/parameters/pressure_min
echo 70 > /sys/module/process_reclaim/parameters/pressure_max
echo 30 > /sys/module/process_reclaim/parameters/swap_opt_eff
echo 512 > /sys/module/process_reclaim/parameters/per_swap_size
# Set allocstall_threshold to 0 for all targets.
# Set swappiness to 100 for all targets
echo 0 > /sys/module/vmpressure/parameters/allocstall_threshold
echo 100 > /proc/sys/vm/swappiness
# Disable wsf for all targets beacause we are using efk.
# wsf Range : 1..1000 So set to bare minimum value 1.
echo 1 > /proc/sys/vm/watermark_scale_factor
configure_zram_parameters
configure_read_ahead_kb_values
}
# Set the default IRQ affinity to the silver cluster. When a
# CPU is isolated/hotplugged, the IRQ affinity is adjusted
# to one of the CPU from the default IRQ affinity mask.
echo 3f > /proc/irq/default_smp_affinity
# Core control parameters on silver
echo 0 0 0 0 1 1 > /sys/devices/system/cpu/cpu0/core_ctl/not_preferred
echo 4 > /sys/devices/system/cpu/cpu0/core_ctl/min_cpus
echo 60 > /sys/devices/system/cpu/cpu0/core_ctl/busy_up_thres
echo 40 > /sys/devices/system/cpu/cpu0/core_ctl/busy_down_thres
echo 100 > /sys/devices/system/cpu/cpu0/core_ctl/offline_delay_ms
echo 0 > /sys/devices/system/cpu/cpu0/core_ctl/is_big_cluster
echo 8 > /sys/devices/system/cpu/cpu0/core_ctl/task_thres
# Setting b.L scheduler parameters
echo 96 > /proc/sys/kernel/sched_upmigrate
echo 90 > /proc/sys/kernel/sched_downmigrate
echo 140 > /proc/sys/kernel/sched_group_upmigrate
echo 120 > /proc/sys/kernel/sched_group_downmigrate
echo 1 > /proc/sys/kernel/sched_walt_rotate_big_tasks
# Configure governor settings for little cluster
echo "schedutil" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/rate_limit_us
echo 1209600 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_freq
echo 576000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
# Configure governor settings for big cluster
echo "schedutil" > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor
echo 0 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/rate_limit_us
echo 1344000 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/hispeed_freq
echo 652800 > /sys/devices/system/cpu/cpu6/cpufreq/scaling_min_freq
# sched_load_boost as -6 is equivalent to target load as 85.
# It is per cpu tunable.
echo -6 > /sys/devices/system/cpu/cpu6/sched_load_boost
echo -6 > /sys/devices/system/cpu/cpu7/sched_load_boost
echo 85 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/hispeed_load
echo "0:1209600" > /sys/module/cpu_boost/parameters/input_boost_freq
echo 40 > /sys/module/cpu_boost/parameters/input_boost_ms
# Set Memory parameters
configure_memory_parameters
# Enable bus-dcvs
for cpubw in /sys/class/devfreq/*qcom,cpubw*
do
echo "bw_hwmon" > $cpubw/governor
echo 50 > $cpubw/polling_interval
echo "1144 1720 2086 2929 3879 5931 6881" > $cpubw/bw_hwmon/mbps_zones
echo 4 > $cpubw/bw_hwmon/sample_ms
echo 68 > $cpubw/bw_hwmon/io_percent
echo 20 > $cpubw/bw_hwmon/hist_memory
echo 0 > $cpubw/bw_hwmon/hyst_length
echo 80 > $cpubw/bw_hwmon/down_thres
echo 0 > $cpubw/bw_hwmon/guard_band_mbps
echo 250 > $cpubw/bw_hwmon/up_scale
echo 1600 > $cpubw/bw_hwmon/idle_mbps
done
echo "cpufreq" > /sys/class/devfreq/soc:qcom,mincpubw/governor
# Disable CPU Retention
echo N > /sys/module/lpm_levels/L3/cpu0/ret/idle_enabled
echo N > /sys/module/lpm_levels/L3/cpu1/ret/idle_enabled
echo N > /sys/module/lpm_levels/L3/cpu2/ret/idle_enabled
echo N > /sys/module/lpm_levels/L3/cpu3/ret/idle_enabled
echo N > /sys/module/lpm_levels/L3/cpu4/ret/idle_enabled
echo N > /sys/module/lpm_levels/L3/cpu5/ret/idle_enabled
echo N > /sys/module/lpm_levels/L3/cpu6/ret/idle_enabled
echo N > /sys/module/lpm_levels/L3/cpu7/ret/idle_enabled
# Turn off scheduler boost at the end
echo 0 > /proc/sys/kernel/sched_boost
# Turn on sleep modes.
echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
emmc_boot=`getprop vendor.boot.emmc` emmc_boot=`getprop vendor.boot.emmc`
case "$emmc_boot" case "$emmc_boot"

View File

@@ -80,6 +80,82 @@ on property:init.svc.vendor.charger=running
start vendor.thermal-engine start vendor.thermal-engine
on enable-low-power on enable-low-power
# Set the default IRQ affinity to the silver cluster. When a
# CPU is isolated/hotplugged, the IRQ affinity is adjusted
# to one of the CPU from the default IRQ affinity mask.
write /proc/irq/default_smp_affinity "3f"
# Core control parameters on silver
write /sys/devices/system/cpu/cpu0/core_ctl/not_preferred "0 0 0 0 1 1"
write /sys/devices/system/cpu/cpu0/core_ctl/min_cpus 4
write /sys/devices/system/cpu/cpu0/core_ctl/busy_up_thres 60
write /sys/devices/system/cpu/cpu0/core_ctl/busy_down_thres 40
write /sys/devices/system/cpu/cpu0/core_ctl/offline_delay_ms 100
write /sys/devices/system/cpu/cpu0/core_ctl/is_big_cluster 0
write /sys/devices/system/cpu/cpu0/core_ctl/task_thres 8
# Setting b.L scheduler parameters
write /proc/sys/kernel/sched_upmigrate 96
write /proc/sys/kernel/sched_downmigrate 90
write /proc/sys/kernel/sched_group_upmigrate 140
write /proc/sys/kernel/sched_group_downmigrate 120
write /proc/sys/kernel/sched_walt_rotate_big_tasks 1
# Configure governor settings for little cluster
write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor "schedutil"
write /sys/devices/system/cpu/cpu0/cpufreq/schedutil/rate_limit_us 0
write /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_freq 1209600
write /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq 576000
# Configure governor settings for big cluster
write /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor "schedutil"
write /sys/devices/system/cpu/cpu6/cpufreq/schedutil/rate_limit_us 0
write /sys/devices/system/cpu/cpu6/cpufreq/schedutil/hispeed_freq 1344000
write /sys/devices/system/cpu/cpu6/cpufreq/scaling_min_freq 652800
# Set sched_load_boost as -6 that is equivalent to target load as 85.
write /sys/devices/system/cpu/cpu6/sched_load_boost -6
write /sys/devices/system/cpu/cpu7/sched_load_boost -6
write /sys/devices/system/cpu/cpu6/cpufreq/schedutil/hispeed_load 85
write /sys/module/cpu_boost/parameters/input_boost_freq "0:1209600"
write /sys/module/cpu_boost/parameters/input_boost_ms 40
# Memory parameters
# Set per_process_reclaim tuning parameters:
# - vmpressure range: 50-70
# - swap size: 512 pages
write /sys/module/process_reclaim/parameters/min_score_adj 6
write /sys/module/process_reclaim/parameters/enable_process_reclaim 0
write /sys/module/process_reclaim/parameters/pressure_min 50
write /sys/module/process_reclaim/parameters/pressure_max 70
write /sys/module/process_reclaim/parameters/swap_opt_eff 30
write /sys/module/process_reclaim/parameters/per_swap_size 512
# Set allocstall_threshold to 0
write /sys/module/vmpressure/parameters/allocstall_threshold 0
# Set swappiness to 100 for all targets
write /proc/sys/vm/swappiness 100
# Disable wsf because we are using efk.
# wsf Range : 1..1000 So set to bare minimum value 1.
write /proc/sys/vm/watermark_scale_factor 1
# Enable bus-dcvs
write /sys/class/devfreq/soc:qcom,cpubw/governor "bw_hwmon"
write /sys/class/devfreq/soc:qcom,cpubw/polling_interval 50
write /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/mbps_zones "1144 1720 2086 2929 3879 5931 6881"
write /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/sample_ms 4
write /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/io_percent 68
write /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/hist_memory 20
write /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/hyst_length 0
write /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/down_thres 80
write /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/guard_band_mbps 0
write /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/up_scale 250
write /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/idle_mbps 1600
# Enable mem_latency governor for DDR scaling # Enable mem_latency governor for DDR scaling
write /sys/class/devfreq/soc:qcom,memlat-cpu0/governor "mem_latency" write /sys/class/devfreq/soc:qcom,memlat-cpu0/governor "mem_latency"
write /sys/class/devfreq/soc:qcom,memlat-cpu0/polling_interval 10 write /sys/class/devfreq/soc:qcom,memlat-cpu0/polling_interval 10
@@ -102,6 +178,18 @@ on enable-low-power
write /sys/class/devfreq/soc:qcom,l3-cdsp/governor "userspace" write /sys/class/devfreq/soc:qcom,l3-cdsp/governor "userspace"
chown system /sys/class/devfreq/soc:qcom,l3-cdsp/userspace/set_freq chown system /sys/class/devfreq/soc:qcom,l3-cdsp/userspace/set_freq
write /sys/class/devfreq/soc:qcom,mincpubw/governor "cpufreq"
# Disable CPU Retention
write /sys/module/lpm_levels/L3/cpu0/ret/idle_enabled "N"
write /sys/module/lpm_levels/L3/cpu1/ret/idle_enabled "N"
write /sys/module/lpm_levels/L3/cpu2/ret/idle_enabled "N"
write /sys/module/lpm_levels/L3/cpu3/ret/idle_enabled "N"
write /sys/module/lpm_levels/L3/cpu4/ret/idle_enabled "N"
write /sys/module/lpm_levels/L3/cpu5/ret/idle_enabled "N"
write /sys/module/lpm_levels/L3/cpu6/ret/idle_enabled "N"
write /sys/module/lpm_levels/L3/cpu7/ret/idle_enabled "N"
# Set cpuset parameters # Set cpuset parameters
write /dev/cpuset/background/cpus 4-5 write /dev/cpuset/background/cpus 4-5
write /dev/cpuset/system-background/cpus 2-5 write /dev/cpuset/system-background/cpus 2-5
@@ -110,6 +198,12 @@ on enable-low-power
write /dev/cpuset/top-app/cpus 0-7 write /dev/cpuset/top-app/cpus 0-7
write /dev/cpuset/restricted/cpus 2-5 write /dev/cpuset/restricted/cpus 2-5
# Turn off scheduler boost at the end
write /proc/sys/kernel/sched_boost 0
# Turn on sleep modes
write /sys/module/lpm_levels/parameters/sleep_disabled 0
# Enable idle state listener # Enable idle state listener
write /sys/class/drm/card0/device/idle_encoder_mask 1 write /sys/class/drm/card0/device/idle_encoder_mask 1
write /sys/class/drm/card0/device/idle_timeout_ms 100 write /sys/class/drm/card0/device/idle_timeout_ms 100

View File

@@ -1,4 +1,5 @@
allow vendor_init proc_sysctl_autogroup:file w_file_perms; allow vendor_init proc_sysctl_autogroup:file w_file_perms;
allow vendor_init proc_sysctl_schedboost:file w_file_perms; allow vendor_init proc_sysctl_schedboost:file w_file_perms;
allow vendor_init proc_watermark_scale_factor:file w_file_perms;
set_prop(vendor_init, vendor_power_prop) set_prop(vendor_init, vendor_power_prop)