2023-01-18 02:56:46

by zhaoyang.huang

[permalink] [raw]
Subject: [PATCH] mm: move KMEMLEAK's Kconfig items from lib to mm

From: Zhaoyang Huang <[email protected]>

Have the kmemleak's source code and Kconfig items be in the same directory.

Signed-off-by: Zhaoyang Huang <[email protected]>
---
lib/Kconfig.debug | 70 -------------------------------------------------------
mm/Kconfig.debug | 70 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 70 insertions(+), 70 deletions(-)

diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
index 401ad4b..62884ac 100644
--- a/lib/Kconfig.debug
+++ b/lib/Kconfig.debug
@@ -716,76 +716,6 @@ config SHRINKER_DEBUG
visibility into the kernel memory shrinkers subsystem.
Disable it to avoid an extra memory footprint.

-config HAVE_DEBUG_KMEMLEAK
- bool
-
-config DEBUG_KMEMLEAK
- bool "Kernel memory leak detector"
- depends on DEBUG_KERNEL && HAVE_DEBUG_KMEMLEAK
- select DEBUG_FS
- select STACKTRACE if STACKTRACE_SUPPORT
- select KALLSYMS
- select CRC32
- select STACKDEPOT
- help
- Say Y here if you want to enable the memory leak
- detector. The memory allocation/freeing is traced in a way
- similar to the Boehm's conservative garbage collector, the
- difference being that the orphan objects are not freed but
- only shown in /sys/kernel/debug/kmemleak. Enabling this
- feature will introduce an overhead to memory
- allocations. See Documentation/dev-tools/kmemleak.rst for more
- details.
-
- Enabling DEBUG_SLAB or SLUB_DEBUG may increase the chances
- of finding leaks due to the slab objects poisoning.
-
- In order to access the kmemleak file, debugfs needs to be
- mounted (usually at /sys/kernel/debug).
-
-config DEBUG_KMEMLEAK_MEM_POOL_SIZE
- int "Kmemleak memory pool size"
- depends on DEBUG_KMEMLEAK
- range 200 1000000
- default 16000
- help
- Kmemleak must track all the memory allocations to avoid
- reporting false positives. Since memory may be allocated or
- freed before kmemleak is fully initialised, use a static pool
- of metadata objects to track such callbacks. After kmemleak is
- fully initialised, this memory pool acts as an emergency one
- if slab allocations fail.
-
-config DEBUG_KMEMLEAK_TEST
- tristate "Simple test for the kernel memory leak detector"
- depends on DEBUG_KMEMLEAK && m
- help
- This option enables a module that explicitly leaks memory.
-
- If unsure, say N.
-
-config DEBUG_KMEMLEAK_DEFAULT_OFF
- bool "Default kmemleak to off"
- depends on DEBUG_KMEMLEAK
- help
- Say Y here to disable kmemleak by default. It can then be enabled
- on the command line via kmemleak=on.
-
-config DEBUG_KMEMLEAK_AUTO_SCAN
- bool "Enable kmemleak auto scan thread on boot up"
- default y
- depends on DEBUG_KMEMLEAK
- help
- Depending on the cpu, kmemleak scan may be cpu intensive and can
- stall user tasks at times. This option enables/disables automatic
- kmemleak scan at boot up.
-
- Say N here to disable kmemleak auto scan thread to stop automatic
- scanning. Disabling this option disables automatic reporting of
- memory leaks.
-
- If unsure, say Y.
-
config DEBUG_STACK_USAGE
bool "Stack utilization instrumentation"
depends on DEBUG_KERNEL && !IA64
diff --git a/mm/Kconfig.debug b/mm/Kconfig.debug
index ce8dded..d1893ac 100644
--- a/mm/Kconfig.debug
+++ b/mm/Kconfig.debug
@@ -207,3 +207,73 @@ config PTDUMP_DEBUGFS
kernel.

