diff options
-rw-r--r-- | libprocessgroup/profiles/cgroups.json | 7 | ||||
-rw-r--r-- | libprocessgroup/profiles/task_profiles.json | 53 | ||||
-rw-r--r-- | libprocessgroup/sched_policy.cpp | 29 | ||||
-rw-r--r-- | rootdir/init.rc | 9 |
4 files changed, 88 insertions, 10 deletions
diff --git a/libprocessgroup/profiles/cgroups.json b/libprocessgroup/profiles/cgroups.json index aa7195609..5871a63fa 100644 --- a/libprocessgroup/profiles/cgroups.json +++ b/libprocessgroup/profiles/cgroups.json @@ -1,6 +1,13 @@ { "Cgroups": [ { + "Controller": "blkio", + "Path": "/dev/blkio", + "Mode": "0755", + "UID": "system", + "GID": "system" + }, + { "Controller": "cpu", "Path": "/dev/cpuctl", "Mode": "0755", diff --git a/libprocessgroup/profiles/task_profiles.json b/libprocessgroup/profiles/task_profiles.json index 5a090c5b6..985720f21 100644 --- a/libprocessgroup/profiles/task_profiles.json +++ b/libprocessgroup/profiles/task_profiles.json @@ -334,6 +334,59 @@ }, { + "Name": "LowIoPriority", + "Actions" : [ + { + "Name" : "JoinCgroup", + "Params" : + { + "Controller": "blkio", + "Path": "background" + } + } + ] + }, + { + "Name": "NormalIoPriority", + "Actions" : [ + { + "Name" : "JoinCgroup", + "Params" : + { + "Controller": "blkio", + "Path": "" + } + } + ] + }, + { + "Name": "HighIoPriority", + "Actions" : [ + { + "Name" : "JoinCgroup", + "Params" : + { + "Controller": "blkio", + "Path": "" + } + } + ] + }, + { + "Name": "MaxIoPriority", + "Actions" : [ + { + "Name" : "JoinCgroup", + "Params" : + { + "Controller": "blkio", + "Path": "" + } + } + ] + }, + + { "Name": "TimerSlackHigh", "Actions" : [ { diff --git a/libprocessgroup/sched_policy.cpp b/libprocessgroup/sched_policy.cpp index 337b032f2..026c01138 100644 --- a/libprocessgroup/sched_policy.cpp +++ b/libprocessgroup/sched_policy.cpp @@ -46,20 +46,20 @@ int set_cpuset_policy(int tid, SchedPolicy policy) { switch (policy) { case SP_BACKGROUND: - return SetTaskProfiles(tid, - {"HighEnergySaving", "ProcessCapacityLow", "TimerSlackHigh"}) + return SetTaskProfiles(tid, {"HighEnergySaving", "ProcessCapacityLow", "LowIoPriority", + "TimerSlackHigh"}) ? 0 : -1; case SP_FOREGROUND: case SP_AUDIO_APP: case SP_AUDIO_SYS: - return SetTaskProfiles(tid, - {"HighPerformance", "ProcessCapacityHigh", "TimerSlackNormal"}) + return SetTaskProfiles(tid, {"HighPerformance", "ProcessCapacityHigh", "HighIoPriority", + "TimerSlackNormal"}) ? 0 : -1; case SP_TOP_APP: - return SetTaskProfiles(tid, - {"MaxPerformance", "ProcessCapacityMax", "TimerSlackNormal"}) + return SetTaskProfiles(tid, {"MaxPerformance", "ProcessCapacityMax", "MaxIoPriority", + "TimerSlackNormal"}) ? 0 : -1; case SP_SYSTEM: @@ -126,15 +126,24 @@ int set_sched_policy(int tid, SchedPolicy policy) { switch (policy) { case SP_BACKGROUND: - return SetTaskProfiles(tid, {"HighEnergySaving", "TimerSlackHigh"}) ? 0 : -1; + return SetTaskProfiles(tid, {"HighEnergySaving", "LowIoPriority", "TimerSlackHigh"}) + ? 0 + : -1; case SP_FOREGROUND: case SP_AUDIO_APP: case SP_AUDIO_SYS: - return SetTaskProfiles(tid, {"HighPerformance", "TimerSlackNormal"}) ? 0 : -1; + return SetTaskProfiles(tid, {"HighPerformance", "HighIoPriority", "TimerSlackNormal"}) + ? 0 + : -1; case SP_TOP_APP: - return SetTaskProfiles(tid, {"MaxPerformance", "TimerSlackNormal"}) ? 0 : -1; + return SetTaskProfiles(tid, {"MaxPerformance", "MaxIoPriority", "TimerSlackNormal"}) + ? 0 + : -1; case SP_RT_APP: - return SetTaskProfiles(tid, {"RealtimePerformance", "TimerSlackNormal"}) ? 0 : -1; + return SetTaskProfiles(tid, + {"RealtimePerformance", "MaxIoPriority", "TimerSlackNormal"}) + ? 0 + : -1; default: return SetTaskProfiles(tid, {"TimerSlackNormal"}) ? 0 : -1; } diff --git a/rootdir/init.rc b/rootdir/init.rc index 1c84d1516..ce4b380f2 100644 --- a/rootdir/init.rc +++ b/rootdir/init.rc @@ -84,6 +84,15 @@ on init chmod 0664 /dev/stune/top-app/tasks chmod 0664 /dev/stune/rt/tasks + # Create blkio tuning nodes + mkdir /dev/blkio/background + chown system system /dev/blkio + chown system system /dev/blkio/background + chown system system /dev/blkio/tasks + chown system system /dev/blkio/background/tasks + chmod 0664 /dev/blkio/tasks + chmod 0664 /dev/blkio/background/tasks + restorecon_recursive /mnt mount configfs none /config nodev noexec nosuid |