5c11cadd03
If we set 2048KB ra value in the beginning of the boot process, services initialized at this time would keep 2048KB ra value even though we adjust the ra value to 128KB after boot completion. This may cause memory pressure. Bug: 174700194 Signed-off-by: Randall Huang <huangrandall@google.com> Change-Id: I97ee0ee9511eaada011f2634afd68d68cdca4570 Signed-off-by: pix106 <sbordenave@gmail.com>
5863 lines
281 KiB
Bash
5863 lines
281 KiB
Bash
#! /vendor/bin/sh
|
|
|
|
# Copyright (c) 2012-2013, 2016-2020, 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()
|
|
{
|
|
if [ $KernelVersionA -ge 4 ] && [ $KernelVersionB -ge 19 ]; then
|
|
#governor settings
|
|
echo 1 > /sys/devices/system/cpu/cpu0/online
|
|
echo "schedutil" > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor
|
|
# Consider changing frequencies once per scheduling period
|
|
echo 4000 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/up_rate_limit_us
|
|
echo 16000 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/down_rate_limit_us
|
|
#set the hispeed_freq
|
|
echo 1401600 > /sys/devices/system/cpu/cpufreq/policy0/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/policy0/schedutil/hispeed_load
|
|
echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/pl
|
|
echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/rtg_boost_freq
|
|
|
|
echo 652800 > /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq
|
|
|
|
#input boost params
|
|
echo 1401600 > /sys/module/cpu_boost/parameters/input_boost_freq
|
|
echo 40 > /sys/module/cpu_boost/parameters/input_boost_ms
|
|
|
|
# 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
|
|
|
|
# Enable bus-dcvs
|
|
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 85 > $cpubw/bw_hwmon/io_percent
|
|
echo 0 > $cpubw/bw_hwmon/guard_band_mbps
|
|
done
|
|
done
|
|
else
|
|
#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/up_rate_limit_us
|
|
echo 0 > /sys/devices/system/cpu/cpufreq/schedutil/down_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
|
|
|
|
echo 652800 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
|
|
|
|
fi
|
|
}
|
|
|
|
function 8917_sched_dcvs_eas()
|
|
{
|
|
if [ $KernelVersionA -ge 4 ] && [ $KernelVersionB -ge 19 ]; then
|
|
#governor settings
|
|
echo 1 > /sys/devices/system/cpu/cpu0/online
|
|
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
|
|
#set the hispeed_freq
|
|
echo 1094400 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/hispeed_freq
|
|
#default value for hispeed_load is 90, for 8917 it should be 85
|
|
echo 85 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/hispeed_load
|
|
echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/pl
|
|
echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/rtg_boost_freq
|
|
|
|
echo 960000 > /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq
|
|
|
|
#input boost params
|
|
echo 1094400 > /sys/module/cpu_boost/parameters/input_boost_freq
|
|
echo 40 > /sys/module/cpu_boost/parameters/input_boost_ms
|
|
|
|
# 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
|
|
|
|
# Enable bus-dcvs
|
|
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 85 > $cpubw/bw_hwmon/io_percent
|
|
echo 0 > $cpubw/bw_hwmon/guard_band_mbps
|
|
done
|
|
done
|
|
else
|
|
#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/up_rate_limit_us
|
|
echo 0 > /sys/devices/system/cpu/cpufreq/schedutil/down_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
|
|
|
|
echo 960000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
|
|
fi
|
|
|
|
if [ $KernelVersionA -ge 4 ] && [ $KernelVersionB -ge 19 ]; then
|
|
# memlat specific settings are moved to seperate file under
|
|
# device/target specific folder
|
|
setprop vendor.dcvs.prop 1
|
|
fi
|
|
}
|
|
|
|
function 8937_sched_dcvs_eas()
|
|
{
|
|
if [ $KernelVersionA -ge 4 ] && [ $KernelVersionB -ge 19 ]; then
|
|
# enable governor for perf cluster
|
|
echo 1 > /sys/devices/system/cpu/cpu0/online
|
|
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
|
|
#set the hispeed_freq
|
|
echo 1094400 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/hispeed_freq
|
|
#default value for hispeed_load is 90, for 8937 it should be 85
|
|
echo 85 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/hispeed_load
|
|
echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/pl
|
|
echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/rtg_boost_freq
|
|
|
|
echo 960000 > /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq
|
|
|
|
## enable governor for power cluster
|
|
echo 1 > /sys/devices/system/cpu/cpu4/online
|
|
echo "schedutil" > /sys/devices/system/cpu/cpufreq/policy4/scaling_governor
|
|
#set the hispeed_freq
|
|
echo 768000 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/hispeed_freq
|
|
#default value for hispeed_load is 90, for 8937 it should be 85
|
|
echo 85 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/hispeed_load
|
|
echo 0 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/pl
|
|
echo 0 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/rtg_boost_freq
|
|
|
|
echo 768000 > /sys/devices/system/cpu/cpufreq/policy4/scaling_min_freq
|
|
|
|
#input boost params
|
|
echo 109440 > /sys/module/cpu_boost/parameters/input_boost_freq
|
|
echo 40 > /sys/module/cpu_boost/parameters/input_boost_ms
|
|
|
|
# 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
|
|
|
|
# Enable bus-dcvs
|
|
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 85 > $cpubw/bw_hwmon/io_percent
|
|
echo 0 > $cpubw/bw_hwmon/guard_band_mbps
|
|
done
|
|
done
|
|
else
|
|
# 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/up_rate_limit_us
|
|
echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/down_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/up_rate_limit_us
|
|
echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/down_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
|
|
|
|
echo 960000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
|
|
echo 768000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq
|
|
fi
|
|
|
|
if [ $KernelVersionA -ge 4 ] && [ $KernelVersionB -ge 19 ]; then
|
|
# memlat specific settings are moved to seperate file under
|
|
# device/target specific folder
|
|
setprop vendor.dcvs.prop 1
|
|
fi
|
|
}
|
|
|
|
function configure_automotive_sku_parameters() {
|
|
|
|
echo 1036800 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
|
|
echo 1056000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq
|
|
echo 1171200 > /sys/devices/system/cpu/cpu7/cpufreq/scaling_min_freq
|
|
echo 1785600 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
|
|
echo 902400000 > /sys/class/devfreq/18321110.qcom,cpu0-cpu-l3-lat/min_freq
|
|
echo 902400000 > /sys/class/devfreq/18321110.qcom,cpu4-cpu-l3-lat/min_freq
|
|
echo 902400000 > /sys/class/devfreq/18321110.qcom,cpu7-cpu-l3-lat/min_freq
|
|
echo 1612800000 > /sys/class/devfreq/18321110.qcom,cpu0-cpu-l3-lat/max_freq
|
|
echo 1612800000 > /sys/class/devfreq/18321110.qcom,cpu4-cpu-l3-lat/max_freq
|
|
echo 1612800000 > /sys/class/devfreq/18321110.qcom,cpu7-cpu-l3-lat/max_freq
|
|
echo 902400000 > /sys/class/devfreq/soc\:qcom,cpu0-cpu-l3-lat/min_freq
|
|
echo 902400000 > /sys/class/devfreq/soc\:qcom,cpu4-cpu-l3-lat/min_freq
|
|
echo 902400000 > /sys/class/devfreq/soc\:qcom,cpu7-cpu-l3-lat/min_freq
|
|
echo 1612800000 > /sys/class/devfreq/soc\:qcom,cpu0-cpu-l3-lat/max_freq
|
|
echo 1612800000 > /sys/class/devfreq/soc\:qcom,cpu4-cpu-l3-lat/max_freq
|
|
echo 1612800000 > /sys/class/devfreq/soc\:qcom,cpu7-cpu-l3-lat/max_freq
|
|
|
|
#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 == 0 ]; then
|
|
echo " SKU Configured : SA8155P"
|
|
echo 2131200 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_max_freq
|
|
echo 2419200 > /sys/devices/system/cpu/cpu7/cpufreq/scaling_max_freq
|
|
echo 0 > /sys/class/kgsl/kgsl-3d0/max_pwrlevel
|
|
elif [ $feature_id == 1 ]; then
|
|
echo "SKU Configured : SA8150P"
|
|
echo 1920000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_max_freq
|
|
echo 2227200 > /sys/devices/system/cpu/cpu7/cpufreq/scaling_max_freq
|
|
echo 3 > /sys/class/kgsl/kgsl-3d0/max_pwrlevel
|
|
else
|
|
echo "unknown feature_id value" $feature_id
|
|
fi
|
|
}
|
|
|
|
function configure_automotive_sku_parameters_sa8195() {
|
|
|
|
#Setting the min supported frequencies
|
|
echo 1113600 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
|
|
echo 1171200 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq
|
|
echo 940800000 > /sys/class/devfreq/18321110.qcom,cpu0-cpu-l3-lat/min_freq
|
|
echo 940800000 > /sys/class/devfreq/18321110.qcom,cpu4-cpu-l3-lat/min_freq
|
|
echo 1651200000 > /sys/class/devfreq/18321110.qcom,cpu0-cpu-l3-lat/max_freq
|
|
echo 1651200000 > /sys/class/devfreq/18321110.qcom,cpu4-cpu-l3-lat/max_freq
|
|
echo 940800000 > /sys/class/devfreq/soc\:qcom,cpu0-cpu-l3-lat/min_freq
|
|
echo 940800000 > /sys/class/devfreq/soc\:qcom,cpu4-cpu-l3-lat/min_freq
|
|
echo 1651200000 > /sys/class/devfreq/soc\:qcom,cpu0-cpu-l3-lat/max_freq
|
|
echo 1651200000 > /sys/class/devfreq/soc\:qcom,cpu4-cpu-l3-lat/max_freq
|
|
|
|
#read feature id
|
|
reg_val=`cat /sys/devices/platform/soc/780130.qfprom/qfprom0/nvmem | od -An -t d4`
|
|
feature_id=$(((reg_val >> 20) & 0xFF))
|
|
|
|
#setting min gpu freq to 392 MHz
|
|
echo 4 > /sys/class/kgsl/kgsl-3d0/min_pwrlevel
|
|
if [ $feature_id == 0 ]; then
|
|
echo "feature_id is 0 for SA8195AA"
|
|
|
|
#setting max cpu freq to 2.496GHz
|
|
echo 2496000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_max_freq
|
|
#setting max gpu freq to 530 MHz
|
|
echo 3 > /sys/class/kgsl/kgsl-3d0/max_pwrlevel
|
|
echo 1804 > /sys/devices/platform/soc/soc:aop-set-ddr-freq/set_ddr_capped_freq
|
|
elif [ $feature_id == 1 ] || [ $feature_id == 2 ]; then
|
|
echo "feature_id is 1 for external SA8195AB"
|
|
echo "feature_id is 2 for internal SA8195AB"
|
|
|
|
#setting max cpu freq to 2.496GHz
|
|
echo 2496000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_max_freq
|
|
#setting max gpu freq to 670 MHz
|
|
echo 0 > /sys/class/kgsl/kgsl-3d0/max_pwrlevel
|
|
echo 2092 > /sys/devices/platform/soc/soc:aop-set-ddr-freq/set_ddr_capped_freq
|
|
elif [ $feature_id == 3 ]; then
|
|
echo "feature_id is 3 for external SA8195AC"
|
|
else
|
|
echo "unknown feature_id value" $feature_id
|
|
fi
|
|
}
|
|
|
|
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/18321110.qcom,cpu0-cpu-l3-lat/min_freq
|
|
echo 1017600000 > /sys/class/devfreq/18321110.qcom,cpu0-cpu-l3-lat/max_freq
|
|
echo 940800000 > /sys/class/devfreq/18321110.qcom,cpu6-cpu-l3-lat/min_freq
|
|
echo 1017600000 > /sys/class/devfreq/18321110.qcom,cpu6-cpu-l3-lat/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 1016 > /sys/devices/platform/soc/soc:aop-set-ddr-freq/set_ddr_capped_freq
|
|
setprop vendor.sku_identified 1
|
|
setprop vendor.sku_name "SA6145"
|
|
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/18321110.qcom,cpu0-cpu-l3-lat/min_freq
|
|
echo 1363200000 > /sys/class/devfreq/18321110.qcom,cpu0-cpu-l3-lat/max_freq
|
|
echo 940800000 > /sys/class/devfreq/18321110.qcom,cpu6-cpu-l3-lat/min_freq
|
|
echo 1363200000 > /sys/class/devfreq/18321110.qcom,cpu6-cpu-l3-lat/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 1333 > /sys/devices/platform/soc/soc:aop-set-ddr-freq/set_ddr_capped_freq
|
|
setprop vendor.sku_identified 1
|
|
setprop vendor.sku_name "SA6150"
|
|
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/18321110.qcom,cpu0-cpu-l3-lat/min_freq
|
|
echo 1363200000 > /sys/class/devfreq/18321110.qcom,cpu0-cpu-l3-lat/max_freq
|
|
echo 940800000 > /sys/class/devfreq/18321110.qcom,cpu6-cpu-l3-lat/min_freq
|
|
echo 1363200000 > /sys/class/devfreq/18321110.qcom,cpu6-cpu-l3-lat/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 1555 > /sys/devices/platform/soc/soc:aop-set-ddr-freq/set_ddr_capped_freq
|
|
setprop vendor.sku_identified 1
|
|
setprop vendor.sku_name "SA6155"
|
|
else
|
|
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/18321110.qcom,cpu0-cpu-l3-lat/min_freq
|
|
echo 1363200000 > /sys/class/devfreq/18321110.qcom,cpu0-cpu-l3-lat/max_freq
|
|
echo 940800000 > /sys/class/devfreq/18321110.qcom,cpu6-cpu-l3-lat/min_freq
|
|
echo 1363200000 > /sys/class/devfreq/18321110.qcom,cpu6-cpu-l3-lat/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 1555 > /sys/devices/platform/soc/soc:aop-set-ddr-freq/set_ddr_capped_freq
|
|
setprop vendor.sku_identified 1
|
|
setprop vendor.sku_name "SA6155"
|
|
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
|
|
|
|
}
|
|
|
|
function sdm660_sched_interactive_dcvs() {
|
|
|
|
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
|
|
|
|
# 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
|
|
|
|
# re-enable thermal and BCL hotplug
|
|
echo 1 > /sys/module/msm_thermal/core_control/enabled
|
|
|
|
# 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 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
|
|
|
|
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
|
|
}
|
|
|
|
function sdm660_sched_schedutil_dcvs() {
|
|
|
|
if [ $KernelVersionA -ge 4 ] && [ $KernelVersionB -ge 19 ]; then
|
|
# configure governor settings for little 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 1401600 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/hispeed_freq
|
|
echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/pl
|
|
echo 633600 > /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq
|
|
echo 902400 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/rtg_boost_freq
|
|
|
|
# configure governor settings for big cluster
|
|
echo "schedutil" > /sys/devices/system/cpu/cpufreq/policy4/scaling_governor
|
|
echo 0 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/up_rate_limit_us
|
|
echo 0 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/down_rate_limit_us
|
|
echo 1401600 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/hispeed_freq
|
|
echo 0 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/pl
|
|
echo 1113600 > /sys/devices/system/cpu/cpufreq/policy4/scaling_min_freq
|
|
echo 0 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/rtg_boost_freq
|
|
else
|
|
# 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 1401600 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_freq
|
|
|
|
# configure governor settings for big cluster
|
|
echo "schedutil" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor
|
|
echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/up_rate_limit_us
|
|
echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/down_rate_limit_us
|
|
echo 1401600 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/hispeed_freq
|
|
fi
|
|
|
|
echo 1 > /proc/sys/kernel/sched_walt_rotate_big_tasks
|
|
|
|
#if the kernel version >=4.19,set input_boost_freq accordingly
|
|
if [ $KernelVersionA -ge 4 ] && [ $KernelVersionB -ge 19 ]; then
|
|
echo "0:1401600" > /sys/devices/system/cpu/cpu_boost/input_boost_freq
|
|
echo 40 > /sys/devices/system/cpu/cpu_boost/input_boost_ms
|
|
else
|
|
echo "0:1401600" > /sys/module/cpu_boost/parameters/input_boost_freq
|
|
echo 40 > /sys/module/cpu_boost/parameters/input_boost_ms
|
|
fi
|
|
|
|
# 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
|
|
|
|
# Enable bus-dcvs
|
|
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
|
|
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/guard_band_mbps
|
|
echo 250 > $cpubw/bw_hwmon/up_scale
|
|
echo 1600 > $cpubw/bw_hwmon/idle_mbps
|
|
done
|
|
|
|
if [ $KernelVersionA -ge 4 ] && [ $KernelVersionB -le 14 ]; then
|
|
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
|
|
fi
|
|
done
|
|
|
|
if [ $KernelVersionA -ge 4 ] && [ $KernelVersionB -ge 19 ]; then
|
|
# memlat specific settings are moved to seperate file under
|
|
# device/target specific folder
|
|
setprop vendor.dcvs.prop 1
|
|
fi
|
|
|
|
}
|
|
|
|
target=`getprop ro.board.platform`
|
|
|
|
KernelVersionStr=`cat /proc/sys/kernel/osrelease`
|
|
KernelVersionS=${KernelVersionStr:2:2}
|
|
KernelVersionA=${KernelVersionStr:0:1}
|
|
KernelVersionB=${KernelVersionS%.*}
|
|
|
|
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 2GB Go device, size = 1536MB, set same for Non-Go.
|
|
# For >2GB Non-Go devices, size = 50% of RAM size. Limit the size to 4GB.
|
|
# And enable lz4 zram compression for Go targets.
|
|
|
|
let RamSizeGB="( $MemTotal / 1048576 ) + 1"
|
|
diskSizeUnit=M
|
|
if [ $RamSizeGB -le 2 ]; then
|
|
let zRamSizeMB="( $RamSizeGB * 1024 ) * 3 / 4"
|
|
else
|
|
let zRamSizeMB="( $RamSizeGB * 1024 ) / 2"
|
|
fi
|
|
|
|
# use MB avoid 32 bit overflow
|
|
if [ $zRamSizeMB -gt 4096 ]; then
|
|
let zRamSizeMB=4096
|
|
fi
|
|
|
|
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
|
|
echo "$zRamSizeMB""$diskSizeUnit" > /sys/block/zram0/disksize
|
|
|
|
# ZRAM may use more memory than it saves if SLAB_STORE_USER
|
|
# debug option is enabled.
|
|
if [ -e /sys/kernel/slab/zs_handle ]; then
|
|
echo 0 > /sys/kernel/slab/zs_handle/store_user
|
|
fi
|
|
if [ -e /sys/kernel/slab/zspage ]; then
|
|
echo 0 > /sys/kernel/slab/zspage/store_user
|
|
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}
|
|
|
|
dmpts=$(ls /sys/block/*/queue/read_ahead_kb | grep -e dm -e mmc)
|
|
|
|
# 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/mmcblk0rpmb/bdi/read_ahead_kb
|
|
for dm in $dmpts; do
|
|
echo 128 > $dm
|
|
done
|
|
else
|
|
echo 512 > /sys/block/mmcblk0/bdi/read_ahead_kb
|
|
echo 512 > /sys/block/mmcblk0rpmb/bdi/read_ahead_kb
|
|
for dm in $dmpts; do
|
|
echo 512 > $dm
|
|
done
|
|
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" ] || [ "$ProductName" == "sdmshrike_au" ]; 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`
|
|
|
|
# Set parameters for 32-bit Go targets.
|
|
if [ "$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 1 > /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
|
|
|
|
if [[ "$ProductName" != "bengal"* ]]; then
|
|
#bengal has appcompaction enabled. So not needed
|
|
# Set PPR parameters for other targets
|
|
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
|
|
fi
|
|
|
|
if [[ "$ProductName" == "bengal"* ]]; then
|
|
#Set PPR nomap parameters for bengal targets
|
|
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 0 > /sys/module/process_reclaim/parameters/per_swap_size
|
|
echo 7680 > /sys/module/process_reclaim/parameters/tsk_nomap_swap_sz
|
|
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
|
|
}
|
|
|
|
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
|
|
;;
|
|
"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
|
|
|
|
case "$soc_id" in
|
|
"277" | "278")
|
|
# Start energy-awareness for 8976
|
|
start energy-awareness
|
|
;;
|
|
esac
|
|
|
|
#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")
|
|
#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
|
|
if [ $KernelVersionA -ge 4 ] && [ $KernelVersionB -ge 9 ]; then
|
|
8953_sched_dcvs_eas
|
|
else
|
|
8953_sched_dcvs_hmp
|
|
echo 652800 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
|
|
fi
|
|
|
|
# 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")
|
|
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/up_rate_limit_us
|
|
echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/down_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/up_rate_limit_us
|
|
echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/down_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
|
|
|
|
# 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" | "436")
|
|
# 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
|
|
|
|
if [ $KernelVersionA -le 4 ] && [ $KernelVersionB -le 9 ]; then
|
|
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
|
|
fi
|
|
|
|
# disable thermal core_control to update interactive gov settings
|
|
echo 0 > /sys/module/msm_thermal/core_control/enabled
|
|
|
|
if [ $KernelVersionA -ge 4 ] && [ $KernelVersionB -ge 9 ]; then
|
|
8917_sched_dcvs_eas
|
|
else
|
|
8917_sched_dcvs_hmp
|
|
echo 960000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
|
|
fi
|
|
|
|
# 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" )
|
|
# 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
|
|
|
|
if [ $KernelVersionA -ge 4 ] && [ $KernelVersionB -ge 9 ]; then
|
|
8937_sched_dcvs_eas
|
|
else
|
|
8937_sched_dcvs_hmp
|
|
echo 960000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
|
|
echo 768000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq
|
|
fi
|
|
# 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" )
|
|
# Apply settings for sdm429/sda429/sdm439/sda439
|
|
if [ $KernelVersionA -ge 4 ] && [ $KernelVersionB -ge 19 ]; then
|
|
|
|
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 85 > $cpubw/bw_hwmon/io_percent
|
|
echo 0 > $cpubw/bw_hwmon/guard_band_mbps
|
|
done
|
|
done
|
|
else
|
|
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
|
|
fi
|
|
|
|
case "$soc_id" in
|
|
"353" | "363" )
|
|
# Apply settings for sdm439/sda439
|
|
echo 1 > /sys/devices/system/cpu/cpu0/online
|
|
echo 1 > /sys/devices/system/cpu/cpu4/online
|
|
|
|
if [ $KernelVersionA -ge 4 ] && [ $KernelVersionB -ge 19 ]; then
|
|
|
|
# memlat specific settings are moved to seperate file under
|
|
# device/target specific folder
|
|
setprop vendor.dcvs.prop 1
|
|
|
|
# configure schedutil governor settings
|
|
# enable governor for perf 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
|
|
|
|
#set the hispeed_freq
|
|
echo 1497600 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/hispeed_freq
|
|
echo 80 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/hispeed_load
|
|
echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/pl
|
|
echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/rtg_boost_freq
|
|
echo 960000 > /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq
|
|
|
|
#input boost params
|
|
echo 1497600 > /sys/module/cpu_boost/parameters/input_boost_freq
|
|
echo 40 > /sys/module/cpu_boost/parameters/input_boost_ms
|
|
|
|
## enable governor for power cluster
|
|
echo "schedutil" > /sys/devices/system/cpu/cpufreq/policy4/scaling_governor
|
|
echo 0 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/up_rate_limit_us
|
|
echo 0 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/down_rate_limit_us
|
|
|
|
#set the hispeed_freq
|
|
echo 998400 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/hispeed_freq
|
|
echo 85 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/hispeed_load
|
|
echo 0 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/pl
|
|
echo 0 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/rtg_boost_freq
|
|
echo 768000 > /sys/devices/system/cpu/cpufreq/policy4/scaling_min_freq
|
|
else
|
|
# configure schedutil governor settings
|
|
# enable governor for perf 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
|
|
|
|
#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
|
|
|
|
## enable governor for power cluster
|
|
echo "schedutil" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor
|
|
echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/up_rate_limit_us
|
|
echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/down_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
|
|
fi
|
|
|
|
# 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
|
|
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
|
|
|
|
if [ $KernelVersionA -ge 4 ] && [ $KernelVersionB -ge 19 ]; then
|
|
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
|
|
|
|
#set the hispeed_freq
|
|
echo 1305600 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/hispeed_freq
|
|
echo 80 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/hispeed_load
|
|
echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/pl
|
|
echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/rtg_boost_freq
|
|
echo 960000 > /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq
|
|
#input boost params
|
|
|
|
echo 1305600 > /sys/module/cpu_boost/parameters/input_boost_freq
|
|
echo 40 > /sys/module/cpu_boost/parameters/input_boost_ms
|
|
else
|
|
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
|
|
|
|
#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
|
|
fi
|
|
|
|
# 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
|
|
;;
|
|
esac
|
|
|
|
case "$target" in
|
|
"sdm660" | "sdm636")
|
|
|
|
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 [ $KernelVersionA -ge 4 ] && [ $KernelVersionB -le 14 ]; then
|
|
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
|
|
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
|
|
|
|
# Report max frequency to unity tasks
|
|
echo "UnityMain,libunity.so" > /proc/sys/kernel/sched_lib_name
|
|
echo 255 > /proc/sys/kernel/sched_lib_mask_force 255
|
|
|
|
#if the kernel version >=4.14,use the schedutil governor
|
|
if [ $KernelVersionA -ge 4 ] && [ $KernelVersionB -ge 14 ]; then
|
|
sdm660_sched_schedutil_dcvs
|
|
else
|
|
sdm660_sched_interactive_dcvs
|
|
fi
|
|
|
|
# Set Memory parameters
|
|
configure_memory_parameters
|
|
|
|
# enable LPM
|
|
echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
|
|
|
|
# Start cdsprpcd only for sdm660 and disable for sdm630 and sdm636
|
|
start vendor.cdsprpcd
|
|
esac
|
|
#Apply settings for sdm630 and Tahaa
|
|
case "$soc_id" in
|
|
"318" | "327" | "385" )
|
|
|
|
# Disable cdsprpcd daemon for sdm630
|
|
setprop vendor.fastrpc.disable.cdsprpcd.daemon 1
|
|
|
|
# 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" )
|
|
|
|
# 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 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
|
|
echo 50 > $cpubw/polling_interval
|
|
done
|
|
|
|
done
|
|
|
|
# memlat specific settings are moved to seperate file under
|
|
# device/target specific folder
|
|
setprop vendor.dcvs.prop 1
|
|
|
|
# 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 "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
|
|
echo 50 > $cpubw/polling_interval
|
|
done
|
|
|
|
for llccbw in $device/*cpu-llcc-ddr-bw/devfreq/*cpu-llcc-ddr-bw
|
|
do
|
|
echo "bw_hwmon" > $llccbw/governor
|
|
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
|
|
echo 40 > $llccbw/polling_interval
|
|
done
|
|
done
|
|
|
|
# memlat specific settings are moved to seperate file under
|
|
# device/target specific folder
|
|
setprop vendor.dcvs.prop 1
|
|
|
|
# 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 "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
|
|
echo 50 > $cpubw/polling_interval
|
|
done
|
|
|
|
for llccbw in $device/*cpu-llcc-ddr-bw/devfreq/*cpu-llcc-ddr-bw
|
|
do
|
|
echo "bw_hwmon" > $llccbw/governor
|
|
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
|
|
echo 40 > $llccbw/polling_interval
|
|
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 "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 40 > $npubw/polling_interval
|
|
echo 0 > /sys/devices/virtual/npu/msm_npu/pwr
|
|
done
|
|
done
|
|
|
|
# memlat specific settings are moved to seperate file under
|
|
# device/target specific folder
|
|
setprop vendor.dcvs.prop 1
|
|
|
|
# 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")
|
|
|
|
#Apply settings for lito
|
|
if [ -f /sys/devices/soc0/soc_id ]; then
|
|
soc_id=`cat /sys/devices/soc0/soc_id`
|
|
fi
|
|
|
|
case "$soc_id" in
|
|
"400" | "440" | "476" )
|
|
# 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 20000000 > /proc/sys/kernel/sched_task_unfilter_period
|
|
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 35 > /proc/sys/kernel/sched_min_task_util_for_colocation
|
|
|
|
# Enable conservative pl
|
|
echo 1 > /proc/sys/kernel/sched_conservative_pl
|
|
|
|
echo "0:1228800" > /sys/devices/system/cpu/cpu_boost/input_boost_freq
|
|
echo 120 > /sys/devices/system/cpu/cpu_boost/input_boost_ms
|
|
|
|
# Set Memory parameters
|
|
configure_memory_parameters
|
|
|
|
if [ `cat /sys/devices/soc0/revision` == "2.0" ]; then
|
|
# r2.0 related changes
|
|
echo "0:1075200" > /sys/devices/system/cpu/cpu_boost/input_boost_freq
|
|
echo 610000 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/rtg_boost_freq
|
|
echo 1075200 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/hispeed_freq
|
|
echo 1152000 > /sys/devices/system/cpu/cpufreq/policy6/schedutil/hispeed_freq
|
|
echo 1401600 > /sys/devices/system/cpu/cpufreq/policy7/schedutil/hispeed_freq
|
|
echo 614400 > /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq
|
|
echo 652800 > /sys/devices/system/cpu/cpufreq/policy6/scaling_min_freq
|
|
echo 806400 > /sys/devices/system/cpu/cpufreq/policy7/scaling_min_freq
|
|
echo 83 > /proc/sys/kernel/sched_asym_cap_sibling_freq_match_pct
|
|
fi
|
|
|
|
# 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 "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
|
|
echo 50 > $cpubw/polling_interval
|
|
done
|
|
|
|
for llccbw in $device/*cpu-llcc-ddr-bw/devfreq/*cpu-llcc-ddr-bw
|
|
do
|
|
echo "bw_hwmon" > $llccbw/governor
|
|
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
|
|
echo 50 > $llccbw/polling_interval
|
|
done
|
|
|
|
for npubw in $device/*npu*-ddr-bw/devfreq/*npu*-ddr-bw
|
|
do
|
|
echo 1 > /sys/devices/virtual/npu/msm_npu/pwr
|
|
echo "bw_hwmon" > $npubw/governor
|
|
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 40 > $npubw/polling_interval
|
|
echo 0 > /sys/devices/virtual/npu/msm_npu/pwr
|
|
done
|
|
|
|
for npullccbw in $device/*npu*-llcc-bw/devfreq/*npu*-llcc-bw
|
|
do
|
|
echo 1 > /sys/devices/virtual/npu/msm_npu/pwr
|
|
echo "bw_hwmon" > $npullccbw/governor
|
|
echo "2288 4577 7110 9155 12298 14236 16265" > $npullccbw/bw_hwmon/mbps_zones
|
|
echo 4 > $npullccbw/bw_hwmon/sample_ms
|
|
echo 100 > $npullccbw/bw_hwmon/io_percent
|
|
echo 20 > $npullccbw/bw_hwmon/hist_memory
|
|
echo 10 > $npullccbw/bw_hwmon/hyst_length
|
|
echo 30 > $npullccbw/bw_hwmon/down_thres
|
|
echo 0 > $npullccbw/bw_hwmon/guard_band_mbps
|
|
echo 250 > $npullccbw/bw_hwmon/up_scale
|
|
echo 40 > $npullccbw/polling_interval
|
|
echo 0 > /sys/devices/virtual/npu/msm_npu/pwr
|
|
done
|
|
done
|
|
# memlat specific settings are moved to seperate file under
|
|
# device/target specific folder
|
|
setprop vendor.dcvs.prop 0
|
|
setprop vendor.dcvs.prop 1
|
|
|
|
# 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 lagoon
|
|
case "$soc_id" in
|
|
"434" | "459" )
|
|
|
|
# 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
|
|
|
|
# Disable Core control on gold
|
|
echo 0 > /sys/devices/system/cpu/cpu6/core_ctl/enable
|
|
|
|
|
|
# disable unfiltering
|
|
echo 20000000 > /proc/sys/kernel/sched_task_unfilter_period
|
|
|
|
# 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
|
|
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
|
|
|
|
# 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 1248000 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/hispeed_freq
|
|
echo 652800 > /sys/devices/system/cpu/cpu6/cpufreq/scaling_min_freq
|
|
|
|
#colocation v3 settings
|
|
echo 740000 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/rtg_boost_freq
|
|
echo 0 > /sys/devices/system/cpu/cpufreq/policy6/schedutil/rtg_boost_freq
|
|
echo 51 > /proc/sys/kernel/sched_min_task_util_for_boost
|
|
|
|
# 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
|
|
|
|
# Enable conservative pl
|
|
echo 1 > /proc/sys/kernel/sched_conservative_pl
|
|
|
|
echo "0:1248000" > /sys/devices/system/cpu/cpu_boost/input_boost_freq
|
|
echo 120 > /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 "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
|
|
echo 50 > $cpubw/polling_interval
|
|
done
|
|
|
|
for llccbw in $device/*cpu-llcc-ddr-bw/devfreq/*cpu-llcc-ddr-bw
|
|
do
|
|
echo "bw_hwmon" > $llccbw/governor
|
|
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
|
|
echo 40 > $llccbw/polling_interval
|
|
done
|
|
|
|
for npubw in $device/*npu*-ddr-bw/devfreq/*npu*-ddr-bw
|
|
do
|
|
echo 1 > /sys/devices/virtual/npu/msm_npu/pwr
|
|
echo "bw_hwmon" > $npubw/governor
|
|
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 40 > $npubw/polling_interval
|
|
echo 0 > /sys/devices/virtual/npu/msm_npu/pwr
|
|
done
|
|
|
|
for npullccbw in $device/*npu*-llcc-bw/devfreq/*npu*-llcc-bw
|
|
do
|
|
echo 1 > /sys/devices/virtual/npu/msm_npu/pwr
|
|
echo "bw_hwmon" > $npullccbw/governor
|
|
echo "2288 4577 7110 9155 12298 14236 16265" > $npullccbw/bw_hwmon/mbps_zones
|
|
echo 4 > $npullccbw/bw_hwmon/sample_ms
|
|
echo 100 > $npullccbw/bw_hwmon/io_percent
|
|
echo 20 > $npullccbw/bw_hwmon/hist_memory
|
|
echo 10 > $npullccbw/bw_hwmon/hyst_length
|
|
echo 30 > $npullccbw/bw_hwmon/down_thres
|
|
echo 0 > $npullccbw/bw_hwmon/guard_band_mbps
|
|
echo 250 > $npullccbw/bw_hwmon/up_scale
|
|
echo 40 > $npullccbw/polling_interval
|
|
echo 0 > /sys/devices/virtual/npu/msm_npu/pwr
|
|
done
|
|
done
|
|
# memlat specific settings are moved to seperate file under
|
|
# device/target specific folder
|
|
setprop vendor.dcvs.prop 1
|
|
|
|
# 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 off sleep modes
|
|
echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
|
|
;;
|
|
esac
|
|
esac
|
|
|
|
case "$target" in
|
|
"bengal")
|
|
|
|
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
|
|
"417" | "420" | "444" | "445" | "469" | "470" )
|
|
|
|
# Core control is temporarily disabled till bring up
|
|
echo 0 > /sys/devices/system/cpu/cpu0/core_ctl/enable
|
|
echo 2 > /sys/devices/system/cpu/cpu4/core_ctl/min_cpus
|
|
# Core control parameters on big
|
|
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 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
|
|
echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/rtg_boost_freq
|
|
|
|
# configure governor settings for big cluster
|
|
echo "schedutil" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor
|
|
echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/up_rate_limit_us
|
|
echo 0 > /sys/devices/system/cpu/cpu4/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 0 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/rtg_boost_freq
|
|
|
|
echo "0:1017600" > /sys/devices/system/cpu/cpu_boost/input_boost_freq
|
|
echo 80 > /sys/devices/system/cpu/cpu_boost/input_boost_ms
|
|
|
|
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
|
|
|
|
done
|
|
# memlat specific settings are moved to seperate file under
|
|
# device/target specific folder
|
|
setprop vendor.dcvs.prop 1
|
|
|
|
# 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
|
|
|
|
# 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
|
|
|
|
# Scuba perf/power tunings
|
|
case "$soc_id" in
|
|
"441" | "471" | "473" | "474" )
|
|
|
|
# Quad-core device. disable core_ctl
|
|
echo 0 > /sys/devices/system/cpu/cpu0/core_ctl/enable
|
|
|
|
# Configure schedutil governor settings
|
|
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
|
|
echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/rtg_boost_freq
|
|
|
|
# sched_load_boost as -6 is equivalent to target load as 85.
|
|
echo 0 > /proc/sys/kernel/sched_boost
|
|
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 85 > /sys/devices/system/cpu/cpu0/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
|
|
|
|
# memlat specific settings are moved to seperate file under
|
|
# device/target specific folder
|
|
setprop vendor.dcvs.prop 1
|
|
|
|
done
|
|
|
|
# Disable low power modes. Enable it after LPM stable
|
|
echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
|
|
;;
|
|
esac
|
|
|
|
;;
|
|
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 "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
|
|
echo 50 > $cpubw/polling_interval
|
|
done
|
|
|
|
for llccbw in $device/*cpu-llcc-ddr-bw/devfreq/*cpu-llcc-ddr-bw
|
|
do
|
|
echo "bw_hwmon" > $llccbw/governor
|
|
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
|
|
echo 40 > $llccbw/polling_interval
|
|
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 "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 40 > $npubw/polling_interval
|
|
echo 0 > /sys/devices/virtual/npu/msm_npu/pwr
|
|
done
|
|
|
|
done
|
|
|
|
# memlat specific settings are moved to seperate file under
|
|
# device/target specific folder
|
|
setprop vendor.dcvs.prop 1
|
|
|
|
# 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
|
|
|
|
|
|
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" )
|
|
|
|
# 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
|
|
;;
|
|
esac
|
|
|
|
case "$target" in
|
|
"msm8994")
|
|
# ensure at most one A57 is online when thermal hotplug is disabled
|
|
echo 0 > /sys/devices/system/cpu/cpu5/online
|
|
echo 0 > /sys/devices/system/cpu/cpu6/online
|
|
echo 0 > /sys/devices/system/cpu/cpu7/online
|
|
# in case CPU4 is online, limit its frequency
|
|
echo 960000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_max_freq
|
|
# Limit A57 max freq from msm_perf module in case CPU 4 is offline
|
|
echo "4:960000 5:960000 6:960000 7:960000" > /sys/module/msm_performance/parameters/cpu_max_freq
|
|
# 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
|
|
# 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
|
|
# Best effort limiting for first time boot if msm_performance module is absent
|
|
echo 960000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_max_freq
|
|
# 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 1400000:39000 1700000: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 1248000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/hispeed_freq
|
|
echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/io_is_busy
|
|
echo "85 1500000:90 1800000:70" > /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
|
|
# restore A57's max
|
|
cat /sys/devices/system/cpu/cpu4/cpufreq/cpuinfo_max_freq > /sys/devices/system/cpu/cpu4/cpufreq/scaling_max_freq
|
|
# 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
|
|
# plugin remaining A57s
|
|
echo 1 > /sys/devices/system/cpu/cpu5/online
|
|
echo 1 > /sys/devices/system/cpu/cpu6/online
|
|
echo 1 > /sys/devices/system/cpu/cpu7/online
|
|
echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
|
|
# Restore CPU 4 max freq from msm_performance
|
|
echo "4:4294967295 5:4294967295 6:4294967295 7:4294967295" > /sys/module/msm_performance/parameters/cpu_max_freq
|
|
# input boost configuration
|
|
echo 0:1344000 > /sys/module/cpu_boost/parameters/input_boost_freq
|
|
echo 40 > /sys/module/cpu_boost/parameters/input_boost_ms
|
|
# Setting b.L scheduler parameters
|
|
echo 1 > /proc/sys/kernel/sched_migration_fixup
|
|
echo 30 > /proc/sys/kernel/sched_small_task
|
|
echo 20 > /proc/sys/kernel/sched_mostly_idle_load
|
|
echo 3 > /proc/sys/kernel/sched_mostly_idle_nr_run
|
|
echo 99 > /proc/sys/kernel/sched_upmigrate
|
|
echo 85 > /proc/sys/kernel/sched_downmigrate
|
|
echo 400000 > /proc/sys/kernel/sched_freq_inc_notify
|
|
echo 400000 > /proc/sys/kernel/sched_freq_dec_notify
|
|
#enable rps static configuration
|
|
echo 8 > /sys/class/net/rmnet_ipa0/queues/rx-0/rps_cpus
|
|
for devfreq_gov in /sys/class/devfreq/qcom,cpubw*/governor
|
|
do
|
|
echo "bw_hwmon" > $devfreq_gov
|
|
done
|
|
;;
|
|
esac
|
|
|
|
case "$target" in
|
|
"msm8996")
|
|
# disable thermal bcl hotplug to switch governor
|
|
echo 0 > /sys/module/msm_thermal/core_control/enabled
|
|
echo -n disable > /sys/devices/soc/soc:qcom,bcl/mode
|
|
bcl_hotplug_mask=`cat /sys/devices/soc/soc:qcom,bcl/hotplug_mask`
|
|
echo 0 > /sys/devices/soc/soc:qcom,bcl/hotplug_mask
|
|
bcl_soc_hotplug_mask=`cat /sys/devices/soc/soc:qcom,bcl/hotplug_soc_mask`
|
|
echo 0 > /sys/devices/soc/soc:qcom,bcl/hotplug_soc_mask
|
|
echo -n enable > /sys/devices/soc/soc:qcom,bcl/mode
|
|
# set sync wakee policy tunable
|
|
echo 1 > /proc/sys/kernel/sched_prefer_sync_wakee_to_waker
|
|
# 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 19000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/min_sample_time
|
|
echo 79000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/max_freq_hysteresis
|
|
echo 300000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
|
|
echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/ignore_hispeed_on_notif
|
|
# online CPU2
|
|
echo 1 > /sys/devices/system/cpu/cpu2/online
|
|
# configure governor settings for big cluster
|
|
echo "interactive" > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor
|
|
echo 1 > /sys/devices/system/cpu/cpu2/cpufreq/interactive/use_sched_load
|
|
echo 1 > /sys/devices/system/cpu/cpu2/cpufreq/interactive/use_migration_notif
|
|
echo "19000 1400000:39000 1700000:19000 2100000:79000" > /sys/devices/system/cpu/cpu2/cpufreq/interactive/above_hispeed_delay
|
|
echo 90 > /sys/devices/system/cpu/cpu2/cpufreq/interactive/go_hispeed_load
|
|
echo 20000 > /sys/devices/system/cpu/cpu2/cpufreq/interactive/timer_rate
|
|
echo 1248000 > /sys/devices/system/cpu/cpu2/cpufreq/interactive/hispeed_freq
|
|
echo 1 > /sys/devices/system/cpu/cpu2/cpufreq/interactive/io_is_busy
|
|
echo "85 1500000:90 1800000:70 2100000:95" > /sys/devices/system/cpu/cpu2/cpufreq/interactive/target_loads
|
|
echo 19000 > /sys/devices/system/cpu/cpu2/cpufreq/interactive/min_sample_time
|
|
echo 79000 > /sys/devices/system/cpu/cpu2/cpufreq/interactive/max_freq_hysteresis
|
|
echo 300000 > /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq
|
|
echo 1 > /sys/devices/system/cpu/cpu2/cpufreq/interactive/ignore_hispeed_on_notif
|
|
# re-enable thermal and BCL hotplug
|
|
echo 1 > /sys/module/msm_thermal/core_control/enabled
|
|
echo -n disable > /sys/devices/soc/soc:qcom,bcl/mode
|
|
echo $bcl_hotplug_mask > /sys/devices/soc/soc:qcom,bcl/hotplug_mask
|
|
echo $bcl_soc_hotplug_mask > /sys/devices/soc/soc:qcom,bcl/hotplug_soc_mask
|
|
echo -n enable > /sys/devices/soc/soc:qcom,bcl/mode
|
|
# input boost configuration
|
|
echo "0:1324800 2:1324800" > /sys/module/cpu_boost/parameters/input_boost_freq
|
|
echo 40 > /sys/module/cpu_boost/parameters/input_boost_ms
|
|
# Setting b.L scheduler parameters
|
|
echo 0 > /proc/sys/kernel/sched_boost
|
|
echo 1 > /proc/sys/kernel/sched_migration_fixup
|
|
echo 45 > /proc/sys/kernel/sched_downmigrate
|
|
echo 45 > /proc/sys/kernel/sched_upmigrate
|
|
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
|
|
echo 100 > /proc/sys/kernel/sched_init_task_load
|
|
# Enable bus-dcvs
|
|
for cpubw in /sys/class/devfreq/*qcom,cpubw*
|
|
do
|
|
echo "bw_hwmon" > $cpubw/governor
|
|
echo 50 > $cpubw/polling_interval
|
|
echo 1525 > $cpubw/min_freq
|
|
echo "1525 5195 11863 13763" > $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 10 > $cpubw/bw_hwmon/hyst_length
|
|
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
|
|
|
|
for memlat in /sys/class/devfreq/*qcom,memlat-cpu*
|
|
do
|
|
echo "mem_latency" > $memlat/governor
|
|
echo 10 > $memlat/polling_interval
|
|
done
|
|
echo "cpufreq" > /sys/class/devfreq/soc:qcom,mincpubw/governor
|
|
|
|
soc_revision=`cat /sys/devices/soc0/revision`
|
|
if [ "$soc_revision" == "2.0" ]; then
|
|
#Disable suspend for v2.0
|
|
echo pwr_dbg > /sys/power/wake_lock
|
|
elif [ "$soc_revision" == "2.1" ]; then
|
|
# Enable C4.D4.E4.M3 LPM modes
|
|
# Disable D3 state
|
|
echo 0 > /sys/module/lpm_levels/system/pwr/pwr-l2-gdhs/idle_enabled
|
|
echo 0 > /sys/module/lpm_levels/system/perf/perf-l2-gdhs/idle_enabled
|
|
# Disable DEF-FPC mode
|
|
echo N > /sys/module/lpm_levels/system/pwr/cpu0/fpc-def/idle_enabled
|
|
echo N > /sys/module/lpm_levels/system/pwr/cpu1/fpc-def/idle_enabled
|
|
echo N > /sys/module/lpm_levels/system/perf/cpu2/fpc-def/idle_enabled
|
|
echo N > /sys/module/lpm_levels/system/perf/cpu3/fpc-def/idle_enabled
|
|
else
|
|
# Enable all LPMs by default
|
|
# This will enable C4, D4, D3, E4 and M3 LPMs
|
|
echo N > /sys/module/lpm_levels/parameters/sleep_disabled
|
|
fi
|
|
echo N > /sys/module/lpm_levels/parameters/sleep_disabled
|
|
# Starting io prefetcher service
|
|
start iop
|
|
|
|
# Set Memory parameters
|
|
configure_memory_parameters
|
|
;;
|
|
esac
|
|
|
|
case "$target" in
|
|
"sdm845")
|
|
|
|
# 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 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`
|
|
fi
|
|
|
|
if [ -f /sys/devices/soc0/platform_subtype_id ]; then
|
|
platform_subtype_id=`cat /sys/devices/soc0/platform_subtype_id`
|
|
fi
|
|
|
|
# Core control parameters
|
|
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 95 > /proc/sys/kernel/sched_upmigrate
|
|
echo 85 > /proc/sys/kernel/sched_downmigrate
|
|
echo 100 > /proc/sys/kernel/sched_group_upmigrate
|
|
echo 95 > /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 1 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/pl
|
|
echo 576000 > /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/cpu4/cpufreq/schedutil/rate_limit_us
|
|
echo 1574400 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/hispeed_freq
|
|
echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/pl
|
|
echo "0:1324800" > /sys/module/cpu_boost/parameters/input_boost_freq
|
|
echo 120 > /sys/module/cpu_boost/parameters/input_boost_ms
|
|
# Limit the min frequency to 825MHz
|
|
echo 825000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq
|
|
|
|
# Enable oom_reaper
|
|
echo 1 > /sys/module/lowmemorykiller/parameters/oom_reaper
|
|
|
|
# Enable bus-dcvs
|
|
for cpubw in /sys/class/devfreq/*qcom,cpubw*
|
|
do
|
|
echo "bw_hwmon" > $cpubw/governor
|
|
echo 50 > $cpubw/polling_interval
|
|
echo "2288 4577 6500 8132 9155 10681" > $cpubw/bw_hwmon/mbps_zones
|
|
echo 4 > $cpubw/bw_hwmon/sample_ms
|
|
echo 50 > $cpubw/bw_hwmon/io_percent
|
|
echo 20 > $cpubw/bw_hwmon/hist_memory
|
|
echo 10 > $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
|
|
|
|
for llccbw in /sys/class/devfreq/*qcom,llccbw*
|
|
do
|
|
echo "bw_hwmon" > $llccbw/governor
|
|
echo 50 > $llccbw/polling_interval
|
|
echo "1720 2929 3879 5931 6881" > $llccbw/bw_hwmon/mbps_zones
|
|
echo 4 > $llccbw/bw_hwmon/sample_ms
|
|
echo 80 > $llccbw/bw_hwmon/io_percent
|
|
echo 20 > $llccbw/bw_hwmon/hist_memory
|
|
echo 10 > $llccbw/bw_hwmon/hyst_length
|
|
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 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
|
|
|
|
#Gold L3 ratio ceil
|
|
echo 4000 > /sys/class/devfreq/soc:qcom,l3-cpu4/mem_latency/ratio_ceil
|
|
|
|
echo "compute" > /sys/class/devfreq/soc:qcom,mincpubw/governor
|
|
echo 10 > /sys/class/devfreq/soc:qcom,mincpubw/polling_interval
|
|
|
|
# cpuset parameters
|
|
echo 0-3 > /dev/cpuset/background/cpus
|
|
echo 0-3 > /dev/cpuset/system-background/cpus
|
|
|
|
# Turn off scheduler boost at the end
|
|
echo 0 > /proc/sys/kernel/sched_boost
|
|
# 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
|
|
echo N > /sys/module/lpm_levels/L3/l3-dyn-ret/idle_enabled
|
|
# Turn on sleep modes.
|
|
echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
|
|
echo 100 > /proc/sys/vm/swappiness
|
|
echo 120 > /proc/sys/vm/watermark_scale_factor
|
|
;;
|
|
esac
|
|
|
|
case "$target" in
|
|
"msmnile")
|
|
# Core control parameters for gold
|
|
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 3 > /sys/devices/system/cpu/cpu4/core_ctl/task_thres
|
|
|
|
# Core control parameters for gold+
|
|
echo 0 > /sys/devices/system/cpu/cpu7/core_ctl/min_cpus
|
|
echo 60 > /sys/devices/system/cpu/cpu7/core_ctl/busy_up_thres
|
|
echo 30 > /sys/devices/system/cpu/cpu7/core_ctl/busy_down_thres
|
|
echo 100 > /sys/devices/system/cpu/cpu7/core_ctl/offline_delay_ms
|
|
echo 1 > /sys/devices/system/cpu/cpu7/core_ctl/task_thres
|
|
# Controls how many more tasks should be eligible to run on gold CPUs
|
|
# w.r.t number of gold CPUs available to trigger assist (max number of
|
|
# tasks eligible to run on previous cluster minus number of CPUs in
|
|
# the previous cluster).
|
|
#
|
|
# Setting to 1 by default which means there should be at least
|
|
# 4 tasks eligible to run on gold cluster (tasks running on gold cores
|
|
# plus misfit tasks on silver cores) to trigger assitance from gold+.
|
|
echo 1 > /sys/devices/system/cpu/cpu7/core_ctl/nr_prev_assist_thresh
|
|
|
|
# Disable Core control on silver
|
|
echo 0 > /sys/devices/system/cpu/cpu0/core_ctl/enable
|
|
|
|
# Setting b.L scheduler parameters
|
|
echo 95 95 > /proc/sys/kernel/sched_upmigrate
|
|
echo 85 85 > /proc/sys/kernel/sched_downmigrate
|
|
echo 100 > /proc/sys/kernel/sched_group_upmigrate
|
|
echo 10 > /proc/sys/kernel/sched_group_downmigrate
|
|
echo 1 > /proc/sys/kernel/sched_walt_rotate_big_tasks
|
|
|
|
# cpuset parameters
|
|
echo 0-3 > /dev/cpuset/background/cpus
|
|
echo 0-3 > /dev/cpuset/system-background/cpus
|
|
|
|
# Turn off scheduler boost at the end
|
|
echo 0 > /proc/sys/kernel/sched_boost
|
|
|
|
# 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 1209600 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/hispeed_freq
|
|
echo 576000 > /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq
|
|
echo 1 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/pl
|
|
|
|
# configure governor settings for gold cluster
|
|
echo "schedutil" > /sys/devices/system/cpu/cpufreq/policy4/scaling_governor
|
|
echo 0 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/up_rate_limit_us
|
|
echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/down_rate_limit_us
|
|
echo 1612800 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/hispeed_freq
|
|
echo 1 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/pl
|
|
|
|
# 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/policy0/schedutil/down_rate_limit_us
|
|
echo 1612800 > /sys/devices/system/cpu/cpufreq/policy7/schedutil/hispeed_freq
|
|
echo 1 > /sys/devices/system/cpu/cpufreq/policy7/schedutil/pl
|
|
|
|
# configure input boost settings
|
|
echo "0:1324800" > /sys/module/cpu_boost/parameters/input_boost_freq
|
|
echo 120 > /sys/module/cpu_boost/parameters/input_boost_ms
|
|
|
|
# Disable wsf, beacause we are using efk.
|
|
# wsf Range : 1..1000 So set to bare minimum value 1.
|
|
echo 1 > /proc/sys/vm/watermark_scale_factor
|
|
|
|
echo 0-3 > /dev/cpuset/background/cpus
|
|
echo 0-3 > /dev/cpuset/system-background/cpus
|
|
|
|
# Enable oom_reaper
|
|
if [ -f /sys/module/lowmemorykiller/parameters/oom_reaper ]; then
|
|
echo 1 > /sys/module/lowmemorykiller/parameters/oom_reaper
|
|
else
|
|
echo 1 > /proc/sys/vm/reap_mem_on_sigkill
|
|
fi
|
|
|
|
# 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 "2288 4577 7110 9155 12298 14236 15258" > $cpubw/bw_hwmon/mbps_zones
|
|
echo 4 > $cpubw/bw_hwmon/sample_ms
|
|
echo 50 > $cpubw/bw_hwmon/io_percent
|
|
echo 20 > $cpubw/bw_hwmon/hist_memory
|
|
echo 10 > $cpubw/bw_hwmon/hyst_length
|
|
echo 30 > $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
|
|
echo 14236 > $cpubw/max_freq
|
|
echo 40 > $cpubw/polling_interval
|
|
done
|
|
|
|
for llccbw in $device/*cpu-llcc-ddr-bw/devfreq/*cpu-llcc-ddr-bw
|
|
do
|
|
echo "bw_hwmon" > $llccbw/governor
|
|
echo "1720 2929 3879 5931 6881 7980" > $llccbw/bw_hwmon/mbps_zones
|
|
echo 4 > $llccbw/bw_hwmon/sample_ms
|
|
echo 80 > $llccbw/bw_hwmon/io_percent
|
|
echo 20 > $llccbw/bw_hwmon/hist_memory
|
|
echo 10 > $llccbw/bw_hwmon/hyst_length
|
|
echo 30 > $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
|
|
echo 6881 > $llccbw/max_freq
|
|
echo 40 > $llccbw/polling_interval
|
|
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 "1720 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 6 > $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 40 > $npubw/polling_interval
|
|
echo 0 > /sys/devices/virtual/npu/msm_npu/pwr
|
|
done
|
|
done
|
|
|
|
# memlat specific settings are moved to seperate file under
|
|
# device/target specific folder
|
|
setprop vendor.dcvs.prop 1
|
|
|
|
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 > /sys/module/lpm_levels/parameters/sleep_disabled
|
|
configure_memory_parameters
|
|
target_type=`getprop ro.hardware.type`
|
|
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 [ "$target_type" == "automotive" ]; then
|
|
# update frequencies
|
|
if [ "$soc_id" == "340" ] | [ "$soc_id" == "405" ]; then #sa8195
|
|
configure_automotive_sku_parameters_sa8195
|
|
else #sa8155
|
|
configure_automotive_sku_parameters
|
|
fi
|
|
fi
|
|
|
|
;;
|
|
esac
|
|
|
|
case "$target" in
|
|
"sdmshrike")
|
|
# Core control parameters for gold
|
|
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 3 > /sys/devices/system/cpu/cpu4/core_ctl/task_thres
|
|
|
|
# Core control parameters for gold+
|
|
echo 0 > /sys/devices/system/cpu/cpu7/core_ctl/min_cpus
|
|
echo 60 > /sys/devices/system/cpu/cpu7/core_ctl/busy_up_thres
|
|
echo 30 > /sys/devices/system/cpu/cpu7/core_ctl/busy_down_thres
|
|
echo 100 > /sys/devices/system/cpu/cpu7/core_ctl/offline_delay_ms
|
|
echo 1 > /sys/devices/system/cpu/cpu7/core_ctl/task_thres
|
|
# Controls how many more tasks should be eligible to run on gold CPUs
|
|
# w.r.t number of gold CPUs available to trigger assist (max number of
|
|
# tasks eligible to run on previous cluster minus number of CPUs in
|
|
# the previous cluster).
|
|
#
|
|
# Setting to 1 by default which means there should be at least
|
|
# 4 tasks eligible to run on gold cluster (tasks running on gold cores
|
|
# plus misfit tasks on silver cores) to trigger assitance from gold+.
|
|
echo 1 > /sys/devices/system/cpu/cpu7/core_ctl/nr_prev_assist_thresh
|
|
|
|
# Disable Core control on silver
|
|
echo 0 > /sys/devices/system/cpu/cpu0/core_ctl/enable
|
|
|
|
# Setting b.L scheduler parameters
|
|
echo 95 95 > /proc/sys/kernel/sched_upmigrate
|
|
echo 85 85 > /proc/sys/kernel/sched_downmigrate
|
|
echo 100 > /proc/sys/kernel/sched_group_upmigrate
|
|
echo 10 > /proc/sys/kernel/sched_group_downmigrate
|
|
echo 1 > /proc/sys/kernel/sched_walt_rotate_big_tasks
|
|
|
|
# cpuset parameters
|
|
echo 0-3 > /dev/cpuset/background/cpus
|
|
echo 0-3 > /dev/cpuset/system-background/cpus
|
|
|
|
# Turn off scheduler boost at the end
|
|
echo 0 > /proc/sys/kernel/sched_boost
|
|
|
|
# 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 1209600 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/hispeed_freq
|
|
echo 576000 > /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq
|
|
echo 1 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/pl
|
|
|
|
# configure governor settings for gold cluster
|
|
echo "schedutil" > /sys/devices/system/cpu/cpufreq/policy4/scaling_governor
|
|
echo 0 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/up_rate_limit_us
|
|
echo 0 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/down_rate_limit_us
|
|
echo 1612800 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/hispeed_freq
|
|
echo 1 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/pl
|
|
|
|
# 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 1612800 > /sys/devices/system/cpu/cpufreq/policy7/schedutil/hispeed_freq
|
|
echo 1 > /sys/devices/system/cpu/cpufreq/policy7/schedutil/pl
|
|
|
|
# configure input boost settings
|
|
echo "0:1324800" > /sys/module/cpu_boost/parameters/input_boost_freq
|
|
echo 120 > /sys/module/cpu_boost/parameters/input_boost_ms
|
|
|
|
# Disable wsf, beacause we are using efk.
|
|
# wsf Range : 1..1000 So set to bare minimum value 1.
|
|
echo 1 > /proc/sys/vm/watermark_scale_factor
|
|
|
|
echo 0-3 > /dev/cpuset/background/cpus
|
|
echo 0-3 > /dev/cpuset/system-background/cpus
|
|
|
|
# Enable oom_reaper
|
|
if [ -f /sys/module/lowmemorykiller/parameters/oom_reaper ]; then
|
|
echo 1 > /sys/module/lowmemorykiller/parameters/oom_reaper
|
|
else
|
|
echo 1 > /proc/sys/vm/reap_mem_on_sigkill
|
|
fi
|
|
|
|
# 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 40 > $cpubw/polling_interval
|
|
echo "2288 4577 7110 9155 12298 14236 15258" > $cpubw/bw_hwmon/mbps_zones
|
|
echo 4 > $cpubw/bw_hwmon/sample_ms
|
|
echo 50 > $cpubw/bw_hwmon/io_percent
|
|
echo 20 > $cpubw/bw_hwmon/hist_memory
|
|
echo 10 > $cpubw/bw_hwmon/hyst_length
|
|
echo 30 > $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
|
|
echo 14236 > $cpubw/max_freq
|
|
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 "1720 2929 3879 5931 6881 7980" > $llccbw/bw_hwmon/mbps_zones
|
|
echo 4 > $llccbw/bw_hwmon/sample_ms
|
|
echo 80 > $llccbw/bw_hwmon/io_percent
|
|
echo 20 > $llccbw/bw_hwmon/hist_memory
|
|
echo 10 > $llccbw/bw_hwmon/hyst_length
|
|
echo 30 > $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
|
|
echo 6881 > $llccbw/max_freq
|
|
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 "1720 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 6 > $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
|
|
|
|
#Enable userspace 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
|
|
|
|
#Gold L3 ratio ceil
|
|
for l3gold in $device/*cpu4-cpu-l3-lat/devfreq/*cpu4-cpu-l3-lat
|
|
do
|
|
echo 4000 > $l3gold/mem_latency/ratio_ceil
|
|
done
|
|
|
|
#Prime L3 ratio ceil
|
|
for l3prime in $device/*cpu7-cpu-l3-lat/devfreq/*cpu7-cpu-l3-lat
|
|
do
|
|
echo 20000 > $l3prime/mem_latency/ratio_ceil
|
|
done
|
|
done
|
|
|
|
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
|
|
|
|
#Setting the min and max supported frequencies
|
|
reg_val=`cat /sys/devices/platform/soc/780130.qfprom/qfprom0/nvmem | od -An -t d4`
|
|
feature_id=$(((reg_val >> 20) & 0xFF))
|
|
|
|
#Setting the min supported frequencies
|
|
echo 1113600 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
|
|
echo 1171200 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq
|
|
echo 940800000 > /sys/class/devfreq/soc\:qcom,cpu0-cpu-l3-lat/min_freq
|
|
echo 940800000 > /sys/class/devfreq/soc\:qcom,cpu4-cpu-l3-lat/min_freq
|
|
echo 1651200000 > /sys/class/devfreq/soc\:qcom,cpu0-cpu-l3-lat/max_freq
|
|
echo 1651200000 > /sys/class/devfreq/soc\:qcom,cpu4-cpu-l3-lat/max_freq
|
|
#setting min gpu freq to 392 MHz
|
|
echo 4 > /sys/class/kgsl/kgsl-3d0/min_pwrlevel
|
|
if [ $feature_id == 0 ]; then
|
|
echo "feature_id is 0 for SA8195AA"
|
|
|
|
#setting max cpu freq to 2.496GHz
|
|
echo 2496000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_max_freq
|
|
#setting max gpu freq to 530 MHz
|
|
echo 3 > /sys/class/kgsl/kgsl-3d0/max_pwrlevel
|
|
echo 1804 > /sys/devices/platform/soc/soc:aop-set-ddr-freq/set_ddr_capped_freq
|
|
elif [ $feature_id == 1 ] || [ $feature_id == 2 ]; then
|
|
echo "feature_id is 1 for external SA8195AB"
|
|
echo "feature_id is 2 for internal SA8195AB"
|
|
|
|
#setting max cpu freq to 2.496GHz
|
|
echo 2496000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_max_freq
|
|
#setting max gpu freq to 670 MHz
|
|
echo 0 > /sys/class/kgsl/kgsl-3d0/max_pwrlevel
|
|
echo 2092 > /sys/devices/platform/soc/soc:aop-set-ddr-freq/set_ddr_capped_freq
|
|
elif [ $feature_id == 3 ]; then
|
|
echo "feature_id is 3 for external SA8195AC"
|
|
else
|
|
echo "unknown feature_id value" $feature_id
|
|
fi
|
|
|
|
echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
|
|
configure_memory_parameters
|
|
;;
|
|
esac
|
|
|
|
case "$target" in
|
|
"kona")
|
|
rev=`cat /sys/devices/soc0/revision`
|
|
ddr_type=`od -An -tx /proc/device-tree/memory/ddr_device_type`
|
|
ddr_type4="07"
|
|
ddr_type5="08"
|
|
|
|
# Core control parameters for gold
|
|
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 3 > /sys/devices/system/cpu/cpu4/core_ctl/task_thres
|
|
|
|
# Core control parameters for gold+
|
|
echo 0 > /sys/devices/system/cpu/cpu7/core_ctl/min_cpus
|
|
echo 60 > /sys/devices/system/cpu/cpu7/core_ctl/busy_up_thres
|
|
echo 30 > /sys/devices/system/cpu/cpu7/core_ctl/busy_down_thres
|
|
echo 100 > /sys/devices/system/cpu/cpu7/core_ctl/offline_delay_ms
|
|
echo 1 > /sys/devices/system/cpu/cpu7/core_ctl/task_thres
|
|
# Controls how many more tasks should be eligible to run on gold CPUs
|
|
# w.r.t number of gold CPUs available to trigger assist (max number of
|
|
# tasks eligible to run on previous cluster minus number of CPUs in
|
|
# the previous cluster).
|
|
#
|
|
# Setting to 1 by default which means there should be at least
|
|
# 4 tasks eligible to run on gold cluster (tasks running on gold cores
|
|
# plus misfit tasks on silver cores) to trigger assitance from gold+.
|
|
echo 1 > /sys/devices/system/cpu/cpu7/core_ctl/nr_prev_assist_thresh
|
|
|
|
# Disable Core control on silver
|
|
echo 0 > /sys/devices/system/cpu/cpu0/core_ctl/enable
|
|
|
|
# Setting b.L scheduler parameters
|
|
echo 95 95 > /proc/sys/kernel/sched_upmigrate
|
|
echo 85 85 > /proc/sys/kernel/sched_downmigrate
|
|
echo 100 > /proc/sys/kernel/sched_group_upmigrate
|
|
echo 85 > /proc/sys/kernel/sched_group_downmigrate
|
|
echo 1 > /proc/sys/kernel/sched_walt_rotate_big_tasks
|
|
echo 400000000 > /proc/sys/kernel/sched_coloc_downmigrate_ns
|
|
|
|
# cpuset parameters
|
|
echo 0-3 > /dev/cpuset/background/cpus
|
|
echo 0-3 > /dev/cpuset/system-background/cpus
|
|
|
|
# Turn off scheduler boost at the end
|
|
echo 0 > /proc/sys/kernel/sched_boost
|
|
|
|
# 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/down_rate_limit_us
|
|
echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/up_rate_limit_us
|
|
if [ $rev == "2.0" ] || [ $rev == "2.1" ]; then
|
|
echo 1248000 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/hispeed_freq
|
|
else
|
|
echo 1228800 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/hispeed_freq
|
|
fi
|
|
echo 691200 > /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq
|
|
echo 1 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/pl
|
|
|
|
# configure input boost settings
|
|
echo "0:1324800" > /sys/devices/system/cpu/cpu_boost/input_boost_freq
|
|
echo 120 > /sys/devices/system/cpu/cpu_boost/input_boost_ms
|
|
|
|
# configure governor settings for gold cluster
|
|
echo "schedutil" > /sys/devices/system/cpu/cpufreq/policy4/scaling_governor
|
|
echo 0 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/down_rate_limit_us
|
|
echo 0 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/up_rate_limit_us
|
|
echo 1574400 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/hispeed_freq
|
|
echo 1 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/pl
|
|
|
|
# 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/down_rate_limit_us
|
|
echo 0 > /sys/devices/system/cpu/cpufreq/policy7/schedutil/up_rate_limit_us
|
|
if [ $rev == "2.0" ] || [ $rev == "2.1" ]; then
|
|
echo 1632000 > /sys/devices/system/cpu/cpufreq/policy7/schedutil/hispeed_freq
|
|
else
|
|
echo 1612800 > /sys/devices/system/cpu/cpufreq/policy7/schedutil/hispeed_freq
|
|
fi
|
|
echo 1 > /sys/devices/system/cpu/cpufreq/policy7/schedutil/pl
|
|
|
|
# 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 "4577 7110 9155 12298 14236 15258" > $cpubw/bw_hwmon/mbps_zones
|
|
echo 4 > $cpubw/bw_hwmon/sample_ms
|
|
echo 50 > $cpubw/bw_hwmon/io_percent
|
|
echo 20 > $cpubw/bw_hwmon/hist_memory
|
|
echo 10 > $cpubw/bw_hwmon/hyst_length
|
|
echo 30 > $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
|
|
echo 14236 > $cpubw/max_freq
|
|
echo 40 > $cpubw/polling_interval
|
|
done
|
|
|
|
for llccbw in $device/*cpu-llcc-ddr-bw/devfreq/*cpu-llcc-ddr-bw
|
|
do
|
|
echo "bw_hwmon" > $llccbw/governor
|
|
if [ ${ddr_type:4:2} == $ddr_type4 ]; then
|
|
echo "1720 2086 2929 3879 5161 5931 6881 7980" > $llccbw/bw_hwmon/mbps_zones
|
|
elif [ ${ddr_type:4:2} == $ddr_type5 ]; then
|
|
echo "1720 2086 2929 3879 5931 6881 7980 10437" > $llccbw/bw_hwmon/mbps_zones
|
|
fi
|
|
echo 4 > $llccbw/bw_hwmon/sample_ms
|
|
echo 80 > $llccbw/bw_hwmon/io_percent
|
|
echo 20 > $llccbw/bw_hwmon/hist_memory
|
|
echo 10 > $llccbw/bw_hwmon/hyst_length
|
|
echo 30 > $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
|
|
echo 6881 > $llccbw/max_freq
|
|
echo 40 > $llccbw/polling_interval
|
|
done
|
|
|
|
for npubw in $device/*npu*-ddr-bw/devfreq/*npu*-ddr-bw
|
|
do
|
|
echo 1 > /sys/devices/virtual/npu/msm_npu/pwr
|
|
echo "bw_hwmon" > $npubw/governor
|
|
if [ ${ddr_type:4:2} == $ddr_type4 ]; then
|
|
echo "1720 2086 2929 3879 5931 6881 7980" > $npubw/bw_hwmon/mbps_zones
|
|
elif [ ${ddr_type:4:2} == $ddr_type5 ]; then
|
|
echo "1720 2086 2929 3879 5931 6881 7980 10437" > $npubw/bw_hwmon/mbps_zones
|
|
fi
|
|
echo 4 > $npubw/bw_hwmon/sample_ms
|
|
echo 160 > $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 1600 > $npubw/bw_hwmon/idle_mbps
|
|
echo 40 > $npubw/polling_interval
|
|
echo 0 > /sys/devices/virtual/npu/msm_npu/pwr
|
|
done
|
|
|
|
for npullccbw in $device/*npu*-llcc-bw/devfreq/*npu*-llcc-bw
|
|
do
|
|
echo 1 > /sys/devices/virtual/npu/msm_npu/pwr
|
|
echo "bw_hwmon" > $npullccbw/governor
|
|
echo "4577 7110 9155 12298 14236 15258" > $npullccbw/bw_hwmon/mbps_zones
|
|
echo 4 > $npullccbw/bw_hwmon/sample_ms
|
|
echo 160 > $npullccbw/bw_hwmon/io_percent
|
|
echo 20 > $npullccbw/bw_hwmon/hist_memory
|
|
echo 10 > $npullccbw/bw_hwmon/hyst_length
|
|
echo 30 > $npullccbw/bw_hwmon/down_thres
|
|
echo 0 > $npullccbw/bw_hwmon/guard_band_mbps
|
|
echo 250 > $npullccbw/bw_hwmon/up_scale
|
|
echo 1600 > $npullccbw/bw_hwmon/idle_mbps
|
|
echo 40 > $npullccbw/polling_interval
|
|
echo 0 > /sys/devices/virtual/npu/msm_npu/pwr
|
|
done
|
|
done
|
|
# memlat specific settings are moved to seperate file under
|
|
# device/target specific folder
|
|
setprop vendor.dcvs.prop 0
|
|
setprop vendor.dcvs.prop 1
|
|
echo N > /sys/module/lpm_levels/parameters/sleep_disabled
|
|
configure_memory_parameters
|
|
;;
|
|
esac
|
|
|
|
case "$target" in
|
|
"msm8998" | "apq8098_latv")
|
|
|
|
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 1 > /proc/sys/kernel/sched_migration_fixup
|
|
echo 95 > /proc/sys/kernel/sched_upmigrate
|
|
echo 90 > /proc/sys/kernel/sched_downmigrate
|
|
echo 100 > /proc/sys/kernel/sched_group_upmigrate
|
|
echo 95 > /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 1 > /proc/sys/kernel/sched_prefer_sync_wakee_to_waker
|
|
start iop
|
|
|
|
# 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 > /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 1248000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/hispeed_freq
|
|
echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/io_is_busy
|
|
echo "83 1804800:95" > /sys/devices/system/cpu/cpu0/cpufreq/interactive/target_loads
|
|
echo 19000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/min_sample_time
|
|
echo 79000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/max_freq_hysteresis
|
|
echo 518400 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
|
|
echo 1 > /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 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 1574400 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/hispeed_freq
|
|
echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/io_is_busy
|
|
echo "83 1939200:90 2016000:95" > /sys/devices/system/cpu/cpu4/cpufreq/interactive/target_loads
|
|
echo 19000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/min_sample_time
|
|
echo 79000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/max_freq_hysteresis
|
|
echo 806400 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq
|
|
echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/ignore_hispeed_on_notif
|
|
|
|
# re-enable thermal and BCL hotplug
|
|
echo 1 > /sys/module/msm_thermal/core_control/enabled
|
|
|
|
# Enable input boost configuration
|
|
echo "0:1324800" > /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 1525 > $cpubw/min_freq
|
|
echo "3143 5859 11863 13763" > $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 10 > $cpubw/bw_hwmon/hyst_length
|
|
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
|
|
|
|
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
|
|
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_version ]; then
|
|
platform_version=`cat /sys/devices/soc0/platform_version`
|
|
platform_major_version=$((10#${platform_version}>>16))
|
|
fi
|
|
|
|
if [ -f /sys/devices/soc0/platform_subtype_id ]; then
|
|
platform_subtype_id=`cat /sys/devices/soc0/platform_subtype_id`
|
|
fi
|
|
|
|
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/pwr/pwr-l2-ret/idle_enabled
|
|
echo N > /sys/module/lpm_levels/system/perf/perf-l2-dynret/idle_enabled
|
|
echo N > /sys/module/lpm_levels/system/perf/perf-l2-ret/idle_enabled
|
|
echo N > /sys/module/lpm_levels/parameters/sleep_disabled
|
|
|
|
echo 0-3 > /dev/cpuset/background/cpus
|
|
echo 0-3 > /dev/cpuset/system-background/cpus
|
|
echo 0 > /proc/sys/kernel/sched_boost
|
|
|
|
# Set Memory parameters
|
|
configure_memory_parameters
|
|
;;
|
|
esac
|
|
|
|
case "$target" in
|
|
"msm8909")
|
|
|
|
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 8909 similiar to 8917
|
|
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
|
|
|
|
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
|
|
|
|
# Apply governor settings for 8909
|
|
|
|
# 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 "29000 1094400:49000" > /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 0 > /sys/module/lpm_levels/parameters/sleep_disabled
|
|
|
|
for devfreq_gov in /sys/class/devfreq/*qcom,cpubw*/governor
|
|
do
|
|
echo "bw_hwmon" > $devfreq_gov
|
|
for cpu_bimc_bw_step in /sys/class/devfreq/*qcom,cpubw*/bw_hwmon/bw_step
|
|
do
|
|
echo 60 > $cpu_bimc_bw_step
|
|
done
|
|
for cpu_guard_band_mbps in /sys/class/devfreq/*qcom,cpubw*/bw_hwmon/guard_band_mbps
|
|
do
|
|
echo 30 > $cpu_guard_band_mbps
|
|
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
|
|
for gpu_bimc_bw_step in /sys/class/devfreq/*qcom,gpubw*/bw_hwmon/bw_step
|
|
do
|
|
echo 60 > $gpu_bimc_bw_step
|
|
done
|
|
for gpu_bimc_guard_band_mbps in /sys/class/devfreq/*qcom,gpubw*/bw_hwmon/guard_band_mbps
|
|
do
|
|
echo 30 > $gpu_bimc_guard_band_mbps
|
|
done
|
|
|
|
# Set Memory parameters
|
|
configure_memory_parameters
|
|
restorecon -R /sys/devices/system/cpu
|
|
;;
|
|
esac
|
|
|
|
case "$target" in
|
|
"msm7627_ffa" | "msm7627_surf" | "msm7627_6x")
|
|
echo 25000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate
|
|
;;
|
|
esac
|
|
|
|
case "$target" in
|
|
"qsd8250_surf" | "qsd8250_ffa" | "qsd8650a_st1x")
|
|
echo 50000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate
|
|
;;
|
|
esac
|
|
|
|
case "$target" in
|
|
"qsd8650a_st1x")
|
|
mount -t debugfs none /sys/kernel/debug
|
|
;;
|
|
esac
|
|
|
|
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
|
|
|
|
emmc_boot=`getprop vendor.boot.emmc`
|
|
case "$emmc_boot"
|
|
in "true")
|
|
chown -h system /sys/devices/platform/rs300000a7.65536/force_sync
|
|
chown -h system /sys/devices/platform/rs300000a7.65536/sync_sts
|
|
chown -h system /sys/devices/platform/rs300100a7.65536/force_sync
|
|
chown -h system /sys/devices/platform/rs300100a7.65536/sync_sts
|
|
;;
|
|
esac
|
|
|
|
case "$target" in
|
|
"msm8960" | "msm8660" | "msm7630_surf")
|
|
echo 10 > /sys/devices/platform/msm_sdcc.3/idle_timeout
|
|
;;
|
|
"msm7627a")
|
|
echo 10 > /sys/devices/platform/msm_sdcc.1/idle_timeout
|
|
;;
|
|
esac
|
|
|
|
# Post-setup services
|
|
case "$target" in
|
|
"msm8660" | "msm8960" | "msm8226" | "msm8610" | "mpq8092" )
|
|
start mpdecision
|
|
;;
|
|
"msm8974")
|
|
start mpdecision
|
|
echo 512 > /sys/block/mmcblk0/bdi/read_ahead_kb
|
|
;;
|
|
"msm8909" | "msm8916" | "msm8937" | "msm8952" | "msm8953" | "msm8994" | "msm8992" | "msm8996" | "msm8998" | "sdm660" | "apq8098_latv" | "sdm845" | "sdm710" | "msmnile" | "msmsteppe" | "sm6150" | "kona" | "lito" | "trinket" | "atoll" | "bengal" | "sdmshrike")
|
|
setprop vendor.post_boot.parsed 1
|
|
;;
|
|
"apq8084")
|
|
rm /data/system/perfd/default_values
|
|
start mpdecision
|
|
echo 512 > /sys/block/mmcblk0/bdi/read_ahead_kb
|
|
echo 512 > /sys/block/sda/bdi/read_ahead_kb
|
|
echo 512 > /sys/block/sdb/bdi/read_ahead_kb
|
|
echo 512 > /sys/block/sdc/bdi/read_ahead_kb
|
|
echo 512 > /sys/block/sdd/bdi/read_ahead_kb
|
|
echo 512 > /sys/block/sde/bdi/read_ahead_kb
|
|
echo 512 > /sys/block/sdf/bdi/read_ahead_kb
|
|
echo 512 > /sys/block/sdg/bdi/read_ahead_kb
|
|
echo 512 > /sys/block/sdh/bdi/read_ahead_kb
|
|
;;
|
|
"msm7627a")
|
|
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
|
|
"127" | "128" | "129")
|
|
start mpdecision
|
|
;;
|
|
esac
|
|
;;
|
|
esac
|
|
|
|
# Enable Power modes and set the CPU Freq Sampling rates
|
|
case "$target" in
|
|
"msm7627a")
|
|
start qosmgrd
|
|
echo 1 > /sys/module/pm2/modes/cpu0/standalone_power_collapse/idle_enabled
|
|
echo 1 > /sys/module/pm2/modes/cpu1/standalone_power_collapse/idle_enabled
|
|
echo 1 > /sys/module/pm2/modes/cpu0/standalone_power_collapse/suspend_enabled
|
|
echo 1 > /sys/module/pm2/modes/cpu1/standalone_power_collapse/suspend_enabled
|
|
#SuspendPC:
|
|
echo 1 > /sys/module/pm2/modes/cpu0/power_collapse/suspend_enabled
|
|
#IdlePC:
|
|
echo 1 > /sys/module/pm2/modes/cpu0/power_collapse/idle_enabled
|
|
echo 25000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate
|
|
;;
|
|
esac
|
|
|
|
# Change adj level and min_free_kbytes setting for lowmemory killer to kick in
|
|
case "$target" in
|
|
"msm7627a")
|
|
echo 0,1,2,4,9,12 > /sys/module/lowmemorykiller/parameters/adj
|
|
echo 5120 > /proc/sys/vm/min_free_kbytes
|
|
;;
|
|
esac
|
|
|
|
# Install AdrenoTest.apk if not already installed
|
|
if [ -f /data/prebuilt/AdrenoTest.apk ]; then
|
|
if [ ! -d /data/data/com.qualcomm.adrenotest ]; then
|
|
pm install /data/prebuilt/AdrenoTest.apk
|
|
fi
|
|
fi
|
|
|
|
# Install SWE_Browser.apk if not already installed
|
|
if [ -f /data/prebuilt/SWE_AndroidBrowser.apk ]; then
|
|
if [ ! -d /data/data/com.android.swe.browser ]; then
|
|
pm install /data/prebuilt/SWE_AndroidBrowser.apk
|
|
fi
|
|
fi
|
|
|
|
# Change adj level and min_free_kbytes setting for lowmemory killer to kick in
|
|
case "$target" in
|
|
"msm8660")
|
|
start qosmgrd
|
|
echo 0,1,2,4,9,12 > /sys/module/lowmemorykiller/parameters/adj
|
|
echo 5120 > /proc/sys/vm/min_free_kbytes
|
|
;;
|
|
esac
|
|
# Let kernel know our image version/variant/crm_version
|
|
if [ -f /sys/devices/soc0/select_image ]; then
|
|
image_version="10:"
|
|
image_version+=`getprop ro.build.id`
|
|
image_version+=":"
|
|
image_version+=`getprop ro.build.version.incremental`
|
|
image_variant=`getprop ro.product.name`
|
|
image_variant+="-"
|
|
image_variant+=`getprop ro.build.type`
|
|
oem_version=`getprop ro.build.version.codename`
|
|
echo 10 > /sys/devices/soc0/select_image
|
|
echo $image_version > /sys/devices/soc0/image_version
|
|
echo $image_variant > /sys/devices/soc0/image_variant
|
|
echo $oem_version > /sys/devices/soc0/image_crm_version
|
|
fi
|
|
|
|
# Change console log level as per console config property
|
|
console_config=`getprop persist.vendor.console.silent.config`
|
|
case "$console_config" in
|
|
"1")
|
|
echo "Enable console config to $console_config"
|
|
echo 0 > /proc/sys/kernel/printk
|
|
;;
|
|
*)
|
|
echo "Enable console config to $console_config"
|
|
;;
|
|
esac
|
|
|
|
# Parse misc partition path and set property
|
|
misc_link=$(ls -l /dev/block/bootdevice/by-name/misc)
|
|
real_path=${misc_link##*>}
|
|
setprop persist.vendor.mmi.misc_dev_path $real_path
|