mm: Kconfig: reorganize misplaced mm options
authorVlastimil Babka <vbabka@suse.cz>
Wed, 25 May 2022 11:25:59 +0000 (13:25 +0200)
committerakpm <akpm@linux-foundation.org>
Fri, 27 May 2022 16:33:47 +0000 (09:33 -0700)
After commits 7b42f1041c98 ("mm: Kconfig: move swap and slab config
options to the MM section") and 519bcb797907 ("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>
init/Kconfig
lib/Kconfig.debug
mm/Kconfig
mm/Kconfig.debug

index 1d2ecd2..0cff027 100644 (file)
@@ -1828,59 +1828,6 @@ config DEBUG_PERF_USE_VMALLOC
 
 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
        def_bool n
        select SYSTEM_TRUSTED_KEYRING
index 075cd25..25763dc 100644 (file)
@@ -698,40 +698,6 @@ config DEBUG_OBJECTS_ENABLE_DEFAULT
        help
          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
        bool
 
index 905c205..169e641 100644 (file)
@@ -270,6 +270,19 @@ config SLAB_FREELIST_HARDENED
          sanity-checking than others. This option is most effective with
          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
        default y
        depends on SLUB && SMP
@@ -307,6 +320,40 @@ config SHUFFLE_PAGE_ALLOCATOR
 
          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
        def_bool y
        depends on ARCH_SELECT_MEMORY_MODEL
@@ -964,6 +1011,15 @@ config ARCH_USES_HIGH_VMA_FLAGS
 config ARCH_HAS_PKEYS
        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
        bool "Collect percpu memory statistics"
        help
index 5bd5bb0..197eb28 100644 (file)
@@ -45,6 +45,37 @@ config DEBUG_PAGEALLOC_ENABLE_DEFAULT
          Enable debug page memory allocations by default? This value
          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
        bool "Track page owner"
        depends on DEBUG_KERNEL && STACKTRACE_SUPPORT