On high RAM targets, due to more anonymous memory availability, we can improve headroom by increasing ZRAM swap size, especially under memory pressure, and during background app compact. Also ZRAM swap size is logical and is used when needed and shouldn't cause other side effects. Change-Id: I11949b8bdf16e9b4b8abb1bd633ffa1a1c0b1ad6
3950 lines
192 KiB
Bash
Executable file
3950 lines
192 KiB
Bash
Executable file
#! /vendor/bin/sh
|
|
|
|
# Copyright (c) 2012-2013, 2016-2019, The Linux Foundation. All rights reserved.
|
|
#
|
|
# Redistribution and use in source and binary forms, with or without
|
|
# modification, are permitted provided that the following conditions are met:
|
|
# * Redistributions of source code must retain the above copyright
|
|
# notice, this list of conditions and the following disclaimer.
|
|
# * Redistributions in binary form must reproduce the above copyright
|
|
# notice, this list of conditions and the following disclaimer in the
|
|
# documentation and/or other materials provided with the distribution.
|
|
# * Neither the name of The Linux Foundation nor
|
|
# the names of its contributors may be used to endorse or promote
|
|
# products derived from this software without specific prior written
|
|
# permission.
|
|
#
|
|
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
# IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
# NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
|
|
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
|
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
|
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
|
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
|
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
|
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
|
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
#
|
|
|
|
function 8953_sched_dcvs_eas()
|
|
{
|
|
#governor settings
|
|
echo 1 > /sys/devices/system/cpu/cpu0/online
|
|
echo "schedutil" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
|
|
echo 0 > /sys/devices/system/cpu/cpufreq/schedutil/rate_limit_us
|
|
#set the hispeed_freq
|
|
echo 1401600 > /sys/devices/system/cpu/cpufreq/schedutil/hispeed_freq
|
|
#default value for hispeed_load is 90, for 8953 and sdm450 it should be 85
|
|
echo 85 > /sys/devices/system/cpu/cpufreq/schedutil/hispeed_load
|
|
}
|
|
|
|
function 8917_sched_dcvs_eas()
|
|
{
|
|
#governor settings
|
|
echo 1 > /sys/devices/system/cpu/cpu0/online
|
|
echo "schedutil" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
|
|
echo 0 > /sys/devices/system/cpu/cpufreq/schedutil/rate_limit_us
|
|
#set the hispeed_freq
|
|
echo 1094400 > /sys/devices/system/cpu/cpufreq/schedutil/hispeed_freq
|
|
#default value for hispeed_load is 90, for 8917 it should be 85
|
|
echo 85 > /sys/devices/system/cpu/cpufreq/schedutil/hispeed_load
|
|
}
|
|
|
|
function 8937_sched_dcvs_eas()
|
|
{
|
|
# enable governor for perf cluster
|
|
echo 1 > /sys/devices/system/cpu/cpu0/online
|
|
echo "schedutil" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
|
|
echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/rate_limit_us
|
|
#set the hispeed_freq
|
|
echo 1094400 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_freq
|
|
#default value for hispeed_load is 90, for 8937 it should be 85
|
|
echo 85 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_load
|
|
## enable governor for power cluster
|
|
echo 1 > /sys/devices/system/cpu/cpu4/online
|
|
echo "schedutil" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor
|
|
echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/rate_limit_us
|
|
#set the hispeed_freq
|
|
echo 768000 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/hispeed_freq
|
|
#default value for hispeed_load is 90, for 8937 it should be 85
|
|
echo 85 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/hispeed_load
|
|
|
|
}
|
|
|
|
function configure_sku_parameters() {
|
|
|
|
#read feature id from nvram
|
|
reg_val=`cat /sys/devices/platform/soc/780130.qfprom/qfprom0/nvmem | od -An -t d4`
|
|
feature_id=$(((reg_val >> 20) & 0xFF))
|
|
log -t BOOT -p i "feature id '$feature_id'"
|
|
if [ $feature_id == 6 ]; then
|
|
echo " SKU Configured : SA6145"
|
|
echo 748800 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
|
|
echo 748800 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq
|
|
echo 748800 > /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq
|
|
echo 748800 > /sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq
|
|
echo 748800 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq
|
|
echo 748800 > /sys/devices/system/cpu/cpu5/cpufreq/scaling_min_freq
|
|
echo 1017600 > /sys/devices/system/cpu/cpu6/cpufreq/scaling_min_freq
|
|
echo 1017600 > /sys/devices/system/cpu/cpu7/cpufreq/scaling_min_freq
|
|
echo 748800 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
|
|
echo 748800 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq
|
|
echo 748800 > /sys/devices/system/cpu/cpu2/cpufreq/scaling_max_freq
|
|
echo 748800 > /sys/devices/system/cpu/cpu3/cpufreq/scaling_max_freq
|
|
echo 748800 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_max_freq
|
|
echo 748800 > /sys/devices/system/cpu/cpu5/cpufreq/scaling_max_freq
|
|
echo 1017600 > /sys/devices/system/cpu/cpu6/cpufreq/scaling_max_freq
|
|
echo 1017600 > /sys/devices/system/cpu/cpu7/cpufreq/scaling_max_freq
|
|
echo 940800000 > /sys/class/devfreq/soc\:qcom,cpu0-cpu-l3-lat/min_freq
|
|
echo 1017600000 > /sys/class/devfreq/soc\:qcom,cpu0-cpu-l3-lat/max_freq
|
|
echo 940800000 > /sys/class/devfreq/soc\:qcom,cpu6-cpu-l3-lat/min_freq
|
|
echo 1017600000 > /sys/class/devfreq/soc\:qcom,cpu6-cpu-l3-lat/max_freq
|
|
echo 3 > /sys/class/kgsl/kgsl-3d0/max_pwrlevel
|
|
echo {class:ddr, res:fixed, val: 1016} > /sys/kernel/debug/aop_send_message
|
|
setprop vendor.sku_identified 1
|
|
elif [ $feature_id == 5 ]; then
|
|
echo "SKU Configured : SA6150"
|
|
echo 748800 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
|
|
echo 748800 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq
|
|
echo 748800 > /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq
|
|
echo 748800 > /sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq
|
|
echo 748800 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq
|
|
echo 748800 > /sys/devices/system/cpu/cpu5/cpufreq/scaling_min_freq
|
|
echo 1017600 > /sys/devices/system/cpu/cpu6/cpufreq/scaling_min_freq
|
|
echo 1017600 > /sys/devices/system/cpu/cpu7/cpufreq/scaling_min_freq
|
|
echo 998400 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
|
|
echo 998400 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq
|
|
echo 998400 > /sys/devices/system/cpu/cpu2/cpufreq/scaling_max_freq
|
|
echo 998400 > /sys/devices/system/cpu/cpu3/cpufreq/scaling_max_freq
|
|
echo 998400 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_max_freq
|
|
echo 998400 > /sys/devices/system/cpu/cpu5/cpufreq/scaling_max_freq
|
|
echo 1708800 > /sys/devices/system/cpu/cpu6/cpufreq/scaling_max_freq
|
|
echo 1708800 > /sys/devices/system/cpu/cpu7/cpufreq/scaling_max_freq
|
|
echo 940800000 > /sys/class/devfreq/soc\:qcom,cpu0-cpu-l3-lat/min_freq
|
|
echo 1363200000 > /sys/class/devfreq/soc\:qcom,cpu0-cpu-l3-lat/max_freq
|
|
echo 940800000 > /sys/class/devfreq/soc\:qcom,cpu6-cpu-l3-lat/min_freq
|
|
echo 1363200000 > /sys/class/devfreq/soc\:qcom,cpu6-cpu-l3-lat/max_freq
|
|
echo 2 > /sys/class/kgsl/kgsl-3d0/max_pwrlevel
|
|
echo {class:ddr, res:fixed, val: 1333} > /sys/kernel/debug/aop_send_message
|
|
setprop vendor.sku_identified 1
|
|
elif [ $feature_id == 4 || $feature_id == 3 ]; then
|
|
echo "SKU Configured : SA6155"
|
|
echo 748800 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
|
|
echo 748800 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq
|
|
echo 748800 > /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq
|
|
echo 748800 > /sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq
|
|
echo 748800 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq
|
|
echo 748800 > /sys/devices/system/cpu/cpu5/cpufreq/scaling_min_freq
|
|
echo 1017600 > /sys/devices/system/cpu/cpu6/cpufreq/scaling_min_freq
|
|
echo 1017600 > /sys/devices/system/cpu/cpu7/cpufreq/scaling_min_freq
|
|
echo 1593600 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
|
|
echo 1593600 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq
|
|
echo 1593600 > /sys/devices/system/cpu/cpu2/cpufreq/scaling_max_freq
|
|
echo 1593600 > /sys/devices/system/cpu/cpu3/cpufreq/scaling_max_freq
|
|
echo 1593600 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_max_freq
|
|
echo 1593600 > /sys/devices/system/cpu/cpu5/cpufreq/scaling_max_freq
|
|
echo 1900800 > /sys/devices/system/cpu/cpu6/cpufreq/scaling_max_freq
|
|
echo 1900800 > /sys/devices/system/cpu/cpu7/cpufreq/scaling_max_freq
|
|
echo 940800000 > /sys/class/devfreq/soc\:qcom,cpu0-cpu-l3-lat/min_freq
|
|
echo 1363200000 > /sys/class/devfreq/soc\:qcom,cpu0-cpu-l3-lat/max_freq
|
|
echo 940800000 > /sys/class/devfreq/soc\:qcom,cpu6-cpu-l3-lat/min_freq
|
|
echo 1363200000 > /sys/class/devfreq/soc\:qcom,cpu6-cpu-l3-lat/max_freq
|
|
echo 0 > /sys/class/kgsl/kgsl-3d0/max_pwrlevel
|
|
echo {class:ddr, res:fixed, val: 1555} > /sys/kernel/debug/aop_send_message
|
|
setprop vendor.sku_identified 1
|
|
else
|
|
echo "unknown feature_id value" $feature_id
|
|
echo 748800 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
|
|
echo 748800 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq
|
|
echo 748800 > /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq
|
|
echo 748800 > /sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq
|
|
echo 748800 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq
|
|
echo 748800 > /sys/devices/system/cpu/cpu5/cpufreq/scaling_min_freq
|
|
echo 1017600 > /sys/devices/system/cpu/cpu6/cpufreq/scaling_min_freq
|
|
echo 1017600 > /sys/devices/system/cpu/cpu7/cpufreq/scaling_min_freq
|
|
echo 1593600 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
|
|
echo 1593600 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq
|
|
echo 1593600 > /sys/devices/system/cpu/cpu2/cpufreq/scaling_max_freq
|
|
echo 1593600 > /sys/devices/system/cpu/cpu3/cpufreq/scaling_max_freq
|
|
echo 1593600 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_max_freq
|
|
echo 1593600 > /sys/devices/system/cpu/cpu5/cpufreq/scaling_max_freq
|
|
echo 1900800 > /sys/devices/system/cpu/cpu6/cpufreq/scaling_max_freq
|
|
echo 1900800 > /sys/devices/system/cpu/cpu7/cpufreq/scaling_max_freq
|
|
echo 940800000 > /sys/class/devfreq/soc\:qcom,cpu0-cpu-l3-lat/min_freq
|
|
echo 1363200000 > /sys/class/devfreq/soc\:qcom,cpu0-cpu-l3-lat/max_freq
|
|
echo 940800000 > /sys/class/devfreq/soc\:qcom,cpu6-cpu-l3-lat/min_freq
|
|
echo 1363200000 > /sys/class/devfreq/soc\:qcom,cpu6-cpu-l3-lat/max_freq
|
|
echo 0 > /sys/class/kgsl/kgsl-3d0/max_pwrlevel
|
|
echo {class:ddr, res:fixed, val: 1555} > /sys/kernel/debug/aop_send_message
|
|
setprop vendor.sku_identified 1
|
|
fi
|
|
}
|
|
|
|
function 8953_sched_dcvs_hmp()
|
|
{
|
|
#scheduler settings
|
|
echo 3 > /proc/sys/kernel/sched_window_stats_policy
|
|
echo 3 > /proc/sys/kernel/sched_ravg_hist_size
|
|
#task packing settings
|
|
echo 0 > /sys/devices/system/cpu/cpu0/sched_static_cpu_pwr_cost
|
|
echo 0 > /sys/devices/system/cpu/cpu1/sched_static_cpu_pwr_cost
|
|
echo 0 > /sys/devices/system/cpu/cpu2/sched_static_cpu_pwr_cost
|
|
echo 0 > /sys/devices/system/cpu/cpu3/sched_static_cpu_pwr_cost
|
|
echo 0 > /sys/devices/system/cpu/cpu4/sched_static_cpu_pwr_cost
|
|
echo 0 > /sys/devices/system/cpu/cpu5/sched_static_cpu_pwr_cost
|
|
echo 0 > /sys/devices/system/cpu/cpu6/sched_static_cpu_pwr_cost
|
|
echo 0 > /sys/devices/system/cpu/cpu7/sched_static_cpu_pwr_cost
|
|
# spill load is set to 100% by default in the kernel
|
|
echo 3 > /proc/sys/kernel/sched_spill_nr_run
|
|
# Apply inter-cluster load balancer restrictions
|
|
echo 1 > /proc/sys/kernel/sched_restrict_cluster_spill
|
|
# set sync wakee policy tunable
|
|
echo 1 > /proc/sys/kernel/sched_prefer_sync_wakee_to_waker
|
|
|
|
#governor settings
|
|
echo 1 > /sys/devices/system/cpu/cpu0/online
|
|
echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
|
|
echo "19000 1401600:39000" > /sys/devices/system/cpu/cpufreq/interactive/above_hispeed_delay
|
|
echo 85 > /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load
|
|
echo 20000 > /sys/devices/system/cpu/cpufreq/interactive/timer_rate
|
|
echo 1401600 > /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq
|
|
echo 0 > /sys/devices/system/cpu/cpufreq/interactive/io_is_busy
|
|
echo "85 1401600:80" > /sys/devices/system/cpu/cpufreq/interactive/target_loads
|
|
echo 39000 > /sys/devices/system/cpu/cpufreq/interactive/min_sample_time
|
|
echo 40000 > /sys/devices/system/cpu/cpufreq/interactive/sampling_down_factor
|
|
echo 19 > /proc/sys/kernel/sched_upmigrate_min_nice
|
|
# Enable sched guided freq control
|
|
echo 1 > /sys/devices/system/cpu/cpufreq/interactive/use_sched_load
|
|
echo 1 > /sys/devices/system/cpu/cpufreq/interactive/use_migration_notif
|
|
echo 200000 > /proc/sys/kernel/sched_freq_inc_notify
|
|
echo 200000 > /proc/sys/kernel/sched_freq_dec_notify
|
|
|
|
}
|
|
|
|
function 8917_sched_dcvs_hmp()
|
|
{
|
|
# HMP scheduler settings
|
|
echo 3 > /proc/sys/kernel/sched_window_stats_policy
|
|
echo 3 > /proc/sys/kernel/sched_ravg_hist_size
|
|
echo 1 > /proc/sys/kernel/sched_restrict_tasks_spread
|
|
# HMP Task packing settings
|
|
echo 20 > /proc/sys/kernel/sched_small_task
|
|
echo 30 > /sys/devices/system/cpu/cpu0/sched_mostly_idle_load
|
|
echo 30 > /sys/devices/system/cpu/cpu1/sched_mostly_idle_load
|
|
echo 30 > /sys/devices/system/cpu/cpu2/sched_mostly_idle_load
|
|
echo 30 > /sys/devices/system/cpu/cpu3/sched_mostly_idle_load
|
|
|
|
echo 3 > /sys/devices/system/cpu/cpu0/sched_mostly_idle_nr_run
|
|
echo 3 > /sys/devices/system/cpu/cpu1/sched_mostly_idle_nr_run
|
|
echo 3 > /sys/devices/system/cpu/cpu2/sched_mostly_idle_nr_run
|
|
echo 3 > /sys/devices/system/cpu/cpu3/sched_mostly_idle_nr_run
|
|
|
|
echo 0 > /sys/devices/system/cpu/cpu0/sched_prefer_idle
|
|
echo 0 > /sys/devices/system/cpu/cpu1/sched_prefer_idle
|
|
echo 0 > /sys/devices/system/cpu/cpu2/sched_prefer_idle
|
|
echo 0 > /sys/devices/system/cpu/cpu3/sched_prefer_idle
|
|
|
|
echo 1 > /sys/devices/system/cpu/cpu0/online
|
|
echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
|
|
echo "19000 1094400:39000" > /sys/devices/system/cpu/cpufreq/interactive/above_hispeed_delay
|
|
echo 85 > /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load
|
|
echo 20000 > /sys/devices/system/cpu/cpufreq/interactive/timer_rate
|
|
echo 1094400 > /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq
|
|
echo 0 > /sys/devices/system/cpu/cpufreq/interactive/io_is_busy
|
|
echo "1 960000:85 1094400:90" > /sys/devices/system/cpu/cpufreq/interactive/target_loads
|
|
echo 40000 > /sys/devices/system/cpu/cpufreq/interactive/min_sample_time
|
|
echo 40000 > /sys/devices/system/cpu/cpufreq/interactive/sampling_down_factor
|
|
|
|
# Enable sched guided freq control
|
|
echo 1 > /sys/devices/system/cpu/cpufreq/interactive/use_sched_load
|
|
echo 1 > /sys/devices/system/cpu/cpufreq/interactive/use_migration_notif
|
|
echo 50000 > /proc/sys/kernel/sched_freq_inc_notify
|
|
echo 50000 > /proc/sys/kernel/sched_freq_dec_notify
|
|
}
|
|
|
|
function 8937_sched_dcvs_hmp()
|
|
{
|
|
# HMP scheduler settings
|
|
echo 3 > /proc/sys/kernel/sched_window_stats_policy
|
|
echo 3 > /proc/sys/kernel/sched_ravg_hist_size
|
|
# HMP Task packing settings
|
|
echo 20 > /proc/sys/kernel/sched_small_task
|
|
echo 30 > /sys/devices/system/cpu/cpu0/sched_mostly_idle_load
|
|
echo 30 > /sys/devices/system/cpu/cpu1/sched_mostly_idle_load
|
|
echo 30 > /sys/devices/system/cpu/cpu2/sched_mostly_idle_load
|
|
echo 30 > /sys/devices/system/cpu/cpu3/sched_mostly_idle_load
|
|
echo 30 > /sys/devices/system/cpu/cpu4/sched_mostly_idle_load
|
|
echo 30 > /sys/devices/system/cpu/cpu5/sched_mostly_idle_load
|
|
echo 30 > /sys/devices/system/cpu/cpu6/sched_mostly_idle_load
|
|
echo 30 > /sys/devices/system/cpu/cpu7/sched_mostly_idle_load
|
|
|
|
echo 3 > /sys/devices/system/cpu/cpu0/sched_mostly_idle_nr_run
|
|
echo 3 > /sys/devices/system/cpu/cpu1/sched_mostly_idle_nr_run
|
|
echo 3 > /sys/devices/system/cpu/cpu2/sched_mostly_idle_nr_run
|
|
echo 3 > /sys/devices/system/cpu/cpu3/sched_mostly_idle_nr_run
|
|
echo 3 > /sys/devices/system/cpu/cpu4/sched_mostly_idle_nr_run
|
|
echo 3 > /sys/devices/system/cpu/cpu5/sched_mostly_idle_nr_run
|
|
echo 3 > /sys/devices/system/cpu/cpu6/sched_mostly_idle_nr_run
|
|
echo 3 > /sys/devices/system/cpu/cpu7/sched_mostly_idle_nr_run
|
|
|
|
echo 0 > /sys/devices/system/cpu/cpu0/sched_prefer_idle
|
|
echo 0 > /sys/devices/system/cpu/cpu1/sched_prefer_idle
|
|
echo 0 > /sys/devices/system/cpu/cpu2/sched_prefer_idle
|
|
echo 0 > /sys/devices/system/cpu/cpu3/sched_prefer_idle
|
|
echo 0 > /sys/devices/system/cpu/cpu4/sched_prefer_idle
|
|
echo 0 > /sys/devices/system/cpu/cpu5/sched_prefer_idle
|
|
echo 0 > /sys/devices/system/cpu/cpu6/sched_prefer_idle
|
|
echo 0 > /sys/devices/system/cpu/cpu7/sched_prefer_idle
|
|
# enable governor for perf cluster
|
|
echo 1 > /sys/devices/system/cpu/cpu0/online
|
|
echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
|
|
echo "19000 1094400:39000" > /sys/devices/system/cpu/cpu0/cpufreq/interactive/above_hispeed_delay
|
|
echo 85 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/go_hispeed_load
|
|
echo 20000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/timer_rate
|
|
echo 1094400 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/hispeed_freq
|
|
echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/io_is_busy
|
|
echo "1 960000:85 1094400:90 1344000:80" > /sys/devices/system/cpu/cpu0/cpufreq/interactive/target_loads
|
|
echo 40000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/min_sample_time
|
|
echo 40000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/sampling_down_factor
|
|
|
|
# enable governor for power cluster
|
|
echo 1 > /sys/devices/system/cpu/cpu4/online
|
|
echo "interactive" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor
|
|
echo 39000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/above_hispeed_delay
|
|
echo 90 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/go_hispeed_load
|
|
echo 20000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/timer_rate
|
|
echo 768000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/hispeed_freq
|
|
echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/io_is_busy
|
|
echo "1 768000:90" > /sys/devices/system/cpu/cpu4/cpufreq/interactive/target_loads
|
|
echo 40000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/min_sample_time
|
|
echo 40000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/sampling_down_factor
|
|
|
|
# Enable sched guided freq control
|
|
echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_sched_load
|
|
echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_migration_notif
|
|
echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_sched_load
|
|
echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_migration_notif
|
|
echo 50000 > /proc/sys/kernel/sched_freq_inc_notify
|
|
echo 50000 > /proc/sys/kernel/sched_freq_dec_notify
|
|
|
|
}
|
|
target=`getprop ro.board.platform`
|
|
|
|
function configure_zram_parameters() {
|
|
MemTotalStr=`cat /proc/meminfo | grep MemTotal`
|
|
MemTotal=${MemTotalStr:16:8}
|
|
|
|
low_ram=`getprop ro.config.low_ram`
|
|
|
|
# Zram disk - 75% for Go devices.
|
|
# For 512MB Go device, size = 384MB, set same for Non-Go.
|
|
# For 1GB Go device, size = 768MB, set same for Non-Go.
|
|
# For >1GB and <=3GB Non-Go device, size = 1GB
|
|
# For >3GB and <=4GB Non-Go device, size = 2GB
|
|
# For >4GB Non-Go device, size = 4GB
|
|
# And enable lz4 zram compression for Go targets.
|
|
|
|
if [ "$low_ram" == "true" ]; then
|
|
echo lz4 > /sys/block/zram0/comp_algorithm
|
|
fi
|
|
|
|
if [ -f /sys/block/zram0/disksize ]; then
|
|
if [ -f /sys/block/zram0/use_dedup ]; then
|
|
echo 1 > /sys/block/zram0/use_dedup
|
|
fi
|
|
if [ $MemTotal -le 524288 ]; then
|
|
echo 402653184 > /sys/block/zram0/disksize
|
|
elif [ $MemTotal -le 1048576 ]; then
|
|
echo 805306368 > /sys/block/zram0/disksize
|
|
elif [ $MemTotal -le 3145728 ]; then
|
|
echo 1073741824 > /sys/block/zram0/disksize
|
|
elif [ $MemTotal -le 4194304 ]; then
|
|
echo 2147483648 > /sys/block/zram0/disksize
|
|
else
|
|
echo 4294967296 > /sys/block/zram0/disksize
|
|
fi
|
|
mkswap /dev/block/zram0
|
|
swapon /dev/block/zram0 -p 32758
|
|
fi
|
|
}
|
|
|
|
function configure_read_ahead_kb_values() {
|
|
MemTotalStr=`cat /proc/meminfo | grep MemTotal`
|
|
MemTotal=${MemTotalStr:16:8}
|
|
|
|
# Set 128 for <= 3GB &
|
|
# set 512 for >= 4GB targets.
|
|
if [ $MemTotal -le 3145728 ]; then
|
|
echo 128 > /sys/block/mmcblk0/bdi/read_ahead_kb
|
|
echo 128 > /sys/block/mmcblk0/queue/read_ahead_kb
|
|
echo 128 > /sys/block/mmcblk0rpmb/bdi/read_ahead_kb
|
|
echo 128 > /sys/block/mmcblk0rpmb/queue/read_ahead_kb
|
|
echo 128 > /sys/block/dm-0/queue/read_ahead_kb
|
|
echo 128 > /sys/block/dm-1/queue/read_ahead_kb
|
|
echo 128 > /sys/block/dm-2/queue/read_ahead_kb
|
|
else
|
|
echo 512 > /sys/block/mmcblk0/bdi/read_ahead_kb
|
|
echo 512 > /sys/block/mmcblk0/queue/read_ahead_kb
|
|
echo 512 > /sys/block/mmcblk0rpmb/bdi/read_ahead_kb
|
|
echo 512 > /sys/block/mmcblk0rpmb/queue/read_ahead_kb
|
|
echo 512 > /sys/block/dm-0/queue/read_ahead_kb
|
|
echo 512 > /sys/block/dm-1/queue/read_ahead_kb
|
|
echo 512 > /sys/block/dm-2/queue/read_ahead_kb
|
|
fi
|
|
}
|
|
|
|
function disable_core_ctl() {
|
|
if [ -f /sys/devices/system/cpu/cpu0/core_ctl/enable ]; then
|
|
echo 0 > /sys/devices/system/cpu/cpu0/core_ctl/enable
|
|
else
|
|
echo 1 > /sys/devices/system/cpu/cpu0/core_ctl/disable
|
|
fi
|
|
}
|
|
|
|
function enable_swap() {
|
|
MemTotalStr=`cat /proc/meminfo | grep MemTotal`
|
|
MemTotal=${MemTotalStr:16:8}
|
|
|
|
SWAP_ENABLE_THRESHOLD=1048576
|
|
swap_enable=`getprop ro.vendor.qti.config.swap`
|
|
|
|
# Enable swap initially only for 1 GB targets
|
|
if [ "$MemTotal" -le "$SWAP_ENABLE_THRESHOLD" ] && [ "$swap_enable" == "true" ]; then
|
|
# Static swiftness
|
|
echo 1 > /proc/sys/vm/swap_ratio_enable
|
|
echo 70 > /proc/sys/vm/swap_ratio
|
|
|
|
# Swap disk - 200MB size
|
|
if [ ! -f /data/vendor/swap/swapfile ]; then
|
|
dd if=/dev/zero of=/data/vendor/swap/swapfile bs=1m count=200
|
|
fi
|
|
mkswap /data/vendor/swap/swapfile
|
|
swapon /data/vendor/swap/swapfile -p 32758
|
|
fi
|
|
}
|
|
|
|
function configure_memory_parameters() {
|
|
# Set Memory parameters.
|
|
#
|
|
# Set per_process_reclaim tuning parameters
|
|
# All targets will use vmpressure range 50-70,
|
|
# All targets will use 512 pages swap size.
|
|
#
|
|
# Set Low memory killer minfree parameters
|
|
# 32 bit Non-Go, all memory configurations will use 15K series
|
|
# 32 bit Go, all memory configurations will use uLMK + Memcg
|
|
# 64 bit will use Google default LMK series.
|
|
#
|
|
# Set ALMK parameters (usually above the highest minfree values)
|
|
# vmpressure_file_min threshold is always set slightly higher
|
|
# than LMK minfree's last bin value for all targets. It is calculated as
|
|
# vmpressure_file_min = (last bin - second last bin ) + last bin
|
|
#
|
|
# Set allocstall_threshold to 0 for all targets.
|
|
#
|
|
|
|
ProductName=`getprop ro.product.name`
|
|
low_ram=`getprop ro.config.low_ram`
|
|
|
|
if [ "$ProductName" == "msmnile" ] || [ "$ProductName" == "kona" ] ; then
|
|
# Enable ZRAM
|
|
configure_zram_parameters
|
|
configure_read_ahead_kb_values
|
|
echo 0 > /proc/sys/vm/page-cluster
|
|
echo 100 > /proc/sys/vm/swappiness
|
|
else
|
|
arch_type=`uname -m`
|
|
MemTotalStr=`cat /proc/meminfo | grep MemTotal`
|
|
MemTotal=${MemTotalStr:16:8}
|
|
|
|
# Set parameters for 32-bit Go targets.
|
|
if [ $MemTotal -le 1048576 ] && [ "$low_ram" == "true" ]; then
|
|
# Disable KLMK, ALMK, PPR & Core Control for Go devices
|
|
echo 0 > /sys/module/lowmemorykiller/parameters/enable_lmk
|
|
echo 0 > /sys/module/lowmemorykiller/parameters/enable_adaptive_lmk
|
|
echo 0 > /sys/module/process_reclaim/parameters/enable_process_reclaim
|
|
disable_core_ctl
|
|
# Enable oom_reaper for Go devices
|
|
if [ -f /proc/sys/vm/reap_mem_on_sigkill ]; then
|
|
echo 1 > /proc/sys/vm/reap_mem_on_sigkill
|
|
fi
|
|
else
|
|
|
|
# Read adj series and set adj threshold for PPR and ALMK.
|
|
# This is required since adj values change from framework to framework.
|
|
adj_series=`cat /sys/module/lowmemorykiller/parameters/adj`
|
|
adj_1="${adj_series#*,}"
|
|
set_almk_ppr_adj="${adj_1%%,*}"
|
|
|
|
# PPR and ALMK should not act on HOME adj and below.
|
|
# Normalized ADJ for HOME is 6. Hence multiply by 6
|
|
# ADJ score represented as INT in LMK params, actual score can be in decimal
|
|
# Hence add 6 considering a worst case of 0.9 conversion to INT (0.9*6).
|
|
# For uLMK + Memcg, this will be set as 6 since adj is zero.
|
|
set_almk_ppr_adj=$(((set_almk_ppr_adj * 6) + 6))
|
|
echo $set_almk_ppr_adj > /sys/module/lowmemorykiller/parameters/adj_max_shift
|
|
|
|
# Calculate vmpressure_file_min as below & set for 64 bit:
|
|
# vmpressure_file_min = last_lmk_bin + (last_lmk_bin - last_but_one_lmk_bin)
|
|
if [ "$arch_type" == "aarch64" ]; then
|
|
minfree_series=`cat /sys/module/lowmemorykiller/parameters/minfree`
|
|
minfree_1="${minfree_series#*,}" ; rem_minfree_1="${minfree_1%%,*}"
|
|
minfree_2="${minfree_1#*,}" ; rem_minfree_2="${minfree_2%%,*}"
|
|
minfree_3="${minfree_2#*,}" ; rem_minfree_3="${minfree_3%%,*}"
|
|
minfree_4="${minfree_3#*,}" ; rem_minfree_4="${minfree_4%%,*}"
|
|
minfree_5="${minfree_4#*,}"
|
|
|
|
vmpres_file_min=$((minfree_5 + (minfree_5 - rem_minfree_4)))
|
|
echo $vmpres_file_min > /sys/module/lowmemorykiller/parameters/vmpressure_file_min
|
|
else
|
|
# Set LMK series, vmpressure_file_min for 32 bit non-go targets.
|
|
# Disable Core Control, enable KLMK for non-go 8909.
|
|
if [ "$ProductName" == "msm8909" ]; then
|
|
disable_core_ctl
|
|
echo 1 > /sys/module/lowmemorykiller/parameters/enable_lmk
|
|
fi
|
|
echo "15360,19200,23040,26880,34415,43737" > /sys/module/lowmemorykiller/parameters/minfree
|
|
echo 53059 > /sys/module/lowmemorykiller/parameters/vmpressure_file_min
|
|
fi
|
|
|
|
# Enable adaptive LMK for all targets &
|
|
# use Google default LMK series for all 64-bit targets >=2GB.
|
|
echo 0 > /sys/module/lowmemorykiller/parameters/enable_adaptive_lmk
|
|
|
|
# Enable oom_reaper
|
|
if [ -f /sys/module/lowmemorykiller/parameters/oom_reaper ]; then
|
|
echo 1 > /sys/module/lowmemorykiller/parameters/oom_reaper
|
|
fi
|
|
|
|
# Set PPR parameters
|
|
if [ -f /sys/devices/soc0/soc_id ]; then
|
|
soc_id=`cat /sys/devices/soc0/soc_id`
|
|
else
|
|
soc_id=`cat /sys/devices/system/soc/soc0/id`
|
|
fi
|
|
|
|
case "$soc_id" in
|
|
# Do not set PPR parameters for premium targets
|
|
# sdm845 - 321, 341
|
|
# msm8998 - 292, 319
|
|
# msm8996 - 246, 291, 305, 312
|
|
"321" | "341" | "292" | "319" | "246" | "291" | "305" | "312")
|
|
;;
|
|
*)
|
|
#Set PPR parameters for all other targets.
|
|
echo $set_almk_ppr_adj > /sys/module/process_reclaim/parameters/min_score_adj
|
|
echo 1 > /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
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
# 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
|
|
|
|
enable_swap
|
|
fi
|
|
}
|
|
|
|
function enable_memory_features()
|
|
{
|
|
MemTotalStr=`cat /proc/meminfo | grep MemTotal`
|
|
MemTotal=${MemTotalStr:16:8}
|
|
|
|
if [ $MemTotal -le 2097152 ]; then
|
|
#Enable B service adj transition for 2GB or less memory
|
|
setprop ro.vendor.qti.sys.fw.bservice_enable true
|
|
setprop ro.vendor.qti.sys.fw.bservice_limit 5
|
|
setprop ro.vendor.qti.sys.fw.bservice_age 5000
|
|
|
|
#Enable Delay Service Restart
|
|
setprop ro.vendor.qti.am.reschedule_service true
|
|
fi
|
|
}
|
|
|
|
function start_hbtp()
|
|
{
|
|
# Start the Host based Touch processing but not in the power off mode.
|
|
bootmode=`getprop ro.bootmode`
|
|
if [ "charger" != $bootmode ]; then
|
|
start vendor.hbtp
|
|
fi
|
|
}
|
|
|
|
case "$target" in
|
|
"msm7201a_ffa" | "msm7201a_surf" | "msm7627_ffa" | "msm7627_6x" | "msm7627a" | "msm7627_surf" | \
|
|
"qsd8250_surf" | "qsd8250_ffa" | "msm7630_surf" | "msm7630_1x" | "msm7630_fusion" | "qsd8650a_st1x")
|
|
echo "ondemand" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
|
|
echo 90 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold
|
|
;;
|
|
esac
|
|
|
|
case "$target" in
|
|
"msm7201a_ffa" | "msm7201a_surf")
|
|
echo 500000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate
|
|
;;
|
|
esac
|
|
|
|
case "$target" in
|
|
"msm7630_surf" | "msm7630_1x" | "msm7630_fusion")
|
|
echo 75000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate
|
|
echo 1 > /sys/module/pm2/parameters/idle_sleep_mode
|
|
;;
|
|
esac
|
|
|
|
case "$target" in
|
|
"msm7201a_ffa" | "msm7201a_surf" | "msm7627_ffa" | "msm7627_6x" | "msm7627_surf" | "msm7630_surf" | "msm7630_1x" | "msm7630_fusion" | "msm7627a" )
|
|
echo 245760 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
|
|
;;
|
|
esac
|
|
|
|
case "$target" in
|
|
"msm8660")
|
|
echo 1 > /sys/module/rpm_resources/enable_low_power/L2_cache
|
|
echo 1 > /sys/module/rpm_resources/enable_low_power/pxo
|
|
echo 2 > /sys/module/rpm_resources/enable_low_power/vdd_dig
|
|
echo 2 > /sys/module/rpm_resources/enable_low_power/vdd_mem
|
|
echo 1 > /sys/module/rpm_resources/enable_low_power/rpm_cpu
|
|
echo 1 > /sys/module/msm_pm/modes/cpu0/power_collapse/suspend_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu1/power_collapse/suspend_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu0/standalone_power_collapse/suspend_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu1/standalone_power_collapse/suspend_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu0/power_collapse/idle_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu1/power_collapse/idle_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu0/standalone_power_collapse/idle_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu1/standalone_power_collapse/idle_enabled
|
|
echo "ondemand" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
|
|
echo "ondemand" > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor
|
|
echo 50000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate
|
|
echo 90 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold
|
|
echo 1 > /sys/devices/system/cpu/cpufreq/ondemand/io_is_busy
|
|
echo 4 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor
|
|
echo 384000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
|
|
echo 384000 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq
|
|
chown -h system /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
|
|
chown -h system /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
|
|
chown -h system /sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq
|
|
chown -h system /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq
|
|
chown -h root.system /sys/devices/system/cpu/mfreq
|
|
chmod -h 220 /sys/devices/system/cpu/mfreq
|
|
chown -h root.system /sys/devices/system/cpu/cpu1/online
|
|
chmod -h 664 /sys/devices/system/cpu/cpu1/online
|
|
;;
|
|
esac
|
|
|
|
case "$target" in
|
|
"msm8960")
|
|
echo 1 > /sys/module/rpm_resources/enable_low_power/L2_cache
|
|
echo 1 > /sys/module/rpm_resources/enable_low_power/pxo
|
|
echo 1 > /sys/module/rpm_resources/enable_low_power/vdd_dig
|
|
echo 1 > /sys/module/rpm_resources/enable_low_power/vdd_mem
|
|
echo 1 > /sys/module/msm_pm/modes/cpu0/retention/idle_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu0/power_collapse/suspend_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu1/power_collapse/suspend_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu2/power_collapse/suspend_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu3/power_collapse/suspend_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu0/standalone_power_collapse/suspend_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu1/standalone_power_collapse/suspend_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu2/standalone_power_collapse/suspend_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu3/standalone_power_collapse/suspend_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu0/standalone_power_collapse/idle_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu1/standalone_power_collapse/idle_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu2/standalone_power_collapse/idle_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu3/standalone_power_collapse/idle_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu0/power_collapse/idle_enabled
|
|
echo 0 > /sys/module/msm_thermal/core_control/enabled
|
|
echo 1 > /sys/devices/system/cpu/cpu1/online
|
|
echo 1 > /sys/devices/system/cpu/cpu2/online
|
|
echo 1 > /sys/devices/system/cpu/cpu3/online
|
|
echo "ondemand" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
|
|
echo "ondemand" > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor
|
|
echo "ondemand" > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor
|
|
echo "ondemand" > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor
|
|
echo 50000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate
|
|
echo 90 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold
|
|
echo 1 > /sys/devices/system/cpu/cpufreq/ondemand/io_is_busy
|
|
echo 4 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor
|
|
echo 10 > /sys/devices/system/cpu/cpufreq/ondemand/down_differential
|
|
echo 70 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold_multi_core
|
|
echo 3 > /sys/devices/system/cpu/cpufreq/ondemand/down_differential_multi_core
|
|
echo 918000 > /sys/devices/system/cpu/cpufreq/ondemand/optimal_freq
|
|
echo 1026000 > /sys/devices/system/cpu/cpufreq/ondemand/sync_freq
|
|
echo 80 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold_any_cpu_load
|
|
chown -h system /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate
|
|
chown -h system /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor
|
|
chown -h system /sys/devices/system/cpu/cpufreq/ondemand/io_is_busy
|
|
echo 384000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
|
|
echo 384000 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq
|
|
echo 384000 > /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq
|
|
echo 384000 > /sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq
|
|
chown -h system /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
|
|
chown -h system /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
|
|
chown -h system /sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq
|
|
chown -h system /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq
|
|
chown -h system /sys/devices/system/cpu/cpu2/cpufreq/scaling_max_freq
|
|
chown -h system /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq
|
|
chown -h system /sys/devices/system/cpu/cpu3/cpufreq/scaling_max_freq
|
|
chown -h system /sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq
|
|
echo 1 > /sys/module/msm_thermal/core_control/enabled
|
|
chown -h root.system /sys/devices/system/cpu/mfreq
|
|
chmod -h 220 /sys/devices/system/cpu/mfreq
|
|
chown -h root.system /sys/devices/system/cpu/cpu1/online
|
|
chown -h root.system /sys/devices/system/cpu/cpu2/online
|
|
chown -h root.system /sys/devices/system/cpu/cpu3/online
|
|
chmod -h 664 /sys/devices/system/cpu/cpu1/online
|
|
chmod -h 664 /sys/devices/system/cpu/cpu2/online
|
|
chmod -h 664 /sys/devices/system/cpu/cpu3/online
|
|
# set DCVS parameters for CPU
|
|
echo 40000 > /sys/module/msm_dcvs/cores/cpu0/slack_time_max_us
|
|
echo 40000 > /sys/module/msm_dcvs/cores/cpu0/slack_time_min_us
|
|
echo 100000 > /sys/module/msm_dcvs/cores/cpu0/em_win_size_min_us
|
|
echo 500000 > /sys/module/msm_dcvs/cores/cpu0/em_win_size_max_us
|
|
echo 0 > /sys/module/msm_dcvs/cores/cpu0/slack_mode_dynamic
|
|
echo 1000000 > /sys/module/msm_dcvs/cores/cpu0/disable_pc_threshold
|
|
echo 25000 > /sys/module/msm_dcvs/cores/cpu1/slack_time_max_us
|
|
echo 25000 > /sys/module/msm_dcvs/cores/cpu1/slack_time_min_us
|
|
echo 100000 > /sys/module/msm_dcvs/cores/cpu1/em_win_size_min_us
|
|
echo 500000 > /sys/module/msm_dcvs/cores/cpu1/em_win_size_max_us
|
|
echo 0 > /sys/module/msm_dcvs/cores/cpu1/slack_mode_dynamic
|
|
echo 1000000 > /sys/module/msm_dcvs/cores/cpu1/disable_pc_threshold
|
|
echo 25000 > /sys/module/msm_dcvs/cores/cpu2/slack_time_max_us
|
|
echo 25000 > /sys/module/msm_dcvs/cores/cpu2/slack_time_min_us
|
|
echo 100000 > /sys/module/msm_dcvs/cores/cpu2/em_win_size_min_us
|
|
echo 500000 > /sys/module/msm_dcvs/cores/cpu2/em_win_size_max_us
|
|
echo 0 > /sys/module/msm_dcvs/cores/cpu2/slack_mode_dynamic
|
|
echo 1000000 > /sys/module/msm_dcvs/cores/cpu2/disable_pc_threshold
|
|
echo 25000 > /sys/module/msm_dcvs/cores/cpu3/slack_time_max_us
|
|
echo 25000 > /sys/module/msm_dcvs/cores/cpu3/slack_time_min_us
|
|
echo 100000 > /sys/module/msm_dcvs/cores/cpu3/em_win_size_min_us
|
|
echo 500000 > /sys/module/msm_dcvs/cores/cpu3/em_win_size_max_us
|
|
echo 0 > /sys/module/msm_dcvs/cores/cpu3/slack_mode_dynamic
|
|
echo 1000000 > /sys/module/msm_dcvs/cores/cpu3/disable_pc_threshold
|
|
# set DCVS parameters for GPU
|
|
echo 20000 > /sys/module/msm_dcvs/cores/gpu0/slack_time_max_us
|
|
echo 20000 > /sys/module/msm_dcvs/cores/gpu0/slack_time_min_us
|
|
echo 0 > /sys/module/msm_dcvs/cores/gpu0/slack_mode_dynamic
|
|
# set msm_mpdecision parameters
|
|
echo 45000 > /sys/module/msm_mpdecision/slack_time_max_us
|
|
echo 15000 > /sys/module/msm_mpdecision/slack_time_min_us
|
|
echo 100000 > /sys/module/msm_mpdecision/em_win_size_min_us
|
|
echo 1000000 > /sys/module/msm_mpdecision/em_win_size_max_us
|
|
echo 3 > /sys/module/msm_mpdecision/online_util_pct_min
|
|
echo 25 > /sys/module/msm_mpdecision/online_util_pct_max
|
|
echo 97 > /sys/module/msm_mpdecision/em_max_util_pct
|
|
echo 2 > /sys/module/msm_mpdecision/rq_avg_poll_ms
|
|
echo 10 > /sys/module/msm_mpdecision/mp_em_rounding_point_min
|
|
echo 85 > /sys/module/msm_mpdecision/mp_em_rounding_point_max
|
|
echo 50 > /sys/module/msm_mpdecision/iowait_threshold_pct
|
|
#set permissions for the nodes needed by display on/off hook
|
|
chown -h system /sys/module/msm_dcvs/cores/cpu0/slack_time_max_us
|
|
chown -h system /sys/module/msm_dcvs/cores/cpu0/slack_time_min_us
|
|
chown -h system /sys/module/msm_mpdecision/slack_time_max_us
|
|
chown -h system /sys/module/msm_mpdecision/slack_time_min_us
|
|
chmod -h 664 /sys/module/msm_dcvs/cores/cpu0/slack_time_max_us
|
|
chmod -h 664 /sys/module/msm_dcvs/cores/cpu0/slack_time_min_us
|
|
chmod -h 664 /sys/module/msm_mpdecision/slack_time_max_us
|
|
chmod -h 664 /sys/module/msm_mpdecision/slack_time_min_us
|
|
if [ -f /sys/devices/soc0/soc_id ]; then
|
|
soc_id=`cat /sys/devices/soc0/soc_id`
|
|
else
|
|
soc_id=`cat /sys/devices/system/soc/soc0/id`
|
|
fi
|
|
case "$soc_id" in
|
|
"130")
|
|
echo 230 > /sys/class/gpio/export
|
|
echo 228 > /sys/class/gpio/export
|
|
echo 229 > /sys/class/gpio/export
|
|
echo "in" > /sys/class/gpio/gpio230/direction
|
|
echo "rising" > /sys/class/gpio/gpio230/edge
|
|
echo "in" > /sys/class/gpio/gpio228/direction
|
|
echo "rising" > /sys/class/gpio/gpio228/edge
|
|
echo "in" > /sys/class/gpio/gpio229/direction
|
|
echo "rising" > /sys/class/gpio/gpio229/edge
|
|
echo 253 > /sys/class/gpio/export
|
|
echo 254 > /sys/class/gpio/export
|
|
echo 257 > /sys/class/gpio/export
|
|
echo 258 > /sys/class/gpio/export
|
|
echo 259 > /sys/class/gpio/export
|
|
echo "out" > /sys/class/gpio/gpio253/direction
|
|
echo "out" > /sys/class/gpio/gpio254/direction
|
|
echo "out" > /sys/class/gpio/gpio257/direction
|
|
echo "out" > /sys/class/gpio/gpio258/direction
|
|
echo "out" > /sys/class/gpio/gpio259/direction
|
|
chown -h media /sys/class/gpio/gpio253/value
|
|
chown -h media /sys/class/gpio/gpio254/value
|
|
chown -h media /sys/class/gpio/gpio257/value
|
|
chown -h media /sys/class/gpio/gpio258/value
|
|
chown -h media /sys/class/gpio/gpio259/value
|
|
chown -h media /sys/class/gpio/gpio253/direction
|
|
chown -h media /sys/class/gpio/gpio254/direction
|
|
chown -h media /sys/class/gpio/gpio257/direction
|
|
chown -h media /sys/class/gpio/gpio258/direction
|
|
chown -h media /sys/class/gpio/gpio259/direction
|
|
echo 0 > /sys/module/rpm_resources/enable_low_power/vdd_dig
|
|
echo 0 > /sys/module/rpm_resources/enable_low_power/vdd_mem
|
|
;;
|
|
esac
|
|
;;
|
|
esac
|
|
|
|
case "$target" in
|
|
"msm8974")
|
|
echo 4 > /sys/module/lpm_levels/enable_low_power/l2
|
|
echo 1 > /sys/module/msm_pm/modes/cpu0/power_collapse/suspend_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu1/power_collapse/suspend_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu2/power_collapse/suspend_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu3/power_collapse/suspend_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu0/power_collapse/idle_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu1/power_collapse/idle_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu2/power_collapse/idle_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu3/power_collapse/idle_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu0/standalone_power_collapse/suspend_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu1/standalone_power_collapse/suspend_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu2/standalone_power_collapse/suspend_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu3/standalone_power_collapse/suspend_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu0/standalone_power_collapse/idle_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu1/standalone_power_collapse/idle_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu2/standalone_power_collapse/idle_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu3/standalone_power_collapse/idle_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu0/retention/idle_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu1/retention/idle_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu2/retention/idle_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu3/retention/idle_enabled
|
|
echo 0 > /sys/module/msm_thermal/core_control/enabled
|
|
echo 1 > /sys/devices/system/cpu/cpu1/online
|
|
echo 1 > /sys/devices/system/cpu/cpu2/online
|
|
echo 1 > /sys/devices/system/cpu/cpu3/online
|
|
if [ -f /sys/devices/soc0/soc_id ]; then
|
|
soc_id=`cat /sys/devices/soc0/soc_id`
|
|
else
|
|
soc_id=`cat /sys/devices/system/soc/soc0/id`
|
|
fi
|
|
case "$soc_id" in
|
|
"208" | "211" | "214" | "217" | "209" | "212" | "215" | "218" | "194" | "210" | "213" | "216")
|
|
for devfreq_gov in /sys/class/devfreq/qcom,cpubw*/governor
|
|
do
|
|
echo "cpubw_hwmon" > $devfreq_gov
|
|
done
|
|
echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
|
|
echo "interactive" > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor
|
|
echo "interactive" > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor
|
|
echo "interactive" > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor
|
|
echo "20000 1400000:40000 1700000:20000" > /sys/devices/system/cpu/cpufreq/interactive/above_hispeed_delay
|
|
echo 90 > /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load
|
|
echo 1190400 > /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq
|
|
echo 1 > /sys/devices/system/cpu/cpufreq/interactive/io_is_busy
|
|
echo "85 1500000:90 1800000:70" > /sys/devices/system/cpu/cpufreq/interactive/target_loads
|
|
echo 40000 > /sys/devices/system/cpu/cpufreq/interactive/min_sample_time
|
|
echo 20 > /sys/module/cpu_boost/parameters/boost_ms
|
|
echo 1728000 > /sys/module/cpu_boost/parameters/sync_threshold
|
|
echo 100000 > /sys/devices/system/cpu/cpufreq/interactive/sampling_down_factor
|
|
echo 1497600 > /sys/module/cpu_boost/parameters/input_boost_freq
|
|
echo 40 > /sys/module/cpu_boost/parameters/input_boost_ms
|
|
;;
|
|
*)
|
|
echo "ondemand" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
|
|
echo "ondemand" > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor
|
|
echo "ondemand" > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor
|
|
echo "ondemand" > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor
|
|
echo 50000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate
|
|
echo 90 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold
|
|
echo 1 > /sys/devices/system/cpu/cpufreq/ondemand/io_is_busy
|
|
echo 2 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor
|
|
echo 10 > /sys/devices/system/cpu/cpufreq/ondemand/down_differential
|
|
echo 70 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold_multi_core
|
|
echo 3 > /sys/devices/system/cpu/cpufreq/ondemand/down_differential_multi_core
|
|
echo 960000 > /sys/devices/system/cpu/cpufreq/ondemand/optimal_freq
|
|
echo 960000 > /sys/devices/system/cpu/cpufreq/ondemand/sync_freq
|
|
echo 1190400 > /sys/devices/system/cpu/cpufreq/ondemand/input_boost
|
|
echo 80 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold_any_cpu_load
|
|
;;
|
|
esac
|
|
echo 300000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
|
|
echo 300000 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq
|
|
echo 300000 > /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq
|
|
echo 300000 > /sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq
|
|
chown -h system /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
|
|
chown -h system /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
|
|
echo 1 > /sys/module/msm_thermal/core_control/enabled
|
|
chown -h root.system /sys/devices/system/cpu/mfreq
|
|
chmod -h 220 /sys/devices/system/cpu/mfreq
|
|
chown -h root.system /sys/devices/system/cpu/cpu1/online
|
|
chown -h root.system /sys/devices/system/cpu/cpu2/online
|
|
chown -h root.system /sys/devices/system/cpu/cpu3/online
|
|
chmod -h 664 /sys/devices/system/cpu/cpu1/online
|
|
chmod -h 664 /sys/devices/system/cpu/cpu2/online
|
|
chmod -h 664 /sys/devices/system/cpu/cpu3/online
|
|
echo 1 > /dev/cpuctl/apps/cpu.notify_on_migrate
|
|
;;
|
|
esac
|
|
|
|
case "$target" in
|
|
"msm8916")
|
|
if [ -f /sys/devices/soc0/soc_id ]; then
|
|
soc_id=`cat /sys/devices/soc0/soc_id`
|
|
else
|
|
soc_id=`cat /sys/devices/system/soc/soc0/id`
|
|
fi
|
|
case "$soc_id" in
|
|
"206")
|
|
echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
|
|
echo 1 > /sys/devices/system/cpu/cpu1/online
|
|
echo 1 > /sys/devices/system/cpu/cpu2/online
|
|
echo 1 > /sys/devices/system/cpu/cpu3/online
|
|
echo 2 > /sys/class/net/rmnet0/queues/rx-0/rps_cpus
|
|
;;
|
|
"247" | "248" | "249" | "250")
|
|
echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
|
|
echo 1 > /sys/devices/system/cpu/cpu1/online
|
|
echo 1 > /sys/devices/system/cpu/cpu2/online
|
|
echo 1 > /sys/devices/system/cpu/cpu3/online
|
|
;;
|
|
"239" | "241" | "263")
|
|
if [ -f /sys/devices/soc0/revision ]; then
|
|
revision=`cat /sys/devices/soc0/revision`
|
|
else
|
|
revision=`cat /sys/devices/system/soc/soc0/revision`
|
|
fi
|
|
echo 10 > /sys/class/net/rmnet0/queues/rx-0/rps_cpus
|
|
if [ -f /sys/devices/soc0/platform_subtype_id ]; then
|
|
platform_subtype_id=`cat /sys/devices/soc0/platform_subtype_id`
|
|
fi
|
|
if [ -f /sys/devices/soc0/hw_platform ]; then
|
|
hw_platform=`cat /sys/devices/soc0/hw_platform`
|
|
fi
|
|
case "$soc_id" in
|
|
"239")
|
|
case "$hw_platform" in
|
|
"Surf")
|
|
case "$platform_subtype_id" in
|
|
"1" | "2")
|
|
start_hbtp
|
|
;;
|
|
esac
|
|
;;
|
|
"MTP")
|
|
case "$platform_subtype_id" in
|
|
"3")
|
|
start_hbtp
|
|
;;
|
|
esac
|
|
;;
|
|
esac
|
|
;;
|
|
esac
|
|
;;
|
|
"268" | "269" | "270" | "271")
|
|
echo 10 > /sys/class/net/rmnet0/queues/rx-0/rps_cpus
|
|
;;
|
|
"233" | "240" | "242")
|
|
echo 1 > /sys/devices/system/cpu/cpu1/online
|
|
echo 1 > /sys/devices/system/cpu/cpu2/online
|
|
echo 1 > /sys/devices/system/cpu/cpu3/online
|
|
;;
|
|
esac
|
|
;;
|
|
esac
|
|
|
|
case "$target" in
|
|
"msm8226")
|
|
echo 4 > /sys/module/lpm_levels/enable_low_power/l2
|
|
echo 1 > /sys/module/msm_pm/modes/cpu0/power_collapse/suspend_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu1/power_collapse/suspend_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu2/power_collapse/suspend_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu3/power_collapse/suspend_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu0/standalone_power_collapse/suspend_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu1/standalone_power_collapse/suspend_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu2/standalone_power_collapse/suspend_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu3/standalone_power_collapse/suspend_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu0/standalone_power_collapse/idle_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu1/standalone_power_collapse/idle_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu2/standalone_power_collapse/idle_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu3/standalone_power_collapse/idle_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu0/power_collapse/idle_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu1/power_collapse/idle_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu2/power_collapse/idle_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu3/power_collapse/idle_enabled
|
|
echo 1 > /sys/devices/system/cpu/cpu1/online
|
|
echo 1 > /sys/devices/system/cpu/cpu2/online
|
|
echo 1 > /sys/devices/system/cpu/cpu3/online
|
|
echo "ondemand" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
|
|
echo 50000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate
|
|
echo 90 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold
|
|
echo 1 > /sys/devices/system/cpu/cpufreq/ondemand/io_is_busy
|
|
echo 2 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor
|
|
echo 10 > /sys/devices/system/cpu/cpufreq/ondemand/down_differential
|
|
echo 70 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold_multi_core
|
|
echo 10 > /sys/devices/system/cpu/cpufreq/ondemand/down_differential_multi_core
|
|
echo 787200 > /sys/devices/system/cpu/cpufreq/ondemand/optimal_freq
|
|
echo 300000 > /sys/devices/system/cpu/cpufreq/ondemand/sync_freq
|
|
echo 80 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold_any_cpu_load
|
|
echo 300000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
|
|
chown -h system /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
|
|
chown -h system /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
|
|
chown -h root.system /sys/devices/system/cpu/cpu1/online
|
|
chown -h root.system /sys/devices/system/cpu/cpu2/online
|
|
chown -h root.system /sys/devices/system/cpu/cpu3/online
|
|
chmod -h 664 /sys/devices/system/cpu/cpu1/online
|
|
chmod -h 664 /sys/devices/system/cpu/cpu2/online
|
|
chmod -h 664 /sys/devices/system/cpu/cpu3/online
|
|
;;
|
|
esac
|
|
|
|
case "$target" in
|
|
"msm8610")
|
|
echo 4 > /sys/module/lpm_levels/enable_low_power/l2
|
|
echo 1 > /sys/module/msm_pm/modes/cpu0/power_collapse/suspend_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu1/power_collapse/suspend_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu2/power_collapse/suspend_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu3/power_collapse/suspend_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu0/standalone_power_collapse/suspend_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu1/standalone_power_collapse/suspend_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu2/standalone_power_collapse/suspend_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu3/standalone_power_collapse/suspend_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu0/standalone_power_collapse/idle_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu1/standalone_power_collapse/idle_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu2/standalone_power_collapse/idle_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu3/standalone_power_collapse/idle_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu0/power_collapse/idle_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu1/power_collapse/idle_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu2/power_collapse/idle_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu3/power_collapse/idle_enabled
|
|
echo 1 > /sys/devices/system/cpu/cpu1/online
|
|
echo 1 > /sys/devices/system/cpu/cpu2/online
|
|
echo 1 > /sys/devices/system/cpu/cpu3/online
|
|
echo "ondemand" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
|
|
echo 50000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate
|
|
echo 90 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold
|
|
echo 1 > /sys/devices/system/cpu/cpufreq/ondemand/io_is_busy
|
|
echo 2 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor
|
|
echo 10 > /sys/devices/system/cpu/cpufreq/ondemand/down_differential
|
|
echo 70 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold_multi_core
|
|
echo 10 > /sys/devices/system/cpu/cpufreq/ondemand/down_differential_multi_core
|
|
echo 787200 > /sys/devices/system/cpu/cpufreq/ondemand/optimal_freq
|
|
echo 300000 > /sys/devices/system/cpu/cpufreq/ondemand/sync_freq
|
|
echo 80 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold_any_cpu_load
|
|
echo 300000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
|
|
setprop ro.qualcomm.perf.min_freq 7
|
|
echo 1 > /sys/kernel/mm/ksm/deferred_timer
|
|
chown -h system /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
|
|
chown -h system /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
|
|
chown -h root.system /sys/devices/system/cpu/cpu1/online
|
|
chown -h root.system /sys/devices/system/cpu/cpu2/online
|
|
chown -h root.system /sys/devices/system/cpu/cpu3/online
|
|
chmod -h 664 /sys/devices/system/cpu/cpu1/online
|
|
chmod -h 664 /sys/devices/system/cpu/cpu2/online
|
|
chmod -h 664 /sys/devices/system/cpu/cpu3/online
|
|
;;
|
|
esac
|
|
|
|
case "$target" in
|
|
"msm8916")
|
|
|
|
if [ -f /sys/devices/soc0/soc_id ]; then
|
|
soc_id=`cat /sys/devices/soc0/soc_id`
|
|
else
|
|
soc_id=`cat /sys/devices/system/soc/soc0/id`
|
|
fi
|
|
|
|
# HMP scheduler settings for 8916, 8936, 8939, 8929
|
|
echo 3 > /proc/sys/kernel/sched_window_stats_policy
|
|
echo 3 > /proc/sys/kernel/sched_ravg_hist_size
|
|
|
|
# Apply governor settings for 8916
|
|
case "$soc_id" in
|
|
"206" | "247" | "248" | "249" | "250")
|
|
|
|
# HMP scheduler load tracking settings
|
|
echo 3 > /proc/sys/kernel/sched_ravg_hist_size
|
|
|
|
# HMP Task packing settings for 8916
|
|
echo 20 > /proc/sys/kernel/sched_small_task
|
|
echo 30 > /proc/sys/kernel/sched_mostly_idle_load
|
|
echo 3 > /proc/sys/kernel/sched_mostly_idle_nr_run
|
|
|
|
# disable thermal core_control to update scaling_min_freq
|
|
echo 0 > /sys/module/msm_thermal/core_control/enabled
|
|
echo 1 > /sys/devices/system/cpu/cpu0/online
|
|
echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
|
|
echo 800000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
|
|
# enable thermal core_control now
|
|
echo 1 > /sys/module/msm_thermal/core_control/enabled
|
|
|
|
echo "25000 1094400:50000" > /sys/devices/system/cpu/cpufreq/interactive/above_hispeed_delay
|
|
echo 90 > /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load
|
|
echo 30000 > /sys/devices/system/cpu/cpufreq/interactive/timer_rate
|
|
echo 998400 > /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq
|
|
echo 0 > /sys/devices/system/cpu/cpufreq/interactive/io_is_busy
|
|
echo "1 800000:85 998400:90 1094400:80" > /sys/devices/system/cpu/cpufreq/interactive/target_loads
|
|
echo 50000 > /sys/devices/system/cpu/cpufreq/interactive/min_sample_time
|
|
echo 50000 > /sys/devices/system/cpu/cpufreq/interactive/sampling_down_factor
|
|
|
|
# Bring up all cores online
|
|
echo 1 > /sys/devices/system/cpu/cpu1/online
|
|
echo 1 > /sys/devices/system/cpu/cpu2/online
|
|
echo 1 > /sys/devices/system/cpu/cpu3/online
|
|
echo 1 > /sys/devices/system/cpu/cpu4/online
|
|
;;
|
|
esac
|
|
|
|
# Apply governor settings for 8936
|
|
case "$soc_id" in
|
|
"233" | "240" | "242")
|
|
|
|
# HMP scheduler load tracking settings
|
|
echo 3 > /proc/sys/kernel/sched_ravg_hist_size
|
|
|
|
# HMP Task packing settings for 8936
|
|
echo 50 > /proc/sys/kernel/sched_small_task
|
|
echo 50 > /proc/sys/kernel/sched_mostly_idle_load
|
|
echo 10 > /proc/sys/kernel/sched_mostly_idle_nr_run
|
|
|
|
# disable thermal core_control to update scaling_min_freq, interactive gov
|
|
echo 0 > /sys/module/msm_thermal/core_control/enabled
|
|
echo 1 > /sys/devices/system/cpu/cpu0/online
|
|
echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
|
|
echo 800000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
|
|
# enable thermal core_control now
|
|
echo 1 > /sys/module/msm_thermal/core_control/enabled
|
|
|
|
echo "25000 1113600:50000" > /sys/devices/system/cpu/cpufreq/interactive/above_hispeed_delay
|
|
echo 90 > /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load
|
|
echo 30000 > /sys/devices/system/cpu/cpufreq/interactive/timer_rate
|
|
echo 960000 > /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq
|
|
echo 0 > /sys/devices/system/cpu/cpufreq/interactive/io_is_busy
|
|
echo "1 800000:85 1113600:90 1267200:80" > /sys/devices/system/cpu/cpufreq/interactive/target_loads
|
|
echo 50000 > /sys/devices/system/cpu/cpufreq/interactive/min_sample_time
|
|
echo 50000 > /sys/devices/system/cpu/cpufreq/interactive/sampling_down_factor
|
|
|
|
# Bring up all cores online
|
|
echo 1 > /sys/devices/system/cpu/cpu1/online
|
|
echo 1 > /sys/devices/system/cpu/cpu2/online
|
|
echo 1 > /sys/devices/system/cpu/cpu3/online
|
|
echo 1 > /sys/devices/system/cpu/cpu4/online
|
|
|
|
# Enable low power modes
|
|
echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
|
|
|
|
for gpu_bimc_io_percent in /sys/class/devfreq/*qcom,gpubw*/bw_hwmon/io_percent
|
|
do
|
|
echo 40 > $gpu_bimc_io_percent
|
|
done
|
|
;;
|
|
esac
|
|
|
|
# Apply governor settings for 8939
|
|
case "$soc_id" in
|
|
"239" | "241" | "263" | "268" | "269" | "270" | "271")
|
|
|
|
if [ `cat /sys/devices/soc0/revision` != "3.0" ]; then
|
|
# Apply 1.0 and 2.0 specific Sched & Governor settings
|
|
|
|
# HMP scheduler load tracking settings
|
|
echo 5 > /proc/sys/kernel/sched_ravg_hist_size
|
|
|
|
# HMP Task packing settings for 8939, 8929
|
|
echo 20 > /proc/sys/kernel/sched_small_task
|
|
|
|
for devfreq_gov in /sys/class/devfreq/*qcom,mincpubw*/governor
|
|
do
|
|
echo "cpufreq" > $devfreq_gov
|
|
done
|
|
|
|
for devfreq_gov in /sys/class/devfreq/*qcom,cpubw*/governor
|
|
do
|
|
echo "bw_hwmon" > $devfreq_gov
|
|
for cpu_io_percent in /sys/class/devfreq/*qcom,cpubw*/bw_hwmon/io_percent
|
|
do
|
|
echo 20 > $cpu_io_percent
|
|
done
|
|
done
|
|
|
|
for gpu_bimc_io_percent in /sys/class/devfreq/*qcom,gpubw*/bw_hwmon/io_percent
|
|
do
|
|
echo 40 > $gpu_bimc_io_percent
|
|
done
|
|
# disable thermal core_control to update interactive gov settings
|
|
echo 0 > /sys/module/msm_thermal/core_control/enabled
|
|
|
|
# enable governor for perf cluster
|
|
echo 1 > /sys/devices/system/cpu/cpu0/online
|
|
echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
|
|
echo "20000 1113600:50000" > /sys/devices/system/cpu/cpu0/cpufreq/interactive/above_hispeed_delay
|
|
echo 85 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/go_hispeed_load
|
|
echo 20000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/timer_rate
|
|
echo 1113600 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/hispeed_freq
|
|
echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/io_is_busy
|
|
echo "1 960000:85 1113600:90 1344000:80" > /sys/devices/system/cpu/cpu0/cpufreq/interactive/target_loads
|
|
echo 50000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/min_sample_time
|
|
echo 50000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/sampling_down_factor
|
|
echo 960000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
|
|
|
|
# enable governor for power cluster
|
|
echo 1 > /sys/devices/system/cpu/cpu4/online
|
|
echo "interactive" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor
|
|
echo "25000 800000:50000" > /sys/devices/system/cpu/cpu4/cpufreq/interactive/above_hispeed_delay
|
|
echo 90 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/go_hispeed_load
|
|
echo 40000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/timer_rate
|
|
echo 998400 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/hispeed_freq
|
|
echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/io_is_busy
|
|
echo "1 800000:90" > /sys/devices/system/cpu/cpu4/cpufreq/interactive/target_loads
|
|
echo 40000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/min_sample_time
|
|
echo 40000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/sampling_down_factor
|
|
echo 800000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq
|
|
|
|
# enable thermal core_control now
|
|
echo 1 > /sys/module/msm_thermal/core_control/enabled
|
|
|
|
# Bring up all cores online
|
|
echo 1 > /sys/devices/system/cpu/cpu1/online
|
|
echo 1 > /sys/devices/system/cpu/cpu2/online
|
|
echo 1 > /sys/devices/system/cpu/cpu3/online
|
|
echo 1 > /sys/devices/system/cpu/cpu4/online
|
|
echo 1 > /sys/devices/system/cpu/cpu5/online
|
|
echo 1 > /sys/devices/system/cpu/cpu6/online
|
|
echo 1 > /sys/devices/system/cpu/cpu7/online
|
|
|
|
# Enable low power modes
|
|
echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
|
|
|
|
# HMP scheduler (big.Little cluster related) settings
|
|
echo 75 > /proc/sys/kernel/sched_upmigrate
|
|
echo 60 > /proc/sys/kernel/sched_downmigrate
|
|
|
|
# cpu idle load threshold
|
|
echo 30 > /sys/devices/system/cpu/cpu0/sched_mostly_idle_load
|
|
echo 30 > /sys/devices/system/cpu/cpu1/sched_mostly_idle_load
|
|
echo 30 > /sys/devices/system/cpu/cpu2/sched_mostly_idle_load
|
|
echo 30 > /sys/devices/system/cpu/cpu3/sched_mostly_idle_load
|
|
echo 30 > /sys/devices/system/cpu/cpu4/sched_mostly_idle_load
|
|
echo 30 > /sys/devices/system/cpu/cpu5/sched_mostly_idle_load
|
|
echo 30 > /sys/devices/system/cpu/cpu6/sched_mostly_idle_load
|
|
echo 30 > /sys/devices/system/cpu/cpu7/sched_mostly_idle_load
|
|
|
|
# cpu idle nr run threshold
|
|
echo 3 > /sys/devices/system/cpu/cpu0/sched_mostly_idle_nr_run
|
|
echo 3 > /sys/devices/system/cpu/cpu1/sched_mostly_idle_nr_run
|
|
echo 3 > /sys/devices/system/cpu/cpu2/sched_mostly_idle_nr_run
|
|
echo 3 > /sys/devices/system/cpu/cpu3/sched_mostly_idle_nr_run
|
|
echo 3 > /sys/devices/system/cpu/cpu4/sched_mostly_idle_nr_run
|
|
echo 3 > /sys/devices/system/cpu/cpu5/sched_mostly_idle_nr_run
|
|
echo 3 > /sys/devices/system/cpu/cpu6/sched_mostly_idle_nr_run
|
|
echo 3 > /sys/devices/system/cpu/cpu7/sched_mostly_idle_nr_run
|
|
|
|
else
|
|
# Apply 3.0 specific Sched & Governor settings
|
|
# HMP scheduler settings for 8939 V3.0
|
|
echo 3 > /proc/sys/kernel/sched_window_stats_policy
|
|
echo 3 > /proc/sys/kernel/sched_ravg_hist_size
|
|
echo 20000000 > /proc/sys/kernel/sched_ravg_window
|
|
|
|
# HMP Task packing settings for 8939 V3.0
|
|
echo 20 > /proc/sys/kernel/sched_small_task
|
|
echo 30 > /proc/sys/kernel/sched_mostly_idle_load
|
|
echo 3 > /proc/sys/kernel/sched_mostly_idle_nr_run
|
|
|
|
echo 0 > /sys/devices/system/cpu/cpu0/sched_prefer_idle
|
|
echo 0 > /sys/devices/system/cpu/cpu1/sched_prefer_idle
|
|
echo 0 > /sys/devices/system/cpu/cpu2/sched_prefer_idle
|
|
echo 0 > /sys/devices/system/cpu/cpu3/sched_prefer_idle
|
|
echo 0 > /sys/devices/system/cpu/cpu4/sched_prefer_idle
|
|
echo 0 > /sys/devices/system/cpu/cpu5/sched_prefer_idle
|
|
echo 0 > /sys/devices/system/cpu/cpu6/sched_prefer_idle
|
|
echo 0 > /sys/devices/system/cpu/cpu7/sched_prefer_idle
|
|
|
|
for devfreq_gov in /sys/class/devfreq/*qcom,mincpubw*/governor
|
|
do
|
|
echo "cpufreq" > $devfreq_gov
|
|
done
|
|
|
|
for devfreq_gov in /sys/class/devfreq/*qcom,cpubw*/governor
|
|
do
|
|
echo "bw_hwmon" > $devfreq_gov
|
|
for cpu_io_percent in /sys/class/devfreq/*qcom,cpubw*/bw_hwmon/io_percent
|
|
do
|
|
echo 20 > $cpu_io_percent
|
|
done
|
|
done
|
|
|
|
for gpu_bimc_io_percent in /sys/class/devfreq/*qcom,gpubw*/bw_hwmon/io_percent
|
|
do
|
|
echo 40 > $gpu_bimc_io_percent
|
|
done
|
|
# disable thermal core_control to update interactive gov settings
|
|
echo 0 > /sys/module/msm_thermal/core_control/enabled
|
|
|
|
# enable governor for perf cluster
|
|
echo 1 > /sys/devices/system/cpu/cpu0/online
|
|
echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
|
|
echo "19000 1113600:39000" > /sys/devices/system/cpu/cpu0/cpufreq/interactive/above_hispeed_delay
|
|
echo 85 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/go_hispeed_load
|
|
echo 20000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/timer_rate
|
|
echo 1113600 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/hispeed_freq
|
|
echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/io_is_busy
|
|
echo "1 960000:85 1113600:90 1344000:80" > /sys/devices/system/cpu/cpu0/cpufreq/interactive/target_loads
|
|
echo 40000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/min_sample_time
|
|
echo 40000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/sampling_down_factor
|
|
echo 960000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
|
|
|
|
# enable governor for power cluster
|
|
echo 1 > /sys/devices/system/cpu/cpu4/online
|
|
echo "interactive" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor
|
|
echo 39000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/above_hispeed_delay
|
|
echo 90 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/go_hispeed_load
|
|
echo 20000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/timer_rate
|
|
echo 800000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/hispeed_freq
|
|
echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/io_is_busy
|
|
echo "1 800000:90" > /sys/devices/system/cpu/cpu4/cpufreq/interactive/target_loads
|
|
echo 40000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/min_sample_time
|
|
echo 40000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/sampling_down_factor
|
|
echo 800000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq
|
|
|
|
# enable thermal core_control now
|
|
echo 1 > /sys/module/msm_thermal/core_control/enabled
|
|
|
|
# Bring up all cores online
|
|
echo 1 > /sys/devices/system/cpu/cpu1/online
|
|
echo 1 > /sys/devices/system/cpu/cpu2/online
|
|
echo 1 > /sys/devices/system/cpu/cpu3/online
|
|
echo 1 > /sys/devices/system/cpu/cpu5/online
|
|
echo 1 > /sys/devices/system/cpu/cpu6/online
|
|
echo 1 > /sys/devices/system/cpu/cpu7/online
|
|
|
|
# Enable low power modes
|
|
echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
|
|
|
|
# HMP scheduler (big.Little cluster related) settings
|
|
echo 93 > /proc/sys/kernel/sched_upmigrate
|
|
echo 83 > /proc/sys/kernel/sched_downmigrate
|
|
|
|
# Enable sched guided freq control
|
|
echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_sched_load
|
|
echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_migration_notif
|
|
echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_sched_load
|
|
echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_migration_notif
|
|
echo 50000 > /proc/sys/kernel/sched_freq_inc_notify
|
|
echo 50000 > /proc/sys/kernel/sched_freq_dec_notify
|
|
|
|
# Enable core control
|
|
# insmod /system/lib/modules/core_ctl.ko
|
|
echo 2 > /sys/devices/system/cpu/cpu0/core_ctl/min_cpus
|
|
echo 4 > /sys/devices/system/cpu/cpu0/core_ctl/max_cpus
|
|
echo 68 > /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
|
|
case "$revision" in
|
|
"3.0")
|
|
# Enable dynamic clock gatin
|
|
echo 1 > /sys/module/lpm_levels/lpm_workarounds/dynamic_clock_gating
|
|
;;
|
|
esac
|
|
fi
|
|
;;
|
|
esac
|
|
# Set Memory parameters
|
|
configure_memory_parameters
|
|
;;
|
|
esac
|
|
|
|
case "$target" in
|
|
"msm8952")
|
|
|
|
if [ -f /sys/devices/soc0/soc_id ]; then
|
|
soc_id=`cat /sys/devices/soc0/soc_id`
|
|
else
|
|
soc_id=`cat /sys/devices/system/soc/soc0/id`
|
|
fi
|
|
case "$soc_id" in
|
|
"264" | "289")
|
|
# Apply Scheduler and Governor settings for 8952
|
|
|
|
# HMP scheduler settings
|
|
echo 3 > /proc/sys/kernel/sched_window_stats_policy
|
|
echo 3 > /proc/sys/kernel/sched_ravg_hist_size
|
|
echo 20000000 > /proc/sys/kernel/sched_ravg_window
|
|
|
|
# HMP Task packing settings
|
|
echo 20 > /proc/sys/kernel/sched_small_task
|
|
echo 30 > /sys/devices/system/cpu/cpu0/sched_mostly_idle_load
|
|
echo 30 > /sys/devices/system/cpu/cpu1/sched_mostly_idle_load
|
|
echo 30 > /sys/devices/system/cpu/cpu2/sched_mostly_idle_load
|
|
echo 30 > /sys/devices/system/cpu/cpu3/sched_mostly_idle_load
|
|
echo 30 > /sys/devices/system/cpu/cpu4/sched_mostly_idle_load
|
|
echo 30 > /sys/devices/system/cpu/cpu5/sched_mostly_idle_load
|
|
echo 30 > /sys/devices/system/cpu/cpu6/sched_mostly_idle_load
|
|
echo 30 > /sys/devices/system/cpu/cpu7/sched_mostly_idle_load
|
|
|
|
echo 3 > /sys/devices/system/cpu/cpu0/sched_mostly_idle_nr_run
|
|
echo 3 > /sys/devices/system/cpu/cpu1/sched_mostly_idle_nr_run
|
|
echo 3 > /sys/devices/system/cpu/cpu2/sched_mostly_idle_nr_run
|
|
echo 3 > /sys/devices/system/cpu/cpu3/sched_mostly_idle_nr_run
|
|
echo 3 > /sys/devices/system/cpu/cpu4/sched_mostly_idle_nr_run
|
|
echo 3 > /sys/devices/system/cpu/cpu5/sched_mostly_idle_nr_run
|
|
echo 3 > /sys/devices/system/cpu/cpu6/sched_mostly_idle_nr_run
|
|
echo 3 > /sys/devices/system/cpu/cpu7/sched_mostly_idle_nr_run
|
|
|
|
echo 0 > /sys/devices/system/cpu/cpu0/sched_prefer_idle
|
|
echo 0 > /sys/devices/system/cpu/cpu1/sched_prefer_idle
|
|
echo 0 > /sys/devices/system/cpu/cpu2/sched_prefer_idle
|
|
echo 0 > /sys/devices/system/cpu/cpu3/sched_prefer_idle
|
|
echo 0 > /sys/devices/system/cpu/cpu4/sched_prefer_idle
|
|
echo 0 > /sys/devices/system/cpu/cpu5/sched_prefer_idle
|
|
echo 0 > /sys/devices/system/cpu/cpu6/sched_prefer_idle
|
|
echo 0 > /sys/devices/system/cpu/cpu7/sched_prefer_idle
|
|
|
|
echo 0 > /proc/sys/kernel/sched_boost
|
|
|
|
for devfreq_gov in /sys/class/devfreq/*qcom,mincpubw*/governor
|
|
do
|
|
echo "cpufreq" > $devfreq_gov
|
|
done
|
|
|
|
for devfreq_gov in /sys/class/devfreq/*qcom,cpubw*/governor
|
|
do
|
|
echo "bw_hwmon" > $devfreq_gov
|
|
for cpu_io_percent in /sys/class/devfreq/*qcom,cpubw*/bw_hwmon/io_percent
|
|
do
|
|
echo 20 > $cpu_io_percent
|
|
done
|
|
for cpu_guard_band in /sys/class/devfreq/*qcom,cpubw*/bw_hwmon/guard_band_mbps
|
|
do
|
|
echo 30 > $cpu_guard_band
|
|
done
|
|
done
|
|
|
|
for gpu_bimc_io_percent in /sys/class/devfreq/qcom,gpubw*/bw_hwmon/io_percent
|
|
do
|
|
echo 40 > $gpu_bimc_io_percent
|
|
done
|
|
# disable thermal & BCL core_control to update interactive gov settings
|
|
echo 0 > /sys/module/msm_thermal/core_control/enabled
|
|
for mode in /sys/devices/soc.0/qcom,bcl.*/mode
|
|
do
|
|
echo -n disable > $mode
|
|
done
|
|
for hotplug_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_mask
|
|
do
|
|
bcl_hotplug_mask=`cat $hotplug_mask`
|
|
echo 0 > $hotplug_mask
|
|
done
|
|
for hotplug_soc_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_soc_mask
|
|
do
|
|
bcl_soc_hotplug_mask=`cat $hotplug_soc_mask`
|
|
echo 0 > $hotplug_soc_mask
|
|
done
|
|
for mode in /sys/devices/soc.0/qcom,bcl.*/mode
|
|
do
|
|
echo -n enable > $mode
|
|
done
|
|
|
|
# enable governor for perf cluster
|
|
echo 1 > /sys/devices/system/cpu/cpu0/online
|
|
echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
|
|
echo "19000 1113600:39000" > /sys/devices/system/cpu/cpu0/cpufreq/interactive/above_hispeed_delay
|
|
echo 85 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/go_hispeed_load
|
|
echo 20000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/timer_rate
|
|
echo 1113600 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/hispeed_freq
|
|
echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/io_is_busy
|
|
echo "1 960000:85 1113600:90 1344000:80" > /sys/devices/system/cpu/cpu0/cpufreq/interactive/target_loads
|
|
echo 40000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/min_sample_time
|
|
echo 40000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/sampling_down_factor
|
|
echo 960000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
|
|
|
|
# enable governor for power cluster
|
|
echo 1 > /sys/devices/system/cpu/cpu4/online
|
|
echo "interactive" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor
|
|
echo 39000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/above_hispeed_delay
|
|
echo 90 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/go_hispeed_load
|
|
echo 20000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/timer_rate
|
|
echo 806400 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/hispeed_freq
|
|
echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/io_is_busy
|
|
echo "1 806400:90" > /sys/devices/system/cpu/cpu4/cpufreq/interactive/target_loads
|
|
echo 40000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/min_sample_time
|
|
echo 40000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/sampling_down_factor
|
|
echo 806400 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq
|
|
|
|
# Bring up all cores online
|
|
echo 1 > /sys/devices/system/cpu/cpu1/online
|
|
echo 1 > /sys/devices/system/cpu/cpu2/online
|
|
echo 1 > /sys/devices/system/cpu/cpu3/online
|
|
echo 1 > /sys/devices/system/cpu/cpu4/online
|
|
echo 1 > /sys/devices/system/cpu/cpu5/online
|
|
echo 1 > /sys/devices/system/cpu/cpu6/online
|
|
echo 1 > /sys/devices/system/cpu/cpu7/online
|
|
|
|
# Enable Low power modes
|
|
echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
|
|
|
|
# HMP scheduler (big.Little cluster related) settings
|
|
echo 93 > /proc/sys/kernel/sched_upmigrate
|
|
echo 83 > /proc/sys/kernel/sched_downmigrate
|
|
|
|
# Enable sched guided freq control
|
|
echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_sched_load
|
|
echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_migration_notif
|
|
echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_sched_load
|
|
echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_migration_notif
|
|
echo 50000 > /proc/sys/kernel/sched_freq_inc_notify
|
|
echo 50000 > /proc/sys/kernel/sched_freq_dec_notify
|
|
|
|
# Enable core control
|
|
echo 2 > /sys/devices/system/cpu/cpu0/core_ctl/min_cpus
|
|
echo 4 > /sys/devices/system/cpu/cpu0/core_ctl/max_cpus
|
|
echo 68 > /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 1 > /sys/devices/system/cpu/cpu0/core_ctl/is_big_cluster
|
|
|
|
# re-enable thermal & BCL core_control now
|
|
echo 1 > /sys/module/msm_thermal/core_control/enabled
|
|
for mode in /sys/devices/soc.0/qcom,bcl.*/mode
|
|
do
|
|
echo -n disable > $mode
|
|
done
|
|
for hotplug_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_mask
|
|
do
|
|
echo $bcl_hotplug_mask > $hotplug_mask
|
|
done
|
|
for hotplug_soc_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_soc_mask
|
|
do
|
|
echo $bcl_soc_hotplug_mask > $hotplug_soc_mask
|
|
done
|
|
for mode in /sys/devices/soc.0/qcom,bcl.*/mode
|
|
do
|
|
echo -n enable > $mode
|
|
done
|
|
|
|
# Enable dynamic clock gating
|
|
echo 1 > /sys/module/lpm_levels/lpm_workarounds/dynamic_clock_gating
|
|
# Enable timer migration to little cluster
|
|
echo 1 > /proc/sys/kernel/power_aware_timer_migration
|
|
|
|
# Set Memory parameters
|
|
configure_memory_parameters
|
|
|
|
;;
|
|
*)
|
|
panel=`cat /sys/class/graphics/fb0/modes`
|
|
if [ "${panel:5:1}" == "x" ]; then
|
|
panel=${panel:2:3}
|
|
else
|
|
panel=${panel:2:4}
|
|
fi
|
|
|
|
# Apply Scheduler and Governor settings for 8976
|
|
# SoC IDs are 266, 274, 277, 278
|
|
|
|
# HMP scheduler (big.Little cluster related) settings
|
|
echo 95 > /proc/sys/kernel/sched_upmigrate
|
|
echo 85 > /proc/sys/kernel/sched_downmigrate
|
|
|
|
echo 2 > /proc/sys/kernel/sched_window_stats_policy
|
|
echo 5 > /proc/sys/kernel/sched_ravg_hist_size
|
|
|
|
echo 3 > /sys/devices/system/cpu/cpu0/sched_mostly_idle_nr_run
|
|
echo 3 > /sys/devices/system/cpu/cpu1/sched_mostly_idle_nr_run
|
|
echo 3 > /sys/devices/system/cpu/cpu2/sched_mostly_idle_nr_run
|
|
echo 3 > /sys/devices/system/cpu/cpu3/sched_mostly_idle_nr_run
|
|
echo 3 > /sys/devices/system/cpu/cpu4/sched_mostly_idle_nr_run
|
|
echo 3 > /sys/devices/system/cpu/cpu5/sched_mostly_idle_nr_run
|
|
echo 3 > /sys/devices/system/cpu/cpu6/sched_mostly_idle_nr_run
|
|
echo 3 > /sys/devices/system/cpu/cpu7/sched_mostly_idle_nr_run
|
|
|
|
for devfreq_gov in /sys/class/devfreq/*qcom,mincpubw*/governor
|
|
do
|
|
echo "cpufreq" > $devfreq_gov
|
|
done
|
|
|
|
for devfreq_gov in /sys/class/devfreq/*qcom,cpubw*/governor
|
|
do
|
|
echo "bw_hwmon" > $devfreq_gov
|
|
for cpu_io_percent in /sys/class/devfreq/*qcom,cpubw*/bw_hwmon/io_percent
|
|
do
|
|
echo 20 > $cpu_io_percent
|
|
done
|
|
for cpu_guard_band in /sys/class/devfreq/*qcom,cpubw*/bw_hwmon/guard_band_mbps
|
|
do
|
|
echo 30 > $cpu_guard_band
|
|
done
|
|
done
|
|
|
|
for gpu_bimc_io_percent in /sys/class/devfreq/qcom,gpubw*/bw_hwmon/io_percent
|
|
do
|
|
echo 40 > $gpu_bimc_io_percent
|
|
done
|
|
# disable thermal & BCL core_control to update interactive gov settings
|
|
echo 0 > /sys/module/msm_thermal/core_control/enabled
|
|
for mode in /sys/devices/soc.0/qcom,bcl.*/mode
|
|
do
|
|
echo -n disable > $mode
|
|
done
|
|
for hotplug_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_mask
|
|
do
|
|
bcl_hotplug_mask=`cat $hotplug_mask`
|
|
echo 0 > $hotplug_mask
|
|
done
|
|
for hotplug_soc_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_soc_mask
|
|
do
|
|
bcl_soc_hotplug_mask=`cat $hotplug_soc_mask`
|
|
echo 0 > $hotplug_soc_mask
|
|
done
|
|
for mode in /sys/devices/soc.0/qcom,bcl.*/mode
|
|
do
|
|
echo -n enable > $mode
|
|
done
|
|
|
|
# enable governor for power cluster
|
|
echo 1 > /sys/devices/system/cpu/cpu0/online
|
|
echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
|
|
echo 80 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/go_hispeed_load
|
|
echo 20000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/timer_rate
|
|
echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/io_is_busy
|
|
echo 40000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/min_sample_time
|
|
echo 691200 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
|
|
|
|
# enable governor for perf cluster
|
|
echo 1 > /sys/devices/system/cpu/cpu4/online
|
|
echo "interactive" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor
|
|
echo 85 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/go_hispeed_load
|
|
echo 20000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/timer_rate
|
|
echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/io_is_busy
|
|
echo 40000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/min_sample_time
|
|
echo 40000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/sampling_down_factor
|
|
echo 883200 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq
|
|
echo 60000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/max_freq_hysteresis
|
|
|
|
if [ $panel -gt 1080 ]; then
|
|
#set texture cache size for resolution greater than 1080p
|
|
setprop ro.hwui.texture_cache_size 72
|
|
fi
|
|
|
|
echo 59000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/above_hispeed_delay
|
|
echo 1305600 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/hispeed_freq
|
|
echo "1 691200:80" > /sys/devices/system/cpu/cpu0/cpufreq/interactive/target_loads
|
|
echo 1382400 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/hispeed_freq
|
|
echo "19000 1382400:39000" > /sys/devices/system/cpu/cpu4/cpufreq/interactive/above_hispeed_delay
|
|
echo "85 1382400:90 1747200:80" > /sys/devices/system/cpu/cpu4/cpufreq/interactive/target_loads
|
|
# HMP Task packing settings for 8976
|
|
echo 30 > /proc/sys/kernel/sched_small_task
|
|
echo 20 > /sys/devices/system/cpu/cpu0/sched_mostly_idle_load
|
|
echo 20 > /sys/devices/system/cpu/cpu1/sched_mostly_idle_load
|
|
echo 20 > /sys/devices/system/cpu/cpu2/sched_mostly_idle_load
|
|
echo 20 > /sys/devices/system/cpu/cpu3/sched_mostly_idle_load
|
|
echo 20 > /sys/devices/system/cpu/cpu4/sched_mostly_idle_load
|
|
echo 20 > /sys/devices/system/cpu/cpu5/sched_mostly_idle_load
|
|
echo 20 > /sys/devices/system/cpu/cpu6/sched_mostly_idle_load
|
|
echo 20 > /sys/devices/system/cpu/cpu7/sched_mostly_idle_load
|
|
|
|
echo 0 > /proc/sys/kernel/sched_boost
|
|
|
|
# Bring up all cores online
|
|
echo 1 > /sys/devices/system/cpu/cpu1/online
|
|
echo 1 > /sys/devices/system/cpu/cpu2/online
|
|
echo 1 > /sys/devices/system/cpu/cpu3/online
|
|
echo 1 > /sys/devices/system/cpu/cpu4/online
|
|
echo 1 > /sys/devices/system/cpu/cpu5/online
|
|
echo 1 > /sys/devices/system/cpu/cpu6/online
|
|
echo 1 > /sys/devices/system/cpu/cpu7/online
|
|
|
|
#Disable CPU retention modes for 32bit builds
|
|
ProductName=`getprop ro.product.name`
|
|
if [ "$ProductName" == "msm8952_32" ] || [ "$ProductName" == "msm8952_32_LMT" ]; then
|
|
echo N > /sys/module/lpm_levels/system/a72/cpu4/retention/idle_enabled
|
|
echo N > /sys/module/lpm_levels/system/a72/cpu5/retention/idle_enabled
|
|
echo N > /sys/module/lpm_levels/system/a72/cpu6/retention/idle_enabled
|
|
echo N > /sys/module/lpm_levels/system/a72/cpu7/retention/idle_enabled
|
|
fi
|
|
|
|
if [ `cat /sys/devices/soc0/revision` == "1.0" ]; then
|
|
# Disable l2-pc and l2-gdhs low power modes
|
|
echo N > /sys/module/lpm_levels/system/a53/a53-l2-gdhs/idle_enabled
|
|
echo N > /sys/module/lpm_levels/system/a72/a72-l2-gdhs/idle_enabled
|
|
echo N > /sys/module/lpm_levels/system/a53/a53-l2-pc/idle_enabled
|
|
echo N > /sys/module/lpm_levels/system/a72/a72-l2-pc/idle_enabled
|
|
fi
|
|
|
|
# Enable LPM Prediction
|
|
echo 1 > /sys/module/lpm_levels/parameters/lpm_prediction
|
|
|
|
# Enable Low power modes
|
|
echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
|
|
# Disable L2 GDHS on 8976
|
|
echo N > /sys/module/lpm_levels/system/a53/a53-l2-gdhs/idle_enabled
|
|
echo N > /sys/module/lpm_levels/system/a72/a72-l2-gdhs/idle_enabled
|
|
|
|
# Enable sched guided freq control
|
|
echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_sched_load
|
|
echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_migration_notif
|
|
echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_sched_load
|
|
echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_migration_notif
|
|
echo 50000 > /proc/sys/kernel/sched_freq_inc_notify
|
|
echo 50000 > /proc/sys/kernel/sched_freq_dec_notify
|
|
|
|
# Enable core control
|
|
#for 8976
|
|
echo 2 > /sys/devices/system/cpu/cpu4/core_ctl/min_cpus
|
|
echo 4 > /sys/devices/system/cpu/cpu4/core_ctl/max_cpus
|
|
echo 68 > /sys/devices/system/cpu/cpu4/core_ctl/busy_up_thres
|
|
echo 40 > /sys/devices/system/cpu/cpu4/core_ctl/busy_down_thres
|
|
echo 100 > /sys/devices/system/cpu/cpu4/core_ctl/offline_delay_ms
|
|
echo 1 > /sys/devices/system/cpu/cpu4/core_ctl/is_big_cluster
|
|
|
|
# re-enable thermal & BCL core_control now
|
|
echo 1 > /sys/module/msm_thermal/core_control/enabled
|
|
for mode in /sys/devices/soc.0/qcom,bcl.*/mode
|
|
do
|
|
echo -n disable > $mode
|
|
done
|
|
for hotplug_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_mask
|
|
do
|
|
echo $bcl_hotplug_mask > $hotplug_mask
|
|
done
|
|
for hotplug_soc_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_soc_mask
|
|
do
|
|
echo $bcl_soc_hotplug_mask > $hotplug_soc_mask
|
|
done
|
|
for mode in /sys/devices/soc.0/qcom,bcl.*/mode
|
|
do
|
|
echo -n enable > $mode
|
|
done
|
|
|
|
# Enable timer migration to little cluster
|
|
echo 1 > /proc/sys/kernel/power_aware_timer_migration
|
|
|
|
#enable sched colocation and colocation inheritance
|
|
echo 130 > /proc/sys/kernel/sched_grp_upmigrate
|
|
echo 110 > /proc/sys/kernel/sched_grp_downmigrate
|
|
echo 1 > /proc/sys/kernel/sched_enable_thread_grouping
|
|
|
|
# Set Memory parameters
|
|
configure_memory_parameters
|
|
|
|
;;
|
|
esac
|
|
#Enable Memory Features
|
|
enable_memory_features
|
|
restorecon -R /sys/devices/system/cpu
|
|
;;
|
|
esac
|
|
|
|
case "$target" in
|
|
"msm8953")
|
|
|
|
if [ -f /sys/devices/soc0/soc_id ]; then
|
|
soc_id=`cat /sys/devices/soc0/soc_id`
|
|
else
|
|
soc_id=`cat /sys/devices/system/soc/soc0/id`
|
|
fi
|
|
|
|
if [ -f /sys/devices/soc0/hw_platform ]; then
|
|
hw_platform=`cat /sys/devices/soc0/hw_platform`
|
|
else
|
|
hw_platform=`cat /sys/devices/system/soc/soc0/hw_platform`
|
|
fi
|
|
|
|
if [ -f /sys/devices/soc0/platform_subtype_id ]; then
|
|
platform_subtype_id=`cat /sys/devices/soc0/platform_subtype_id`
|
|
fi
|
|
|
|
echo 0 > /proc/sys/kernel/sched_boost
|
|
|
|
case "$soc_id" in
|
|
"293" | "304" | "338" | "351")
|
|
|
|
# Start Host based Touch processing
|
|
case "$hw_platform" in
|
|
"MTP" | "Surf" | "RCM" )
|
|
#if this directory is present, it means that a
|
|
#1200p panel is connected to the device.
|
|
dir="/sys/bus/i2c/devices/3-0038"
|
|
if [ ! -d "$dir" ]; then
|
|
start_hbtp
|
|
fi
|
|
;;
|
|
esac
|
|
|
|
if [ $soc_id -eq "338" ]; then
|
|
case "$hw_platform" in
|
|
"QRD" )
|
|
if [ $platform_subtype_id -eq "1" ]; then
|
|
start_hbtp
|
|
fi
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
#init task load, restrict wakeups to preferred cluster
|
|
echo 15 > /proc/sys/kernel/sched_init_task_load
|
|
|
|
for devfreq_gov in /sys/class/devfreq/qcom,mincpubw*/governor
|
|
do
|
|
echo "cpufreq" > $devfreq_gov
|
|
done
|
|
|
|
for devfreq_gov in /sys/class/devfreq/soc:qcom,cpubw/governor
|
|
do
|
|
echo "bw_hwmon" > $devfreq_gov
|
|
for cpu_io_percent in /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/io_percent
|
|
do
|
|
echo 34 > $cpu_io_percent
|
|
done
|
|
for cpu_guard_band in /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/guard_band_mbps
|
|
do
|
|
echo 0 > $cpu_guard_band
|
|
done
|
|
for cpu_hist_memory in /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/hist_memory
|
|
do
|
|
echo 20 > $cpu_hist_memory
|
|
done
|
|
for cpu_hyst_length in /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/hyst_length
|
|
do
|
|
echo 10 > $cpu_hyst_length
|
|
done
|
|
for cpu_idle_mbps in /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/idle_mbps
|
|
do
|
|
echo 1600 > $cpu_idle_mbps
|
|
done
|
|
for cpu_low_power_delay in /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/low_power_delay
|
|
do
|
|
echo 20 > $cpu_low_power_delay
|
|
done
|
|
for cpu_low_power_io_percent in /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/low_power_io_percent
|
|
do
|
|
echo 34 > $cpu_low_power_io_percent
|
|
done
|
|
for cpu_mbps_zones in /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/mbps_zones
|
|
do
|
|
echo "1611 3221 5859 6445 7104" > $cpu_mbps_zones
|
|
done
|
|
for cpu_sample_ms in /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/sample_ms
|
|
do
|
|
echo 4 > $cpu_sample_ms
|
|
done
|
|
for cpu_up_scale in /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/up_scale
|
|
do
|
|
echo 250 > $cpu_up_scale
|
|
done
|
|
for cpu_min_freq in /sys/class/devfreq/soc:qcom,cpubw/min_freq
|
|
do
|
|
echo 1611 > $cpu_min_freq
|
|
done
|
|
done
|
|
|
|
for gpu_bimc_io_percent in /sys/class/devfreq/soc:qcom,gpubw/bw_hwmon/io_percent
|
|
do
|
|
echo 40 > $gpu_bimc_io_percent
|
|
done
|
|
|
|
# disable thermal & BCL core_control to update interactive gov settings
|
|
echo 0 > /sys/module/msm_thermal/core_control/enabled
|
|
for mode in /sys/devices/soc.0/qcom,bcl.*/mode
|
|
do
|
|
echo -n disable > $mode
|
|
done
|
|
for hotplug_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_mask
|
|
do
|
|
bcl_hotplug_mask=`cat $hotplug_mask`
|
|
echo 0 > $hotplug_mask
|
|
done
|
|
for hotplug_soc_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_soc_mask
|
|
do
|
|
bcl_soc_hotplug_mask=`cat $hotplug_soc_mask`
|
|
echo 0 > $hotplug_soc_mask
|
|
done
|
|
for mode in /sys/devices/soc.0/qcom,bcl.*/mode
|
|
do
|
|
echo -n enable > $mode
|
|
done
|
|
|
|
#if the kernel version >=4.9,use the schedutil governor
|
|
KernelVersionStr=`cat /proc/sys/kernel/osrelease`
|
|
KernelVersionS=${KernelVersionStr:2:2}
|
|
KernelVersionA=${KernelVersionStr:0:1}
|
|
KernelVersionB=${KernelVersionS%.*}
|
|
if [ $KernelVersionA -ge 4 ] && [ $KernelVersionB -ge 9 ]; then
|
|
8953_sched_dcvs_eas
|
|
else
|
|
8953_sched_dcvs_hmp
|
|
fi
|
|
echo 652800 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
|
|
|
|
# Bring up all cores online
|
|
echo 1 > /sys/devices/system/cpu/cpu1/online
|
|
echo 1 > /sys/devices/system/cpu/cpu2/online
|
|
echo 1 > /sys/devices/system/cpu/cpu3/online
|
|
echo 1 > /sys/devices/system/cpu/cpu4/online
|
|
echo 1 > /sys/devices/system/cpu/cpu5/online
|
|
echo 1 > /sys/devices/system/cpu/cpu6/online
|
|
echo 1 > /sys/devices/system/cpu/cpu7/online
|
|
|
|
# Enable low power modes
|
|
echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
|
|
|
|
# re-enable thermal & BCL core_control now
|
|
echo 1 > /sys/module/msm_thermal/core_control/enabled
|
|
for mode in /sys/devices/soc.0/qcom,bcl.*/mode
|
|
do
|
|
echo -n disable > $mode
|
|
done
|
|
for hotplug_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_mask
|
|
do
|
|
echo $bcl_hotplug_mask > $hotplug_mask
|
|
done
|
|
for hotplug_soc_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_soc_mask
|
|
do
|
|
echo $bcl_soc_hotplug_mask > $hotplug_soc_mask
|
|
done
|
|
for mode in /sys/devices/soc.0/qcom,bcl.*/mode
|
|
do
|
|
echo -n enable > $mode
|
|
done
|
|
|
|
# SMP scheduler
|
|
echo 85 > /proc/sys/kernel/sched_upmigrate
|
|
echo 85 > /proc/sys/kernel/sched_downmigrate
|
|
|
|
# Set Memory parameters
|
|
configure_memory_parameters
|
|
;;
|
|
esac
|
|
case "$soc_id" in
|
|
"349" | "350")
|
|
|
|
# Start Host based Touch processing
|
|
case "$hw_platform" in
|
|
"MTP" | "Surf" | "RCM" | "QRD" )
|
|
start_hbtp
|
|
;;
|
|
esac
|
|
|
|
for devfreq_gov in /sys/class/devfreq/qcom,mincpubw*/governor
|
|
do
|
|
echo "cpufreq" > $devfreq_gov
|
|
done
|
|
for cpubw in /sys/class/devfreq/*qcom,cpubw*
|
|
do
|
|
echo "bw_hwmon" > $cpubw/governor
|
|
echo 50 > $cpubw/polling_interval
|
|
echo "1611 3221 5859 6445 7104" > $cpubw/bw_hwmon/mbps_zones
|
|
echo 4 > $cpubw/bw_hwmon/sample_ms
|
|
echo 34 > $cpubw/bw_hwmon/io_percent
|
|
echo 20 > $cpubw/bw_hwmon/hist_memory
|
|
echo 80 > $cpubw/bw_hwmon/down_thres
|
|
echo 0 > $cpubw/bw_hwmon/hyst_length
|
|
echo 0 > $cpubw/bw_hwmon/guard_band_mbps
|
|
echo 250 > $cpubw/bw_hwmon/up_scale
|
|
echo 1600 > $cpubw/bw_hwmon/idle_mbps
|
|
done
|
|
|
|
# Configure DCC module to capture critical register contents when device crashes
|
|
for DCC_PATH in /sys/bus/platform/devices/*.dcc*
|
|
do
|
|
echo 0 > $DCC_PATH/enable
|
|
echo cap > $DCC_PATH/func_type
|
|
echo sram > $DCC_PATH/data_sink
|
|
echo 1 > $DCC_PATH/config_reset
|
|
|
|
# Register specifies APC CPR closed-loop settled voltage for current voltage corner
|
|
echo 0xb1d2c18 1 > $DCC_PATH/config
|
|
|
|
# Register specifies SW programmed open-loop voltage for current voltage corner
|
|
echo 0xb1d2900 1 > $DCC_PATH/config
|
|
|
|
# Register specifies APM switch settings and APM FSM state
|
|
echo 0xb1112b0 1 > $DCC_PATH/config
|
|
|
|
# Register specifies CPR mode change state and also #online cores input to CPR HW
|
|
echo 0xb018798 1 > $DCC_PATH/config
|
|
|
|
echo 1 > $DCC_PATH/enable
|
|
done
|
|
|
|
# disable thermal & BCL core_control to update interactive gov settings
|
|
echo 0 > /sys/module/msm_thermal/core_control/enabled
|
|
for mode in /sys/devices/soc.0/qcom,bcl.*/mode
|
|
do
|
|
echo -n disable > $mode
|
|
done
|
|
for hotplug_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_mask
|
|
do
|
|
bcl_hotplug_mask=`cat $hotplug_mask`
|
|
echo 0 > $hotplug_mask
|
|
done
|
|
for hotplug_soc_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_soc_mask
|
|
do
|
|
bcl_soc_hotplug_mask=`cat $hotplug_soc_mask`
|
|
echo 0 > $hotplug_soc_mask
|
|
done
|
|
for mode in /sys/devices/soc.0/qcom,bcl.*/mode
|
|
do
|
|
echo -n enable > $mode
|
|
done
|
|
|
|
# configure governor settings for little cluster
|
|
echo 1 > /sys/devices/system/cpu/cpu0/online
|
|
echo "schedutil" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
|
|
echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/rate_limit_us
|
|
echo 1363200 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_freq
|
|
#default value for hispeed_load is 90, for sdm632 it should be 85
|
|
echo 85 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_load
|
|
# sched_load_boost as -6 is equivalent to target load as 85.
|
|
echo -6 > /sys/devices/system/cpu/cpu0/sched_load_boost
|
|
echo -6 > /sys/devices/system/cpu/cpu1/sched_load_boost
|
|
echo -6 > /sys/devices/system/cpu/cpu2/sched_load_boost
|
|
echo -6 > /sys/devices/system/cpu/cpu3/sched_load_boost
|
|
|
|
# configure governor settings for big cluster
|
|
echo 1 > /sys/devices/system/cpu/cpu4/online
|
|
echo "schedutil" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor
|
|
echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/rate_limit_us
|
|
echo 1401600 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/hispeed_freq
|
|
#default value for hispeed_load is 90, for sdm632 it should be 85
|
|
echo 85 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/hispeed_load
|
|
# sched_load_boost as -6 is equivalent to target load as 85.
|
|
echo -6 > /sys/devices/system/cpu/cpu4/sched_load_boost
|
|
echo -6 > /sys/devices/system/cpu/cpu5/sched_load_boost
|
|
echo -6 > /sys/devices/system/cpu/cpu7/sched_load_boost
|
|
echo -6 > /sys/devices/system/cpu/cpu6/sched_load_boost
|
|
|
|
echo 614400 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
|
|
echo 633600 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq
|
|
|
|
# cpuset settings
|
|
echo 0-3 > /dev/cpuset/background/cpus
|
|
echo 0-3 > /dev/cpuset/system-background/cpus
|
|
# choose idle CPU for top app tasks
|
|
echo 1 > /dev/stune/top-app/schedtune.prefer_idle
|
|
|
|
# re-enable thermal & BCL core_control now
|
|
echo 1 > /sys/module/msm_thermal/core_control/enabled
|
|
for mode in /sys/devices/soc.0/qcom,bcl.*/mode
|
|
do
|
|
echo -n disable > $mode
|
|
done
|
|
for hotplug_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_mask
|
|
do
|
|
echo $bcl_hotplug_mask > $hotplug_mask
|
|
done
|
|
for hotplug_soc_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_soc_mask
|
|
do
|
|
echo $bcl_soc_hotplug_mask > $hotplug_soc_mask
|
|
done
|
|
for mode in /sys/devices/soc.0/qcom,bcl.*/mode
|
|
do
|
|
echo -n enable > $mode
|
|
done
|
|
|
|
# Disable Core control
|
|
echo 0 > /sys/devices/system/cpu/cpu0/core_ctl/enable
|
|
echo 0 > /sys/devices/system/cpu/cpu4/core_ctl/enable
|
|
|
|
# Bring up all cores online
|
|
echo 1 > /sys/devices/system/cpu/cpu1/online
|
|
echo 1 > /sys/devices/system/cpu/cpu2/online
|
|
echo 1 > /sys/devices/system/cpu/cpu3/online
|
|
echo 1 > /sys/devices/system/cpu/cpu4/online
|
|
echo 1 > /sys/devices/system/cpu/cpu5/online
|
|
echo 1 > /sys/devices/system/cpu/cpu6/online
|
|
echo 1 > /sys/devices/system/cpu/cpu7/online
|
|
|
|
# Enable low power modes
|
|
echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
|
|
|
|
# Set Memory parameters
|
|
configure_memory_parameters
|
|
|
|
# Setting b.L scheduler parameters
|
|
echo 76 > /proc/sys/kernel/sched_downmigrate
|
|
echo 86 > /proc/sys/kernel/sched_upmigrate
|
|
echo 80 > /proc/sys/kernel/sched_group_downmigrate
|
|
echo 90 > /proc/sys/kernel/sched_group_upmigrate
|
|
echo 1 > /proc/sys/kernel/sched_walt_rotate_big_tasks
|
|
|
|
# Enable min frequency adjustment for big cluster
|
|
if [ -f /sys/module/big_cluster_min_freq_adjust/parameters/min_freq_cluster ]; then
|
|
echo "4-7" > /sys/module/big_cluster_min_freq_adjust/parameters/min_freq_cluster
|
|
fi
|
|
echo 1 > /sys/module/big_cluster_min_freq_adjust/parameters/min_freq_adjust
|
|
|
|
;;
|
|
esac
|
|
;;
|
|
esac
|
|
|
|
case "$target" in
|
|
"msm8937")
|
|
|
|
if [ -f /sys/devices/soc0/soc_id ]; then
|
|
soc_id=`cat /sys/devices/soc0/soc_id`
|
|
else
|
|
soc_id=`cat /sys/devices/system/soc/soc0/id`
|
|
fi
|
|
|
|
if [ -f /sys/devices/soc0/hw_platform ]; then
|
|
hw_platform=`cat /sys/devices/soc0/hw_platform`
|
|
else
|
|
hw_platform=`cat /sys/devices/system/soc/soc0/hw_platform`
|
|
fi
|
|
if [ -f /sys/devices/soc0/platform_subtype_id ]; then
|
|
platform_subtype_id=`cat /sys/devices/soc0/platform_subtype_id`
|
|
fi
|
|
|
|
# Socid 386 = Pukeena
|
|
case "$soc_id" in
|
|
"303" | "307" | "308" | "309" | "320" | "386" )
|
|
|
|
# Start Host based Touch processing
|
|
case "$hw_platform" in
|
|
"MTP" )
|
|
start_hbtp
|
|
;;
|
|
esac
|
|
|
|
case "$hw_platform" in
|
|
"Surf" | "RCM" )
|
|
if [ $platform_subtype_id -ne "4" ]; then
|
|
start_hbtp
|
|
fi
|
|
;;
|
|
esac
|
|
# Apply Scheduler and Governor settings for 8917 / 8920
|
|
|
|
echo 20000000 > /proc/sys/kernel/sched_ravg_window
|
|
|
|
#disable sched_boost in 8917
|
|
echo 0 > /proc/sys/kernel/sched_boost
|
|
|
|
# core_ctl is not needed for 8917. Disable it.
|
|
disable_core_ctl
|
|
|
|
for devfreq_gov in /sys/class/devfreq/qcom,mincpubw*/governor
|
|
do
|
|
echo "cpufreq" > $devfreq_gov
|
|
done
|
|
|
|
for devfreq_gov in /sys/class/devfreq/soc:qcom,cpubw/governor
|
|
do
|
|
echo "bw_hwmon" > $devfreq_gov
|
|
for cpu_io_percent in /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/io_percent
|
|
do
|
|
echo 20 > $cpu_io_percent
|
|
done
|
|
for cpu_guard_band in /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/guard_band_mbps
|
|
do
|
|
echo 30 > $cpu_guard_band
|
|
done
|
|
done
|
|
|
|
for gpu_bimc_io_percent in /sys/class/devfreq/soc:qcom,gpubw/bw_hwmon/io_percent
|
|
do
|
|
echo 40 > $gpu_bimc_io_percent
|
|
done
|
|
|
|
# disable thermal core_control to update interactive gov settings
|
|
echo 0 > /sys/module/msm_thermal/core_control/enabled
|
|
|
|
KernelVersionStr=`cat /proc/sys/kernel/osrelease`
|
|
KernelVersionS=${KernelVersionStr:2:2}
|
|
KernelVersionA=${KernelVersionStr:0:1}
|
|
KernelVersionB=${KernelVersionS%.*}
|
|
if [ $KernelVersionA -ge 4 ] && [ $KernelVersionB -ge 9 ]; then
|
|
8917_sched_dcvs_eas
|
|
else
|
|
8917_sched_dcvs_hmp
|
|
fi
|
|
echo 960000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
|
|
# re-enable thermal core_control now
|
|
echo 1 > /sys/module/msm_thermal/core_control/enabled
|
|
|
|
# Disable L2-GDHS low power modes
|
|
echo N > /sys/module/lpm_levels/perf/perf-l2-gdhs/idle_enabled
|
|
echo N > /sys/module/lpm_levels/perf/perf-l2-gdhs/suspend_enabled
|
|
|
|
# Bring up all cores online
|
|
echo 1 > /sys/devices/system/cpu/cpu1/online
|
|
echo 1 > /sys/devices/system/cpu/cpu2/online
|
|
echo 1 > /sys/devices/system/cpu/cpu3/online
|
|
|
|
# Enable low power modes
|
|
echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
|
|
|
|
# Set rps mask
|
|
echo 2 > /sys/class/net/rmnet0/queues/rx-0/rps_cpus
|
|
|
|
# Enable dynamic clock gating
|
|
echo 1 > /sys/module/lpm_levels/lpm_workarounds/dynamic_clock_gating
|
|
# Enable timer migration to little cluster
|
|
echo 1 > /proc/sys/kernel/power_aware_timer_migration
|
|
# Set Memory parameters
|
|
configure_memory_parameters
|
|
;;
|
|
*)
|
|
;;
|
|
esac
|
|
|
|
case "$soc_id" in
|
|
"294" | "295" | "313" )
|
|
|
|
# Start Host based Touch processing
|
|
case "$hw_platform" in
|
|
"MTP" | "Surf" | "RCM" )
|
|
start_hbtp
|
|
;;
|
|
esac
|
|
|
|
# Apply Scheduler and Governor settings for 8937/8940
|
|
|
|
# HMP scheduler settings
|
|
echo 3 > /proc/sys/kernel/sched_window_stats_policy
|
|
echo 3 > /proc/sys/kernel/sched_ravg_hist_size
|
|
echo 20000000 > /proc/sys/kernel/sched_ravg_window
|
|
|
|
#disable sched_boost in 8937
|
|
echo 0 > /proc/sys/kernel/sched_boost
|
|
|
|
for devfreq_gov in /sys/class/devfreq/qcom,mincpubw*/governor
|
|
do
|
|
echo "cpufreq" > $devfreq_gov
|
|
done
|
|
|
|
for devfreq_gov in /sys/class/devfreq/soc:qcom,cpubw/governor
|
|
do
|
|
echo "bw_hwmon" > $devfreq_gov
|
|
for cpu_io_percent in /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/io_percent
|
|
do
|
|
echo 20 > $cpu_io_percent
|
|
done
|
|
for cpu_guard_band in /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/guard_band_mbps
|
|
do
|
|
echo 30 > $cpu_guard_band
|
|
done
|
|
done
|
|
|
|
for gpu_bimc_io_percent in /sys/class/devfreq/soc:qcom,gpubw/bw_hwmon/io_percent
|
|
do
|
|
echo 40 > $gpu_bimc_io_percent
|
|
done
|
|
|
|
# disable thermal core_control to update interactive gov and core_ctl settings
|
|
echo 0 > /sys/module/msm_thermal/core_control/enabled
|
|
|
|
KernelVersionStr=`cat /proc/sys/kernel/osrelease`
|
|
KernelVersionS=${KernelVersionStr:2:2}
|
|
KernelVersionA=${KernelVersionStr:0:1}
|
|
KernelVersionB=${KernelVersionS%.*}
|
|
if [ $KernelVersionA -ge 4 ] && [ $KernelVersionB -ge 9 ]; then
|
|
8937_sched_dcvs_eas
|
|
else
|
|
8937_sched_dcvs_hmp
|
|
fi
|
|
echo 960000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
|
|
echo 768000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq
|
|
# Disable L2-GDHS low power modes
|
|
echo N > /sys/module/lpm_levels/system/pwr/pwr-l2-gdhs/idle_enabled
|
|
echo N > /sys/module/lpm_levels/system/pwr/pwr-l2-gdhs/suspend_enabled
|
|
echo N > /sys/module/lpm_levels/system/perf/perf-l2-gdhs/idle_enabled
|
|
echo N > /sys/module/lpm_levels/system/perf/perf-l2-gdhs/suspend_enabled
|
|
|
|
# Bring up all cores online
|
|
echo 1 > /sys/devices/system/cpu/cpu1/online
|
|
echo 1 > /sys/devices/system/cpu/cpu2/online
|
|
echo 1 > /sys/devices/system/cpu/cpu3/online
|
|
echo 1 > /sys/devices/system/cpu/cpu4/online
|
|
echo 1 > /sys/devices/system/cpu/cpu5/online
|
|
echo 1 > /sys/devices/system/cpu/cpu6/online
|
|
echo 1 > /sys/devices/system/cpu/cpu7/online
|
|
|
|
# Enable low power modes
|
|
echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
|
|
|
|
# HMP scheduler (big.Little cluster related) settings
|
|
echo 93 > /proc/sys/kernel/sched_upmigrate
|
|
echo 83 > /proc/sys/kernel/sched_downmigrate
|
|
|
|
# Enable core control
|
|
echo 2 > /sys/devices/system/cpu/cpu0/core_ctl/min_cpus
|
|
echo 4 > /sys/devices/system/cpu/cpu0/core_ctl/max_cpus
|
|
echo 68 > /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 1 > /sys/devices/system/cpu/cpu0/core_ctl/is_big_cluster
|
|
|
|
# re-enable thermal core_control
|
|
echo 1 > /sys/module/msm_thermal/core_control/enabled
|
|
|
|
# Enable dynamic clock gating
|
|
echo 1 > /sys/module/lpm_levels/lpm_workarounds/dynamic_clock_gating
|
|
# Enable timer migration to little cluster
|
|
echo 1 > /proc/sys/kernel/power_aware_timer_migration
|
|
# Set Memory parameters
|
|
configure_memory_parameters
|
|
;;
|
|
*)
|
|
|
|
;;
|
|
esac
|
|
|
|
case "$soc_id" in
|
|
"354" | "364" | "353" | "363" )
|
|
|
|
# Start Host based Touch processing
|
|
case "$hw_platform" in
|
|
"MTP" | "Surf" | "RCM" | "QRD" )
|
|
start_hbtp
|
|
;;
|
|
esac
|
|
|
|
# Apply settings for sdm429/sda429/sdm439/sda439
|
|
|
|
for cpubw in /sys/class/devfreq/*qcom,mincpubw*
|
|
do
|
|
echo "cpufreq" > $cpubw/governor
|
|
done
|
|
|
|
for cpubw in /sys/class/devfreq/*qcom,cpubw*
|
|
do
|
|
echo "bw_hwmon" > $cpubw/governor
|
|
echo 20 > $cpubw/bw_hwmon/io_percent
|
|
echo 30 > $cpubw/bw_hwmon/guard_band_mbps
|
|
done
|
|
|
|
for gpu_bimc_io_percent in /sys/class/devfreq/soc:qcom,gpubw/bw_hwmon/io_percent
|
|
do
|
|
echo 40 > $gpu_bimc_io_percent
|
|
done
|
|
|
|
case "$soc_id" in
|
|
"353" | "363" )
|
|
# Apply settings for sdm439/sda439
|
|
# configure schedutil governor settings
|
|
# enable governor for perf cluster
|
|
echo 1 > /sys/devices/system/cpu/cpu0/online
|
|
echo "schedutil" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
|
|
echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/rate_limit_us
|
|
#set the hispeed_freq
|
|
echo 1497600 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_freq
|
|
echo 80 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_load
|
|
echo 960000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
|
|
# sched_load_boost as -6 is equivalent to target load as 85.
|
|
echo -6 > /sys/devices/system/cpu/cpu0/sched_load_boost
|
|
echo -6 > /sys/devices/system/cpu/cpu1/sched_load_boost
|
|
echo -6 > /sys/devices/system/cpu/cpu2/sched_load_boost
|
|
echo -6 > /sys/devices/system/cpu/cpu3/sched_load_boost
|
|
|
|
## enable governor for power cluster
|
|
echo 1 > /sys/devices/system/cpu/cpu4/online
|
|
echo "schedutil" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor
|
|
echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/rate_limit_us
|
|
#set the hispeed_freq
|
|
echo 998400 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/hispeed_freq
|
|
echo 85 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/hispeed_load
|
|
echo 768000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq
|
|
# sched_load_boost as -6 is equivalent to target load as 85.
|
|
echo -6 > /sys/devices/system/cpu/cpu4/sched_load_boost
|
|
echo -6 > /sys/devices/system/cpu/cpu5/sched_load_boost
|
|
echo -6 > /sys/devices/system/cpu/cpu6/sched_load_boost
|
|
echo -6 > /sys/devices/system/cpu/cpu7/sched_load_boost
|
|
|
|
# EAS scheduler (big.Little cluster related) settings
|
|
echo 93 > /proc/sys/kernel/sched_upmigrate
|
|
echo 83 > /proc/sys/kernel/sched_downmigrate
|
|
echo 140 > /proc/sys/kernel/sched_group_upmigrate
|
|
echo 120 > /proc/sys/kernel/sched_group_downmigrate
|
|
|
|
# cpuset settings
|
|
#echo 0-3 > /dev/cpuset/background/cpus
|
|
#echo 0-3 > /dev/cpuset/system-background/cpus
|
|
|
|
# Bring up all cores online
|
|
echo 1 > /sys/devices/system/cpu/cpu1/online
|
|
echo 1 > /sys/devices/system/cpu/cpu2/online
|
|
echo 1 > /sys/devices/system/cpu/cpu3/online
|
|
echo 1 > /sys/devices/system/cpu/cpu4/online
|
|
echo 1 > /sys/devices/system/cpu/cpu5/online
|
|
echo 1 > /sys/devices/system/cpu/cpu6/online
|
|
echo 1 > /sys/devices/system/cpu/cpu7/online
|
|
|
|
# Enable core control
|
|
echo 2 > /sys/devices/system/cpu/cpu0/core_ctl/min_cpus
|
|
echo 4 > /sys/devices/system/cpu/cpu0/core_ctl/max_cpus
|
|
echo 68 > /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 1 > /sys/devices/system/cpu/cpu0/core_ctl/is_big_cluster
|
|
echo 4 > /sys/devices/system/cpu/cpu0/core_ctl/task_thres
|
|
|
|
# Big cluster min frequency adjust settings
|
|
if [ -f /sys/module/big_cluster_min_freq_adjust/parameters/min_freq_cluster ]; then
|
|
echo "0-3" > /sys/module/big_cluster_min_freq_adjust/parameters/min_freq_cluster
|
|
fi
|
|
echo 1305600 > /sys/module/big_cluster_min_freq_adjust/parameters/min_freq_floor
|
|
;;
|
|
*)
|
|
# Apply settings for sdm429/sda429
|
|
# configure schedutil governor settings
|
|
echo 1 > /sys/devices/system/cpu/cpu0/online
|
|
echo "schedutil" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
|
|
echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/rate_limit_us
|
|
#set the hispeed_freq
|
|
echo 1305600 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_freq
|
|
echo 80 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_load
|
|
echo 960000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
|
|
# sched_load_boost as -6 is equivalent to target load as 85.
|
|
echo -6 > /sys/devices/system/cpu/cpu0/sched_load_boost
|
|
echo -6 > /sys/devices/system/cpu/cpu1/sched_load_boost
|
|
echo -6 > /sys/devices/system/cpu/cpu2/sched_load_boost
|
|
echo -6 > /sys/devices/system/cpu/cpu3/sched_load_boost
|
|
|
|
# Bring up all cores online
|
|
echo 1 > /sys/devices/system/cpu/cpu1/online
|
|
echo 1 > /sys/devices/system/cpu/cpu2/online
|
|
echo 1 > /sys/devices/system/cpu/cpu3/online
|
|
;;
|
|
esac
|
|
|
|
# Set Memory parameters
|
|
configure_memory_parameters
|
|
|
|
#disable sched_boost
|
|
echo 0 > /proc/sys/kernel/sched_boost
|
|
|
|
# Disable L2-GDHS low power modes
|
|
echo N > /sys/module/lpm_levels/system/pwr/pwr-l2-gdhs/idle_enabled
|
|
echo N > /sys/module/lpm_levels/system/pwr/pwr-l2-gdhs/suspend_enabled
|
|
echo N > /sys/module/lpm_levels/system/perf/perf-l2-gdhs/idle_enabled
|
|
echo N > /sys/module/lpm_levels/system/perf/perf-l2-gdhs/suspend_enabled
|
|
|
|
# Enable low power modes
|
|
echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
|
|
|
|
case "$soc_id" in
|
|
"353" | "363" )
|
|
echo 1 > /sys/module/big_cluster_min_freq_adjust/parameters/min_freq_adjust
|
|
;;
|
|
esac
|
|
;;
|
|
esac
|
|
|
|
case "$soc_id" in
|
|
"386" )
|
|
|
|
# Start Host based Touch processing
|
|
case "$hw_platform" in
|
|
"QRD" )
|
|
start_hbtp
|
|
;;
|
|
esac
|
|
;;
|
|
esac
|
|
;;
|
|
esac
|
|
|
|
case "$target" in
|
|
"sdm660")
|
|
|
|
# Set the default IRQ affinity to the primary cluster. When a
|
|
# CPU is isolated/hotplugged, the IRQ affinity is adjusted
|
|
# to one of the CPU from the default IRQ affinity mask.
|
|
echo f > /proc/irq/default_smp_affinity
|
|
|
|
if [ -f /sys/devices/soc0/soc_id ]; then
|
|
soc_id=`cat /sys/devices/soc0/soc_id`
|
|
else
|
|
soc_id=`cat /sys/devices/system/soc/soc0/id`
|
|
fi
|
|
|
|
if [ -f /sys/devices/soc0/hw_platform ]; then
|
|
hw_platform=`cat /sys/devices/soc0/hw_platform`
|
|
else
|
|
hw_platform=`cat /sys/devices/system/soc/soc0/hw_platform`
|
|
fi
|
|
|
|
panel=`cat /sys/class/graphics/fb0/modes`
|
|
if [ "${panel:5:1}" == "x" ]; then
|
|
panel=${panel:2:3}
|
|
else
|
|
panel=${panel:2:4}
|
|
fi
|
|
|
|
if [ $panel -gt 1080 ]; then
|
|
echo 2 > /proc/sys/kernel/sched_window_stats_policy
|
|
echo 5 > /proc/sys/kernel/sched_ravg_hist_size
|
|
else
|
|
echo 3 > /proc/sys/kernel/sched_window_stats_policy
|
|
echo 3 > /proc/sys/kernel/sched_ravg_hist_size
|
|
fi
|
|
#Apply settings for sdm660, sdm636,sda636
|
|
case "$soc_id" in
|
|
"317" | "324" | "325" | "326" | "345" | "346" )
|
|
|
|
echo 2 > /sys/devices/system/cpu/cpu4/core_ctl/min_cpus
|
|
echo 60 > /sys/devices/system/cpu/cpu4/core_ctl/busy_up_thres
|
|
echo 30 > /sys/devices/system/cpu/cpu4/core_ctl/busy_down_thres
|
|
echo 100 > /sys/devices/system/cpu/cpu4/core_ctl/offline_delay_ms
|
|
echo 1 > /sys/devices/system/cpu/cpu4/core_ctl/is_big_cluster
|
|
echo 4 > /sys/devices/system/cpu/cpu4/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 0 > /proc/sys/kernel/sched_select_prev_cpu_us
|
|
echo 400000 > /proc/sys/kernel/sched_freq_inc_notify
|
|
echo 400000 > /proc/sys/kernel/sched_freq_dec_notify
|
|
echo 5 > /proc/sys/kernel/sched_spill_nr_run
|
|
echo 1 > /proc/sys/kernel/sched_restrict_cluster_spill
|
|
echo 100000 > /proc/sys/kernel/sched_short_burst_ns
|
|
echo 1 > /proc/sys/kernel/sched_prefer_sync_wakee_to_waker
|
|
echo 20 > /proc/sys/kernel/sched_small_wakee_task_load
|
|
|
|
# cpuset settings
|
|
echo 0-3 > /dev/cpuset/background/cpus
|
|
echo 0-3 > /dev/cpuset/system-background/cpus
|
|
|
|
# disable thermal bcl hotplug to switch governor
|
|
echo 0 > /sys/module/msm_thermal/core_control/enabled
|
|
|
|
# online CPU0
|
|
echo 1 > /sys/devices/system/cpu/cpu0/online
|
|
# configure governor settings for little cluster
|
|
echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
|
|
echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_sched_load
|
|
echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_migration_notif
|
|
echo "19000 1401600:39000" > /sys/devices/system/cpu/cpu0/cpufreq/interactive/above_hispeed_delay
|
|
echo 90 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/go_hispeed_load
|
|
echo 20000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/timer_rate
|
|
echo 1401600 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/hispeed_freq
|
|
echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/io_is_busy
|
|
echo "85 1747200:95" > /sys/devices/system/cpu/cpu0/cpufreq/interactive/target_loads
|
|
echo 39000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/min_sample_time
|
|
echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/max_freq_hysteresis
|
|
echo 633600 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
|
|
echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/ignore_hispeed_on_notif
|
|
echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/fast_ramp_down
|
|
# online CPU4
|
|
echo 1 > /sys/devices/system/cpu/cpu4/online
|
|
# configure governor settings for big cluster
|
|
echo "interactive" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor
|
|
echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_sched_load
|
|
echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_migration_notif
|
|
echo "19000 1401600:39000" > /sys/devices/system/cpu/cpu4/cpufreq/interactive/above_hispeed_delay
|
|
echo 90 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/go_hispeed_load
|
|
echo 20000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/timer_rate
|
|
echo 1401600 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/hispeed_freq
|
|
echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/io_is_busy
|
|
echo "85 1401600:90 2150400:95" > /sys/devices/system/cpu/cpu4/cpufreq/interactive/target_loads
|
|
echo 39000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/min_sample_time
|
|
echo 59000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/max_freq_hysteresis
|
|
echo 1113600 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq
|
|
echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/ignore_hispeed_on_notif
|
|
echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/fast_ramp_down
|
|
|
|
# bring all cores online
|
|
echo 1 > /sys/devices/system/cpu/cpu0/online
|
|
echo 1 > /sys/devices/system/cpu/cpu1/online
|
|
echo 1 > /sys/devices/system/cpu/cpu2/online
|
|
echo 1 > /sys/devices/system/cpu/cpu3/online
|
|
echo 1 > /sys/devices/system/cpu/cpu4/online
|
|
echo 1 > /sys/devices/system/cpu/cpu5/online
|
|
echo 1 > /sys/devices/system/cpu/cpu6/online
|
|
echo 1 > /sys/devices/system/cpu/cpu7/online
|
|
|
|
# configure LPM
|
|
echo N > /sys/module/lpm_levels/system/pwr/cpu0/ret/idle_enabled
|
|
echo N > /sys/module/lpm_levels/system/pwr/cpu1/ret/idle_enabled
|
|
echo N > /sys/module/lpm_levels/system/pwr/cpu2/ret/idle_enabled
|
|
echo N > /sys/module/lpm_levels/system/pwr/cpu3/ret/idle_enabled
|
|
echo N > /sys/module/lpm_levels/system/perf/cpu4/ret/idle_enabled
|
|
echo N > /sys/module/lpm_levels/system/perf/cpu5/ret/idle_enabled
|
|
echo N > /sys/module/lpm_levels/system/perf/cpu6/ret/idle_enabled
|
|
echo N > /sys/module/lpm_levels/system/perf/cpu7/ret/idle_enabled
|
|
echo N > /sys/module/lpm_levels/system/pwr/pwr-l2-dynret/idle_enabled
|
|
echo N > /sys/module/lpm_levels/system/perf/perf-l2-dynret/idle_enabled
|
|
echo N > /sys/module/lpm_levels/system/pwr/pwr-l2-ret/idle_enabled
|
|
echo N > /sys/module/lpm_levels/system/perf/perf-l2-ret/idle_enabled
|
|
# enable LPM
|
|
echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
|
|
|
|
# re-enable thermal and BCL hotplug
|
|
echo 1 > /sys/module/msm_thermal/core_control/enabled
|
|
|
|
#Enable input boost configuration
|
|
echo "0:1401600" > /sys/module/cpu_boost/parameters/input_boost_freq
|
|
echo 60 > /sys/module/cpu_boost/parameters/input_boost_ms
|
|
echo "0:0 1:0 2:0 3:0 4:1747200 5:0 6:0 7:0" > /sys/module/cpu_boost/parameters/powerkey_input_boost_freq
|
|
echo 400 > /sys/module/cpu_boost/parameters/powerkey_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 "1525 3143 5859 7759 9887 10327 11863 13763" > $cpubw/bw_hwmon/mbps_zones
|
|
echo 4 > $cpubw/bw_hwmon/sample_ms
|
|
echo 85 > $cpubw/bw_hwmon/io_percent
|
|
echo 100 > $cpubw/bw_hwmon/decay_rate
|
|
echo 50 > $cpubw/bw_hwmon/bw_step
|
|
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/low_power_ceil_mbps
|
|
echo 34 > $cpubw/bw_hwmon/low_power_io_percent
|
|
echo 20 > $cpubw/bw_hwmon/low_power_delay
|
|
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
|
|
|
|
# Start cdsprpcd only for sdm660 and disable for sdm630
|
|
start vendor.cdsprpcd
|
|
|
|
# Start Host based Touch processing
|
|
case "$hw_platform" in
|
|
"MTP" | "Surf" | "RCM" | "QRD" )
|
|
start_hbtp
|
|
;;
|
|
esac
|
|
;;
|
|
esac
|
|
#Apply settings for sdm630 and Tahaa
|
|
case "$soc_id" in
|
|
"318" | "327" | "385" )
|
|
|
|
# Start Host based Touch processing
|
|
case "$hw_platform" in
|
|
"MTP" | "Surf" | "RCM" | "QRD" )
|
|
start_hbtp
|
|
;;
|
|
esac
|
|
|
|
# Setting b.L scheduler parameters
|
|
echo 85 > /proc/sys/kernel/sched_upmigrate
|
|
echo 85 > /proc/sys/kernel/sched_downmigrate
|
|
echo 900 > /proc/sys/kernel/sched_group_upmigrate
|
|
echo 900 > /proc/sys/kernel/sched_group_downmigrate
|
|
echo 0 > /proc/sys/kernel/sched_select_prev_cpu_us
|
|
echo 400000 > /proc/sys/kernel/sched_freq_inc_notify
|
|
echo 400000 > /proc/sys/kernel/sched_freq_dec_notify
|
|
echo 3 > /proc/sys/kernel/sched_spill_nr_run
|
|
|
|
#init task load, restrict wakeups to preferred cluster
|
|
echo 15 > /proc/sys/kernel/sched_init_task_load
|
|
echo 1 > /proc/sys/kernel/sched_restrict_cluster_spill
|
|
echo 50000 > /proc/sys/kernel/sched_short_burst_ns
|
|
|
|
# cpuset settings
|
|
echo 0-3 > /dev/cpuset/background/cpus
|
|
echo 0-3 > /dev/cpuset/system-background/cpus
|
|
|
|
# disable thermal bcl hotplug to switch governor
|
|
echo 0 > /sys/module/msm_thermal/core_control/enabled
|
|
for mode in /sys/devices/soc.0/qcom,bcl.*/mode
|
|
do
|
|
echo -n disable > $mode
|
|
done
|
|
for hotplug_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_mask
|
|
do
|
|
bcl_hotplug_mask=`cat $hotplug_mask`
|
|
echo 0 > $hotplug_mask
|
|
done
|
|
for hotplug_soc_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_soc_mask
|
|
do
|
|
bcl_soc_hotplug_mask=`cat $hotplug_soc_mask`
|
|
echo 0 > $hotplug_soc_mask
|
|
done
|
|
for mode in /sys/devices/soc.0/qcom,bcl.*/mode
|
|
do
|
|
echo -n enable > $mode
|
|
done
|
|
|
|
# online CPU0
|
|
echo 1 > /sys/devices/system/cpu/cpu0/online
|
|
# configure governor settings for Big cluster(CPU0 to CPU3)
|
|
echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
|
|
echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_sched_load
|
|
echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_migration_notif
|
|
echo "19000 1344000:39000" > /sys/devices/system/cpu/cpu0/cpufreq/interactive/above_hispeed_delay
|
|
echo 85 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/go_hispeed_load
|
|
echo 20000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/timer_rate
|
|
echo 1344000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/hispeed_freq
|
|
echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/io_is_busy
|
|
echo "85 1344000:80" > /sys/devices/system/cpu/cpu0/cpufreq/interactive/target_loads
|
|
echo 39000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/min_sample_time
|
|
echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/max_freq_hysteresis
|
|
echo 787200 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
|
|
echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/ignore_hispeed_on_notif
|
|
|
|
# online CPU4
|
|
echo 1 > /sys/devices/system/cpu/cpu4/online
|
|
# configure governor settings for Little cluster(CPU4 to CPU7)
|
|
echo "interactive" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor
|
|
echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_sched_load
|
|
echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_migration_notif
|
|
echo "19000 1094400:39000" > /sys/devices/system/cpu/cpu4/cpufreq/interactive/above_hispeed_delay
|
|
echo 85 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/go_hispeed_load
|
|
echo 20000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/timer_rate
|
|
echo 1094400 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/hispeed_freq
|
|
echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/io_is_busy
|
|
echo "85 1094400:80" > /sys/devices/system/cpu/cpu4/cpufreq/interactive/target_loads
|
|
echo 39000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/min_sample_time
|
|
echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/max_freq_hysteresis
|
|
echo 614400 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq
|
|
echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/ignore_hispeed_on_notif
|
|
|
|
# bring all cores online
|
|
echo 1 > /sys/devices/system/cpu/cpu0/online
|
|
echo 1 > /sys/devices/system/cpu/cpu1/online
|
|
echo 1 > /sys/devices/system/cpu/cpu2/online
|
|
echo 1 > /sys/devices/system/cpu/cpu3/online
|
|
echo 1 > /sys/devices/system/cpu/cpu4/online
|
|
echo 1 > /sys/devices/system/cpu/cpu5/online
|
|
echo 1 > /sys/devices/system/cpu/cpu6/online
|
|
echo 1 > /sys/devices/system/cpu/cpu7/online
|
|
|
|
# configure LPM
|
|
echo N > /sys/module/lpm_levels/system/perf/cpu0/ret/idle_enabled
|
|
echo N > /sys/module/lpm_levels/system/perf/cpu1/ret/idle_enabled
|
|
echo N > /sys/module/lpm_levels/system/perf/cpu2/ret/idle_enabled
|
|
echo N > /sys/module/lpm_levels/system/perf/cpu3/ret/idle_enabled
|
|
echo N > /sys/module/lpm_levels/system/pwr/cpu4/ret/idle_enabled
|
|
echo N > /sys/module/lpm_levels/system/pwr/cpu5/ret/idle_enabled
|
|
echo N > /sys/module/lpm_levels/system/pwr/cpu6/ret/idle_enabled
|
|
echo N > /sys/module/lpm_levels/system/pwr/cpu7/ret/idle_enabled
|
|
echo N > /sys/module/lpm_levels/system/pwr/pwr-l2-dynret/idle_enabled
|
|
echo N > /sys/module/lpm_levels/system/perf/perf-l2-dynret/idle_enabled
|
|
# enable LPM
|
|
echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
|
|
|
|
# re-enable thermal and BCL hotplug
|
|
echo 1 > /sys/module/msm_thermal/core_control/enabled
|
|
for mode in /sys/devices/soc.0/qcom,bcl.*/mode
|
|
do
|
|
echo -n disable > $mode
|
|
done
|
|
for hotplug_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_mask
|
|
do
|
|
echo $bcl_hotplug_mask > $hotplug_mask
|
|
done
|
|
for hotplug_soc_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_soc_mask
|
|
do
|
|
echo $bcl_soc_hotplug_mask > $hotplug_soc_mask
|
|
done
|
|
for mode in /sys/devices/soc.0/qcom,bcl.*/mode
|
|
do
|
|
echo -n enable > $mode
|
|
done
|
|
|
|
# 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 762 > $cpubw/min_freq
|
|
echo "1525 3143 4173 5195 5859 7759 9887 10327" > $cpubw/bw_hwmon/mbps_zones
|
|
echo 4 > $cpubw/bw_hwmon/sample_ms
|
|
echo 85 > $cpubw/bw_hwmon/io_percent
|
|
echo 20 > $cpubw/bw_hwmon/hist_memory
|
|
echo 0 > $cpubw/bw_hwmon/hyst_length
|
|
echo 100 > $cpubw/bw_hwmon/decay_rate
|
|
echo 50 > $cpubw/bw_hwmon/bw_step
|
|
echo 80 > $cpubw/bw_hwmon/down_thres
|
|
echo 0 > $cpubw/bw_hwmon/low_power_ceil_mbps
|
|
echo 50 > $cpubw/bw_hwmon/low_power_io_percent
|
|
echo 20 > $cpubw/bw_hwmon/low_power_delay
|
|
echo 0 > $cpubw/bw_hwmon/guard_band_mbps
|
|
echo 250 > $cpubw/bw_hwmon/up_scale
|
|
echo 1600 > $cpubw/bw_hwmon/idle_mbps
|
|
done
|
|
|
|
for memlat in /sys/class/devfreq/*qcom,memlat-cpu*
|
|
do
|
|
echo "mem_latency" > $memlat/governor
|
|
echo 10 > $memlat/polling_interval
|
|
echo 400 > $memlat/mem_latency/ratio_ceil
|
|
done
|
|
|
|
echo "cpufreq" > /sys/class/devfreq/soc:qcom,mincpubw/governor
|
|
;;
|
|
esac
|
|
;;
|
|
esac
|
|
|
|
case "$target" in
|
|
"sdm710")
|
|
|
|
#Apply settings for sdm710
|
|
# 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
|
|
|
|
if [ -f /sys/devices/soc0/soc_id ]; then
|
|
soc_id=`cat /sys/devices/soc0/soc_id`
|
|
else
|
|
soc_id=`cat /sys/devices/system/soc/soc0/id`
|
|
fi
|
|
|
|
if [ -f /sys/devices/soc0/hw_platform ]; then
|
|
hw_platform=`cat /sys/devices/soc0/hw_platform`
|
|
else
|
|
hw_platform=`cat /sys/devices/system/soc/soc0/hw_platform`
|
|
fi
|
|
|
|
case "$soc_id" in
|
|
"336" | "337" | "347" | "360" | "393" )
|
|
|
|
# Start Host based Touch processing
|
|
case "$hw_platform" in
|
|
"MTP" | "Surf" | "RCM" | "QRD" | "HDK" )
|
|
start_hbtp
|
|
;;
|
|
esac
|
|
|
|
# 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
|
|
|
|
#Enable mem_latency governor for DDR scaling
|
|
for memlat in /sys/class/devfreq/*qcom,memlat-cpu*
|
|
do
|
|
echo "mem_latency" > $memlat/governor
|
|
echo 10 > $memlat/polling_interval
|
|
echo 400 > $memlat/mem_latency/ratio_ceil
|
|
done
|
|
|
|
#Enable mem_latency governor for L3 scaling
|
|
for memlat in /sys/class/devfreq/*qcom,l3-cpu*
|
|
do
|
|
echo "mem_latency" > $memlat/governor
|
|
echo 10 > $memlat/polling_interval
|
|
echo 400 > $memlat/mem_latency/ratio_ceil
|
|
done
|
|
|
|
#Enable userspace governor for L3 cdsp nodes
|
|
for l3cdsp in /sys/class/devfreq/*qcom,l3-cdsp*
|
|
do
|
|
echo "userspace" > $l3cdsp/governor
|
|
chown -h system $l3cdsp/userspace/set_freq
|
|
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
|
|
|
|
# cpuset parameters
|
|
echo 0-5 > /dev/cpuset/background/cpus
|
|
echo 0-5 > /dev/cpuset/system-background/cpus
|
|
|
|
# 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
|
|
;;
|
|
esac
|
|
;;
|
|
esac
|
|
|
|
case "$target" in
|
|
"trinket")
|
|
|
|
if [ -f /sys/devices/soc0/soc_id ]; then
|
|
soc_id=`cat /sys/devices/soc0/soc_id`
|
|
else
|
|
soc_id=`cat /sys/devices/system/soc/soc0/id`
|
|
fi
|
|
|
|
case "$soc_id" in
|
|
"394" )
|
|
|
|
# Core control parameters on big
|
|
echo 2 > /sys/devices/system/cpu/cpu4/core_ctl/min_cpus
|
|
echo 40 > /sys/devices/system/cpu/cpu4/core_ctl/busy_down_thres
|
|
echo 60 > /sys/devices/system/cpu/cpu4/core_ctl/busy_up_thres
|
|
echo 100 > /sys/devices/system/cpu/cpu4/core_ctl/offline_delay_ms
|
|
echo 1 > /sys/devices/system/cpu/cpu4/core_ctl/is_big_cluster
|
|
echo 4 > /sys/devices/system/cpu/cpu4/core_ctl/task_thres
|
|
|
|
# Setting b.L scheduler parameters
|
|
echo 67 > /proc/sys/kernel/sched_downmigrate
|
|
echo 77 > /proc/sys/kernel/sched_upmigrate
|
|
echo 85 > /proc/sys/kernel/sched_group_downmigrate
|
|
echo 100 > /proc/sys/kernel/sched_group_upmigrate
|
|
|
|
# cpuset settings
|
|
echo 0-3 > /dev/cpuset/background/cpus
|
|
echo 0-3 > /dev/cpuset/system-background/cpus
|
|
|
|
|
|
# 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/up_rate_limit_us
|
|
echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/down_rate_limit_us
|
|
echo 1305600 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_freq
|
|
echo 614400 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
|
|
|
|
# configure governor settings for big cluster
|
|
echo "schedutil" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor
|
|
echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/up_rate_limit_us
|
|
echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/down_rate_limit_us
|
|
echo 1401600 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/hispeed_freq
|
|
echo 1056000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq
|
|
|
|
echo 1 > /proc/sys/kernel/sched_walt_rotate_big_tasks
|
|
|
|
# sched_load_boost as -6 is equivalent to target load as 85. It is per cpu tunable.
|
|
echo -6 > /sys/devices/system/cpu/cpu0/sched_load_boost
|
|
echo -6 > /sys/devices/system/cpu/cpu1/sched_load_boost
|
|
echo -6 > /sys/devices/system/cpu/cpu2/sched_load_boost
|
|
echo -6 > /sys/devices/system/cpu/cpu3/sched_load_boost
|
|
echo -6 > /sys/devices/system/cpu/cpu4/sched_load_boost
|
|
echo -6 > /sys/devices/system/cpu/cpu5/sched_load_boost
|
|
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/cpu0/cpufreq/schedutil/hispeed_load
|
|
echo 85 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/hispeed_load
|
|
|
|
# Set Memory parameters
|
|
configure_memory_parameters
|
|
|
|
# Enable bus-dcvs
|
|
ddr_type=`od -An -tx /proc/device-tree/memory/ddr_device_type`
|
|
ddr_type4="07"
|
|
ddr_type3="05"
|
|
|
|
for device in /sys/devices/platform/soc
|
|
do
|
|
for cpubw in $device/*cpu-cpu-ddr-bw/devfreq/*cpu-cpu-ddr-bw
|
|
do
|
|
echo "bw_hwmon" > $cpubw/governor
|
|
echo 50 > $cpubw/polling_interval
|
|
echo 762 > $cpubw/min_freq
|
|
if [ ${ddr_type:4:2} == $ddr_type4 ]; then
|
|
# LPDDR4
|
|
echo "2288 3440 4173 5195 5859 7759 10322 11863 13763" > $cpubw/bw_hwmon/mbps_zones
|
|
echo 85 > $cpubw/bw_hwmon/io_percent
|
|
fi
|
|
if [ ${ddr_type:4:2} == $ddr_type3 ]; then
|
|
# LPDDR3
|
|
echo "1525 3440 5195 5859 7102" > $cpubw/bw_hwmon/mbps_zones
|
|
echo 34 > $cpubw/bw_hwmon/io_percent
|
|
fi
|
|
echo 4 > $cpubw/bw_hwmon/sample_ms
|
|
echo 90 > $cpubw/bw_hwmon/decay_rate
|
|
echo 190 > $cpubw/bw_hwmon/bw_step
|
|
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
|
|
|
|
for memlat in $device/*cpu*-lat/devfreq/*cpu*-lat
|
|
do
|
|
echo "mem_latency" > $memlat/governor
|
|
echo 10 > $memlat/polling_interval
|
|
echo 400 > $memlat/mem_latency/ratio_ceil
|
|
done
|
|
|
|
for latfloor in $device/*cpu*-ddr-latfloor*/devfreq/*cpu-ddr-latfloor*
|
|
do
|
|
echo "compute" > $latfloor/governor
|
|
echo 10 > $latfloor/polling_interval
|
|
done
|
|
|
|
done
|
|
|
|
# colcoation v3 disabled
|
|
echo 0 > /proc/sys/kernel/sched_min_task_util_for_boost
|
|
echo 0 > /proc/sys/kernel/sched_min_task_util_for_colocation
|
|
echo 0 > /proc/sys/kernel/sched_little_cluster_coloc_fmin_khz
|
|
|
|
# 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
|
|
|
|
;;
|
|
esac
|
|
;;
|
|
esac
|
|
|
|
case "$target" in
|
|
"sm6150")
|
|
|
|
#Apply settings for sm6150
|
|
# 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
|
|
|
|
if [ -f /sys/devices/soc0/soc_id ]; then
|
|
soc_id=`cat /sys/devices/soc0/soc_id`
|
|
else
|
|
soc_id=`cat /sys/devices/system/soc/soc0/id`
|
|
fi
|
|
|
|
case "$soc_id" in
|
|
"355" | "369" | "377" | "380" | "384" )
|
|
target_type=`getprop ro.hardware.type`
|
|
if [ "$target_type" == "automotive" ]; then
|
|
# update frequencies
|
|
configure_sku_parameters
|
|
sku_identified=`getprop vendor.sku_identified`
|
|
else
|
|
sku_identified=0
|
|
fi
|
|
|
|
# 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
|
|
echo 0 > /sys/devices/system/cpu/cpu6/core_ctl/enable
|
|
|
|
|
|
# Setting b.L scheduler parameters
|
|
# default sched up and down migrate values are 90 and 85
|
|
echo 65 > /proc/sys/kernel/sched_downmigrate
|
|
echo 71 > /proc/sys/kernel/sched_upmigrate
|
|
# default sched up and down migrate values are 100 and 95
|
|
echo 85 > /proc/sys/kernel/sched_group_downmigrate
|
|
echo 100 > /proc/sys/kernel/sched_group_upmigrate
|
|
echo 1 > /proc/sys/kernel/sched_walt_rotate_big_tasks
|
|
|
|
# colocation v3 settings
|
|
echo 740000 > /proc/sys/kernel/sched_little_cluster_coloc_fmin_khz
|
|
|
|
|
|
# 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/up_rate_limit_us
|
|
echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/down_rate_limit_us
|
|
echo 1209600 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_freq
|
|
if [ $sku_identified != 1 ]; then
|
|
echo 576000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
|
|
fi
|
|
|
|
# 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/up_rate_limit_us
|
|
echo 0 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/down_rate_limit_us
|
|
echo 1209600 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/hispeed_freq
|
|
if [ $sku_identified != 1 ]; then
|
|
echo 768000 > /sys/devices/system/cpu/cpu6/cpufreq/scaling_min_freq
|
|
fi
|
|
|
|
# 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 device in /sys/devices/platform/soc
|
|
do
|
|
for cpubw in $device/*cpu-cpu-llcc-bw/devfreq/*cpu-cpu-llcc-bw
|
|
do
|
|
echo "bw_hwmon" > $cpubw/governor
|
|
echo 50 > $cpubw/polling_interval
|
|
echo "2288 4577 7110 9155 12298 14236" > $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
|
|
|
|
for llccbw in $device/*cpu-llcc-ddr-bw/devfreq/*cpu-llcc-ddr-bw
|
|
do
|
|
echo "bw_hwmon" > $llccbw/governor
|
|
echo 40 > $llccbw/polling_interval
|
|
echo "1144 1720 2086 2929 3879 5931 6881" > $llccbw/bw_hwmon/mbps_zones
|
|
echo 4 > $llccbw/bw_hwmon/sample_ms
|
|
echo 68 > $llccbw/bw_hwmon/io_percent
|
|
echo 20 > $llccbw/bw_hwmon/hist_memory
|
|
echo 0 > $llccbw/bw_hwmon/hyst_length
|
|
echo 80 > $llccbw/bw_hwmon/down_thres
|
|
echo 0 > $llccbw/bw_hwmon/guard_band_mbps
|
|
echo 250 > $llccbw/bw_hwmon/up_scale
|
|
echo 1600 > $llccbw/bw_hwmon/idle_mbps
|
|
done
|
|
|
|
#Enable mem_latency governor for L3, LLCC, and DDR scaling
|
|
for memlat in $device/*cpu*-lat/devfreq/*cpu*-lat
|
|
do
|
|
echo "mem_latency" > $memlat/governor
|
|
echo 10 > $memlat/polling_interval
|
|
echo 400 > $memlat/mem_latency/ratio_ceil
|
|
done
|
|
|
|
#Gold L3 ratio ceil
|
|
echo 4000 > /sys/class/devfreq/soc:qcom,cpu6-cpu-l3-lat/mem_latency/ratio_ceil
|
|
|
|
#Enable cdspl3 governor for L3 cdsp nodes
|
|
for l3cdsp in $device/*cdsp-cdsp-l3-lat/devfreq/*cdsp-cdsp-l3-lat
|
|
do
|
|
echo "cdspl3" > $l3cdsp/governor
|
|
done
|
|
|
|
#Enable compute governor for gold latfloor
|
|
for latfloor in $device/*cpu*-ddr-latfloor*/devfreq/*cpu-ddr-latfloor*
|
|
do
|
|
echo "compute" > $latfloor/governor
|
|
echo 10 > $latfloor/polling_interval
|
|
done
|
|
|
|
done
|
|
# cpuset parameters
|
|
echo 0-5 > /dev/cpuset/background/cpus
|
|
echo 0-5 > /dev/cpuset/system-background/cpus
|
|
|
|
# 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
|
|
;;
|
|
esac
|
|
|
|
#Apply settings for moorea
|
|
case "$soc_id" in
|
|
"365" | "366" )
|
|
|
|
# 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
|
|
echo 0 > /sys/devices/system/cpu/cpu6/core_ctl/enable
|
|
|
|
# Setting b.L scheduler parameters
|
|
# default sched up and down migrate values are 71 and 65
|
|
echo 65 > /proc/sys/kernel/sched_downmigrate
|
|
echo 71 > /proc/sys/kernel/sched_upmigrate
|
|
# default sched up and down migrate values are 100 and 95
|
|
echo 85 > /proc/sys/kernel/sched_group_downmigrate
|
|
echo 100 > /proc/sys/kernel/sched_group_upmigrate
|
|
echo 1 > /proc/sys/kernel/sched_walt_rotate_big_tasks
|
|
|
|
#colocation v3 settings
|
|
echo 740000 > /proc/sys/kernel/sched_little_cluster_coloc_fmin_khz
|
|
|
|
# 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/up_rate_limit_us
|
|
echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/down_rate_limit_us
|
|
echo 1248000 > /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/up_rate_limit_us
|
|
echo 0 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/down_rate_limit_us
|
|
echo 1324600 > /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:1248000" > /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 device in /sys/devices/platform/soc
|
|
do
|
|
for cpubw in $device/*cpu-cpu-llcc-bw/devfreq/*cpu-cpu-llcc-bw
|
|
do
|
|
echo "bw_hwmon" > $cpubw/governor
|
|
echo 50 > $cpubw/polling_interval
|
|
echo "2288 4577 7110 9155 12298 14236" > $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
|
|
|
|
for llccbw in $device/*cpu-llcc-ddr-bw/devfreq/*cpu-llcc-ddr-bw
|
|
do
|
|
echo "bw_hwmon" > $llccbw/governor
|
|
echo 40 > $llccbw/polling_interval
|
|
echo "1144 1720 2086 2929 3879 5931 6881" > $llccbw/bw_hwmon/mbps_zones
|
|
echo 4 > $llccbw/bw_hwmon/sample_ms
|
|
echo 68 > $llccbw/bw_hwmon/io_percent
|
|
echo 20 > $llccbw/bw_hwmon/hist_memory
|
|
echo 0 > $llccbw/bw_hwmon/hyst_length
|
|
echo 80 > $llccbw/bw_hwmon/down_thres
|
|
echo 0 > $llccbw/bw_hwmon/guard_band_mbps
|
|
echo 250 > $llccbw/bw_hwmon/up_scale
|
|
echo 1600 > $llccbw/bw_hwmon/idle_mbps
|
|
done
|
|
|
|
for npubw in $device/*npu-npu-ddr-bw/devfreq/*npu-npu-ddr-bw
|
|
do
|
|
echo 1 > /sys/devices/virtual/npu/msm_npu/pwr
|
|
echo "bw_hwmon" > $npubw/governor
|
|
echo 40 > $npubw/polling_interval
|
|
echo "1144 1720 2086 2929 3879 5931 6881" > $npubw/bw_hwmon/mbps_zones
|
|
echo 4 > $npubw/bw_hwmon/sample_ms
|
|
echo 80 > $npubw/bw_hwmon/io_percent
|
|
echo 20 > $npubw/bw_hwmon/hist_memory
|
|
echo 10 > $npubw/bw_hwmon/hyst_length
|
|
echo 30 > $npubw/bw_hwmon/down_thres
|
|
echo 0 > $npubw/bw_hwmon/guard_band_mbps
|
|
echo 250 > $npubw/bw_hwmon/up_scale
|
|
echo 0 > $npubw/bw_hwmon/idle_mbps
|
|
echo 0 > /sys/devices/virtual/npu/msm_npu/pwr
|
|
done
|
|
|
|
#Enable mem_latency governor for L3, LLCC, and DDR scaling
|
|
for memlat in $device/*cpu*-lat/devfreq/*cpu*-lat
|
|
do
|
|
echo "mem_latency" > $memlat/governor
|
|
echo 10 > $memlat/polling_interval
|
|
echo 400 > $memlat/mem_latency/ratio_ceil
|
|
done
|
|
|
|
#Gold L3 ratio ceil
|
|
echo 4000 > /sys/class/devfreq/soc:qcom,cpu6-cpu-l3-lat/mem_latency/ratio_ceil
|
|
|
|
#Enable cdspl3 governor for L3 cdsp nodes
|
|
for l3cdsp in $device/*cdsp-cdsp-l3-lat/devfreq/*cdsp-cdsp-l3-lat
|
|
do
|
|
echo "cdspl3" > $l3cdsp/governor
|
|
done
|
|
|
|
#Enable compute governor for gold latfloor
|
|
for latfloor in $device/*cpu*-ddr-latfloor*/devfreq/*cpu-ddr-latfloor*
|
|
do
|
|
echo "compute" > $latfloor/governor
|
|
echo 10 > $latfloor/polling_interval
|
|
done
|
|
|
|
done
|
|
|
|
# cpuset parameters
|
|
echo 0-5 > /dev/cpuset/background/cpus
|
|
echo 0-5 > /dev/cpuset/system-background/cpus
|
|
|
|
# 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
|
|
;;
|
|
esac
|
|
|
|
;;
|
|
esac
|
|
|
|
|
|
case "$target" in
|
|
"lito")
|
|
|
|
# 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 8 > /sys/devices/system/cpu/cpu0/core_ctl/task_thres
|
|
echo 100 > /sys/devices/system/cpu/cpu0/core_ctl/offline_delay_ms
|
|
|
|
# Disable Core control on gold, prime
|
|
echo 0 > /sys/devices/system/cpu/cpu6/core_ctl/enable
|
|
echo 0 > /sys/devices/system/cpu/cpu7/core_ctl/enable
|
|
|
|
# Setting b.L scheduler parameters
|
|
echo 65 85 > /proc/sys/kernel/sched_downmigrate
|
|
echo 71 95 > /proc/sys/kernel/sched_upmigrate
|
|
echo 85 > /proc/sys/kernel/sched_group_downmigrate
|
|
echo 100 > /proc/sys/kernel/sched_group_upmigrate
|
|
echo 1 > /proc/sys/kernel/sched_walt_rotate_big_tasks
|
|
echo 0 > /proc/sys/kernel/sched_coloc_busy_hyst_ns
|
|
echo 0 > /proc/sys/kernel/sched_coloc_busy_hysteresis_enable_cpus
|
|
echo 0 > /proc/sys/kernel/sched_coloc_busy_hyst_max_ms
|
|
|
|
# disable unfiltering
|
|
echo 1 > /proc/sys/kernel/sched_task_unfilter_nr_windows
|
|
|
|
# configure governor settings for silver cluster
|
|
echo "schedutil" > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor
|
|
echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/up_rate_limit_us
|
|
echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/down_rate_limit_us
|
|
echo 1228800 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/hispeed_freq
|
|
echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/pl
|
|
echo 576000 > /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq
|
|
echo 650000 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/rtg_boost_freq
|
|
|
|
# configure governor settings for gold cluster
|
|
echo "schedutil" > /sys/devices/system/cpu/cpufreq/policy6/scaling_governor
|
|
echo 0 > /sys/devices/system/cpu/cpufreq/policy6/schedutil/up_rate_limit_us
|
|
echo 0 > /sys/devices/system/cpu/cpufreq/policy6/schedutil/down_rate_limit_us
|
|
echo 1228800 > /sys/devices/system/cpu/cpufreq/policy6/schedutil/hispeed_freq
|
|
echo 85 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/hispeed_load
|
|
echo -6 > /sys/devices/system/cpu/cpu6/sched_load_boost
|
|
echo 0 > /sys/devices/system/cpu/cpufreq/policy6/schedutil/pl
|
|
echo 672000 > /sys/devices/system/cpu/cpufreq/policy6/scaling_min_freq
|
|
echo 0 > /sys/devices/system/cpu/cpufreq/policy6/schedutil/rtg_boost_freq
|
|
|
|
# configure governor settings for gold+ cluster
|
|
echo "schedutil" > /sys/devices/system/cpu/cpufreq/policy7/scaling_governor
|
|
echo 0 > /sys/devices/system/cpu/cpufreq/policy7/schedutil/up_rate_limit_us
|
|
echo 0 > /sys/devices/system/cpu/cpufreq/policy7/schedutil/down_rate_limit_us
|
|
echo 1228800 > /sys/devices/system/cpu/cpufreq/policy7/schedutil/hispeed_freq
|
|
echo 85 > /sys/devices/system/cpu/cpu7/cpufreq/schedutil/hispeed_load
|
|
echo -6 > /sys/devices/system/cpu/cpu7/sched_load_boost
|
|
echo 0 > /sys/devices/system/cpu/cpufreq/policy7/schedutil/pl
|
|
echo 672000 > /sys/devices/system/cpu/cpufreq/policy7/scaling_min_freq
|
|
echo 0 > /sys/devices/system/cpu/cpufreq/policy7/schedutil/rtg_boost_freq
|
|
|
|
# colocation v3 settings
|
|
echo 51 > /proc/sys/kernel/sched_min_task_util_for_boost
|
|
echo 51 > /proc/sys/kernel/sched_min_task_util_for_colocation
|
|
|
|
echo "0:1228800" > /sys/devices/system/cpu/cpu_boost/input_boost_freq
|
|
echo 40 > /sys/devices/system/cpu/cpu_boost/input_boost_ms
|
|
|
|
# Set Memory parameters
|
|
configure_memory_parameters
|
|
|
|
# Enable bus-dcvs
|
|
for device in /sys/devices/platform/soc
|
|
do
|
|
for cpubw in $device/*cpu-cpu-llcc-bw/devfreq/*cpu-cpu-llcc-bw
|
|
do
|
|
echo "bw_hwmon" > $cpubw/governor
|
|
echo 50 > $cpubw/polling_interval
|
|
echo "2288 4577 7110 9155 12298 14236 16265" > $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
|
|
|
|
for llccbw in $device/*cpu-llcc-ddr-bw/devfreq/*cpu-llcc-ddr-bw
|
|
do
|
|
echo "bw_hwmon" > $llccbw/governor
|
|
echo 50 > $llccbw/polling_interval
|
|
echo "1144 1720 2086 2929 3879 5931 6881 7980" > $llccbw/bw_hwmon/mbps_zones
|
|
echo 4 > $llccbw/bw_hwmon/sample_ms
|
|
echo 68 > $llccbw/bw_hwmon/io_percent
|
|
echo 20 > $llccbw/bw_hwmon/hist_memory
|
|
echo 0 > $llccbw/bw_hwmon/hyst_length
|
|
echo 80 > $llccbw/bw_hwmon/down_thres
|
|
echo 0 > $llccbw/bw_hwmon/guard_band_mbps
|
|
echo 250 > $llccbw/bw_hwmon/up_scale
|
|
echo 1600 > $llccbw/bw_hwmon/idle_mbps
|
|
done
|
|
|
|
for npubw in $device/*npu*-npu-ddr-bw/devfreq/*npu*-npu-ddr-bw
|
|
do
|
|
echo 1 > /sys/devices/virtual/npu/msm_npu/pwr
|
|
echo "bw_hwmon" > $npubw/governor
|
|
echo 40 > $npubw/polling_interval
|
|
echo "1144 1720 2086 2929 3879 5931 6881 7980" > $npubw/bw_hwmon/mbps_zones
|
|
echo 4 > $npubw/bw_hwmon/sample_ms
|
|
echo 80 > $npubw/bw_hwmon/io_percent
|
|
echo 20 > $npubw/bw_hwmon/hist_memory
|
|
echo 10 > $npubw/bw_hwmon/hyst_length
|
|
echo 30 > $npubw/bw_hwmon/down_thres
|
|
echo 0 > $npubw/bw_hwmon/guard_band_mbps
|
|
echo 250 > $npubw/bw_hwmon/up_scale
|
|
echo 0 > $npubw/bw_hwmon/idle_mbps
|
|
echo 0 > /sys/devices/virtual/npu/msm_npu/pwr
|
|
done
|
|
|
|
#Enable mem_latency governor for L3, LLCC, and DDR scaling
|
|
for memlat in $device/*qcom,devfreq-l3/*cpu*-lat/devfreq/*cpu*-lat
|
|
do
|
|
echo "mem_latency" > $memlat/governor
|
|
echo 10 > $memlat/polling_interval
|
|
echo 400 > $memlat/mem_latency/ratio_ceil
|
|
done
|
|
|
|
#Enable cdspl3 governor for L3 cdsp nodes
|
|
for l3cdsp in $device/*qcom,devfreq-l3/*cdsp-l3-lat/devfreq/*cdsp-l3-lat
|
|
do
|
|
echo "cdspl3" > $l3cdsp/governor
|
|
done
|
|
|
|
#Enable mem_latency governor for LLCC and DDR scaling
|
|
for memlat in $device/*cpu*-lat/devfreq/*cpu*-lat
|
|
do
|
|
echo "mem_latency" > $memlat/governor
|
|
echo 10 > $memlat/polling_interval
|
|
echo 400 > $memlat/mem_latency/ratio_ceil
|
|
done
|
|
|
|
#Gold L3 ratio ceil
|
|
for l3gold in $device/*qcom,devfreq-l3/*cpu6-cpu-l3-lat/devfreq/*cpu6-cpu-l3-lat
|
|
do
|
|
echo 4000 > $l3gold/mem_latency/ratio_ceil
|
|
done
|
|
|
|
#Prime L3 ratio ceil
|
|
for l3prime in $device/*qcom,devfreq-l3/*cpu7-cpu-l3-lat/devfreq/*cpu7-cpu-l3-lat
|
|
do
|
|
echo 4000 > $l3prime/mem_latency/ratio_ceil
|
|
done
|
|
|
|
#Enable compute governor for gold latfloor
|
|
for latfloor in $device/*cpu*-ddr-latfloor*/devfreq/*cpu-ddr-latfloor*
|
|
do
|
|
echo "compute" > $latfloor/governor
|
|
echo 10 > $latfloor/polling_interval
|
|
done
|
|
done
|
|
|
|
# cpuset parameters
|
|
echo 0-5 > /dev/cpuset/background/cpus
|
|
echo 0-5 > /dev/cpuset/system-background/cpus
|
|
|
|
# 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
|
|
;;
|
|
esac
|
|
|
|
#Apply settings for atoll
|
|
case "$target" in
|
|
"atoll")
|
|
|
|
# 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 8 > /sys/devices/system/cpu/cpu0/core_ctl/task_thres
|
|
echo 0 > /sys/devices/system/cpu/cpu6/core_ctl/enable
|
|
|
|
# Setting b.L scheduler parameters
|
|
# default sched up and down migrate values are 95 and 85
|
|
echo 65 > /proc/sys/kernel/sched_downmigrate
|
|
echo 71 > /proc/sys/kernel/sched_upmigrate
|
|
# default sched up and down migrate values are 100 and 95
|
|
echo 85 > /proc/sys/kernel/sched_group_downmigrate
|
|
echo 100 > /proc/sys/kernel/sched_group_upmigrate
|
|
echo 1 > /proc/sys/kernel/sched_walt_rotate_big_tasks
|
|
|
|
#colocation v3 settings
|
|
echo 740000 > /proc/sys/kernel/sched_little_cluster_coloc_fmin_khz
|
|
|
|
# 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/up_rate_limit_us
|
|
echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/down_rate_limit_us
|
|
echo 1248000 > /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/up_rate_limit_us
|
|
echo 0 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/down_rate_limit_us
|
|
echo 1267200 > /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:1248000" > /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 device in /sys/devices/platform/soc
|
|
do
|
|
for cpubw in $device/*cpu-cpu-llcc-bw/devfreq/*cpu-cpu-llcc-bw
|
|
do
|
|
echo "bw_hwmon" > $cpubw/governor
|
|
echo 50 > $cpubw/polling_interval
|
|
echo "2288 4577 7110 9155 12298 14236" > $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
|
|
|
|
for llccbw in $device/*cpu-llcc-ddr-bw/devfreq/*cpu-llcc-ddr-bw
|
|
do
|
|
echo "bw_hwmon" > $llccbw/governor
|
|
echo 40 > $llccbw/polling_interval
|
|
echo "1144 1720 2086 2929 3879 5931 6881 8137" > $llccbw/bw_hwmon/mbps_zones
|
|
echo 4 > $llccbw/bw_hwmon/sample_ms
|
|
echo 68 > $llccbw/bw_hwmon/io_percent
|
|
echo 20 > $llccbw/bw_hwmon/hist_memory
|
|
echo 0 > $llccbw/bw_hwmon/hyst_length
|
|
echo 80 > $llccbw/bw_hwmon/down_thres
|
|
echo 0 > $llccbw/bw_hwmon/guard_band_mbps
|
|
echo 250 > $llccbw/bw_hwmon/up_scale
|
|
echo 1600 > $llccbw/bw_hwmon/idle_mbps
|
|
done
|
|
|
|
for npubw in $device/*npu-npu-ddr-bw/devfreq/*npu-npu-ddr-bw
|
|
do
|
|
echo 1 > /sys/devices/virtual/npu/msm_npu/pwr
|
|
echo "bw_hwmon" > $npubw/governor
|
|
echo 40 > $npubw/polling_interval
|
|
echo "1144 1720 2086 2929 3879 5931 6881 8137" > $npubw/bw_hwmon/mbps_zones
|
|
echo 4 > $npubw/bw_hwmon/sample_ms
|
|
echo 80 > $npubw/bw_hwmon/io_percent
|
|
echo 20 > $npubw/bw_hwmon/hist_memory
|
|
echo 10 > $npubw/bw_hwmon/hyst_length
|
|
echo 30 > $npubw/bw_hwmon/down_thres
|
|
echo 0 > $npubw/bw_hwmon/guard_band_mbps
|
|
echo 250 > $npubw/bw_hwmon/up_scale
|
|
echo 0 > $npubw/bw_hwmon/idle_mbps
|
|
echo 0 > /sys/devices/virtual/npu/msm_npu/pwr
|
|
done
|
|
|
|
#Enable mem_latency governor for L3, LLCC, and DDR scaling
|
|
for memlat in $device/*cpu*-lat/devfreq/*cpu*-lat
|
|
do
|
|
echo "mem_latency" > $memlat/governor
|
|
echo 10 > $memlat/polling_interval
|
|
echo 400 > $memlat/mem_latency/ratio_ceil
|
|
done
|
|
|
|
#Gold L3 ratio ceil
|
|
echo 4000 > /sys/class/devfreq/soc:qcom,cpu6-cpu-l3-lat/mem_latency/ratio_ceil
|
|
|
|
#Enable compute governor for gold latfloor
|
|
for latfloor in $device/*cpu*-ddr-latfloor*/devfreq/*cpu-ddr-latfloor*
|
|
do
|
|
echo "compute" > $latfloor/governor
|
|
echo 10 > $latfloor/polling_interval
|
|
done
|
|
|
|
done
|
|
|
|
# cpuset parameters
|
|
echo 0-5 > /dev/cpuset/background/cpus
|
|
echo 0-5 > /dev/cpuset/system-background/cpus
|
|
|
|
# Turn off scheduler boost at the end
|
|
echo 0 > /proc/sys/kernel/sched_boost
|
|
|
|
# Disable core_ctl until sleep is enabled.
|
|
echo 6 > /sys/devices/system/cpu/cpu0/core_ctl/min_cpus
|
|
# Turn off sleep modes.. To be changed after BU stabilty verified
|
|
echo 1 > /sys/module/lpm_levels/parameters/sleep_disabled
|
|
;;
|
|
esac
|
|
|
|
|
|
case "$target" in
|
|
"qcs605")
|
|
|
|
#Apply settings for qcs605
|
|
# 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
|
|
|
|
if [ -f /sys/devices/soc0/soc_id ]; then
|
|
soc_id=`cat /sys/devices/soc0/soc_id`
|
|
else
|
|
soc_id=`cat /sys/devices/system/soc/soc0/id`
|
|
fi
|
|
|
|
if [ -f /sys/devices/soc0/hw_platform ]; then
|
|
hw_platform=`cat /sys/devices/soc0/hw_platform`
|
|
else
|
|
hw_platform=`cat /sys/devices/system/soc/soc0/hw_platform`
|
|
fi
|
|
|
|
if [ -f /sys/devices/soc0/platform_subtype_id ]; then
|
|
platform_subtype_id=`cat /sys/devices/soc0/platform_subtype_id`
|
|
fi
|
|
|
|
case "$soc_id" in
|
|
"347" )
|
|
|
|
# Start Host based Touch processing
|
|
case "$hw_platform" in
|
|
"Surf" | "RCM" | "QRD" )
|
|
start_hbtp
|
|
;;
|
|
"MTP" )
|
|
if [ $platform_subtype_id != 5 ]; then
|
|
start_hbtp
|
|
fi
|
|
;;
|
|
esac
|
|
|
|
# Core control parameters on silver
|
|
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
|
|
|
|
# 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 825600 > /sys/devices/system/cpu/cpu6/cpufreq/scaling_min_freq
|
|
|
|
echo "0:1209600" > /sys/module/cpu_boost/parameters/input_boost_freq
|
|
echo 40 > /sys/module/cpu_boost/parameters/input_boost_ms
|
|
|
|
# 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/low_power_ceil_mbps
|
|
echo 68 > $cpubw/bw_hwmon/low_power_io_percent
|
|
echo 20 > $cpubw/bw_hwmon/low_power_delay
|
|
echo 0 > $cpubw/bw_hwmon/guard_band_mbps
|
|
echo 250 > $cpubw/bw_hwmon/up_scale
|
|
echo 1600 > $cpubw/bw_hwmon/idle_mbps
|
|
done
|
|
|
|
#Enable mem_latency governor for DDR scaling
|
|
for memlat in /sys/class/devfreq/*qcom,memlat-cpu*
|
|
do
|
|
echo "mem_latency" > $memlat/governor
|
|
echo 10 > $memlat/polling_interval
|
|
echo 400 > $memlat/mem_latency/ratio_ceil
|
|
done
|
|
|
|
#Enable mem_latency governor for L3 scaling
|
|
for memlat in /sys/class/devfreq/*qcom,l3-cpu*
|
|
do
|
|
echo "mem_latency" > $memlat/governor
|
|
echo 10 > $memlat/polling_interval
|
|
echo 400 > $memlat/mem_latency/ratio_ceil
|
|
done
|
|
|
|
echo "cpufreq" > /sys/class/devfreq/soc:qcom,mincpubw/governor
|
|
|
|
# cpuset parameters
|
|
echo 0-5 > /dev/cpuset/background/cpus
|
|
echo 0-5 > /dev/cpuset/system-background/cpus
|
|
|
|
# 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
|
|
echo 100 > /proc/sys/vm/swappiness
|
|
;;
|
|
esac
|
|
;;
|
|
esac
|
|
|
|
case "$target" in
|
|
"apq8084")
|
|
echo 4 > /sys/module/lpm_levels/enable_low_power/l2
|
|
echo 1 > /sys/module/msm_pm/modes/cpu0/power_collapse/suspend_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu1/power_collapse/suspend_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu2/power_collapse/suspend_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu3/power_collapse/suspend_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu0/power_collapse/idle_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu1/power_collapse/idle_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu2/power_collapse/idle_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu3/power_collapse/idle_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu0/standalone_power_collapse/suspend_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu1/standalone_power_collapse/suspend_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu2/standalone_power_collapse/suspend_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu3/standalone_power_collapse/suspend_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu0/standalone_power_collapse/idle_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu1/standalone_power_collapse/idle_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu2/standalone_power_collapse/idle_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu3/standalone_power_collapse/idle_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu0/retention/idle_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu1/retention/idle_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu2/retention/idle_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu3/retention/idle_enabled
|
|
echo 0 > /sys/module/msm_thermal/core_control/enabled
|
|
echo 1 > /sys/devices/system/cpu/cpu1/online
|
|
echo 1 > /sys/devices/system/cpu/cpu2/online
|
|
echo 1 > /sys/devices/system/cpu/cpu3/online
|
|
for devfreq_gov in /sys/class/devfreq/qcom,cpubw*/governor
|
|
do
|
|
echo "cpubw_hwmon" > $devfreq_gov
|
|
done
|
|
echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
|
|
echo "interactive" > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor
|
|
echo "interactive" > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor
|
|
echo "interactive" > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor
|
|
echo "20000 1400000:40000 1700000:20000" > /sys/devices/system/cpu/cpufreq/interactive/above_hispeed_delay
|
|
echo 90 > /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load
|
|
echo 1497600 > /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq
|
|
echo "85 1500000:90 1800000:70" > /sys/devices/system/cpu/cpufreq/interactive/target_loads
|
|
echo 40000 > /sys/devices/system/cpu/cpufreq/interactive/min_sample_time
|
|
echo 20 > /sys/module/cpu_boost/parameters/boost_ms
|
|
echo 1728000 > /sys/module/cpu_boost/parameters/sync_threshold
|
|
echo 100000 > /sys/devices/system/cpu/cpufreq/interactive/sampling_down_factor
|
|
echo 1497600 > /sys/module/cpu_boost/parameters/input_boost_freq
|
|
echo 40 > /sys/module/cpu_boost/parameters/input_boost_ms
|
|
echo 1 > /dev/cpuctl/apps/cpu.notify_on_migrate
|
|
echo 300000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
|
|
echo 300000 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq
|
|
echo 300000 > /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq
|
|
echo 300000 > /sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq
|
|
echo 1 > /sys/module/msm_thermal/core_control/enabled
|
|
chown -h system /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
|
|
chown -h system /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
|
|
chown -h root.system /sys/devices/system/cpu/mfreq
|
|
chmod -h 220 /sys/devices/system/cpu/mfreq
|
|
chown -h root.system /sys/devices/system/cpu/cpu1/online
|
|
chown -h root.system /sys/devices/system/cpu/cpu2/online
|
|
chown -h root.system /sys/devices/system/cpu/cpu3/online
|
|
chmod -h 664 /sys/devices/system/cpu/cpu1/online
|
|
chmod -h 664 /sys/devices/system/cpu/cpu2/online
|
|
chmod -h 664 /sys/devices/system/cpu/cpu3/online
|
|
;;
|
|
esac
|
|
|
|
case "$target" in
|
|
"mpq8092")
|
|
echo 4 > /sys/module/lpm_levels/enable_low_power/l2
|
|
echo 1 > /sys/module/msm_pm/modes/cpu0/power_collapse/suspend_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu1/power_collapse/suspend_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu2/power_collapse/suspend_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu3/power_collapse/suspend_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu0/power_collapse/idle_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu1/power_collapse/idle_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu2/power_collapse/idle_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu3/power_collapse/idle_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu0/standalone_power_collapse/suspend_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu1/standalone_power_collapse/suspend_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu2/standalone_power_collapse/suspend_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu3/standalone_power_collapse/suspend_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu0/standalone_power_collapse/idle_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu1/standalone_power_collapse/idle_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu2/standalone_power_collapse/idle_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu3/standalone_power_collapse/idle_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu0/retention/idle_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu1/retention/idle_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu2/retention/idle_enabled
|
|
echo 1 > /sys/module/msm_pm/modes/cpu3/retention/idle_enabled
|
|
echo 0 > /sys/module/msm_thermal/core_control/enabled
|
|
echo 1 > /sys/devices/system/cpu/cpu1/online
|
|
echo 1 > /sys/devices/system/cpu/cpu2/online
|
|
echo 1 > /sys/devices/system/cpu/cpu3/online
|
|
echo "ondemand" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
|
|
echo "ondemand" > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor
|
|
echo "ondemand" > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor
|
|
echo "ondemand" > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor
|
|
echo 50000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate
|
|
echo 90 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold
|
|
echo 1 > /sys/devices/system/cpu/cpufreq/ondemand/io_is_busy
|
|
echo 300000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
|
|
echo 300000 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq
|
|
echo 300000 > /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq
|
|
echo 300000 > /sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq
|
|
echo 1 > /sys/module/msm_thermal/core_control/enabled
|
|
chown -h system /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
|
|
chown -h system /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
|
|
chown -h root.system /sys/devices/system/cpu/mfreq
|
|
chmod -h 220 /sys/devices/system/cpu/mfreq
|
|
chown -h root.system /sys/devices/system/cpu/cpu1/online
|
|
chown -h root.system /sys/devices/system/cpu/cpu2/online
|
|
chown -h root.system /sys/devices/system/cpu/cpu3/online
|
|
chmod -h 664 /sys/devices/system/cpu/cpu1/online
|
|
chmod -h 664 /sys/devices/system/cpu/cpu2/online
|
|
chmod -h 664 /sys/devices/system/cpu/cpu3/online
|
|
;;
|
|
esac
|
|
|
|
case "$target" in
|
|
"msm8992")
|
|
# disable thermal bcl hotplug to switch governor
|
|
echo 0 > /sys/module/msm_thermal/core_control/enabled
|
|
echo -n disable > /sys/devices/soc.*/qcom,bcl.*/mode
|
|
bcl_hotplug_mask=`cat /sys/devices/soc.*/qcom,bcl.*/hotplug_mask`
|
|
echo 0 > /sys/devices/soc.*/qcom,bcl.*/hotplug_mask
|
|
echo -n enable > /sys/devices/soc.*/qcom,bcl.*/mode
|
|
echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
|
|
# configure governor settings for little cluster
|
|
echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
|
|
echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_sched_load
|
|
echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_migration_notif
|
|
echo 19000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/above_hispeed_delay
|
|
echo 90 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/go_hispeed_load
|
|
echo 20000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/timer_rate
|
|
echo 960000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/hispeed_freq
|
|
echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/io_is_busy
|
|
echo 80 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/target_loads
|
|
echo 40000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/min_sample_time
|
|
echo 80000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/max_freq_hysteresis
|
|
echo 384000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
|
|
# online CPU4
|
|
echo 1 > /sys/devices/system/cpu/cpu4/online
|
|
# configure governor settings for big cluster
|
|
echo "interactive" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor
|
|
echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_sched_load
|
|
echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_migration_notif
|
|
echo 19000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/above_hispeed_delay
|
|
echo 90 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/go_hispeed_load
|
|
echo 20000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/timer_rate
|
|
echo 1536000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/hispeed_freq
|
|
echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/io_is_busy
|
|
echo 85 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/target_loads
|
|
echo 40000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/min_sample_time
|
|
echo 80000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/max_freq_hysteresis
|
|
echo 384000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq
|
|
# re-enable thermal and BCL hotplug
|
|
echo 1 > /sys/module/msm_thermal/core_control/enabled
|
|
echo -n disable > /sys/devices/soc.*/qcom,bcl.*/mode
|
|
echo $bcl_hotplug_mask > /sys/devices/soc.*/qcom,bcl.*/hotplug_mask
|
|
echo $bcl_soc_hotplug_mask > /sys/devices/soc.*/qcom,bcl.*/hotplug_soc_mask
|
|
echo -n enable > /sys/devices/soc.*/qcom,bcl.*/mode
|
|
# plugin remaining A57s
|
|
echo 1 > /sys/devices/system/cpu/cpu5/online
|
|
# input boost configuration
|
|
echo 0:1248000 > /sys/module/cpu_boost/parameters/input_boost_freq
|
|
echo 40 > /sys/module/cpu_boost/parameters/input_boost_ms
|
|
# Enable task migration fixups in the scheduler
|
|
echo 1 > /proc/sys/kernel/sched_migration_fixup
|
|
for devfreq_gov in /sys/class/devfreq/qcom,cpubw*/governor
|
|
do
|
|
echo "bw_hwmon" > $devfreq_gov
|
|
done
|
|
#enable rps static configuration
|
|
echo 8 > /sys/class/net/rmnet_ipa0/queues/rx-0/rps_cpus
|
|
echo 30 > /proc/sys/kernel/sched_small_task
|
|
|