platform_system_core/libprocessgroup/Android.bp
T.J. Mercier 1cfa2c4111 Add build flag to split the cgroup v2 hierarchy into apps/system
This flag adds "apps" and "system" cgroups underneath the v2 hierarchy
root. Cgroups with UIDs < 10000 (AID_APP_START) will be placed
under "system" and others will be placed under "apps". UIDs under 10000
are reserved for core Android subsystems. This allows us to
apply different cgroup controls collectively to system processes and
normal applications.

Bug: 327480673
Change-Id: I40837dee27a59691f81fef48e66a86c5eacda892
2024-04-08 21:15:48 +00:00

122 lines
2.7 KiB
Text

package {
default_applicable_licenses: ["Android-Apache-2.0"],
}
soong_config_module_type {
name: "libprocessgroup_flag_aware_cc_defaults",
module_type: "cc_defaults",
config_namespace: "ANDROID",
bool_variables: [
"memcg_v2_force_enabled",
"cgroup_v2_sys_app_isolation",
],
properties: [
"cflags",
],
}
libprocessgroup_flag_aware_cc_defaults {
name: "libprocessgroup_build_flags_cc",
cpp_std: "gnu++20",
soong_config_variables: {
memcg_v2_force_enabled: {
cflags: [
"-DMEMCG_V2_FORCE_ENABLED=true",
],
},
cgroup_v2_sys_app_isolation: {
cflags: [
"-DCGROUP_V2_SYS_APP_ISOLATION=true",
],
},
},
}
cc_library_headers {
name: "libprocessgroup_headers",
vendor_available: true,
product_available: true,
ramdisk_available: true,
vendor_ramdisk_available: true,
recovery_available: true,
host_supported: true,
native_bridge_supported: true,
export_include_dirs: ["include"],
target: {
linux_bionic: {
enabled: true,
},
windows: {
enabled: true,
},
},
apex_available: [
"//apex_available:platform",
"//apex_available:anyapex",
],
min_sdk_version: "29",
}
cc_library {
srcs: [
"cgroup_map.cpp",
"processgroup.cpp",
"sched_policy.cpp",
"task_profiles.cpp",
],
name: "libprocessgroup",
host_supported: true,
native_bridge_supported: true,
ramdisk_available: true,
vendor_ramdisk_available: true,
recovery_available: true,
vendor_available: true,
product_available: true,
vndk: {
enabled: true,
support_system_process: true,
},
shared_libs: [
"libbase",
"libcgrouprc",
],
static_libs: [
"libjsoncpp",
],
// for cutils/android_filesystem_config.h
header_libs: [
"libcutils_headers",
"libprocessgroup_headers",
],
export_include_dirs: ["include"],
export_header_lib_headers: [
"libprocessgroup_headers",
],
defaults: ["libprocessgroup_build_flags_cc"],
apex_available: [
"//apex_available:platform",
"//apex_available:anyapex",
],
min_sdk_version: "29",
}
cc_test {
name: "task_profiles_test",
host_supported: true,
defaults: ["libprocessgroup_build_flags_cc"],
srcs: [
"task_profiles_test.cpp",
],
header_libs: [
"libcutils_headers",
"libprocessgroup_headers",
],
shared_libs: [
"libbase",
"libcgrouprc",
"libprocessgroup",
],
static_libs: [
"libgmock",
],
}