From 5564f4ee08cf154b2c4f646a2e7f1d5378063dc0 Mon Sep 17 00:00:00 2001 From: Yang Lu Date: Tue, 15 May 2018 04:59:44 +0000 Subject: [PATCH] Only log the lmkd state change when the killing really happened. BUG: b/78603347 Test: statsd test Change-Id: I0345a47e1cd1c79a67103e401a2eb0a7fbe0631b --- lmkd/lmkd.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/lmkd/lmkd.c b/lmkd/lmkd.c index 20937cd77..76344b98a 100644 --- a/lmkd/lmkd.c +++ b/lmkd/lmkd.c @@ -1026,9 +1026,7 @@ static int find_and_kill_processes(enum vmpressure_level level, int pages_freed = 0; #ifdef LMKD_LOG_STATS - if (enable_stats_log) { - stats_write_lmk_state_changed(log_ctx, LMK_STATE_CHANGED, LMK_STATE_CHANGE_START); - } + bool lmk_state_change_start = false; #endif for (i = OOM_SCORE_ADJ_MAX; i >= min_score_adj; i--) { @@ -1043,11 +1041,19 @@ static int find_and_kill_processes(enum vmpressure_level level, killed_size = kill_one_process(procp, min_score_adj, level); if (killed_size >= 0) { +#ifdef LMKD_LOG_STATS + if (enable_stats_log && !lmk_state_change_start) { + lmk_state_change_start = true; + stats_write_lmk_state_changed(log_ctx, LMK_STATE_CHANGED, + LMK_STATE_CHANGE_START); + } +#endif + pages_freed += killed_size; if (pages_freed >= pages_to_free) { #ifdef LMKD_LOG_STATS - if (enable_stats_log) { + if (enable_stats_log && lmk_state_change_start) { stats_write_lmk_state_changed(log_ctx, LMK_STATE_CHANGED, LMK_STATE_CHANGE_STOP); } @@ -1059,7 +1065,7 @@ static int find_and_kill_processes(enum vmpressure_level level, } #ifdef LMKD_LOG_STATS - if (enable_stats_log) { + if (enable_stats_log && lmk_state_change_start) { stats_write_lmk_state_changed(log_ctx, LMK_STATE_CHANGED, LMK_STATE_CHANGE_STOP); } #endif