From dc28234ecd7b2e704d29e71b69f019e9eb42484d Mon Sep 17 00:00:00 2001 From: Michael Bestas Date: Fri, 13 Jun 2025 20:49:18 +0300 Subject: [PATCH] gs-common: Update init scripts from BP2A Change-Id: Ibb8d3715ec6cb9ebb5d89e116374d468dfcad826 --- camera/libg3a_gaf.rc | 2 +- insmod/insmod.sh | 10 +++++- performance/init.pixel-perf.rc | 64 ++++++++++++++++++++++++++++++++-- storage/init.storage.rc | 3 ++ touch/predump/dump_touch.sh | 21 ++++++----- touch/predump/predump_touch.sh | 9 +++-- 6 files changed, 94 insertions(+), 15 deletions(-) diff --git a/camera/libg3a_gaf.rc b/camera/libg3a_gaf.rc index 214b467..4b2234c 100644 --- a/camera/libg3a_gaf.rc +++ b/camera/libg3a_gaf.rc @@ -1,6 +1,6 @@ # override default log levels. on boot - setprop log.tag.GAF E + setprop log.tag.GAF I # backward-compatible system props. on property:persist.vendor.camera.af.debug_level=0 diff --git a/insmod/insmod.sh b/insmod/insmod.sh index 270fa93..0f85273 100755 --- a/insmod/insmod.sh +++ b/insmod/insmod.sh @@ -11,6 +11,12 @@ modules_dir= system_modules_dir= vendor_modules_dir= +# This directory ONLY contains the 16k modules loaded in 16k mode +# during the Second Boot Stage. This directory is not present in the +# _16k targets. +mode_16k_modules_dir=/vendor/lib/modules/16k-mode +pagesize=$(getconf PAGE_SIZE) + for dir in system vendor; do for f in /${dir}/lib/modules/*/modules.dep /${dir}/lib/modules/modules.dep; do if [[ -f "$f" ]]; then @@ -92,7 +98,9 @@ if [ -f $cfg_file ]; then modules_dir=${vendor_modules_dir} arg="--all=${vendor_modules_dir}/modules.load" ;; esac - if [[ -d "${modules_dir}" ]]; then + if [[ "${pagesize}" == "16384" && -d "${mode_16k_modules_dir}" ]]; then + insmod ${mode_16k_modules_dir}/$arg + elif [[ -d "${modules_dir}" ]]; then modprobe -a -d "${modules_dir}" $arg fi ;; diff --git a/performance/init.pixel-perf.rc b/performance/init.pixel-perf.rc index 0d555ce..06012ca 100644 --- a/performance/init.pixel-perf.rc +++ b/performance/init.pixel-perf.rc @@ -96,6 +96,11 @@ on init chown system system /proc/vendor_sched/sched_qos/prefer_idle_clear chown system system /proc/vendor_sched/sched_qos/rampup_multiplier_set chown system system /proc/vendor_sched/sched_qos/rampup_multiplier_clear + chown system system /proc/vendor_sched/sched_qos/sched_qos_none + chown system system /proc/vendor_sched/sched_qos/sched_qos_power_efficiency + chown system system /proc/vendor_sched/sched_qos/sched_qos_sensitive_extreme + chown system system /proc/vendor_sched/sched_qos/sched_qos_sensitive_high + chown system system /proc/vendor_sched/sched_qos/sched_qos_sensitive_standard chmod 0220 /proc/vendor_sched/sched_qos/adpf_set chmod 0220 /proc/vendor_sched/sched_qos/adpf_clear @@ -113,6 +118,11 @@ on init chmod 0220 /proc/vendor_sched/sched_qos/prefer_idle_clear chmod 0220 /proc/vendor_sched/sched_qos/rampup_multiplier_set chmod 0220 /proc/vendor_sched/sched_qos/rampup_multiplier_clear + chmod 0220 /proc/vendor_sched/sched_qos/sched_qos_none + chmod 0220 /proc/vendor_sched/sched_qos/sched_qos_power_efficiency + chmod 0220 /proc/vendor_sched/sched_qos/sched_qos_sensitive_extreme + chmod 0220 /proc/vendor_sched/sched_qos/sched_qos_sensitive_high + chmod 0220 /proc/vendor_sched/sched_qos/sched_qos_sensitive_standard # Enable sched_qos for some groups write /proc/vendor_sched/groups/ta/qos_adpf_enable 1 @@ -141,20 +151,52 @@ on init write /proc/vendor_sched/groups/fg_wi/qos_rampup_multiplier_enable 1 write /proc/vendor_sched/groups/cam/qos_adpf_enable 1 write /proc/vendor_sched/groups/cam/qos_auto_uclamp_max_enable 1 + write /proc/vendor_sched/groups/cam/qos_boost_prio_enable 1 + write /proc/vendor_sched/groups/cam/qos_preempt_wakeup_enable 1 write /proc/vendor_sched/groups/cam/qos_prefer_fit_enable 1 write /proc/vendor_sched/groups/cam/qos_prefer_high_cap_enable 1 write /proc/vendor_sched/groups/cam/qos_prefer_idle_enable 1 write /proc/vendor_sched/groups/cam/qos_rampup_multiplier_enable 1 write /proc/vendor_sched/groups/cam_power/qos_adpf_enable 1 write /proc/vendor_sched/groups/cam_power/qos_auto_uclamp_max_enable 1 + write /proc/vendor_sched/groups/cam_power/qos_boost_prio_enable 1 + write /proc/vendor_sched/groups/cam_power/qos_preempt_wakeup_enable 1 write /proc/vendor_sched/groups/cam_power/qos_prefer_fit_enable 1 write /proc/vendor_sched/groups/cam_power/qos_prefer_high_cap_enable 1 write /proc/vendor_sched/groups/cam_power/qos_prefer_idle_enable 1 write /proc/vendor_sched/groups/cam_power/qos_rampup_multiplier_enable 1 write /proc/vendor_sched/groups/rt/qos_adpf_enable 1 + write /proc/vendor_sched/groups/rt/qos_auto_uclamp_max_enable 1 + write /proc/vendor_sched/groups/rt/qos_boost_prio_enable 1 + write /proc/vendor_sched/groups/rt/qos_preempt_wakeup_enable 1 + write /proc/vendor_sched/groups/rt/qos_prefer_fit_enable 1 + write /proc/vendor_sched/groups/rt/qos_prefer_high_cap_enable 1 + write /proc/vendor_sched/groups/rt/qos_prefer_idle_enable 1 write /proc/vendor_sched/groups/rt/qos_rampup_multiplier_enable 1 write /proc/vendor_sched/groups/sf/qos_adpf_enable 1 + write /proc/vendor_sched/groups/sf/qos_auto_uclamp_max_enable 1 + write /proc/vendor_sched/groups/sf/qos_boost_prio_enable 1 + write /proc/vendor_sched/groups/sf/qos_preempt_wakeup_enable 1 + write /proc/vendor_sched/groups/sf/qos_prefer_fit_enable 1 + write /proc/vendor_sched/groups/sf/qos_prefer_high_cap_enable 1 + write /proc/vendor_sched/groups/sf/qos_prefer_idle_enable 1 write /proc/vendor_sched/groups/sf/qos_rampup_multiplier_enable 1 + write /proc/vendor_sched/groups/sys/qos_adpf_enable 1 + write /proc/vendor_sched/groups/sys/qos_auto_uclamp_max_enable 1 + write /proc/vendor_sched/groups/sys/qos_boost_prio_enable 1 + write /proc/vendor_sched/groups/sys/qos_preempt_wakeup_enable 1 + write /proc/vendor_sched/groups/sys/qos_prefer_fit_enable 1 + write /proc/vendor_sched/groups/sys/qos_prefer_high_cap_enable 1 + write /proc/vendor_sched/groups/sys/qos_prefer_idle_enable 1 + write /proc/vendor_sched/groups/sys/qos_rampup_multiplier_enable 1 + write /proc/vendor_sched/groups/nnapi/qos_adpf_enable 1 + write /proc/vendor_sched/groups/nnapi/qos_auto_uclamp_max_enable 1 + write /proc/vendor_sched/groups/nnapi/qos_boost_prio_enable 1 + write /proc/vendor_sched/groups/nnapi/qos_preempt_wakeup_enable 1 + write /proc/vendor_sched/groups/nnapi/qos_prefer_fit_enable 1 + write /proc/vendor_sched/groups/nnapi/qos_prefer_high_cap_enable 1 + write /proc/vendor_sched/groups/nnapi/qos_prefer_idle_enable 1 + write /proc/vendor_sched/groups/nnapi/qos_rampup_multiplier_enable 1 # cpufreq governor setting write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor sched_pixel @@ -192,7 +234,7 @@ on init write /proc/vendor_sched/groups/cam/rampup_multiplier 1 write /proc/vendor_sched/groups/cam_power/rampup_multiplier 1 write /proc/vendor_sched/groups/dex2oat/rampup_multiplier 0 - write /proc/vendor_sched/groups/fg/rampup_multiplier 1 + write /proc/vendor_sched/groups/fg/rampup_multiplier 0 write /proc/vendor_sched/groups/fg_wi/rampup_multiplier 1 write /proc/vendor_sched/groups/nnapi/rampup_multiplier 0 write /proc/vendor_sched/groups/ota/rampup_multiplier 0 @@ -208,7 +250,7 @@ on init write /proc/vendor_sched/groups/cam/disable_util_est 0 write /proc/vendor_sched/groups/cam_power/disable_util_est 0 write /proc/vendor_sched/groups/dex2oat/disable_util_est 1 - write /proc/vendor_sched/groups/fg/disable_util_est 0 + write /proc/vendor_sched/groups/fg/disable_util_est 1 write /proc/vendor_sched/groups/fg_wi/disable_util_est 0 write /proc/vendor_sched/groups/nnapi/disable_util_est 1 write /proc/vendor_sched/groups/ota/disable_util_est 1 @@ -218,6 +260,21 @@ on init write /proc/vendor_sched/groups/sys_bg/disable_util_est 1 write /proc/vendor_sched/groups/ta/disable_util_est 0 + # Default sched_batch setup + write /proc/vendor_sched/groups/bg/use_batch_policy 1 + write /proc/vendor_sched/groups/cam/use_batch_policy 0 + write /proc/vendor_sched/groups/cam_power/use_batch_policy 0 + write /proc/vendor_sched/groups/dex2oat/use_batch_policy 0 + write /proc/vendor_sched/groups/fg/use_batch_policy 0 + write /proc/vendor_sched/groups/fg_wi/use_batch_policy 0 + write /proc/vendor_sched/groups/nnapi/use_batch_policy 0 + write /proc/vendor_sched/groups/ota/use_batch_policy 0 + write /proc/vendor_sched/groups/rt/use_batch_policy 0 + write /proc/vendor_sched/groups/sf/use_batch_policy 0 + write /proc/vendor_sched/groups/sys/use_batch_policy 0 + write /proc/vendor_sched/groups/sys_bg/use_batch_policy 1 + write /proc/vendor_sched/groups/ta/use_batch_policy 0 + # RT uclamp setting write /proc/sys/kernel/sched_util_clamp_min_rt_default 0 @@ -268,3 +325,6 @@ on property:sys.boot_completed=1 # Set priority task name and boost value write /proc/vendor_sched/priority_task_name "ExoPlayer:Place" write /proc/vendor_sched/priority_task_boost_value 742 + + write /proc/vendor_sched/boost_at_fork_task_name "_zygote" + write /proc/vendor_sched/boost_at_fork_value 768 diff --git a/storage/init.storage.rc b/storage/init.storage.rc index 89c1a9c..a7edf23 100644 --- a/storage/init.storage.rc +++ b/storage/init.storage.rc @@ -50,6 +50,9 @@ on property:sys.boot_completed=1 chown system system /dev/sys/block/bootdevice/manual_gc write /dev/sys/block/bootdevice/manual_gc 0 + # Power HAL access + chmod 0664 /dev/sys/block/bootdevice/manual_gc + # Pixelstats chown system system /dev/sys/block/bootdevice/slowio_read_cnt chown system system /dev/sys/block/bootdevice/slowio_sync_cnt diff --git a/touch/predump/dump_touch.sh b/touch/predump/dump_touch.sh index 889c283..3a0f431 100644 --- a/touch/predump/dump_touch.sh +++ b/touch/predump/dump_touch.sh @@ -4,22 +4,27 @@ DIR=/data/vendor/dump_touch LOCKFILE="$DIR"/dumping LOGFILE="$DIR"/dump.log -if [ ! -f $LOCKFILE ] +if [ ! -f $LOCKFILE ] || [ ! -f $LOGFILE ] || [ "$(cat $LOCKFILE)" = 0 ] then echo "-----------------------------------------------------" - echo "Error : PreDump Touch Logs couldn't be found." + echo "Info : Touch debug data not found! Backfilling..." echo "-----------------------------------------------------" - exit 2 + /vendor/bin/predump_touch.sh > /dev/null 2>&1 fi state=$(cat $LOCKFILE) if [ "$state" != 2 ] then - echo "Unexpected state! Expected 2 but found ${state}" >> $LOGFILE + echo "Unexpected state! Expected 2 but found ${state}" fi -cat $LOGFILE -echo "" > $LOGFILE - -echo 0 > $LOCKFILE +if [ -f $LOGFILE ] +then + cat $LOGFILE + echo "" > $LOGFILE +fi +if [ -f $LOCKFILE ] +then + echo 0 > $LOCKFILE +fi diff --git a/touch/predump/predump_touch.sh b/touch/predump/predump_touch.sh index de2bdc4..2b4c488 100644 --- a/touch/predump/predump_touch.sh +++ b/touch/predump/predump_touch.sh @@ -18,10 +18,13 @@ then chmod 660 $LOGFILE fi -echo $(date) >> $LOGFILE +date >> $LOGFILE state=$(cat $LOCKFILE) -if [ "$state" != 0 ] +if [ "$state" = 2 ] +then + echo "Warning : Pending predump data detected (state=${state})" >> $LOGFILE +elif [ "$state" != 0 ] then echo "Unexpected state! Expected 0 but found ${state}" >> $LOGFILE fi @@ -33,7 +36,7 @@ do echo "----------------------------------" >> $LOGFILE echo "$entry" >> $LOGFILE echo "----------------------------------" >> $LOGFILE - sh $entry >> $LOGFILE + sh "$entry" >> $LOGFILE 2>&1 echo "----------------------------------" >> $LOGFILE done