Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 32375c23 authored by Robert Benea's avatar Robert Benea
Browse files

Use mem cgroups in libprocessgroup if they're available

Use mem cgroups if the kernel is built with CONFIG_MEMCG=y,
additionally add system group.

test: verified on both kernel with/without memcg enabled
Change-Id: Ib9d1c8e3c797e75f160e0e92edf3f11c9d8e9f17
parent 5d6d932a
Loading
Loading
Loading
Loading
+0 −7
Original line number Diff line number Diff line
@@ -43,9 +43,6 @@

using namespace std::chrono_literals;

// Uncomment line below use memory cgroups for keeping track of (forked) PIDs
// #define USE_MEMCG 1

#define MEM_CGROUP_PATH "/dev/memcg/apps"
#define MEM_CGROUP_TASKS "/dev/memcg/apps/tasks"
#define ACCT_CGROUP_PATH "/acct"
@@ -91,7 +88,6 @@ class ProcessGroup {
};

static const char* getCgroupRootPath() {
#ifdef USE_MEMCG
    static const char* cgroup_root_path = NULL;
    std::call_once(init_path_flag, [&]() {
            // Check if mem cgroup is mounted, only then check for write-access to avoid
@@ -100,9 +96,6 @@ static const char* getCgroupRootPath() {
                    ACCT_CGROUP_PATH : MEM_CGROUP_PATH;
            });
    return cgroup_root_path;
#else
    return ACCT_CGROUP_PATH;
#endif
}

static int convertUidToPath(char *path, size_t size, uid_t uid)
+2 −0
Original line number Diff line number Diff line
@@ -36,6 +36,8 @@ on early-init
    mount cgroup none /dev/memcg memory
    # app mem cgroups, used by activity manager, lmkd and zygote
    mkdir /dev/memcg/apps/ 0755 system system
    # cgroup for system_server and surfaceflinger
    mkdir /dev/memcg/system 0755 system system

    start ueventd