aboutsummaryrefslogtreecommitdiff
path: root/rootdir/etc/init.qcom.power_msm8939.rc
blob: 4c6c33380858f2f9312e704d261f6cca28f1a712 (plain)
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
on enable-low-power
    start qcom-mem

    write /proc/sys/kernel/sched_boost 1

    # RPS mask
    write /sys/class/net/rmnet0/queues/rx-0/rps_cpus 10

    # Adaptive LMK
    write /sys/module/lowmemorykiller/parameters/enable_adaptive_lmk 1
    write /sys/module/lowmemorykiller/parameters/vmpressure_file_min 81250

    # HMP scheduler load tracking settings
    write /proc/sys/kernel/sched_window_stats_policy 3
    write /proc/sys/kernel/sched_ravg_hist_size 5

    # HMP Task packing settings for 8939, 8929
    write /proc/sys/kernel/sched_small_task 20
    write /proc/sys/kernel/sched_mostly_idle_load 30
    write /proc/sys/kernel/sched_mostly_idle_nr_run 3

    write /sys/class/devfreq/cpubw/governor "bw_hwmon"
    write /sys/class/devfreq/cpubw/bw_hwmon/io_percent 20
    write /sys/class/devfreq/gpubw/bw_hwmon/io_percent 40
    write /sys/class/devfreq/mincpubw/governor "cpufreq"

    # 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 "20000 1113600:50000"
    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 50000
    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 "25000 800000:50000"
    write /sys/devices/system/cpu/cpu4/cpufreq/interactive/go_hispeed_load 90
    write /sys/devices/system/cpu/cpu4/cpufreq/interactive/timer_rate 40000
    write /sys/devices/system/cpu/cpu4/cpufreq/interactive/hispeed_freq 998400
    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/scaling_min_freq 800000

    # Enable thermal core_control now
    write /sys/module/msm_thermal/core_control/enabled 1

    # 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 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/task_thres 4
    write /sys/devices/system/cpu/cpu0/core_ctl/is_big_cluster 1
    write /sys/devices/system/cpu/cpu4/core_ctl/busy_up_thres 20
    write /sys/devices/system/cpu/cpu4/core_ctl/busy_down_thres 5
    write /sys/devices/system/cpu/cpu4/core_ctl/offline_delay_ms 5000
    write /sys/devices/system/cpu/cpu4/core_ctl/not_preferred 1

    # HMP scheduler (big.Little cluster related) settings
    write /proc/sys/kernel/sched_upmigrate 75
    write /proc/sys/kernel/sched_downmigrate 60

    # Bring all CPUs 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/cpu5/online 1
    write /sys/devices/system/cpu/cpu6/online 1
    write /sys/devices/system/cpu/cpu7/online 1

    # Enable low power modes
    write /sys/module/lpm_levels/parameters/sleep_disabled 0

    # 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 and background cpusets
    # Reserve CPU 7 for the top app
    write /dev/cpuset/foreground/cpus 0-6
    write /dev/cpuset/foreground/boost/cpus 0-3
    write /dev/cpuset/background/cpus 4-6
    write /dev/cpuset/system-background/cpus 4-6
    write /dev/cpuset/top-app/cpus 0-7
    write /dev/cpuset/camera-daemon/cpus 4-7

    rm /data/system/perfd/default_values
    start perfd

on charger
    write /sys/module/lpm_levels/parameters/sleep_disabled 0
    write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor "powersave"

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