From 19e26708c2d8e563b20868d7a651a3485498ddf1 Mon Sep 17 00:00:00 2001 From: Robert Benea Date: Sun, 17 Sep 2017 18:31:35 -0700 Subject: [PATCH] Simplify lmkd functionality Get min adj score when needed, instead to propagate from caller funct. Bug:65642829 Test: tested on gobo_512 Change-Id: I87f15c5c6206d471002828a24d0462b0abb0d196 --- lmkd/lmkd.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/lmkd/lmkd.c b/lmkd/lmkd.c index 525d7b3cf..5cfa2c887 100644 --- a/lmkd/lmkd.c +++ b/lmkd/lmkd.c @@ -626,9 +626,10 @@ static int kill_one_process(struct proc* procp, int min_score_adj, bool is_criti * Find a process to kill based on the current (possibly estimated) free memory * and cached memory sizes. Returns the size of the killed processes. */ -static int find_and_kill_process(int min_score_adj, bool is_critical) { +static int find_and_kill_process(bool is_critical) { int i; int killed_size = 0; + int min_score_adj = is_critical ? critical_oomadj : medium_oomadj; for (i = OOM_SCORE_ADJ_MAX; i >= min_score_adj; i--) { struct proc *procp; @@ -676,7 +677,6 @@ static int64_t get_memory_usage(const char* path) { static void mp_event_common(bool is_critical) { int ret; unsigned long long evcount; - int min_adj_score = is_critical ? critical_oomadj : medium_oomadj; int index = is_critical ? CRITICAL_INDEX : MEDIUM_INDEX; int64_t mem_usage, memsw_usage; int64_t mem_pressure; @@ -689,7 +689,7 @@ static void mp_event_common(bool is_critical) { mem_usage = get_memory_usage(MEMCG_MEMORY_USAGE); memsw_usage = get_memory_usage(MEMCG_MEMORYSW_USAGE); if (memsw_usage < 0 || mem_usage < 0) { - find_and_kill_process(min_adj_score, is_critical); + find_and_kill_process(is_critical); return; } @@ -700,7 +700,6 @@ static void mp_event_common(bool is_critical) { // We are swapping too much. if (mem_pressure < upgrade_pressure) { ALOGI("Event upgraded to critical."); - min_adj_score = critical_oomadj; is_critical = true; } } @@ -720,7 +719,7 @@ static void mp_event_common(bool is_critical) { is_critical = false; } - if (find_and_kill_process(min_adj_score, is_critical) == 0) { + if (find_and_kill_process(is_critical) == 0) { if (debug_process_killing) { ALOGI("Nothing to kill"); }