zippo: rootdir: init performance related config in a dedicated init script

* Also cleaning up init.qcom.post_boot.sh

Signed-off-by: Lucchetto <lucchetto.tie@live.com>
Change-Id: Ib54b0e4feffbbac0ccb34dd5eecaaa302c7c8aa6
This commit is contained in:
Lucchetto
2020-08-10 17:39:50 +02:00
committed by Marc Bourgoin
parent b36ab61edc
commit 26af3edd0a
5 changed files with 79 additions and 122 deletions

View File

@@ -165,6 +165,7 @@ PRODUCT_PACKAGES += \
init.qcom.usb.rc \
init.recovery.qcom.rc \
init.target.rc \
init.qcom.performance.rc \
ueventd.rc
# Device-specific settings

View File

@@ -200,6 +200,14 @@ LOCAL_SRC_FILES := etc/init.target.rc
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC)/init/hw
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE := init.qcom.performance.rc
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := ETC
LOCAL_SRC_FILES := etc/init.qcom.performance.rc
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC)/init/hw
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE := ueventd.rc
LOCAL_MODULE_TAGS := optional

View File

@@ -62,31 +62,6 @@ function configure_zram_parameters() {
fi
}
function configure_read_ahead_kb_values() {
MemTotalStr=`cat /proc/meminfo | grep MemTotal`
MemTotal=${MemTotalStr:16:8}
# Set 128 for <= 3GB &
# set 512 for >= 4GB targets.
if [ $MemTotal -le 3145728 ]; then
echo 128 > /sys/block/mmcblk0/bdi/read_ahead_kb
echo 128 > /sys/block/mmcblk0/queue/read_ahead_kb
echo 128 > /sys/block/mmcblk0rpmb/bdi/read_ahead_kb
echo 128 > /sys/block/mmcblk0rpmb/queue/read_ahead_kb
echo 128 > /sys/block/dm-0/queue/read_ahead_kb
echo 128 > /sys/block/dm-1/queue/read_ahead_kb
echo 128 > /sys/block/dm-2/queue/read_ahead_kb
else
echo 512 > /sys/block/mmcblk0/bdi/read_ahead_kb
echo 512 > /sys/block/mmcblk0/queue/read_ahead_kb
echo 512 > /sys/block/mmcblk0rpmb/bdi/read_ahead_kb
echo 512 > /sys/block/mmcblk0rpmb/queue/read_ahead_kb
echo 512 > /sys/block/dm-0/queue/read_ahead_kb
echo 512 > /sys/block/dm-1/queue/read_ahead_kb
echo 512 > /sys/block/dm-2/queue/read_ahead_kb
fi
}
function enable_swap() {
MemTotalStr=`cat /proc/meminfo | grep MemTotal`
MemTotal=${MemTotalStr:16:8}
@@ -135,7 +110,6 @@ low_ram=`getprop ro.config.low_ram`
if [ "$ProductName" == "msmnile" ] || [ "$ProductName" == "kona" ] ; then
# Enable ZRAM
configure_zram_parameters
configure_read_ahead_kb_values
echo 0 > /proc/sys/vm/page-cluster
echo 100 > /proc/sys/vm/swappiness
else
@@ -235,65 +209,12 @@ else
configure_zram_parameters
configure_read_ahead_kb_values
enable_swap
fi
}
function enable_memory_features()
{
MemTotalStr=`cat /proc/meminfo | grep MemTotal`
MemTotal=${MemTotalStr:16:8}
if [ $MemTotal -le 2097152 ]; then
#Enable B service adj transition for 2GB or less memory
setprop ro.vendor.qti.sys.fw.bservice_enable true
setprop ro.vendor.qti.sys.fw.bservice_limit 5
setprop ro.vendor.qti.sys.fw.bservice_age 5000
#Enable Delay Service Restart
setprop ro.vendor.qti.am.reschedule_service true
fi
}
function start_hbtp()
{
# Start the Host based Touch processing but not in the power off mode.
bootmode=`getprop ro.bootmode`
if [ "charger" != $bootmode ]; then
start vendor.hbtp
fi
}
case "$target" in
"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
@@ -305,18 +226,6 @@ case "$target" in
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
# configure governor settings for gold cluster
echo "schedutil" > /sys/devices/system/cpu/cpufreq/policy4/scaling_governor
# configure governor settings for gold+ cluster
echo "schedutil" > /sys/devices/system/cpu/cpufreq/policy7/scaling_governor
# 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
@@ -417,33 +326,10 @@ case "$target" in
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
case "$hw_platform" in
"MTP" | "Surf" | "RCM" )
# Start Host based Touch processing
case "$platform_subtype_id" in
"0" | "1" | "2" | "4")
start_hbtp
;;
esac
;;
"HDK" )
if [ -d /sys/kernel/hbtpsensor ] ; then
start_hbtp
fi
;;
esac
echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
configure_memory_parameters
;;
esac

