mm: Kconfig: reorganize misplaced mm options
After commits7b42f1041c
("mm: Kconfig: move swap and slab config options to the MM section") and519bcb7979
("mm: Kconfig: group swap, slab, hotplug and thp options into submenus") we now have nicely organized mm related config options. I have noticed some that were still misplaced, so this moves them from various places into the new structure: VM_EVENT_COUNTERS, COMPAT_BRK, MMAP_ALLOW_UNINITIALIZED to mm/Kconfig and general MM section. SLUB_STATS to mm/Kconfig and the slab submenu. DEBUG_SLAB, SLUB_DEBUG, SLUB_DEBUG_ON to mm/Kconfig.debug and the Kernel hacking / Memory Debugging submenu. Link: https://lkml.kernel.org/r/20220525112559.1139-1-vbabka@suse.cz Signed-off-by: Vlastimil Babka <vbabka@suse.cz> Acked-by: Johannes Weiner <hannes@cmpxchg.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
Родитель
fbf4df0699
Коммит
0710d0122a
53
init/Kconfig
53
init/Kconfig
|
@ -1828,59 +1828,6 @@ config DEBUG_PERF_USE_VMALLOC
|
||||||
|
|
||||||
endmenu
|
endmenu
|
||||||
|
|
||||||
config VM_EVENT_COUNTERS
|
|
||||||
default y
|
|
||||||
bool "Enable VM event counters for /proc/vmstat" if EXPERT
|
|
||||||
help
|
|
||||||
VM event counters are needed for event counts to be shown.
|
|
||||||
This option allows the disabling of the VM event counters
|
|
||||||
on EXPERT systems. /proc/vmstat will only show page counts
|
|
||||||
if VM event counters are disabled.
|
|
||||||
|
|
||||||
config SLUB_DEBUG
|
|
||||||
default y
|
|
||||||
bool "Enable SLUB debugging support" if EXPERT
|
|
||||||
depends on SLUB && SYSFS
|
|
||||||
help
|
|
||||||
SLUB has extensive debug support features. Disabling these can
|
|
||||||
result in significant savings in code size. This also disables
|
|
||||||
SLUB sysfs support. /sys/slab will not exist and there will be
|
|
||||||
no support for cache validation etc.
|
|
||||||
|
|
||||||
config COMPAT_BRK
|
|
||||||
bool "Disable heap randomization"
|
|
||||||
default y
|
|
||||||
help
|
|
||||||
Randomizing heap placement makes heap exploits harder, but it
|
|
||||||
also breaks ancient binaries (including anything libc5 based).
|
|
||||||
This option changes the bootup default to heap randomization
|
|
||||||
disabled, and can be overridden at runtime by setting
|
|
||||||
/proc/sys/kernel/randomize_va_space to 2.
|
|
||||||
|
|
||||||
On non-ancient distros (post-2000 ones) N is usually a safe choice.
|
|
||||||
|
|
||||||
config MMAP_ALLOW_UNINITIALIZED
|
|
||||||
bool "Allow mmapped anonymous memory to be uninitialized"
|
|
||||||
depends on EXPERT && !MMU
|
|
||||||
default n
|
|
||||||
help
|
|
||||||
Normally, and according to the Linux spec, anonymous memory obtained
|
|
||||||
from mmap() has its contents cleared before it is passed to
|
|
||||||
userspace. Enabling this config option allows you to request that
|
|
||||||
mmap() skip that if it is given an MAP_UNINITIALIZED flag, thus
|
|
||||||
providing a huge performance boost. If this option is not enabled,
|
|
||||||
then the flag will be ignored.
|
|
||||||
|
|
||||||
This is taken advantage of by uClibc's malloc(), and also by
|
|
||||||
ELF-FDPIC binfmt's brk and stack allocator.
|
|
||||||
|
|
||||||
Because of the obvious security issues, this option should only be
|
|
||||||
enabled on embedded devices where you control what is run in
|
|
||||||
userspace. Since that isn't generally a problem on no-MMU systems,
|
|
||||||
it is normally safe to say Y here.
|
|
||||||
|
|
||||||
See Documentation/admin-guide/mm/nommu-mmap.rst for more information.
|
|
||||||
|
|
||||||
config SYSTEM_DATA_VERIFICATION
|
config SYSTEM_DATA_VERIFICATION
|
||||||
def_bool n
|
def_bool n
|
||||||
select SYSTEM_TRUSTED_KEYRING
|
select SYSTEM_TRUSTED_KEYRING
|
||||||
|
|
|
@ -698,40 +698,6 @@ config DEBUG_OBJECTS_ENABLE_DEFAULT
|
||||||
help
|
help
|
||||||
Debug objects boot parameter default value
|
Debug objects boot parameter default value
|
||||||
|
|
||||||
config DEBUG_SLAB
|
|
||||||
bool "Debug slab memory allocations"
|
|
||||||
depends on DEBUG_KERNEL && SLAB
|
|
||||||
help
|
|
||||||
Say Y here to have the kernel do limited verification on memory
|
|
||||||
allocation as well as poisoning memory on free to catch use of freed
|
|
||||||
memory. This can make kmalloc/kfree-intensive workloads much slower.
|
|
||||||
|
|
||||||
config SLUB_DEBUG_ON
|
|
||||||
bool "SLUB debugging on by default"
|
|
||||||
depends on SLUB && SLUB_DEBUG
|
|
||||||
default n
|
|
||||||
help
|
|
||||||
Boot with debugging on by default. SLUB boots by default with
|
|
||||||
the runtime debug capabilities switched off. Enabling this is
|
|
||||||
equivalent to specifying the "slub_debug" parameter on boot.
|
|
||||||
There is no support for more fine grained debug control like
|
|
||||||
possible with slub_debug=xxx. SLUB debugging may be switched
|
|
||||||
off in a kernel built with CONFIG_SLUB_DEBUG_ON by specifying
|
|
||||||
"slub_debug=-".
|
|
||||||
|
|
||||||
config SLUB_STATS
|
|
||||||
default n
|
|
||||||
bool "Enable SLUB performance statistics"
|
|
||||||
depends on SLUB && SYSFS
|
|
||||||
help
|
|
||||||
SLUB statistics are useful to debug SLUBs allocation behavior in
|
|
||||||
order find ways to optimize the allocator. This should never be
|
|
||||||
enabled for production use since keeping statistics slows down
|
|
||||||
the allocator by a few percentage points. The slabinfo command
|
|
||||||
supports the determination of the most active slabs to figure
|
|
||||||
out which slabs are relevant to a particular load.
|
|
||||||
Try running: slabinfo -DA
|
|
||||||
|
|
||||||
config HAVE_DEBUG_KMEMLEAK
|
config HAVE_DEBUG_KMEMLEAK
|
||||||
bool
|
bool
|
||||||
|
|
||||||
|
|
56
mm/Kconfig
56
mm/Kconfig
|
@ -270,6 +270,19 @@ config SLAB_FREELIST_HARDENED
|
||||||
sanity-checking than others. This option is most effective with
|
sanity-checking than others. This option is most effective with
|
||||||
CONFIG_SLUB.
|
CONFIG_SLUB.
|
||||||
|
|
||||||
|
config SLUB_STATS
|
||||||
|
default n
|
||||||
|
bool "Enable SLUB performance statistics"
|
||||||
|
depends on SLUB && SYSFS
|
||||||
|
help
|
||||||
|
SLUB statistics are useful to debug SLUBs allocation behavior in
|
||||||
|
order find ways to optimize the allocator. This should never be
|
||||||
|
enabled for production use since keeping statistics slows down
|
||||||
|
the allocator by a few percentage points. The slabinfo command
|
||||||
|
supports the determination of the most active slabs to figure
|
||||||
|
out which slabs are relevant to a particular load.
|
||||||
|
Try running: slabinfo -DA
|
||||||
|
|
||||||
config SLUB_CPU_PARTIAL
|
config SLUB_CPU_PARTIAL
|
||||||
default y
|
default y
|
||||||
depends on SLUB && SMP
|
depends on SLUB && SMP
|
||||||
|
@ -307,6 +320,40 @@ config SHUFFLE_PAGE_ALLOCATOR
|
||||||
|
|
||||||
Say Y if unsure.
|
Say Y if unsure.
|
||||||
|
|
||||||
|
config COMPAT_BRK
|
||||||
|
bool "Disable heap randomization"
|
||||||
|
default y
|
||||||
|
help
|
||||||
|
Randomizing heap placement makes heap exploits harder, but it
|
||||||
|
also breaks ancient binaries (including anything libc5 based).
|
||||||
|
This option changes the bootup default to heap randomization
|
||||||
|
disabled, and can be overridden at runtime by setting
|
||||||
|
/proc/sys/kernel/randomize_va_space to 2.
|
||||||
|
|
||||||
|
On non-ancient distros (post-2000 ones) N is usually a safe choice.
|
||||||
|
|
||||||
|
config MMAP_ALLOW_UNINITIALIZED
|
||||||
|
bool "Allow mmapped anonymous memory to be uninitialized"
|
||||||
|
depends on EXPERT && !MMU
|
||||||
|
default n
|
||||||
|
help
|
||||||
|
Normally, and according to the Linux spec, anonymous memory obtained
|
||||||
|
from mmap() has its contents cleared before it is passed to
|
||||||
|
userspace. Enabling this config option allows you to request that
|
||||||
|
mmap() skip that if it is given an MAP_UNINITIALIZED flag, thus
|
||||||
|
providing a huge performance boost. If this option is not enabled,
|
||||||
|
then the flag will be ignored.
|
||||||
|
|
||||||
|
This is taken advantage of by uClibc's malloc(), and also by
|
||||||
|
ELF-FDPIC binfmt's brk and stack allocator.
|
||||||
|
|
||||||
|
Because of the obvious security issues, this option should only be
|
||||||
|
enabled on embedded devices where you control what is run in
|
||||||
|
userspace. Since that isn't generally a problem on no-MMU systems,
|
||||||
|
it is normally safe to say Y here.
|
||||||
|
|
||||||
|
See Documentation/admin-guide/mm/nommu-mmap.rst for more information.
|
||||||
|
|
||||||
config SELECT_MEMORY_MODEL
|
config SELECT_MEMORY_MODEL
|
||||||
def_bool y
|
def_bool y
|
||||||
depends on ARCH_SELECT_MEMORY_MODEL
|
depends on ARCH_SELECT_MEMORY_MODEL
|
||||||
|
@ -964,6 +1011,15 @@ config ARCH_USES_HIGH_VMA_FLAGS
|
||||||
config ARCH_HAS_PKEYS
|
config ARCH_HAS_PKEYS
|
||||||
bool
|
bool
|
||||||
|
|
||||||
|
config VM_EVENT_COUNTERS
|
||||||
|
default y
|
||||||
|
bool "Enable VM event counters for /proc/vmstat" if EXPERT
|
||||||
|
help
|
||||||
|
VM event counters are needed for event counts to be shown.
|
||||||
|
This option allows the disabling of the VM event counters
|
||||||
|
on EXPERT systems. /proc/vmstat will only show page counts
|
||||||
|
if VM event counters are disabled.
|
||||||
|
|
||||||
config PERCPU_STATS
|
config PERCPU_STATS
|
||||||
bool "Collect percpu memory statistics"
|
bool "Collect percpu memory statistics"
|
||||||
help
|
help
|
||||||
|
|
|
@ -45,6 +45,37 @@ config DEBUG_PAGEALLOC_ENABLE_DEFAULT
|
||||||
Enable debug page memory allocations by default? This value
|
Enable debug page memory allocations by default? This value
|
||||||
can be overridden by debug_pagealloc=off|on.
|
can be overridden by debug_pagealloc=off|on.
|
||||||
|
|
||||||
|
config DEBUG_SLAB
|
||||||
|
bool "Debug slab memory allocations"
|
||||||
|
depends on DEBUG_KERNEL && SLAB
|
||||||
|
help
|
||||||
|
Say Y here to have the kernel do limited verification on memory
|
||||||
|
allocation as well as poisoning memory on free to catch use of freed
|
||||||
|
memory. This can make kmalloc/kfree-intensive workloads much slower.
|
||||||
|
|
||||||
|
config SLUB_DEBUG
|
||||||
|
default y
|
||||||
|
bool "Enable SLUB debugging support" if EXPERT
|
||||||
|
depends on SLUB && SYSFS
|
||||||
|
help
|
||||||
|
SLUB has extensive debug support features. Disabling these can
|
||||||
|
result in significant savings in code size. This also disables
|
||||||
|
SLUB sysfs support. /sys/slab will not exist and there will be
|
||||||
|
no support for cache validation etc.
|
||||||
|
|
||||||
|
config SLUB_DEBUG_ON
|
||||||
|
bool "SLUB debugging on by default"
|
||||||
|
depends on SLUB && SLUB_DEBUG
|
||||||
|
default n
|
||||||
|
help
|
||||||
|
Boot with debugging on by default. SLUB boots by default with
|
||||||
|
the runtime debug capabilities switched off. Enabling this is
|
||||||
|
equivalent to specifying the "slub_debug" parameter on boot.
|
||||||
|
There is no support for more fine grained debug control like
|
||||||
|
possible with slub_debug=xxx. SLUB debugging may be switched
|
||||||
|
off in a kernel built with CONFIG_SLUB_DEBUG_ON by specifying
|
||||||
|
"slub_debug=-".
|
||||||
|
|
||||||
config PAGE_OWNER
|
config PAGE_OWNER
|
||||||
bool "Track page owner"
|
bool "Track page owner"
|
||||||
depends on DEBUG_KERNEL && STACKTRACE_SUPPORT
|
depends on DEBUG_KERNEL && STACKTRACE_SUPPORT
|
||||||
|
|
Загрузка…
Ссылка в новой задаче