-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathinit.qcom.power.rc
executable file
·153 lines (129 loc) · 7.19 KB
/
init.qcom.power.rc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
on boot
# Update foreground and background cpusets
write /dev/cpuset/foreground/cpus 0-7
write /dev/cpuset/foreground/boost/cpus 0-3
write /dev/cpuset/background/cpus 4-5
write /dev/cpuset/system-background/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
# 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/soc:qcom,cpubw/governor bw_hwmon
write /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/io_percent 20
write /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/guard_band_mbps 30
# Disable thermal core_control to update interactive gov settings
write /sys/module/msm_thermal/core_control/enabled 0
# 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 1094400: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 1094400
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 1094400:90 1344000:80"
write /sys/devices/system/cpu/cpu0/cpufreq/interactive/min_sample_time 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 768000
write /sys/devices/system/cpu/cpu4/cpufreq/interactive/io_is_busy 0
write /sys/devices/system/cpu/cpu4/cpufreq/interactive/target_loads "1 768000:90"
write /sys/devices/system/cpu/cpu4/cpufreq/interactive/min_sample_time 40000
write /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq 768000
# Re-enable thermal core_control
write /sys/module/msm_thermal/core_control/enabled 1
# Bring 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
# Disable L2-GDHS low power modes
write /sys/module/lpm_levels/system/pwr/pwr-l2-gdhs/idle_enabled N
write /sys/module/lpm_levels/system/pwr/pwr-l2-gdhs/suspend_enabled N
write /sys/module/lpm_levels/system/perf/perf-l2-gdhs/idle_enabled N
write /sys/module/lpm_levels/system/perf/perf-l2-gdhs/suspend_enabled N
# 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
# Core control
write /sys/devices/system/cpu/cpu0/core_ctl/min_cpus 2
write /sys/devices/system/cpu/cpu0/core_ctl/max_cpus 4
write /sys/devices/system/cpu/cpu0/core_ctl/busy_up_thres 68
write /sys/devices/system/cpu/cpu0/core_ctl/busy_down_thres 40
write /sys/devices/system/cpu/cpu0/core_ctl/offline_delay_ms 100
write /sys/devices/system/cpu/cpu0/core_ctl/is_big_cluster 1
# Set per_process_reclaim tuning parameters
write /sys/module/process_reclaim/parameters/enable_process_reclaim 1
write /sys/module/process_reclaim/parameters/pressure_max 70
write /sys/module/process_reclaim/parameters/swap_opt_eff 30
write /sys/module/process_reclaim/parameters/pressure_min 10
write /sys/module/process_reclaim/parameters/per_swap_size 1024
# Set ZCache parameters
write /sys/module/zcache/parameters/clear_percent 3
write /sys/module/zcache/parameters/max_pool_percent 30
write /sys/block/mmcblk0/bdi/read_ahead_kb 128
write /sys/block/mmcblk0/queue/read_ahead_kb 128
write /sys/block/dm-0/queue/read_ahead_kb 128
write /sys/block/dm-1/queue/read_ahead_kb 128
rm /data/system/perfd/default_values
start perfd
on class_start:late_start
trigger enable-low-power
on charger
# Offline all cores other than CPU0
write /sys/devices/system/cpu/cpu1/online 0
write /sys/devices/system/cpu/cpu2/online 0
write /sys/devices/system/cpu/cpu3/online 0
write /sys/devices/system/cpu/cpu4/online 0
write /sys/devices/system/cpu/cpu5/online 0
write /sys/devices/system/cpu/cpu6/online 0
write /sys/devices/system/cpu/cpu7/online 0
write /sys/module/lpm_levels/parameters/sleep_disabled 0
write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor powersave
on property:init.svc.recovery=running
trigger enable-low-power
on property:dev.bootcomplete=1
setprop sys.io.scheduler bfq