If in doubt, say N.
+
+config HAVE_DEBUG_KMEMLEAK
+ bool
+
+config DEBUG_KMEMLEAK
+ bool "Kernel memory leak detector"
+ depends on DEBUG_KERNEL && HAVE_DEBUG_KMEMLEAK
+ select DEBUG_FS
+ select STACKTRACE if STACKTRACE_SUPPORT
+ select KALLSYMS
+ select CRC32
+ select STACKDEPOT
+ help
+ Say Y here if you want to enable the memory leak
+ detector. The memory allocation/freeing is traced in a way
+ similar to the Boehm's conservative garbage collector, the
+ difference being that the orphan objects are not freed but
+ only shown in /sys/kernel/debug/kmemleak. Enabling this
+ feature will introduce an overhead to memory
+ allocations. See Documentation/dev-tools/kmemleak.rst for more
+ details.
+
+ Enabling DEBUG_SLAB or SLUB_DEBUG may increase the chances
+ of finding leaks due to the slab objects poisoning.
+
+ In order to access the kmemleak file, debugfs needs to be
+ mounted (usually at /sys/kernel/debug).
+
+config DEBUG_KMEMLEAK_MEM_POOL_SIZE
+ int "Kmemleak memory pool size"
+ depends on DEBUG_KMEMLEAK
+ range 200 1000000
+ default 16000
+ help
+ Kmemleak must track all the memory allocations to avoid
+ reporting false positives. Since memory may be allocated or
+ freed before kmemleak is fully initialised, use a static pool
+ of metadata objects to track such callbacks. After kmemleak is
+ fully initialised, this memory pool acts as an emergency one
+ if slab allocations fail.
+
+config DEBUG_KMEMLEAK_TEST
+ tristate "Simple test for the kernel memory leak detector"
+ depends on DEBUG_KMEMLEAK && m
+ help
+ This option enables a module that explicitly leaks memory.
+
+ If unsure, say N.
+
+config DEBUG_KMEMLEAK_DEFAULT_OFF
+ bool "Default kmemleak to off"
+ depends on DEBUG_KMEMLEAK
+ help
+ Say Y here to disable kmemleak by default. It can then be enabled
+ on the command line via kmemleak=on.
+
+config DEBUG_KMEMLEAK_AUTO_SCAN
+ bool "Enable kmemleak auto scan thread on boot up"
+ default y
+ depends on DEBUG_KMEMLEAK
+ help
+ Depending on the cpu, kmemleak scan may be cpu intensive and can
+ stall user tasks at times. This option enables/disables automatic
+ kmemleak scan at boot up.
+
+ Say N here to disable kmemleak auto scan thread to stop automatic
+ scanning. Disabling this option disables automatic reporting of
+ memory leaks.
+
+ If unsure, say Y.
--
1.9.1


2023-01-18 15:22:41

by Catalin Marinas

[permalink] [raw]
Subject: Re: [PATCH] mm: move KMEMLEAK's Kconfig items from lib to mm

On Wed, Jan 18, 2023 at 10:35:27AM +0800, zhaoyang.huang wrote:
> From: Zhaoyang Huang <[email protected]>
>
> Have the kmemleak's source code and Kconfig items be in the same directory.
>
> Signed-off-by: Zhaoyang Huang <[email protected]>

Acked-by: Catalin Marinas <[email protected]>

2023-01-19 10:35:36

by Mike Rapoport

[permalink] [raw]
Subject: Re: [PATCH] mm: move KMEMLEAK's Kconfig items from lib to mm

On Wed, Jan 18, 2023 at 10:35:27AM +0800, zhaoyang.huang wrote:
> From: Zhaoyang Huang <[email protected]>
>
> Have the kmemleak's source code and Kconfig items be in the same directory.
>
> Signed-off-by: Zhaoyang Huang <[email protected]>

Acked-by: Mike Rapoport (IBM) <[email protected]>

