Added system_server to system group
Test: on gobo
pidof system_server appears in the correct file:
$ adb shell pidof system_server
859
$ adb shell cat /dev/memcg/system/tasks | grep '859'
859
Bug: 65130832
Change-Id: Id63abd473a7f2001688b0be06bfec6472c7f8648
diff --git a/core/jni/com_android_internal_os_Zygote.cpp b/core/jni/com_android_internal_os_Zygote.cpp
index 3887c76..e1c2cb0 100644
--- a/core/jni/com_android_internal_os_Zygote.cpp
+++ b/core/jni/com_android_internal_os_Zygote.cpp
@@ -45,6 +45,8 @@
#include <unistd.h>
#include "android-base/logging.h"
+#include <android-base/file.h>
+#include <android-base/stringprintf.h>
#include <cutils/fs.h>
#include <cutils/multiuser.h>
#include <cutils/sched_policy.h>
@@ -65,6 +67,8 @@
namespace {
using android::String8;
+using android::base::StringPrintf;
+using android::base::WriteStringToFile;
static pid_t gSystemServerPid = 0;
@@ -754,6 +758,11 @@
ALOGE("System server process %d has died. Restarting Zygote!", pid);
RuntimeAbort(env, __LINE__, "System server process has died. Restarting Zygote!");
}
+
+ // Assign system_server to the correct memory cgroup.
+ if (!WriteStringToFile(StringPrintf("%d", pid), "/dev/memcg/system/tasks")) {
+ ALOGE("couldn't write %d to /dev/memcg/system/tasks", pid);
+ }
}
return pid;
}