Create a new group for foreground of multi-window
In multi-window mode, currently the focused window will be top-app,
and others will be foreground. However, the cpu resource we assign to
typical foreground group may not meet the performance need of those
windows. Therefore, create a new group for them so that we could
distinguish their performance need.
Bug: 200769420
Test: group created
Change-Id: I84c61f9ed4d167e156dafb7a816b6482e80a8523
diff --git a/libprocessgroup/profiles/task_profiles.json b/libprocessgroup/profiles/task_profiles.json
index 1fc66ba..ec125aa 100644
--- a/libprocessgroup/profiles/task_profiles.json
+++ b/libprocessgroup/profiles/task_profiles.json
@@ -11,6 +11,11 @@
"File": "foreground/cpus"
},
{
+ "Name": "HighCapacityWICPUs",
+ "Controller": "cpuset",
+ "File": "foreground_window/cpus"
+ },
+ {
"Name": "MaxCapacityCPUs",
"Controller": "cpuset",
"File": "top-app/cpus"
@@ -159,6 +164,19 @@
]
},
{
+ "Name": "HighPerformanceWI",
+ "Actions": [
+ {
+ "Name": "JoinCgroup",
+ "Params":
+ {
+ "Controller": "cpu",
+ "Path": "foreground_window"
+ }
+ }
+ ]
+ },
+ {
"Name": "MaxPerformance",
"Actions": [
{
@@ -382,6 +400,19 @@
]
},
{
+ "Name": "ProcessCapacityHighWI",
+ "Actions": [
+ {
+ "Name": "JoinCgroup",
+ "Params":
+ {
+ "Controller": "cpuset",
+ "Path": "foreground_window"
+ }
+ }
+ ]
+ },
+ {
"Name": "ProcessCapacityMax",
"Actions": [
{
@@ -639,6 +670,10 @@
"Profiles": [ "HighPerformance", "HighIoPriority", "TimerSlackNormal" ]
},
{
+ "Name": "SCHED_SP_FOREGROUND_WINDOW",
+ "Profiles": [ "HighPerformanceWI", "HighIoPriority", "TimerSlackNormal" ]
+ },
+ {
"Name": "SCHED_SP_TOP_APP",
"Profiles": [ "MaxPerformance", "MaxIoPriority", "TimerSlackNormal" ]
},
@@ -667,6 +702,10 @@
"Profiles": [ "HighPerformance", "ProcessCapacityHigh", "HighIoPriority", "TimerSlackNormal" ]
},
{
+ "Name": "CPUSET_SP_FOREGROUND_WINDOW",
+ "Profiles": [ "HighPerformanceWI", "ProcessCapacityHighWI", "HighIoPriority", "TimerSlackNormal" ]
+ },
+ {
"Name": "CPUSET_SP_TOP_APP",
"Profiles": [ "MaxPerformance", "ProcessCapacityMax", "MaxIoPriority", "TimerSlackNormal" ]
},
diff --git a/rootdir/init.rc b/rootdir/init.rc
index e867998..b967831 100644
--- a/rootdir/init.rc
+++ b/rootdir/init.rc
@@ -145,6 +145,7 @@
# cpuctl hierarchy for devices using utilclamp
mkdir /dev/cpuctl/foreground
+ mkdir /dev/cpuctl/foreground_window
mkdir /dev/cpuctl/background
mkdir /dev/cpuctl/top-app
mkdir /dev/cpuctl/rt
@@ -153,6 +154,7 @@
mkdir /dev/cpuctl/dex2oat
chown system system /dev/cpuctl
chown system system /dev/cpuctl/foreground
+ chown system system /dev/cpuctl/foreground_window
chown system system /dev/cpuctl/background
chown system system /dev/cpuctl/top-app
chown system system /dev/cpuctl/rt
@@ -161,6 +163,7 @@
chown system system /dev/cpuctl/dex2oat
chown system system /dev/cpuctl/tasks
chown system system /dev/cpuctl/foreground/tasks
+ chown system system /dev/cpuctl/foreground_window/tasks
chown system system /dev/cpuctl/background/tasks
chown system system /dev/cpuctl/top-app/tasks
chown system system /dev/cpuctl/rt/tasks
@@ -169,6 +172,7 @@
chown system system /dev/cpuctl/dex2oat/tasks
chown system system /dev/cpuctl/cgroup.procs
chown system system /dev/cpuctl/foreground/cgroup.procs
+ chown system system /dev/cpuctl/foreground_window/cgroup.procs
chown system system /dev/cpuctl/background/cgroup.procs
chown system system /dev/cpuctl/top-app/cgroup.procs
chown system system /dev/cpuctl/rt/cgroup.procs
@@ -177,6 +181,7 @@
chown system system /dev/cpuctl/dex2oat/cgroup.procs
chmod 0664 /dev/cpuctl/tasks
chmod 0664 /dev/cpuctl/foreground/tasks
+ chmod 0664 /dev/cpuctl/foreground_window/tasks
chmod 0664 /dev/cpuctl/background/tasks
chmod 0664 /dev/cpuctl/top-app/tasks
chmod 0664 /dev/cpuctl/rt/tasks
@@ -185,6 +190,7 @@
chmod 0664 /dev/cpuctl/dex2oat/tasks
chmod 0664 /dev/cpuctl/cgroup.procs
chmod 0664 /dev/cpuctl/foreground/cgroup.procs
+ chmod 0664 /dev/cpuctl/foreground_window/cgroup.procs
chmod 0664 /dev/cpuctl/background/cgroup.procs
chmod 0664 /dev/cpuctl/top-app/cgroup.procs
chmod 0664 /dev/cpuctl/rt/cgroup.procs
@@ -354,6 +360,9 @@
mkdir /dev/cpuset/foreground
copy /dev/cpuset/cpus /dev/cpuset/foreground/cpus
copy /dev/cpuset/mems /dev/cpuset/foreground/mems
+ mkdir /dev/cpuset/foreground_window
+ copy /dev/cpuset/cpus /dev/cpuset/foreground_window/cpus
+ copy /dev/cpuset/mems /dev/cpuset/foreground_window/mems
mkdir /dev/cpuset/background
copy /dev/cpuset/cpus /dev/cpuset/background/cpus
copy /dev/cpuset/mems /dev/cpuset/background/mems
@@ -382,6 +391,7 @@
# change permissions for all cpusets we'll touch at runtime
chown system system /dev/cpuset
chown system system /dev/cpuset/foreground
+ chown system system /dev/cpuset/foreground_window
chown system system /dev/cpuset/background
chown system system /dev/cpuset/system-background
chown system system /dev/cpuset/top-app
@@ -389,6 +399,7 @@
chown system system /dev/cpuset/camera-daemon
chown system system /dev/cpuset/tasks
chown system system /dev/cpuset/foreground/tasks
+ chown system system /dev/cpuset/foreground_window/tasks
chown system system /dev/cpuset/background/tasks
chown system system /dev/cpuset/system-background/tasks
chown system system /dev/cpuset/top-app/tasks
@@ -396,6 +407,7 @@
chown system system /dev/cpuset/camera-daemon/tasks
chown system system /dev/cpuset/cgroup.procs
chown system system /dev/cpuset/foreground/cgroup.procs
+ chown system system /dev/cpuset/foreground_window/cgroup.procs
chown system system /dev/cpuset/background/cgroup.procs
chown system system /dev/cpuset/system-background/cgroup.procs
chown system system /dev/cpuset/top-app/cgroup.procs
@@ -406,6 +418,7 @@
chmod 0775 /dev/cpuset/system-background
chmod 0664 /dev/cpuset/foreground/tasks
+ chmod 0664 /dev/cpuset/foreground_window/tasks
chmod 0664 /dev/cpuset/background/tasks
chmod 0664 /dev/cpuset/system-background/tasks
chmod 0664 /dev/cpuset/top-app/tasks
@@ -413,6 +426,7 @@
chmod 0664 /dev/cpuset/tasks
chmod 0664 /dev/cpuset/camera-daemon/tasks
chmod 0664 /dev/cpuset/foreground/cgroup.procs
+ chmod 0664 /dev/cpuset/foreground_window/cgroup.procs
chmod 0664 /dev/cpuset/background/cgroup.procs
chmod 0664 /dev/cpuset/system-background/cgroup.procs
chmod 0664 /dev/cpuset/top-app/cgroup.procs