Merge "Replace hardcoded cgroup paths"

This commit is contained in:
Suren Baghdasaryan
2019-02-03 22:28:22 +00:00
committed by Gerrit Code Review
3 changed files with 20 additions and 16 deletions

View File

@@ -346,30 +346,34 @@ static void parse_cpuset_cpus(char *cpus, cpu_set_t *cpu_set) {
static void get_cpuset_cores_for_policy(SchedPolicy policy, cpu_set_t *cpu_set)
{
FILE *file;
const char *filename;
std::string filename;
CPU_ZERO(cpu_set);
switch (policy) {
case SP_BACKGROUND:
filename = "/dev/cpuset/background/cpus";
if (!CgroupGetAttributePath("LowCapacityCPUs", &filename)) {
return;
}
break;
case SP_FOREGROUND:
case SP_AUDIO_APP:
case SP_AUDIO_SYS:
case SP_RT_APP:
filename = "/dev/cpuset/foreground/cpus";
if (!CgroupGetAttributePath("HighCapacityCPUs", &filename)) {
return;
}
break;
case SP_TOP_APP:
filename = "/dev/cpuset/top-app/cpus";
if (!CgroupGetAttributePath("MaxCapacityCPUs", &filename)) {
return;
}
break;
default:
filename = NULL;
return;
}
if (!filename) return;
file = fopen(filename, "re");
file = fopen(filename.c_str(), "re");
if (file != NULL) {
// Parse cpus string
char *line = NULL;
@@ -379,7 +383,7 @@ static void get_cpuset_cores_for_policy(SchedPolicy policy, cpu_set_t *cpu_set)
if (num_read > 0) {
parse_cpuset_cpus(line, cpu_set);
} else {
ALOGE("Failed to read %s", filename);
ALOGE("Failed to read %s", filename.c_str());
}
free(line);
}

View File

@@ -1305,15 +1305,12 @@ static jint com_android_internal_os_Zygote_nativeForkSystemServer(
RuntimeAbort(env, __LINE__, "System server process has died. Restarting Zygote!");
}
bool low_ram_device = GetBoolProperty("ro.config.low_ram", false);
bool per_app_memcg = GetBoolProperty("ro.config.per_app_memcg", low_ram_device);
if (per_app_memcg) {
if (UsePerAppMemcg()) {
// Assign system_server to the correct memory cgroup.
// Not all devices mount /dev/memcg so check for the file first
// Not all devices mount memcg so check if it is mounted first
// to avoid unnecessarily printing errors and denials in the logs.
if (!access("/dev/memcg/system/tasks", F_OK) &&
!WriteStringToFile(StringPrintf("%d", pid), "/dev/memcg/system/tasks")) {
ALOGE("couldn't write %d to /dev/memcg/system/tasks", pid);
if (!SetTaskProfiles(pid, std::vector<std::string>{"SystemMemoryProcess"})) {
ALOGE("couldn't add process %d into system memcg group", pid);
}
}
}

View File

@@ -51,6 +51,7 @@ cc_library_shared {
"libmtp",
"libexif",
"libpiex",
"libprocessgroup",
"libandroidfw",
"libhidlallocatorutils",
"libhidlbase",
@@ -131,6 +132,7 @@ cc_library_shared {
"libcutils",
"libdexfile",
"liblzma",
"libjsoncpp",
"libmedia_helper",
"libmedia_player2_util",
"libmediadrm",
@@ -140,6 +142,7 @@ cc_library_shared {
"libmediautils",
"libnativehelper",
"libnetd_client",
"libprocessgroup",
"libstagefright_esds",
"libstagefright_foundation",
"libstagefright_httplive",