lmkd: Add lmkd README file
Add README file providing lmkd overview and description for its properties. Bug: 77299493 Bug: 75322373 Change-Id: I30236dd4ccaa2b48c31dfb80b63f0b82b49b5744 Merged-In: I30236dd4ccaa2b48c31dfb80b63f0b82b49b5744 Signed-off-by: Suren Baghdasaryan <surenb@google.com> (cherry picked from commit 7e5dea82a5a2f86117722ff11c93bc672ffb7903)
This commit is contained in:
parent
cfca0a30fb
commit
518668e043
|
|
@ -0,0 +1,60 @@
|
||||||
|
Android Low Memory Killer Daemon
|
||||||
|
================================
|
||||||
|
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
------------
|
||||||
|
|
||||||
|
Android Low Memory Killer Daemon (lmkd) is a process monitoring memory
|
||||||
|
state of a running Android system and reacting to high memory pressure
|
||||||
|
by killing the least essential process(es) to keep system performing
|
||||||
|
at acceptable levels.
|
||||||
|
|
||||||
|
|
||||||
|
Background
|
||||||
|
----------
|
||||||
|
|
||||||
|
Historically on Android systems memory monitoring and killing of
|
||||||
|
non-essential processes was handled by a kernel lowmemorykiller driver.
|
||||||
|
Since Linux Kernel 4.12 the lowmemorykiller driver has been removed and
|
||||||
|
instead userspace lmkd daemon performs these tasks.
|
||||||
|
|
||||||
|
|
||||||
|
Android Properties
|
||||||
|
------------------
|
||||||
|
|
||||||
|
lmkd can be configured on a particular system using the following Android
|
||||||
|
properties:
|
||||||
|
|
||||||
|
ro.config.low_ram: choose between low-memory vs high-performance
|
||||||
|
device. Default = false.
|
||||||
|
|
||||||
|
ro.lmk.low: min oom_adj score for processes eligible to be
|
||||||
|
killed at low vmpressure level. Default = 1001
|
||||||
|
(disabled)
|
||||||
|
|
||||||
|
ro.lmk.medium: min oom_adj score for processes eligible to be
|
||||||
|
killed at medium vmpressure level. Default = 800
|
||||||
|
(non-essential processes)
|
||||||
|
|
||||||
|
ro.lmk.critical: min oom_adj score for processes eligible to be
|
||||||
|
killed at critical vmpressure level. Default = 0
|
||||||
|
(all processes)
|
||||||
|
|
||||||
|
ro.lmk.critical_upgrade: enables upgrade to critical level. Default = false
|
||||||
|
|
||||||
|
ro.lmk.upgrade_pressure: max mem_pressure at which level will be upgraded
|
||||||
|
because system is swapping too much. Default = 100
|
||||||
|
(disabled)
|
||||||
|
|
||||||
|
ro.lmk.downgrade_pressure: min mem_pressure at which vmpressure event will
|
||||||
|
be ignored because enough free memory is still
|
||||||
|
available. Default = 100 (disabled)
|
||||||
|
|
||||||
|
ro.lmk.kill_heaviest_task: kill heaviest eligible task (best decision) vs.
|
||||||
|
any eligible task (fast decision). Default = false
|
||||||
|
|
||||||
|
ro.lmk.kill_timeout_ms: duration in ms after a kill when no additional
|
||||||
|
kill will be done, Default = 0 (disabled)
|
||||||
|
|
||||||
|
ro.lmk.debug: enable lmkd debug logs, Default = false
|
||||||
Loading…
Reference in New Issue