* slmk/linux-4.14: simple_lmk: Remove unnecessary clean-up when timeout is reached simple_lmk: Hold an RCU read lock instead of the tasklist read lock mm: Don't stop kswapd on a per-node basis when there are no waiters simple_lmk: Consider all positive adjs when finding victims mm: vmpressure: Ignore allocation orders above PAGE_ALLOC_COSTLY_ORDER mm: Don't warn on page allocation failures for OOM-killed processes mm: Adjust tsk_is_oom_victim() for Simple LMK mm: vmpressure: Don't cache the window size mm: vmpressure: Interpret zero scanned pages as 100% pressure mm: vmpressure: Don't exclude any allocation types simple_lmk: Update adj targeting for Android 10 simple_lmk: Use vmpressure notifier to trigger kills mm: vmpressure: make vmpressure window variable mm: vmpressure: account allocstalls only on higher pressures mm: vmpressure: scale pressure based on reclaim context mm: vmpressure: allow in-kernel clients to subscribe for events mm, vmpressure: int cast vmpressure level/model for -1 comparison mm: Stop kswapd early when nothing's waiting for it to free pages simple_lmk: Include swap memory usage in the size of victims simple_lmk: Relax memory barriers and clean up some styling simple_lmk: Place victims onto SCHED_RR simple_lmk: Add a timeout to stop waiting for victims to die simple_lmk: Ignore tasks that won't free memory simple_lmk: Simplify tricks used to speed up the death process simple_lmk: Report mm as freed as soon as exit_mmap() finishes simple_lmk: Mark victim thread group with TIF_MEMDIE simple_lmk: Disable OOM killer when Simple LMK is enabled simple_lmk: Print a message when there are no processes to kill simple_lmk: Remove compat cruft not specific to 4.14 simple_lmk: Update copyright to 2020 simple_lmk: Don't queue up new reclaim requests during reclaim simple_lmk: Increase default minfree value simple_lmk: Clean up some code style nitpicks simple_lmk: Make reclaim deterministic simple_lmk: Fix broken multicopy atomicity for victims_to_kill simple_lmk: Use proper atomic_* operations where needed simple_lmk: Remove kthread_should_stop() exit condition simple_lmk: Fix pages_found calculation simple_lmk: Introduce Simple Low Memory Killer for Android Signed-off-by: UtsavBalar1231 <utsavbalar1231@gmail.com> Conflicts: kernel/exit.c kernel/fork.c mm/Makefile mm/vmpressure.c mm/vmscan.c
93 lines
3.0 KiB
Plaintext
93 lines
3.0 KiB
Plaintext
# SPDX-License-Identifier: GPL-2.0
|
|
menu "Android"
|
|
|
|
config ANDROID
|
|
bool "Android Drivers"
|
|
---help---
|
|
Enable support for various drivers needed on the Android platform
|
|
|
|
if ANDROID
|
|
|
|
config ANDROID_BINDER_IPC
|
|
bool "Android Binder IPC Driver"
|
|
depends on MMU && !M68K
|
|
default n
|
|
---help---
|
|
Binder is used in Android for both communication between processes,
|
|
and remote method invocation.
|
|
|
|
This means one Android process can call a method/routine in another
|
|
Android process, using Binder to identify, invoke and pass arguments
|
|
between said processes.
|
|
|
|
config ANDROID_BINDERFS
|
|
bool "Android Binderfs filesystem"
|
|
depends on ANDROID_BINDER_IPC
|
|
default n
|
|
---help---
|
|
Binderfs is a pseudo-filesystem for the Android Binder IPC driver
|
|
which can be mounted per-ipc namespace allowing to run multiple
|
|
instances of Android.
|
|
Each binderfs mount initially only contains a binder-control device.
|
|
It can be used to dynamically allocate new binder IPC devices via
|
|
ioctls.
|
|
|
|
config ANDROID_BINDER_DEVICES
|
|
string "Android Binder devices"
|
|
depends on ANDROID_BINDER_IPC
|
|
default "binder,hwbinder,vndbinder"
|
|
---help---
|
|
Default value for the binder.devices parameter.
|
|
|
|
The binder.devices parameter is a comma-separated list of strings
|
|
that specifies the names of the binder device nodes that will be
|
|
created. Each binder device has its own context manager, and is
|
|
therefore logically separated from the other devices.
|
|
|
|
config ANDROID_BINDER_IPC_SELFTEST
|
|
bool "Android Binder IPC Driver Selftest"
|
|
depends on ANDROID_BINDER_IPC
|
|
---help---
|
|
This feature allows binder selftest to run.
|
|
|
|
Binder selftest checks the allocation and free of binder buffers
|
|
exhaustively with combinations of various buffer sizes and
|
|
alignments.
|
|
|
|
config ANDROID_SIMPLE_LMK
|
|
bool "Simple Android Low Memory Killer"
|
|
depends on !ANDROID_LOW_MEMORY_KILLER && !MEMCG
|
|
---help---
|
|
This is a complete low memory killer solution for Android that is
|
|
small and simple. Processes are killed according to the priorities
|
|
that Android gives them, so that the least important processes are
|
|
always killed first. Processes are killed until memory deficits are
|
|
satisfied, as observed from kswapd struggling to free up pages. Simple
|
|
LMK stops killing processes when kswapd finally goes back to sleep.
|
|
|
|
if ANDROID_SIMPLE_LMK
|
|
|
|
config ANDROID_SIMPLE_LMK_MINFREE
|
|
int "Minimum MiB of memory to free per reclaim"
|
|
range 8 512
|
|
default 128
|
|
help
|
|
Simple LMK will try to free at least this much memory per reclaim.
|
|
|
|
config ANDROID_SIMPLE_LMK_TIMEOUT_MSEC
|
|
int "Reclaim timeout in milliseconds"
|
|
range 50 1000
|
|
default 200
|
|
help
|
|
Simple LMK tries to wait until all of the victims it kills have their
|
|
memory freed; however, sometimes victims can take a while to die,
|
|
which can block Simple LMK from killing more processes in time when
|
|
needed. After the specified timeout elapses, Simple LMK will stop
|
|
waiting and make itself available to kill more processes.
|
|
|
|
endif
|
|
|
|
endif # if ANDROID
|
|
|
|
endmenu
|