platform_system_core/libprocessgroup/Android.bp
T.J. Mercier f8901767e6 Add build flag to force memcg to the v2 cgroup hierarchy
This flag prevents memcg from being mounted as a v1 hierarchy, even if
cgroups.json specifies it should be mounted as v1. It will activate
memcg in the v2 hierarchy even if cgroups.json does not specify that it
should be activated in the v2 hierarchy.

The cgroup_disable=memory kernel command line argument will still
prevent memcg from being activated, as this forced memcg controller
is marked as optional.

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

116 lines
2.5 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",
],
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",
],
},
},
}
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",
],
}