Files
UtsavBalar1231 a896c5cfb3 Merge remote-tracking branch 'slmk/linux-4.14' into auto-kernel
* 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
2020-07-08 09:55:52 +05:30

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