platform_system_core/libprocessgroup
Bart Van Assche eef0f563fd [DO NOT MERGE] 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.

The blkio controller has been marked as optional since not all Android
kernels enable this controller (CONFIG_BLK_CGROUP).

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: I3c07c1be84c3feb277b7d7003652d5d3b57c6541
Signed-off-by: Bart Van Assche <bvanassche@google.com>
2023-03-22 11:39:53 -07:00
..
cgrouprc Annotate symbols correctly 2022-09-26 22:14:43 +09:00
cgrouprc_format [LSC] Add LOCAL_LICENSE_KINDS to system/core 2021-02-19 12:59:05 -08:00
include/processgroup init: skip cgroup/task_profiles configuration if cgroups are disabled 2022-10-21 13:14:23 +01:00
profiles [DO NOT MERGE] Migrate the blkio controller to the v2 cgroup hierarchy 2023-03-22 11:39:53 -07:00
setup libprocessgroup: Rework SetupCgroup() 2023-02-10 14:18:38 -08:00
tools libprocessgroup/tools: Add settaskprofile command-line tool 2021-11-09 22:35:51 +00:00
Android.bp libprocessgroup: Switch from gnu++-17 to gnu++-20 2022-08-18 12:34:21 -07:00
cgroup_map.cpp libprocessgroup: Proceed if activation of an optional controller fails 2023-02-10 15:02:44 -08:00
cgroup_map.h libprocessgroup: Add CgroupGetControllerFromPath API function 2021-11-08 21:24:33 +00:00
OWNERS Updating owners of libprocessgroup 2022-12-15 19:12:33 +00:00
processgroup.cpp libprocessgroup: Add argument checks in KillProcessGroup() 2023-03-15 09:35:06 -07:00
sched_policy.cpp libprocessgroup: fall back to cpuset in get_sched_policy 2021-12-14 10:56:34 -08:00
task_profiles.cpp Fix invalid uses of PLOG. 2023-03-01 04:17:57 +00:00
task_profiles.h libprocessgroup: Provide SetProcessProfiles() and SetTaskProfiles() alternatives 2022-08-19 07:06:30 -07:00
task_profiles_test.cpp Add support for optional cgroup attributes 2022-03-16 19:55:46 +00:00