summaryrefslogtreecommitdiffstats
path: root/lmkd
diff options
context:
space:
mode:
authorSuren Baghdasaryan <surenb@google.com>2018-04-13 11:36:46 -0700
committerSuren Baghdasaryan <surenb@google.com>2018-04-16 09:26:40 -0700
commit9dbd937b4c790aa25e0be737cf41e583ac430a18 (patch)
tree8c79af2a4d1e7d1d3603ccbcdd489318e7a86f8b /lmkd
parent14eb61199e7ca084740a7db5fff394bed12ce21b (diff)
downloadsystem_core-9dbd937b4c790aa25e0be737cf41e583ac430a18.tar.gz
system_core-9dbd937b4c790aa25e0be737cf41e583ac430a18.tar.bz2
system_core-9dbd937b4c790aa25e0be737cf41e583ac430a18.zip
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)
Diffstat (limited to 'lmkd')
-rw-r--r--lmkd/README.md60
1 files changed, 60 insertions, 0 deletions
diff --git a/lmkd/README.md b/lmkd/README.md
new file mode 100644
index 000000000..ba2e83d06
--- /dev/null
+++ b/lmkd/README.md
@@ -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