Boot time tuning
RD1A.200703.001
dmesg_action_sys.boot_completed_first_timestamp_avg : 14745.3
With CL
dmesg_action_sys.boot_completed_first_timestamp_avg : 13993.7
Bug: 143857500
Bug: 161478668
Test: build and boottime test
Tested-by: Lisa Liu <liulisa@google.com>
Signed-off-by: Wei Wang <wvw@google.com>
Change-Id: Ib8f31d39501b4747f0c268d2dd87e814bcc7843b
diff --git a/init.hardware.rc b/init.hardware.rc
index 5b5c5da..b5240ab 100644
--- a/init.hardware.rc
+++ b/init.hardware.rc
@@ -35,8 +35,20 @@
mount debugfs debugfs /sys/kernel/debug
chmod 0755 /sys/kernel/debug
- # Disable EAS
- write /sys/kernel/debug/sched_features NO_ENERGY_AWARE
+ # configure governor settings
+ write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor schedutil
+ write /sys/devices/system/cpu/cpu0/cpufreq/schedutil/up_rate_limit_us 500
+ write /sys/devices/system/cpu/cpu0/cpufreq/schedutil/down_rate_limit_us 20000
+
+ # configure governor settings for big cluster
+ write /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor schedutil
+ write /sys/devices/system/cpu/cpu6/cpufreq/schedutil/up_rate_limit_us 500
+ write /sys/devices/system/cpu/cpu6/cpufreq/schedutil/down_rate_limit_us 20000
+
+ # configure governor settings for big big CPU
+ write /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor schedutil
+ write /sys/devices/system/cpu/cpu7/cpufreq/schedutil/up_rate_limit_us 500
+ write /sys/devices/system/cpu/cpu7/cpufreq/schedutil/down_rate_limit_us 20000
# Disable VDSO on JAWS boards.
on early-init && property:ro.revision="DEV1.0"
@@ -49,6 +61,22 @@
start charger_insmod_sh
on init && property:vendor.skip.init=0
+ # Boot time cpuset and stune
+ write /dev/cpuset/top-app/cpus 0-7
+ write /dev/cpuset/foreground/cpus 0-7
+ write /dev/cpuset/background/cpus 0-5
+ write /dev/cpuset/system-background/cpus 0-5
+ write /dev/cpuset/restricted/cpus 2-5
+ write /dev/stune/foreground/schedtune.prefer_idle 1
+ write /dev/stune/foreground/schedtune.prefer_high_cap 1
+ write /dev/stune/foreground/schedtune.boost 100
+ write /dev/stune/schedtune.prefer_idle 1
+ write /dev/stune/schedtune.prefer_high_cap 1
+ write /dev/stune/schedtune.boost 100
+ write /dev/stune/top-app/schedtune.prefer_idle 1
+ write /dev/stune/top-app/schedtune.prefer_high_cap 1
+ write /dev/stune/top-app/schedtune.boost 100
+
# Boot time fs tuning
write /sys/block/sda/queue/iostats 0
write /sys/block/sda/queue/scheduler cfq
@@ -95,21 +123,6 @@
write /sys/devices/system/cpu/cpu6/online 1
write /sys/devices/system/cpu/cpu7/online 1
- # configure governor settings for little cluster
- write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor schedutil
- write /sys/devices/system/cpu/cpu0/cpufreq/schedutil/up_rate_limit_us 500
- write /sys/devices/system/cpu/cpu0/cpufreq/schedutil/down_rate_limit_us 20000
-
- # configure governor settings for big cluster
- write /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor schedutil
- write /sys/devices/system/cpu/cpu6/cpufreq/schedutil/up_rate_limit_us 500
- write /sys/devices/system/cpu/cpu6/cpufreq/schedutil/down_rate_limit_us 20000
-
- # configure governor settings for big big CPU
- write /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor schedutil
- write /sys/devices/system/cpu/cpu7/cpufreq/schedutil/up_rate_limit_us 500
- write /sys/devices/system/cpu/cpu7/cpufreq/schedutil/down_rate_limit_us 20000
-
# ZRAM setup
write /sys/block/zram0/comp_algorithm lz4
write /proc/sys/vm/page-cluster 0
@@ -117,11 +130,6 @@
# Some user code relies on ro.boot.hardware.revision
setprop ro.boot.hardware.revision ${ro.revision}
- # 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
-
mkdir /dev/cpuset/camera-daemon
write /dev/cpuset/camera-daemon/cpus 0-7
write /dev/cpuset/camera-daemon/mems 0
@@ -523,6 +531,17 @@
write /dev/cpuset/system-background/cpus 2-5
write /dev/cpuset/restricted/cpus 2-5
+ # Setup runtime schedTune
+ write /dev/stune/foreground/schedtune.prefer_idle 1
+ write /dev/stune/foreground/schedtune.prefer_high_cap 0
+ write /dev/stune/foreground/schedtune.boost 0
+ write /dev/stune/schedtune.prefer_idle 0
+ write /dev/stune/schedtune.prefer_high_cap 0
+ write /dev/stune/schedtune.boost 0
+ write /dev/stune/top-app/schedtune.prefer_idle 1
+ write /dev/stune/top-app/schedtune.prefer_high_cap 0
+ write /dev/stune/top-app/schedtune.boost 10
+
# Setup runtime blkio
# value for group_idle is us
write /dev/blkio/blkio.weight 1000
diff --git a/init.power.rc b/init.power.rc
index 7d222d6..5ab12f5 100644
--- a/init.power.rc
+++ b/init.power.rc
@@ -15,9 +15,6 @@
#
on property:vendor.setup.power=1
- # Enable EAS
- write /sys/kernel/debug/sched_features ENERGY_AWARE
-
# Enable suspend clock reporting
write /sys/kernel/debug/clk/debug_suspend 1