> ---
> lib/Kconfig.debug | 70 -------------------------------------------------------
> mm/Kconfig.debug | 70 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
> 2 files changed, 70 insertions(+), 70 deletions(-)
>
> diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
> index 401ad4b..62884ac 100644
> --- a/lib/Kconfig.debug
> +++ b/lib/Kconfig.debug
> @@ -716,76 +716,6 @@ config SHRINKER_DEBUG
> visibility into the kernel memory shrinkers subsystem.
> Disable it to avoid an extra memory footprint.
>
> -config HAVE_DEBUG_KMEMLEAK
> - bool
> -
> -config DEBUG_KMEMLEAK
> - bool "Kernel memory leak detector"
> - depends on DEBUG_KERNEL && HAVE_DEBUG_KMEMLEAK
> - select DEBUG_FS
> - select STACKTRACE if STACKTRACE_SUPPORT
> - select KALLSYMS
> - select CRC32
> - select STACKDEPOT
> - help
> - Say Y here if you want to enable the memory leak
> - detector. The memory allocation/freeing is traced in a way
> - similar to the Boehm's conservative garbage collector, the
> - difference being that the orphan objects are not freed but
> - only shown in /sys/kernel/debug/kmemleak. Enabling this
> - feature will introduce an overhead to memory
> - allocations. See Documentation/dev-tools/kmemleak.rst for more
> - details.
> -
> - Enabling DEBUG_SLAB or SLUB_DEBUG may increase the chances
> - of finding leaks due to the slab objects poisoning.
> -
> - In order to access the kmemleak file, debugfs needs to be
> - mounted (usually at /sys/kernel/debug).
> -
> -config DEBUG_KMEMLEAK_MEM_POOL_SIZE
> - int "Kmemleak memory pool size"
> - depends on DEBUG_KMEMLEAK
> - range 200 1000000
> - default 16000
> - help
> - Kmemleak must track all the memory allocations to avoid
> - reporting false positives. Since memory may be allocated or
> - freed before kmemleak is fully initialised, use a static pool
> - of metadata objects to track such callbacks. After kmemleak is
> - fully initialised, this memory pool acts as an emergency one
> - if slab allocations fail.
> -
> -config DEBUG_KMEMLEAK_TEST
> - tristate "Simple test for the kernel memory leak detector"
> - depends on DEBUG_KMEMLEAK && m
> - help
> - This option enables a module that explicitly leaks memory.
> -
> - If unsure, say N.
> -
> -config DEBUG_KMEMLEAK_DEFAULT_OFF
> - bool "Default kmemleak to off"
> - depends on DEBUG_KMEMLEAK
> - help
> - Say Y here to disable kmemleak by default. It can then be enabled
> - on the command line via kmemleak=on.
> -
> -config DEBUG_KMEMLEAK_AUTO_SCAN
> - bool "Enable kmemleak auto scan thread on boot up"
> - default y
> - depends on DEBUG_KMEMLEAK
> - help
> - Depending on the cpu, kmemleak scan may be cpu intensive and can
> - stall user tasks at times. This option enables/disables automatic
> - kmemleak scan at boot up.
> -
> - Say N here to disable kmemleak auto scan thread to stop automatic
> - scanning. Disabling this option disables automatic reporting of
> - memory leaks.
> -
> - If unsure, say Y.
> -
> config DEBUG_STACK_USAGE
> bool "Stack utilization instrumentation"
> depends on DEBUG_KERNEL && !IA64
> diff --git a/mm/Kconfig.debug b/mm/Kconfig.debug
> index ce8dded..d1893ac 100644
> --- a/mm/Kconfig.debug
> +++ b/mm/Kconfig.debug
> @@ -207,3 +207,73 @@ config PTDUMP_DEBUGFS
> kernel.
>
> If in doubt, say N.
> +
> +config HAVE_DEBUG_KMEMLEAK
> + bool
> +
> +config DEBUG_KMEMLEAK
> + bool "Kernel memory leak detector"
> + depends on DEBUG_KERNEL && HAVE_DEBUG_KMEMLEAK
> + select DEBUG_FS
> + select STACKTRACE if STACKTRACE_SUPPORT
> + select KALLSYMS
> + select CRC32
> + select STACKDEPOT
> + help
> + Say Y here if you want to enable the memory leak
> + detector. The memory allocation/freeing is traced in a way
> + similar to the Boehm's conservative garbage collector, the
> + difference being that the orphan objects are not freed but
> + only shown in /sys/kernel/debug/kmemleak. Enabling this
> + feature will introduce an overhead to memory
> + allocations. See Documentation/dev-tools/kmemleak.rst for more
> + details.
> +
> + Enabling DEBUG_SLAB or SLUB_DEBUG may increase the chances
> + of finding leaks due to the slab objects poisoning.
> +
> + In order to access the kmemleak file, debugfs needs to be
> + mounted (usually at /sys/kernel/debug).
> +
> +config DEBUG_KMEMLEAK_MEM_POOL_SIZE
> + int "Kmemleak memory pool size"
> + depends on DEBUG_KMEMLEAK
> + range 200 1000000
> + default 16000
> + help
> + Kmemleak must track all the memory allocations to avoid
> + reporting false positives. Since memory may be allocated or
> + freed before kmemleak is fully initialised, use a static pool
> + of metadata objects to track such callbacks. After kmemleak is
> + fully initialised, this memory pool acts as an emergency one
> + if slab allocations fail.
> +
> +config DEBUG_KMEMLEAK_TEST
> + tristate "Simple test for the kernel memory leak detector"
> + depends on DEBUG_KMEMLEAK && m
> + help
> + This option enables a module that explicitly leaks memory.
> +
> + If unsure, say N.
> +
> +config DEBUG_KMEMLEAK_DEFAULT_OFF
> + bool "Default kmemleak to off"
> + depends on DEBUG_KMEMLEAK
> + help
> + Say Y here to disable kmemleak by default. It can then be enabled
> + on the command line via kmemleak=on.
> +
> +config DEBUG_KMEMLEAK_AUTO_SCAN
> + bool "Enable kmemleak auto scan thread on boot up"
> + default y
> + depends on DEBUG_KMEMLEAK
> + help
> + Depending on the cpu, kmemleak scan may be cpu intensive and can
> + stall user tasks at times. This option enables/disables automatic
> + kmemleak scan at boot up.
> +
> + Say N here to disable kmemleak auto scan thread to stop automatic
> + scanning. Disabling this option disables automatic reporting of
> + memory leaks.
> +
> + If unsure, say Y.
> --
> 1.9.1
>
>

--
Sincerely yours,
Mike.