Every binder operation is being logged. This impacts performance and increases memory footprint. Since binder is critical for Android operation, doing any logging on production builds isn't best idea. Quick grep over Android sources revealed that only lshal and dumpsys binaries use binder_log directory, these are not critical so breaking them won't hurt much. Anyways, I was able to succesfully run both and bacis functionality was still there. Benchmarks showed significant decrease in transaction time with an avg of 1000ns. Also, change all DEBUG ifdefs to new define. Signed-off-by: Andrzej Perczak <linux@andrzejperczak.com>
103 lines
3.2 KiB
Plaintext
103 lines
3.2 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
|
|
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_BINDER_LOGS
|
|
bool "Android Binder Logging"
|
|
depends on ANDROID_BINDERFS
|
|
help
|
|
Enables binder_logs directory in binderfs and debug_mask for dmesg
|
|
logging. Needed for DEBUG_FS.
|
|
This option impacts performance.
|
|
|
|
Say N on production builds.
|
|
|
|
config ANDROID_SIMPLE_LMK
|
|
bool "Simple Android Low Memory Killer"
|
|
depends on !ANDROID_LOW_MEMORY_KILLER && !MEMCG && !PSI
|
|
---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 direct reclaim and kswapd reclaim
|
|
struggling to free up pages, via VM pressure notifications.
|
|
|
|
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
|