diff options
author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2023-12-13 00:26:30 +0000 |
---|---|---|
committer | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2023-12-13 00:26:30 +0000 |
commit | 20f15e92d4e02c34791b0519986a57cab5beb15d (patch) | |
tree | 07165b1bc99c6ef94e48d6e14d3dbffa3b9b1be5 | |
parent | 3180321b637cf26c8a063e1de0932d20cecb2190 (diff) | |
parent | d537478999081e1449379391f3b49c2d08b59039 (diff) | |
download | lmkd-android14-qpr2-s2-release.tar.gz |
Snap for 11211173 from d537478999081e1449379391f3b49c2d08b59039 to 24Q1-releaseandroid-14.0.0_r33android-14.0.0_r32android-14.0.0_r31android-14.0.0_r30android-14.0.0_r29android14-qpr2-s3-releaseandroid14-qpr2-s2-releaseandroid14-qpr2-s1-releaseandroid14-qpr2-release
Change-Id: Ic614e8fce27b1745c0d815ffa1c4b4e6522265e5
-rw-r--r-- | README.md | 4 | ||||
-rw-r--r-- | lmkd.cpp | 4 |
2 files changed, 8 insertions, 0 deletions
@@ -88,6 +88,10 @@ properties: - `ro.lmk.psi_complete_stall_ms`: complete PSI stall threshold in milliseconds for triggering critical memory notification. Default = 700 + - `ro.lmk.pressure_after_kill_min_score`: min oom_adj_score score threshold for + cycle after kill used to allow blocking of killing + critical processes when not enough memory was freed + in a kill cycle. Default score = 0. lmkd will set the following Android properties according to current system configurations: @@ -204,6 +204,7 @@ static int64_t downgrade_pressure; static bool low_ram_device; static bool kill_heaviest_task; static unsigned long kill_timeout_ms; +static int pressure_after_kill_min_score; static bool use_minfree_levels; static bool per_app_memcg; static int swap_free_low_percentage; @@ -2769,6 +2770,7 @@ static void mp_event_psi(int data, uint32_t events, struct polling_params *poll_ * This might happen when a process is consuming memory faster than reclaim can * free even after a kill. Mostly happens when running memory stress tests. */ + min_score_adj = pressure_after_kill_min_score; kill_reason = PRESSURE_AFTER_KILL; strncpy(kill_desc, "min watermark is breached even after kill", sizeof(kill_desc)); } else if (level == VMPRESS_LEVEL_CRITICAL && events != 0) { @@ -3771,6 +3773,8 @@ static bool update_props() { low_ram_device = property_get_bool("ro.config.low_ram", false); kill_timeout_ms = (unsigned long)GET_LMK_PROPERTY(int32, "kill_timeout_ms", 100); + pressure_after_kill_min_score = + (unsigned long)GET_LMK_PROPERTY(int32, "pressure_after_kill_min_score", 0); use_minfree_levels = GET_LMK_PROPERTY(bool, "use_minfree_levels", false); per_app_memcg = |