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

Commit 58891d59 authored by Robert Benea's avatar Robert Benea
Browse files

Make lmkd memory pressure levels configurable.

By doing so different platforms can customize them accordingly.
For instance a low mem, 512MB device can do
ro.lmk.medium=400, while a device with more memory can keep
the default(800).

Test: tested on gobo.
Bug: 64316084
Change-Id: Ifc4f3853bc06f30488adb25883ccd9aaf683ba9b
parent f415d125
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -31,6 +31,7 @@
#include <sys/types.h>
#include <unistd.h>

#include <cutils/properties.h>
#include <cutils/sockets.h>
#include <log/log.h>
#include <processgroup/processgroup.h>
@@ -72,6 +73,9 @@ static int mpevfd[2];
#define CRITICAL_INDEX 1
#define MEDIUM_INDEX 0

static int medium_oomadj;
static int critical_oomadj;

/* control socket listen and data */
static int ctrl_lfd;
static int ctrl_dfd = -1;
@@ -643,7 +647,7 @@ static void mp_event_common(bool is_critical) {
    int ret;
    unsigned long long evcount;
    bool first = true;
    int min_adj_score = is_critical ? 0 : 800;
    int min_adj_score = is_critical ? critical_oomadj : medium_oomadj;
    int index = is_critical ? CRITICAL_INDEX : MEDIUM_INDEX;

    ret = read(mpevfd[index], &evcount, sizeof(evcount));
@@ -822,6 +826,9 @@ int main(int argc __unused, char **argv __unused) {
            .sched_priority = 1,
    };

    medium_oomadj = property_get_int32("ro.lmk.medium", 800);
    critical_oomadj = property_get_int32("ro.lmk.critical", 0);

    mlockall(MCL_FUTURE);
    sched_setscheduler(0, SCHED_FIFO, &param);
    if (!init())