View File

@@ -0,0 +1,69 @@
on early-init
# Disable EAS
write /sys/kernel/debug/sched_features NO_ENERGY_AWARE
on init
# Boot time fs tuning
write /sys/block/sda/queue/iosched/slice_idle 0
write /sys/block/sda/queue/read_ahead_kb 2048
write /sys/block/sda/queue/nr_requests 256
write /sys/block/sde/queue/scheduler cfq
write /sys/block/sde/queue/iosched/slice_idle 0
write /sys/block/sde/queue/read_ahead_kb 2048
write /sys/block/sde/queue/nr_requests 256
write /sys/block/sdf/queue/scheduler cfq
write /sys/block/sdf/queue/iosched/slice_idle 0
write /sys/block/sdf/queue/read_ahead_kb 2048
write /sys/block/sdf/queue/nr_requests 256
write /sys/block/dm-0/queue/read_ahead_kb 2048
write /sys/block/dm-1/queue/read_ahead_kb 2048
write /sys/block/dm-2/queue/read_ahead_kb 2048
write /sys/block/dm-3/queue/read_ahead_kb 2048
write /sys/block/dm-4/queue/read_ahead_kb 2048
write /sys/block/dm-5/queue/read_ahead_kb 2048
write /sys/block/dm-6/queue/read_ahead_kb 2048
# Disable UFS powersaving
write /sys/devices/platform/soc/${ro.boot.bootdevice}/clkgate_enable 0
# Disable powersaving
write /sys/module/lpm_levels/parameters/sleep_disabled 1
# configure governor settings for little cluster
write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor schedutil
# configure governor settings for big cluster
write /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor schedutil
# configure governor settings for big big CPU
write /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor schedutil
on property:sys.boot_completed=1
# Runtime fs tuning
write /sys/block/sda/queue/read_ahead_kb 128
write /sys/block/sda/queue/nr_requests 128
write /sys/block/sde/queue/read_ahead_kb 128
write /sys/block/sde/queue/nr_requests 128
write /sys/block/sdf/queue/read_ahead_kb 128
write /sys/block/sdf/queue/nr_requests 128
write /sys/block/dm-0/queue/read_ahead_kb 128
write /sys/block/dm-1/queue/read_ahead_kb 128
write /sys/block/dm-2/queue/read_ahead_kb 128
write /sys/block/dm-3/queue/read_ahead_kb 128
write /sys/block/dm-4/queue/read_ahead_kb 128
write /sys/block/dm-5/queue/read_ahead_kb 128
write /sys/block/dm-6/queue/read_ahead_kb 128
write /sys/block/dm-7/queue/read_ahead_kb 128
# Enable powersaving
write /sys/module/lpm_levels/parameters/sleep_disabled 0
# Enable UFS powersaving
write /sys/devices/platform/soc/${ro.boot.bootdevice}/clkgate_enable 1
# Enable EAS
write /sys/kernel/debug/sched_features ENERGY_AWARE
#Enable PowerHAL hint processing
setprop vendor.powerhal.init 1

View File

@@ -33,6 +33,7 @@ import /vendor/etc/init/hw/init.qcom.factory.rc
import /vendor/etc/init/hw/init.lenovo.rc
import /vendor/etc/init/hw/init.lenovo.usb.configfs.rc
import /vendor/etc/init/hw/init.lenovo.common.rc
import /vendor/etc/init/hw/init.qcom.performance.rc
on early-init
mount debugfs debugfs /sys/kernel/debug
@@ -393,11 +394,6 @@ on post-fs-data
mkdir /data/vendor/swap 0770 root system
chmod 2770 /data/vendor/swap
# set aggressive read ahead for dm-0 and dm-1 during boot up
write /sys/block/dm-0/queue/read_ahead_kb 2048
write /sys/block/dm-1/queue/read_ahead_kb 2048
write /sys/block/dm-2/queue/read_ahead_kb 2048
# Create vpp directory
mkdir /data/vendor/vpp 0770 media media
@@ -485,9 +481,6 @@ on property:persist.vendor.sys.rawdump_copy=0
on property:sys.boot_completed=1
write /dev/kmsg "Boot completed "
#Reset read ahead for dm-0 and dm-1 to 512kb
write /sys/block/dm-0/queue/read_ahead_kb 512
write /sys/block/dm-1/queue/read_ahead_kb 512
#WDSP FW boot sysfs node used by STHAL
chown media audio /sys/kernel/wdsp0/boot
chown media audio /sys/kernel/wcd_cpe0/fw_name