diff --git a/libprocessgroup/profiles/task_profiles.json b/libprocessgroup/profiles/task_profiles.json index 1fc66ba10..ec125aaf2 100644 --- a/libprocessgroup/profiles/task_profiles.json +++ b/libprocessgroup/profiles/task_profiles.json @@ -10,6 +10,11 @@ "Controller": "cpuset", "File": "foreground/cpus" }, + { + "Name": "HighCapacityWICPUs", + "Controller": "cpuset", + "File": "foreground_window/cpus" + }, { "Name": "MaxCapacityCPUs", "Controller": "cpuset", @@ -158,6 +163,19 @@ } ] }, + { + "Name": "HighPerformanceWI", + "Actions": [ + { + "Name": "JoinCgroup", + "Params": + { + "Controller": "cpu", + "Path": "foreground_window" + } + } + ] + }, { "Name": "MaxPerformance", "Actions": [ @@ -381,6 +399,19 @@ } ] }, + { + "Name": "ProcessCapacityHighWI", + "Actions": [ + { + "Name": "JoinCgroup", + "Params": + { + "Controller": "cpuset", + "Path": "foreground_window" + } + } + ] + }, { "Name": "ProcessCapacityMax", "Actions": [ @@ -638,6 +669,10 @@ "Name": "SCHED_SP_FOREGROUND", "Profiles": [ "HighPerformance", "HighIoPriority", "TimerSlackNormal" ] }, + { + "Name": "SCHED_SP_FOREGROUND_WINDOW", + "Profiles": [ "HighPerformanceWI", "HighIoPriority", "TimerSlackNormal" ] + }, { "Name": "SCHED_SP_TOP_APP", "Profiles": [ "MaxPerformance", "MaxIoPriority", "TimerSlackNormal" ] @@ -666,6 +701,10 @@ "Name": "CPUSET_SP_FOREGROUND", "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 e867998d6..b96783158 100644 --- a/rootdir/init.rc +++ b/rootdir/init.rc @@ -145,6 +145,7 @@ on init # 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 @@ on init 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 @@ on init 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 @@ on init 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 @@ on init 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 @@ on init 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 @@ on init 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 @@ on init # 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 @@ on init 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 @@ on init 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 @@ on init 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 @@ on init 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