summaryrefslogtreecommitdiff
path: root/rootdir
diff options
context:
space:
mode:
authorEthan Chen <intervigil@gmail.com>2020-06-07 15:18:22 -0700
committerNolen Johnson <johnsonnolen@gmail.com>2020-07-14 18:34:36 -0400
commit56d409b951c88dbe0dbbe39cdd5cca3f9137227c (patch)
treec46429a8b5874195a95612977c545316e1930e92 /rootdir
parentf14fb487275ba7376d3b907b887938ed48d57763 (diff)
pro1: Merge post_boot into init.qcom.rc
* Merge post_boot script configuration into init.qcom.rc * Switch to schedutil governor by default Change-Id: I41340c9ce5b71e6ef6085db3938af3359b132bfa
Diffstat (limited to 'rootdir')
-rwxr-xr-xrootdir/etc/init.qcom.post_boot.sh296
-rw-r--r--rootdir/etc/init.qcom.rc163
2 files changed, 124 insertions, 335 deletions
diff --git a/rootdir/etc/init.qcom.post_boot.sh b/rootdir/etc/init.qcom.post_boot.sh
deleted file mode 100755
index 34b26f9..0000000
--- a/rootdir/etc/init.qcom.post_boot.sh
+++ /dev/null
@@ -1,296 +0,0 @@
-#! /vendor/bin/sh
-
-# Copyright (c) 2012-2013, 2016-2018, 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.
-#
-
-target=`getprop ro.board.platform`
-
-function configure_zram_parameters() {
- MemTotalStr=`cat /proc/meminfo | grep MemTotal`
- MemTotal=${MemTotalStr:16:8}
-
- if [ -f /sys/block/zram0/disksize ]; then
- echo 1 > /sys/block/zram0/use_dedup
- # Set Zram disk size=1GB for >=2GB Non-Go targets.
- echo 1073741824 > /sys/block/zram0/disksize
- mkswap /dev/block/zram0
- swapon /dev/block/zram0 -p 32758
- fi
-}
-
-function configure_read_ahead_kb_values() {
- MemTotalStr=`cat /proc/meminfo | grep MemTotal`
- MemTotal=${MemTotalStr:16:8}
-
- # set 512 for >= 4GB targets.
- 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
-}
-
-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 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.
- #
-
- # 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)
- 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
-
- # 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
-
- # Set PPR parameters
- if [ -f /sys/devices/soc0/soc_id ]; then
- soc_id=`cat /sys/devices/soc0/soc_id`
- else
- soc_id=`cat /sys/devices/system/soc/soc0/id`
- fi
-
- # 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
-}
-
-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
-
- # 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
-
-# Post-setup services
-setprop vendor.post_boot.parsed 1
-
-# 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
diff --git a/rootdir/etc/init.qcom.rc b/rootdir/etc/init.qcom.rc
index 5f50997..93f00cd 100644
--- a/rootdir/etc/init.qcom.rc
+++ b/rootdir/etc/init.qcom.rc
@@ -34,19 +34,108 @@ on early-init
write /proc/sys/kernel/sched_boost 1
on init
+ write /sys/module/qpnp_rtc/parameters/poweron_alarm 1
+
# Disable UFS powersaving
write /sys/devices/soc/${ro.boot.bootdevice}/clkscale_enable 0
write /sys/devices/soc/${ro.boot.bootdevice}/clkgate_enable 0
write /sys/module/lpm_levels/parameters/sleep_disabled Y
- write /dev/stune/foreground/schedtune.sched_boost_no_override 1
- write /dev/stune/top-app/schedtune.sched_boost_no_override 1
- write /dev/stune/schedtune.colocate 0
- write /dev/stune/background/schedtune.colocate 0
- write /dev/stune/system-background/schedtune.colocate 0
- write /dev/stune/foreground/schedtune.colocate 0
- write /dev/stune/top-app/schedtune.colocate 1
- write /sys/module/qpnp_rtc/parameters/poweron_alarm 1
+ # Set up schedtune
+ write /dev/stune/foreground/schedtune.prefer_idle 1
+ write /dev/stune/top-app/schedtune.boost 10
+ write /dev/stune/top-app/schedtune.prefer_idle 1
+
+ # disable thermal hotplug for configuration
+ write /sys/module/msm_thermal/core_control/enabled 0
+
+ # bring CPUs online
+ write /sys/devices/system/cpu/cpu0/online 1
+ write /sys/devices/system/cpu/cpu1/online 1
+ write /sys/devices/system/cpu/cpu2/online 1
+ write /sys/devices/system/cpu/cpu3/online 1
+ write /sys/devices/system/cpu/cpu4/online 1
+ write /sys/devices/system/cpu/cpu5/online 1
+ write /sys/devices/system/cpu/cpu6/online 1
+ write /sys/devices/system/cpu/cpu7/online 1
+
+ # configure governor settings for little cluster
+ write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor "schedutil"
+ write /sys/devices/system/cpu/cpufreq/policy0/schedutil/up_rate_limit_us 500
+ write /sys/devices/system/cpu/cpufreq/policy0/schedutil/down_rate_limit_us 20000
+
+ # configure governor settings for big cluster
+ write /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor "schedutil"
+ write /sys/devices/system/cpu/cpufreq/policy4/schedutil/up_rate_limit_us 500
+ write /sys/devices/system/cpu/cpufreq/policy4/schedutil/down_rate_limit_us 20000
+
+ # enable thermal hotplug
+ write /sys/module/msm_thermal/core_control/enabled 1
+
+ # disable retention
+ write /sys/module/lpm_levels/system/pwr/cpu0/ret/idle_enabled N
+ write /sys/module/lpm_levels/system/pwr/cpu1/ret/idle_enabled N
+ write /sys/module/lpm_levels/system/pwr/cpu2/ret/idle_enabled N
+ write /sys/module/lpm_levels/system/pwr/cpu3/ret/idle_enabled N
+ write /sys/module/lpm_levels/system/perf/cpu4/ret/idle_enabled N
+ write /sys/module/lpm_levels/system/perf/cpu5/ret/idle_enabled N
+ write /sys/module/lpm_levels/system/perf/cpu6/ret/idle_enabled N
+ write /sys/module/lpm_levels/system/perf/cpu7/ret/idle_enabled N
+ write /sys/module/lpm_levels/system/pwr/pwr-l2-dynret/idle_enabled N
+ write /sys/module/lpm_levels/system/pwr/pwr-l2-ret/idle_enabled N
+ write /sys/module/lpm_levels/system/perf/perf-l2-dynret/idle_enabled N
+ write /sys/module/lpm_levels/system/perf/perf-l2-ret/idle_enabled N
+
+ # ZRAM setup
+ write /sys/block/zram0/comp_algorithm lz4
+ write /proc/sys/vm/page-cluster 0
+
+ # create necessary cpusets
+ mkdir /dev/cpuset/camera-daemon 0750 cameraserver cameraserver
+ write /dev/cpuset/camera-daemon/cpus 0
+ write /dev/cpuset/camera-daemon/mems 0
+ chown cameraserver cameraserver /dev/cpuset/camera-daemon/tasks
+ chmod 0660 /dev/cpuset/camera-daemon/tasks
+
+ # Enable bus-dcvs
+ write /sys/devices/soc/soc:qcom,cpubw/devfreq/soc:qcom,cpubw/governor bw_hwmon
+ write /sys/devices/soc/soc:qcom,cpubw/devfreq/soc:qcom,cpubw/polling_interval 50
+ write /sys/devices/soc/soc:qcom,cpubw/devfreq/soc:qcom,cpubw/min_freq 1525
+ write /sys/devices/soc/soc:qcom,cpubw/devfreq/soc:qcom,cpubw/bw_hwmon/mbps_zones "3143 5859 11863 13763"
+ write /sys/devices/soc/soc:qcom,cpubw/devfreq/soc:qcom,cpubw/bw_hwmon/sample_ms 4
+ write /sys/devices/soc/soc:qcom,cpubw/devfreq/soc:qcom,cpubw/bw_hwmon/io_percent 34
+ write /sys/devices/soc/soc:qcom,cpubw/devfreq/soc:qcom,cpubw/bw_hwmon/hist_memory 20
+ write /sys/devices/soc/soc:qcom,cpubw/devfreq/soc:qcom,cpubw/bw_hwmon/hyst_length 10
+ write /sys/devices/soc/soc:qcom,cpubw/devfreq/soc:qcom,cpubw/bw_hwmon/low_power_ceil_mbps 0
+ write /sys/devices/soc/soc:qcom,cpubw/devfreq/soc:qcom,cpubw/bw_hwmon/low_power_io_percent 34
+ write /sys/devices/soc/soc:qcom,cpubw/devfreq/soc:qcom,cpubw/bw_hwmon/low_power_delay 20
+ write /sys/devices/soc/soc:qcom,cpubw/devfreq/soc:qcom,cpubw/bw_hwmon/guard_band_mbps 0
+ write /sys/devices/soc/soc:qcom,cpubw/devfreq/soc:qcom,cpubw/bw_hwmon/up_scale 250
+ write /sys/devices/soc/soc:qcom,cpubw/devfreq/soc:qcom,cpubw/bw_hwmon/idle_mbps 1600
+
+ write /sys/devices/soc/soc:qcom,memlat-cpu0/devfreq/soc:qcom,memlat-cpu0/governor mem_latency
+ write /sys/devices/soc/soc:qcom,memlat-cpu0/devfreq/soc:qcom,memlat-cpu0/polling_interval 10
+ write /sys/devices/soc/soc:qcom,memlat-cpu0/devfreq/soc:qcom,memlat-cpu0/mem_latency/ratio_ceil 400
+
+ write /sys/devices/soc/soc:qcom,memlat-cpu0/devfreq/soc:qcom,memlat-cpu4/governor mem_latency
+ write /sys/devices/soc/soc:qcom,memlat-cpu0/devfreq/soc:qcom,memlat-cpu4/polling_interval 10
+ write /sys/devices/soc/soc:qcom,memlat-cpu0/devfreq/soc:qcom,memlat-cpu4/mem_latency/ratio_ceil 400
+
+ write /sys/devices/soc/soc:qcom,mincpubw/devfreq/soc:qcom,mincpubw/governor cpufreq
+
+ # Setup permission for powerHAL
+ chown system system /sys/devices/soc/soc:qcom,cpubw/devfreq/soc:qcom,cpubw/bw_hwmon/hyst_trigger_count
+ chown system system /sys/devices/soc/soc:qcom,cpubw/devfreq/soc:qcom,cpubw/bw_hwmon/hist_memory
+ chown system system /sys/devices/soc/soc:qcom,cpubw/devfreq/soc:qcom,cpubw/bw_hwmon/hyst_length
+
+ # Setup all the sub-system as related
+ write /sys/bus/msm_subsys/devices/subsys0/restart_level RELATED
+ write /sys/bus/msm_subsys/devices/subsys1/restart_level RELATED
+ write /sys/bus/msm_subsys/devices/subsys2/restart_level RELATED
+ write /sys/bus/msm_subsys/devices/subsys3/restart_level RELATED
+ write /sys/bus/msm_subsys/devices/subsys4/restart_level RELATED
+ write /sys/bus/msm_subsys/devices/subsys5/restart_level RELATED
+ write /sys/bus/msm_subsys/devices/subsys6/restart_level RELATED
on fs
wait /dev/block/platform/soc/1da4000.ufshc
@@ -173,6 +262,18 @@ on post-fs-data
chown radio radio /data/vendor/radio/db_check_done
chmod 0660 /data/vendor/radio/db_check_done
+ # 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
+
+ # Setup permission for powerHAL
+ chown system system /dev/stune/top-app/schedtune.boost
+ chown system system /dev/cpu_dma_latency
+ chown system system /sys/class/kgsl/kgsl-3d0/devfreq/min_freq
+ chown system system /sys/class/kgsl/kgsl-3d0/devfreq/max_freq
+ chown system system /sys/class/devfreq/soc:qcom,gpubw/min_freq
+ chown system system /sys/devices/soc/soc:qcom,cpubw/devfreq/soc:qcom,cpubw/min_freq
+
on early-boot
# set RLIMIT_MEMLOCK to 64MB
setrlimit 8 67108864 67108864
@@ -257,26 +358,6 @@ on boot
chown wifi wifi /sys/kernel/boot_wlan/boot_wlan
chown wifi wifi /sys/module/wlan/parameters/fwpath
- write /dev/cpuset/top-app/cpus 0-3
- write /dev/cpuset/foreground/cpus 0-3
- write /dev/cpuset/foreground/boost/cpus 0-3
- write /dev/cpuset/background/cpus 0-3
- write /dev/cpuset/system-background/cpus 0-3
- write /dev/cpuset/top-app/cpus 0-7
- write /dev/cpuset/foreground/cpus 0-7
- write /dev/cpuset/foreground/boost/cpus 0-7
- write /dev/cpuset/background/cpus 0-7
- write /dev/cpuset/system-background/cpus 0-7
-
- # Add a cpuset for the camera daemon
- # We want all cores for camera
- mkdir /dev/cpuset/camera-daemon
- write /dev/cpuset/camera-daemon/cpus 0-3
- write /dev/cpuset/camera-daemon/mems 0
- chown cameraserver cameraserver /dev/cpuset/camera-daemon
- chown cameraserver cameraserver /dev/cpuset/camera-daemon/tasks
- chmod 0660 /dev/cpuset/camera-daemon/tasks
-
# Keyboard
chown system system /sys/devices/soc/c17a000.i2c/i2c-6/6-0058/layout
chmod 0660 /sys/devices/soc/c17a000.i2c/i2c-6/6-0058/layout
@@ -295,7 +376,6 @@ on boot
on charger
load_system_props
- start qcom-post-boot
on property:sys.boot_completed=1
setprop sys.io.scheduler bfq
@@ -305,10 +385,25 @@ on property:sys.boot_completed=1
write /sys/devices/soc/${ro.boot.bootdevice}/clkgate_enable 1
write /sys/module/lpm_levels/parameters/sleep_disabled N
+ write /dev/cpuset/top-app/cpus 0-7
+ write /dev/cpuset/background/cpus 0-1
+ write /dev/cpuset/system-background/cpus 0-3
+ write /dev/cpuset/camera-daemon/cpus 0-3
+
+ # 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
+ # Let kernel know our image version/variant/crm_version
+ write /sys/devices/soc0/select_image 10
+ write /sys/devices/soc0/image_version "10:${ro.build.id}:${ro.build.version.incremental}"
+ write /sys/devices/soc0/image_variant "${ro.product.name}-${ro.build.type}"
+ write /sys/devices/soc0/image_crm_version "${ro.build.version.codename}"
+
write /dev/kmsg "Boot completed "
# Services start here
@@ -341,16 +436,6 @@ service init-radio-sh /vendor/bin/init.radio.sh
group root system radio
oneshot
-service qcom-post-boot /vendor/bin/init.qcom.post_boot.sh
- class late_start
- user root
- group root system wakelock graphics
- disabled
- oneshot
-
-on property:sys.boot_completed=1
- start qcom-post-boot
-
service vendor.adsprpcd /vendor/bin/adsprpcd
class main
user media