aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZhao Wei Liew <zhaoweiliew@gmail.com>2016-05-02 08:48:06 +0800
committerGerrit Code Review <gerrit@cyanogenmod.org>2016-06-13 14:09:10 -0700
commitc2e4adad52165c400f9a0ccb4cb6a0ebd4297d92 (patch)
treeeddda1e810fcd46c1a7dd40e093ac8e202614566
parenta5055a996a794da1b8efeb1fe8f6d320b5115757 (diff)
msm8916: Enable cpusets
ActivityManager uses this feature to assign certain tasks to certain cores, thereby improving power consumption. Change-Id: Icc02ab7720bd415af7d9f99e435a021d05bf74c8
-rw-r--r--board/kernel.mk2
-rw-r--r--rootdir/etc/init.qcom.power_msm8916.rc6
-rw-r--r--rootdir/etc/init.qcom.power_msm8939.rc6
-rw-r--r--rootdir/etc/init.qcom.rc3
4 files changed, 17 insertions, 0 deletions
diff --git a/board/kernel.mk b/board/kernel.mk
index 0ec9a3e..802d5b0 100644
--- a/board/kernel.mk
+++ b/board/kernel.mk
@@ -7,6 +7,8 @@ BOARD_KERNEL_SEPARATED_DT := true
BOARD_KERNEL_TAGS_OFFSET := 0x01E00000
BOARD_RAMDISK_OFFSET := 0x02000000
+ENABLE_CPUSETS := true
+
TARGET_KERNEL_SOURCE := kernel/cyanogen/msm8916
ifneq ($(FORCE_32_BIT),true)
TARGET_KERNEL_ARCH := arm64
diff --git a/rootdir/etc/init.qcom.power_msm8916.rc b/rootdir/etc/init.qcom.power_msm8916.rc
index 6be9da5..47ed84b 100644
--- a/rootdir/etc/init.qcom.power_msm8916.rc
+++ b/rootdir/etc/init.qcom.power_msm8916.rc
@@ -35,6 +35,12 @@ on enable-low-power
# Enable low power modes
write /sys/module/lpm_levels/parameters/sleep_disabled 0
+ # Update foreground and background cpusets
+ write /dev/cpuset/foreground/cpus 0-3
+ write /dev/cpuset/foreground/boost/cpus 0-3
+ write /dev/cpuset/background/cpus 0
+ write /dev/cpuset/system-background/cpus 0-1
+
rm /data/system/perfd/default_values
start perfd
diff --git a/rootdir/etc/init.qcom.power_msm8939.rc b/rootdir/etc/init.qcom.power_msm8939.rc
index 75329d0..37add80 100644
--- a/rootdir/etc/init.qcom.power_msm8939.rc
+++ b/rootdir/etc/init.qcom.power_msm8939.rc
@@ -68,6 +68,12 @@ on enable-low-power
# Enable low power modes
write /sys/module/lpm_levels/parameters/sleep_disabled 0
+ # 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
+ write /dev/cpuset/system-background/cpus 4-7
+
# Per-process reclaim
write /sys/module/process_reclaim/parameters/enable_process_reclaim 1
write /sys/module/process_reclaim/parameters/pressure_min 10
diff --git a/rootdir/etc/init.qcom.rc b/rootdir/etc/init.qcom.rc
index df2e41f..09f7bcf 100644
--- a/rootdir/etc/init.qcom.rc
+++ b/rootdir/etc/init.qcom.rc
@@ -345,6 +345,7 @@ service msm_irqbalance /system/bin/msm_irqbalance -f /system/vendor/etc/msm_irqb
class core
user root
group root
+ writepid /dev/cpuset/system-background/tasks
service netmgrd /system/bin/netmgrd
class main
@@ -497,6 +498,7 @@ service qcamerasvr /system/bin/mm-qcamera-daemon
class late_start
user camera
group camera system inet input graphics
+ writepid /dev/cpuset/system-background/tasks
# Allow usb charging to be disabled peristently
on property:persist.usb.chgdisabled=1
@@ -515,6 +517,7 @@ service perfd /vendor/bin/perfd
user root
group root
disabled
+ writepid /dev/cpuset/system-background/tasks
service thermal-engine /vendor/bin/thermal-engine
class main