diff --git a/configs/ueventd.rc b/configs/ueventd.rc index 6d55c57..6023dbe 100644 --- a/configs/ueventd.rc +++ b/configs/ueventd.rc @@ -154,6 +154,7 @@ firmware_directories /vendor/firmware_mnt/image/ /dev/adsprpc-smd-secure 0644 system system /dev/system_health_monitor 0644 radio system /dev/mdss_rotator 0664 system system +/dev/cpu_dma_latency 0660 system system #QDSS /dev/byte-cntr 0660 system oem_2902 diff --git a/rootdir/bin/init.qcom.post_boot.sh b/rootdir/bin/init.qcom.post_boot.sh index d752e4a..c240a69 100644 --- a/rootdir/bin/init.qcom.post_boot.sh +++ b/rootdir/bin/init.qcom.post_boot.sh @@ -144,53 +144,15 @@ function configure_memory_parameters() { #Apply settings for 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 + echo 500 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/up_rate_limit_us + echo 20000 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/down_rate_limit_us # 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 - - # Enable conservative pl - echo 1 > /proc/sys/kernel/sched_conservative_pl - - echo "0:1324800" > /sys/module/cpu_boost/parameters/input_boost_freq - echo 120 > /sys/module/cpu_boost/parameters/input_boost_ms - echo "0:0 1:0 2:0 3:0 4:1804800 5:0 6:0 7:2208000" > /sys/module/cpu_boost/parameters/powerkey_input_boost_freq - echo 400 > /sys/module/cpu_boost/parameters/powerkey_input_boost_ms + echo 500 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/up_rate_limit_us + echo 20000 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/down_rate_limit_us # Set Memory parameters configure_memory_parameters @@ -277,9 +239,6 @@ function configure_memory_parameters() { echo 0-2,4-7 > /dev/cpuset/foreground/cpus echo 0-7 > /dev/cpuset/top-app/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 diff --git a/rootdir/etc/init.qcom.rc b/rootdir/etc/init.qcom.rc index 7985ffe..6dc18ba 100644 --- a/rootdir/etc/init.qcom.rc +++ b/rootdir/etc/init.qcom.rc @@ -30,6 +30,8 @@ import /vendor/etc/init/hw/init.target.rc import /vendor/etc/init/hw/init.device.rc on early-init + # Disable EAS + write /proc/sys/kernel/sched_energy_aware 0 mount debugfs debugfs /sys/kernel/debug chmod 0755 /sys/kernel/debug @@ -518,6 +520,9 @@ on property:sys.boot_completed=1 write /sys/class/drm/card0/device/idle_encoder_mask 1 write /sys/class/drm/card0/device/idle_timeout_ms 100 + # Enable EAS + write /proc/sys/kernel/sched_energy_aware 1 + # corefile limit on property:persist.debug.trace=1 mkdir /data/core 0777 root root @@ -1002,6 +1007,10 @@ service esepmdaemon /system/vendor/bin/esepmdaemon on charger setprop persist.sys.usb.config mass_storage load_system_props + + # Enable EAS + write /proc/sys/kernel/sched_energy_aware 1 + start qcom-post-boot #add poweroffhandler diff --git a/rootdir/etc/init.target.rc b/rootdir/etc/init.target.rc index 571bcf4..3d452fb 100644 --- a/rootdir/etc/init.target.rc +++ b/rootdir/etc/init.target.rc @@ -29,20 +29,46 @@ on early-init exec u:r:vendor_modprobe:s0 -- /vendor/bin/modprobe -a -d /vendor/lib/modules q6_pdr_dlkm q6_notifier_dlkm snd_event_dlkm apr_dlkm adsp_loader_dlkm q6_dlkm native_dlkm usf_dlkm pinctrl_lpi_dlkm swr_dlkm platform_dlkm hdmi_dlkm stub_dlkm wcd_core_dlkm wsa881x_dlkm bolero_cdc_dlkm wsa_macro_dlkm va_macro_dlkm rx_macro_dlkm tx_macro_dlkm wcd937x_dlkm wcd937x_slave_dlkm wcd938x_dlkm wcd938x_slave_dlkm tas2562_dlkm machine_dlkm - write /proc/sys/kernel/sched_boost 1 mkdir /dsp 0771 media media mkdir /firmware 0771 system system mkdir /bt_firmware 0771 system system symlink /data/tombstones /tombstones on init - 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 + # set default schedTune value for foreground/top-app + 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 + + # Setup permission for Power HAL + chown system system /dev/stune/top-app/schedtune.boost + chown system system /dev/stune/top-app/schedtune.prefer_high_cap + chown system system /sys/class/kgsl/kgsl-3d0/max_pwrlevel + chown system system /sys/class/kgsl/kgsl-3d0/min_pwrlevel + chown system system /sys/class/kgsl/kgsl-3d0/force_clk_on + chown system system /sys/class/kgsl/kgsl-3d0/force_rail_on + chown system system /sys/class/kgsl/kgsl-3d0/idle_timer + chown system system /sys/class/devfreq/soc:qcom,cpu-cpu-llcc-bw/bw_hwmon/hist_memory + chown system system /sys/class/devfreq/soc:qcom,cpu-cpu-llcc-bw/bw_hwmon/hyst_length + chown system system /sys/class/devfreq/soc:qcom,cpu-cpu-llcc-bw/bw_hwmon/hyst_trigger_count + chown system system /sys/class/devfreq/soc:qcom,cpu-cpu-llcc-bw/min_freq + chown system system /sys/class/devfreq/soc:qcom,cpu0-cpu-l3-lat/min_freq + chown system system /sys/class/devfreq/soc:qcom,cpu6-cpu-l3-lat/min_freq + + chmod 0664 /dev/stune/top-app/schedtune.boost + chmod 0664 /dev/stune/top-app/schedtune.prefer_high_cap + chmod 0664 /sys/class/kgsl/kgsl-3d0/max_pwrlevel + chmod 0664 /sys/class/kgsl/kgsl-3d0/min_pwrlevel + chmod 0664 /sys/class/kgsl/kgsl-3d0/force_clk_on + chmod 0664 /sys/class/kgsl/kgsl-3d0/force_rail_on + chmod 0664 /sys/class/kgsl/kgsl-3d0/idle_timer + chmod 0664 /sys/class/devfreq/soc:qcom,cpu-cpu-llcc-bw/bw_hwmon/hist_memory + chmod 0664 /sys/class/devfreq/soc:qcom,cpu-cpu-llcc-bw/bw_hwmon/hyst_length + chmod 0664 /sys/class/devfreq/soc:qcom,cpu-cpu-llcc-bw/bw_hwmon/hyst_trigger_count + chmod 0664 /sys/class/devfreq/soc:qcom,cpu-cpu-llcc-bw/min_freq + chmod 0664 /sys/class/devfreq/soc:qcom,cpu0-cpu-l3-lat/min_freq + chmod 0664 /sys/class/devfreq/soc:qcom,cpu6-cpu-l3-lat/min_freq + write /sys/module/qpnp_rtc/parameters/poweron_alarm 1 wait /dev/block/platform/soc/${ro.boot.bootdevice} symlink /dev/block/platform/soc/${ro.boot.bootdevice} /dev/block/bootdevice