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
This commit is contained in:
parent
58d6a13832
commit
57397dc822
9
lmkd.c
9
lmkd.c
|
|
@ -31,6 +31,7 @@
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
|
#include <cutils/properties.h>
|
||||||
#include <cutils/sockets.h>
|
#include <cutils/sockets.h>
|
||||||
#include <log/log.h>
|
#include <log/log.h>
|
||||||
#include <processgroup/processgroup.h>
|
#include <processgroup/processgroup.h>
|
||||||
|
|
@ -72,6 +73,9 @@ static int mpevfd[2];
|
||||||
#define CRITICAL_INDEX 1
|
#define CRITICAL_INDEX 1
|
||||||
#define MEDIUM_INDEX 0
|
#define MEDIUM_INDEX 0
|
||||||
|
|
||||||
|
static int medium_oomadj;
|
||||||
|
static int critical_oomadj;
|
||||||
|
|
||||||
/* control socket listen and data */
|
/* control socket listen and data */
|
||||||
static int ctrl_lfd;
|
static int ctrl_lfd;
|
||||||
static int ctrl_dfd = -1;
|
static int ctrl_dfd = -1;
|
||||||
|
|
@ -643,7 +647,7 @@ static void mp_event_common(bool is_critical) {
|
||||||
int ret;
|
int ret;
|
||||||
unsigned long long evcount;
|
unsigned long long evcount;
|
||||||
bool first = true;
|
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;
|
int index = is_critical ? CRITICAL_INDEX : MEDIUM_INDEX;
|
||||||
|
|
||||||
ret = read(mpevfd[index], &evcount, sizeof(evcount));
|
ret = read(mpevfd[index], &evcount, sizeof(evcount));
|
||||||
|
|
@ -822,6 +826,9 @@ int main(int argc __unused, char **argv __unused) {
|
||||||
.sched_priority = 1,
|
.sched_priority = 1,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
medium_oomadj = property_get_int32("ro.lmk.medium", 800);
|
||||||
|
critical_oomadj = property_get_int32("ro.lmk.critical", 0);
|
||||||
|
|
||||||
mlockall(MCL_FUTURE);
|
mlockall(MCL_FUTURE);
|
||||||
sched_setscheduler(0, SCHED_FIFO, ¶m);
|
sched_setscheduler(0, SCHED_FIFO, ¶m);
|
||||||
if (!init())
|
if (!init())
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue