diff --git a/libprocessgroup/profiles/cgroups.json b/libprocessgroup/profiles/cgroups.json index d013ec858..3e4393df2 100644 --- a/libprocessgroup/profiles/cgroups.json +++ b/libprocessgroup/profiles/cgroups.json @@ -1,5 +1,12 @@ { "Cgroups": [ + { + "Controller": "blkio", + "Path": "/dev/blkio", + "Mode": "0775", + "UID": "system", + "GID": "system" + }, { "Controller": "cpu", "Path": "/dev/cpuctl", @@ -32,12 +39,6 @@ { "Controller": "freezer", "Path": "." - }, - { - "Controller": "io", - "Path": ".", - "NeedsActivation": true, - "Optional": true } ] } diff --git a/libprocessgroup/profiles/task_profiles.json b/libprocessgroup/profiles/task_profiles.json index f2ef316e2..1fc66ba10 100644 --- a/libprocessgroup/profiles/task_profiles.json +++ b/libprocessgroup/profiles/task_profiles.json @@ -76,26 +76,6 @@ "Name": "FreezerState", "Controller": "freezer", "File": "cgroup.freeze" - }, - { - "Name": "BfqWeight", - "Controller": "io", - "File": "io.bfq.weight" - }, - { - "Name": "CfqGroupIdle", - "Controller": "io", - "File": "io.group_idle" - }, - { - "Name": "CfqWeight", - "Controller": "io", - "File": "io.weight" - }, - { - "Name": "IoPrioClass", - "Controller": "io", - "File": "io.prio.class" } ], @@ -459,39 +439,11 @@ "Name": "LowIoPriority", "Actions": [ { - "Name": "SetAttribute", + "Name": "JoinCgroup", "Params": { - "Name": "BfqWeight", - "Value": "10", - "Optional": "true" - } - }, - { - "Name": "SetAttribute", - "Params": - { - "Name": "CfqGroupIdle", - "Value": "0", - "Optional": "true" - } - }, - { - "Name": "SetAttribute", - "Params": - { - "Name": "CfqWeight", - "Value": "200", - "Optional": "true" - } - }, - { - "Name": "SetAttribute", - "Params": - { - "Name": "IoPrioClass", - "Value": "restrict-to-be", - "Optional": "true" + "Controller": "blkio", + "Path": "background" } } ] @@ -500,39 +452,11 @@ "Name": "NormalIoPriority", "Actions": [ { - "Name": "SetAttribute", + "Name": "JoinCgroup", "Params": { - "Name": "BfqWeight", - "Value": "100", - "Optional": "true" - } - }, - { - "Name": "SetAttribute", - "Params": - { - "Name": "CfqGroupIdle", - "Value": "0", - "Optional": "true" - } - }, - { - "Name": "SetAttribute", - "Params": - { - "Name": "CfqWeight", - "Value": "1000", - "Optional": "true" - } - }, - { - "Name": "SetAttribute", - "Params": - { - "Name": "IoPrioClass", - "Value": "restrict-to-be", - "Optional": "true" + "Controller": "blkio", + "Path": "" } } ] @@ -541,39 +465,11 @@ "Name": "HighIoPriority", "Actions": [ { - "Name": "SetAttribute", + "Name": "JoinCgroup", "Params": { - "Name": "BfqWeight", - "Value": "100", - "Optional": "true" - } - }, - { - "Name": "SetAttribute", - "Params": - { - "Name": "CfqGroupIdle", - "Value": "0", - "Optional": "true" - } - }, - { - "Name": "SetAttribute", - "Params": - { - "Name": "CfqWeight", - "Value": "1000", - "Optional": "true" - } - }, - { - "Name": "SetAttribute", - "Params": - { - "Name": "IoPrioClass", - "Value": "promote-to-rt", - "Optional": "true" + "Controller": "blkio", + "Path": "" } } ] @@ -582,39 +478,11 @@ "Name": "MaxIoPriority", "Actions": [ { - "Name": "SetAttribute", + "Name": "JoinCgroup", "Params": { - "Name": "BfqWeight", - "Value": "100", - "Optional": "true" - } - }, - { - "Name": "SetAttribute", - "Params": - { - "Name": "CfqGroupIdle", - "Value": "0", - "Optional": "true" - } - }, - { - "Name": "SetAttribute", - "Params": - { - "Name": "CfqWeight", - "Value": "1000", - "Optional": "true" - } - }, - { - "Name": "SetAttribute", - "Params": - { - "Name": "IoPrioClass", - "Value": "promote-to-rt", - "Optional": "true" + "Controller": "blkio", + "Path": "" } } ] diff --git a/rootdir/init.rc b/rootdir/init.rc index e12619753..4c07c83fe 100644 --- a/rootdir/init.rc +++ b/rootdir/init.rc @@ -228,6 +228,26 @@ on init write /dev/stune/nnapi-hal/schedtune.boost 1 write /dev/stune/nnapi-hal/schedtune.prefer_idle 1 + # Create blkio group and apply initial settings. + # This feature needs kernel to support it, and the + # device's init.rc must actually set the correct values. + 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 + chown system system /dev/blkio/cgroup.procs + chown system system /dev/blkio/background/cgroup.procs + chmod 0664 /dev/blkio/tasks + chmod 0664 /dev/blkio/background/tasks + chmod 0664 /dev/blkio/cgroup.procs + chmod 0664 /dev/blkio/background/cgroup.procs + write /dev/blkio/blkio.weight 1000 + write /dev/blkio/background/blkio.weight 200 + write /dev/blkio/background/blkio.bfq.weight 10 + write /dev/blkio/blkio.group_idle 0 + write /dev/blkio/background/blkio.group_idle 0 + restorecon_recursive /mnt mount configfs none /config nodev noexec nosuid