liblmkd_utils: Use libprocessgroup to create cgroups am: 911f106a4a am: f0544971d4 am: 84dbabc1b2

Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/2034587

Change-Id: Id2891d0b356b986ddaa846e53495a939eb6daaba
This commit is contained in:
Bart Van Assche 2022-03-22 20:38:55 +00:00 committed by Automerger Merge Worker
commit e93c0f63f7
3 changed files with 6 additions and 30 deletions

View File

@ -64,6 +64,7 @@ cc_library_static {
recovery_available: true, recovery_available: true,
shared_libs: [ shared_libs: [
"libcutils", "libcutils",
"libprocessgroup",
], ],
export_include_dirs: ["include"], export_include_dirs: ["include"],
cppflags: [ cppflags: [

View File

@ -22,8 +22,9 @@
#include <stdio.h> #include <stdio.h>
#include <unistd.h> #include <unistd.h>
#include <liblmkd_utils.h>
#include <cutils/sockets.h> #include <cutils/sockets.h>
#include <liblmkd_utils.h>
#include <processgroup/processgroup.h>
int lmkd_connect() { int lmkd_connect() {
return socket_local_client("lmkd", return socket_local_client("lmkd",
@ -78,34 +79,6 @@ enum update_props_result lmkd_update_props(int sock) {
} }
int create_memcg(uid_t uid, pid_t pid) { int create_memcg(uid_t uid, pid_t pid) {
char buf[256]; return createProcessGroup(uid, pid, true) == 0 ? 0 : -1;
int tasks_file;
int written;
snprintf(buf, sizeof(buf), "/dev/memcg/apps/uid_%u", uid);
if (mkdir(buf, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH) < 0 &&
errno != EEXIST) {
return -1;
}
snprintf(buf, sizeof(buf), "/dev/memcg/apps/uid_%u/pid_%u", uid, pid);
if (mkdir(buf, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH) < 0 &&
errno != EEXIST) {
return -1;
}
snprintf(buf, sizeof(buf), "/dev/memcg/apps/uid_%u/pid_%u/tasks", uid, pid);
tasks_file = open(buf, O_WRONLY);
if (tasks_file < 0) {
return -2;
}
written = snprintf(buf, sizeof(buf), "%u", pid);
if (__predict_false(written >= (int)sizeof(buf))) {
written = sizeof(buf) - 1;
}
written = TEMP_FAILURE_RETRY(write(tasks_file, buf, written));
close(tasks_file);
return (written < 0) ? -3 : 0;
} }

View File

@ -23,6 +23,7 @@ cc_test {
"libbase", "libbase",
"liblog", "liblog",
"libcutils", "libcutils",
"libprocessgroup",
], ],
static_libs: [ static_libs: [
@ -53,6 +54,7 @@ cc_test {
"libbase", "libbase",
"liblog", "liblog",
"libcutils", "libcutils",
"libprocessgroup",
], ],
static_libs: [ static_libs: [