Migrate the blkio controller to the v2 cgroup hierarchy
There are multiple use cases in Android for which background writes need to be controlled via the cgroup mechanism. The cgroup mechanism can only control background writes if both the blkio and memcg controllers are mounted in the v2 cgroup hierarchy. Hence this patch that migrates the blkio controller from the v1 to the v2 cgroup hierarchy. This patch increases the TOTAL_BOOT_TIME for devices with a 4.19 kernel (redfin) from 18.9 s to 20 s. This patch does not affect the boot time for devices with a 5.10 or 5.15 kernel. This patch increases the time spent in CgroupMap::ActivateControllers() by 25 microseconds in Cuttlefish on an x86-64 CPU. CgroupMap::ActivateControllers() is called by Service::Start(). Bug: 213617178 Test: Cuttlefish and various phones Change-Id: I490740e1c9ee4f7bb5bb7afba721a083f952c8f2 Signed-off-by: Bart Van Assche <bvanassche@google.com>
This commit is contained in:
parent
de7851c2d3
commit
5400ae2440
3 changed files with 9 additions and 35 deletions
|
@ -1,12 +1,5 @@
|
|||
{
|
||||
"Cgroups": [
|
||||
{
|
||||
"Controller": "blkio",
|
||||
"Path": "/dev/blkio",
|
||||
"Mode": "0775",
|
||||
"UID": "system",
|
||||
"GID": "system"
|
||||
},
|
||||
{
|
||||
"Controller": "cpu",
|
||||
"Path": "/dev/cpuctl",
|
||||
|
@ -39,6 +32,11 @@
|
|||
{
|
||||
"Controller": "freezer",
|
||||
"Path": "."
|
||||
},
|
||||
{
|
||||
"Controller": "io",
|
||||
"Path": ".",
|
||||
"NeedsActivation": true
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
@ -460,8 +460,7 @@
|
|||
"Name": "JoinCgroup",
|
||||
"Params":
|
||||
{
|
||||
"Controller": "blkio",
|
||||
"Path": "background"
|
||||
"Controller": "io"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
@ -500,8 +499,7 @@
|
|||
"Name": "JoinCgroup",
|
||||
"Params":
|
||||
{
|
||||
"Controller": "blkio",
|
||||
"Path": ""
|
||||
"Controller": "io"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
@ -540,8 +538,7 @@
|
|||
"Name": "JoinCgroup",
|
||||
"Params":
|
||||
{
|
||||
"Controller": "blkio",
|
||||
"Path": ""
|
||||
"Controller": "io"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
@ -580,8 +577,7 @@
|
|||
"Name": "JoinCgroup",
|
||||
"Params":
|
||||
{
|
||||
"Controller": "blkio",
|
||||
"Path": ""
|
||||
"Controller": "io"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
|
@ -218,26 +218,6 @@ 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
|
||||
|
|
Loading…
Reference in a new issue