From ff61afb002d7683b309b2b174fc7b18d30e5dbd1 Mon Sep 17 00:00:00 2001 From: Suren Baghdasaryan Date: Fri, 13 Apr 2018 11:45:38 -0700 Subject: [PATCH 1/2] lmkd: Rename is_go_device variable to better reflect its function Rename is_go_device variable to low_ram_device to better reflect its meaning and relation to ro.config.low_ram variable. Change-Id: I6e2eaebe79cf2e6edf861f7c602e52a5b573ad0a Signed-off-by: Suren Baghdasaryan --- lmkd/lmkd.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lmkd/lmkd.c b/lmkd/lmkd.c index f7c90ec0b..f19b43e41 100644 --- a/lmkd/lmkd.c +++ b/lmkd/lmkd.c @@ -110,7 +110,7 @@ static bool debug_process_killing; static bool enable_pressure_upgrade; static int64_t upgrade_pressure; static int64_t downgrade_pressure; -static bool is_go_device; +static bool low_ram_device; static bool kill_heaviest_task; static unsigned long kill_timeout_ms; @@ -788,7 +788,7 @@ static int find_and_kill_processes(enum vmpressure_level level, struct proc *procp; while (true) { - if (is_go_device) + if (low_ram_device) procp = proc_adj_lru(i); else procp = proc_get_heaviest(i); @@ -966,7 +966,7 @@ static void mp_event_common(int data, uint32_t events __unused) { } do_kill: - if (is_go_device) { + if (low_ram_device) { /* For Go devices kill only one task */ if (find_and_kill_processes(level, 0) == 0) { if (debug_process_killing) { @@ -1203,7 +1203,7 @@ int main(int argc __unused, char **argv __unused) { (int64_t)property_get_int32("ro.lmk.downgrade_pressure", 100); kill_heaviest_task = property_get_bool("ro.lmk.kill_heaviest_task", true); - is_go_device = property_get_bool("ro.config.low_ram", false); + low_ram_device = property_get_bool("ro.config.low_ram", false); kill_timeout_ms = (unsigned long)property_get_int32("ro.lmk.kill_timeout_ms", 0); From 818b59b2292f87c3781a6f7a288d10e2453b0d13 Mon Sep 17 00:00:00 2001 From: Suren Baghdasaryan Date: Fri, 13 Apr 2018 11:49:54 -0700 Subject: [PATCH 2/2] lmkd: Fix usage of ro.lmk.kill_heaviest_task property lmkd should use ro.lmk.kill_heaviest_task property to select between algorithms for victim selection. Set ro.lmk.kill_heaviest_task default value to false in order to keep it compatible with previous versions of lmkd (killing the heaviest task is a new mechanism). Change-Id: I78d2dc79d9c54e636c26665605518d9c87b535b3 Signed-off-by: Suren Baghdasaryan --- lmkd/lmkd.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/lmkd/lmkd.c b/lmkd/lmkd.c index f19b43e41..4c98a35ff 100644 --- a/lmkd/lmkd.c +++ b/lmkd/lmkd.c @@ -788,10 +788,8 @@ static int find_and_kill_processes(enum vmpressure_level level, struct proc *procp; while (true) { - if (low_ram_device) - procp = proc_adj_lru(i); - else - procp = proc_get_heaviest(i); + procp = kill_heaviest_task ? + proc_get_heaviest(i) : proc_adj_lru(i); if (!procp) break; @@ -1202,7 +1200,7 @@ int main(int argc __unused, char **argv __unused) { downgrade_pressure = (int64_t)property_get_int32("ro.lmk.downgrade_pressure", 100); kill_heaviest_task = - property_get_bool("ro.lmk.kill_heaviest_task", true); + property_get_bool("ro.lmk.kill_heaviest_task", false); low_ram_device = property_get_bool("ro.config.low_ram", false); kill_timeout_ms = (unsigned long)property_get_int32("ro.lmk.kill_timeout_ms", 0);