liblmkd_utils: Use libprocessgroup to create cgroups
Bug: 213617178 Test: Ran lmkd_tests inside Cuttlefish Change-Id: Ic34b731dfe5d6b1e90d258c2b0af538a216b054a Signed-off-by: Bart Van Assche <bvanassche@google.com>
This commit is contained in:
parent
75a98b56ab
commit
911f106a4a
|
|
@ -64,6 +64,7 @@ cc_library_static {
|
|||
recovery_available: true,
|
||||
shared_libs: [
|
||||
"libcutils",
|
||||
"libprocessgroup",
|
||||
],
|
||||
export_include_dirs: ["include"],
|
||||
cppflags: [
|
||||
|
|
|
|||
|
|
@ -22,8 +22,9 @@
|
|||
#include <stdio.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include <liblmkd_utils.h>
|
||||
#include <cutils/sockets.h>
|
||||
#include <liblmkd_utils.h>
|
||||
#include <processgroup/processgroup.h>
|
||||
|
||||
int lmkd_connect() {
|
||||
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) {
|
||||
char buf[256];
|
||||
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;
|
||||
return createProcessGroup(uid, pid, true) == 0 ? 0 : -1;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@ cc_test {
|
|||
"libbase",
|
||||
"liblog",
|
||||
"libcutils",
|
||||
"libprocessgroup",
|
||||
],
|
||||
|
||||
static_libs: [
|
||||
|
|
@ -53,6 +54,7 @@ cc_test {
|
|||
"libbase",
|
||||
"liblog",
|
||||
"libcutils",
|
||||
"libprocessgroup",
|
||||
],
|
||||
|
||||
static_libs: [
|
||||
|
|
|
|||
Loading…
Reference in New Issue