diff options
Diffstat (limited to 'rootdir/init.qcom.power.rc')
| -rw-r--r-- | rootdir/init.qcom.power.rc | 166 |
1 files changed, 166 insertions, 0 deletions
diff --git a/rootdir/init.qcom.power.rc b/rootdir/init.qcom.power.rc new file mode 100644 index 0000000..21035b7 --- /dev/null +++ b/rootdir/init.qcom.power.rc @@ -0,0 +1,166 @@ +on boot + # add a cpuset for the camera daemon + # we want all the little cores for camera + mkdir /dev/cpuset/camera-daemon + chown system system /dev/cpuset/camera-daemon + chown system system /dev/cpuset/camera-daemon/tasks + chmod 0664 /dev/cpuset/camera-daemon/tasks + + # update foreground cpuset now that processors are up + # reserve CPU 4 for the top app + write /dev/cpuset/foreground/cpus 0-3,5-7 + write /dev/cpuset/foreground/boost/cpus 0-3 + write /dev/cpuset/background/cpus 4 + write /dev/cpuset/system-background/cpus 5-7 + write /dev/cpuset/top-app/cpus 0-7 + write /dev/cpuset/camera-daemon/cpus 4-7 + +on enable-low-power + # HMP scheduler settings + write /proc/sys/kernel/sched_window_stats_policy 3 + write /proc/sys/kernel/sched_ravg_hist_size 3 + write /proc/sys/kernel/sched_ravg_window 20000000 + + # HMP Task packing settings + write /proc/sys/kernel/sched_small_task 20 + write /sys/devices/system/cpu/cpu0/sched_mostly_idle_load 30 + write /sys/devices/system/cpu/cpu1/sched_mostly_idle_load 30 + write /sys/devices/system/cpu/cpu2/sched_mostly_idle_load 30 + write /sys/devices/system/cpu/cpu3/sched_mostly_idle_load 30 + write /sys/devices/system/cpu/cpu4/sched_mostly_idle_load 30 + write /sys/devices/system/cpu/cpu5/sched_mostly_idle_load 30 + write /sys/devices/system/cpu/cpu6/sched_mostly_idle_load 30 + write /sys/devices/system/cpu/cpu7/sched_mostly_idle_load 30 + + write /sys/devices/system/cpu/cpu0/sched_mostly_idle_nr_run 3 + write /sys/devices/system/cpu/cpu1/sched_mostly_idle_nr_run 3 + write /sys/devices/system/cpu/cpu2/sched_mostly_idle_nr_run 3 + write /sys/devices/system/cpu/cpu3/sched_mostly_idle_nr_run 3 + write /sys/devices/system/cpu/cpu4/sched_mostly_idle_nr_run 3 + write /sys/devices/system/cpu/cpu5/sched_mostly_idle_nr_run 3 + write /sys/devices/system/cpu/cpu6/sched_mostly_idle_nr_run 3 + write /sys/devices/system/cpu/cpu7/sched_mostly_idle_nr_run 3 + + write /sys/devices/system/cpu/cpu0/sched_prefer_idle 0 + write /sys/devices/system/cpu/cpu1/sched_prefer_idle 0 + write /sys/devices/system/cpu/cpu2/sched_prefer_idle 0 + write /sys/devices/system/cpu/cpu3/sched_prefer_idle 0 + write /sys/devices/system/cpu/cpu4/sched_prefer_idle 0 + write /sys/devices/system/cpu/cpu5/sched_prefer_idle 0 + write /sys/devices/system/cpu/cpu6/sched_prefer_idle 0 + write /sys/devices/system/cpu/cpu7/sched_prefer_idle 0 + + write /sys/class/devfreq/qcom,mincpubw.53/governor "cpufreq" + write /sys/class/devfreq/qcom,cpubw.52/governor "bw_hwmon" + write /sys/class/devfreq/qcom,cpubw.52/bw_hwmon/io_percent 20 + write /sys/class/devfreq/qcom,cpubw.52/bw_hwmon/guard_band_mbps 30 + write /sys/class/devfreq/qcom,gpubw.39/governor "bw_hwmon" + write /sys/class/devfreq/qcom,gpubw.39/bw_hwmon/io_percent 40 + + # disable thermal & BCL core_control to update interactive gov settings + write /sys/module/msm_thermal/core_control/enabled 0 + write /sys/devices/soc.0/qcom,bcl.58/mode "disable" + write /sys/devices/soc.0/qcom,bcl.58/hotplug_mask 0 + write /sys/devices/soc.0/qcom,bcl.58/hotplug_soc_mask 0 + write /sys/devices/soc.0/qcom,bcl.58/mode "enable" + + # enable governor for perf cluster + write /sys/devices/system/cpu/cpu0/online 1 + write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor "interactive" + write /sys/devices/system/cpu/cpu0/cpufreq/interactive/above_hispeed_delay "19000 1113600:39000" + write /sys/devices/system/cpu/cpu0/cpufreq/interactive/go_hispeed_load 85 + write /sys/devices/system/cpu/cpu0/cpufreq/interactive/timer_rate 20000 + write /sys/devices/system/cpu/cpu0/cpufreq/interactive/hispeed_freq 1113600 + write /sys/devices/system/cpu/cpu0/cpufreq/interactive/io_is_busy 0 + write /sys/devices/system/cpu/cpu0/cpufreq/interactive/target_loads "1 960000:85 1113600:90 1344000:80" + write /sys/devices/system/cpu/cpu0/cpufreq/interactive/min_sample_time 40000 + write /sys/devices/system/cpu/cpu0/cpufreq/interactive/sampling_down_factor 40000 + write /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq 960000 + + # enable governor for power cluster + write /sys/devices/system/cpu/cpu4/online 1 + write /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor "interactive" + write /sys/devices/system/cpu/cpu4/cpufreq/interactive/above_hispeed_delay 39000 + write /sys/devices/system/cpu/cpu4/cpufreq/interactive/go_hispeed_load 90 + write /sys/devices/system/cpu/cpu4/cpufreq/interactive/timer_rate 20000 + write /sys/devices/system/cpu/cpu4/cpufreq/interactive/hispeed_freq 806400 + write /sys/devices/system/cpu/cpu4/cpufreq/interactive/io_is_busy 0 + write /sys/devices/system/cpu/cpu4/cpufreq/interactive/target_loads "1 800000:90" + write /sys/devices/system/cpu/cpu4/cpufreq/interactive/min_sample_time 40000 + write /sys/devices/system/cpu/cpu4/cpufreq/interactive/sampling_down_factor 40000 + write /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq 800000 + + # re-enable thermal & BCL core_control now + write /sys/module/msm_thermal/core_control/enabled 1 + write /sys/devices/soc.0/qcom,bcl.58/mode "disable" + write /sys/devices/soc.0/qcom,bcl.58/hotplug_mask 12 + write /sys/devices/soc.0/qcom,bcl.58/hotplug_soc_mask 15 + write /sys/devices/soc.0/qcom,bcl.58/mode "enable" + + # Bring up all cores online + 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 + + # Enable LPM Prediction + write /sys/module/lpm_levels/parameters/lpm_prediction 1 + + # Enable Low power modes + write /sys/module/lpm_levels/parameters/sleep_disabled 0 + + # HMP scheduler (big.Little cluster related) settings + write /proc/sys/kernel/sched_upmigrate 93 + write /proc/sys/kernel/sched_downmigrate 83 + + # Enable sched guided freq control + write /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_sched_load 1 + write /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_migration_notif 1 + write /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_sched_load 1 + write /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_migration_notif 1 + write /proc/sys/kernel/sched_freq_inc_notify 50000 + write /proc/sys/kernel/sched_freq_dec_notify 50000 + + # Input boost config + write /sys/module/cpu_boost/parameters/input_boost_freq 960000 + write /sys/module/cpu_boost/parameters/input_boost_ms 40 + + # Enable core control + write /sys/devices/system/cpu/cpu0/core_ctl/min_cpus 0 + write /sys/devices/system/cpu/cpu0/core_ctl/max_cpus 4 + write /sys/devices/system/cpu/cpu0/core_ctl/busy_up_thres 72 + write /sys/devices/system/cpu/cpu0/core_ctl/busy_down_thres 28 + write /sys/devices/system/cpu/cpu0/core_ctl/offline_delay_ms 100 + write /sys/devices/system/cpu/cpu0/core_ctl/is_big_cluster 1 + write /sys/devices/system/cpu/cpu0/core_ctl/task_thres 4 + + # RPS + write /sys/class/net/rmnet_ipa0/queues/rx-0/rps_cpus "f0" + + # Enable dynamic clock gating + write /sys/module/lpm_levels/lpm_workarounds/dynamic_clock_gating 1 + # Enable timer migration to little cluster + write /proc/sys/kernel/power_aware_timer_migration 1 + + # Process reclaim + write /sys/module/process_reclaim/parameters/enable_process_reclaim 1 + write /sys/module/process_reclaim/parameters/pressure_min 10 + write /sys/module/process_reclaim/parameters/per_swap_size 1024 + + write /sys/module/process_reclaim/parameters/pressure_max 70 + write /sys/module/process_reclaim/parameters/swap_opt_eff 30 + + rm /data/system/perfd/default_values + start perfd + +on class_start:late_start + trigger enable-low-power + +on property:init.svc.recovery=running + trigger enable-low-power + +on property:dev.bootcomplete=1 + setprop sys.io.scheduler "bfq" |
