2023-03-30 06:16:09

by Hao Ge

[permalink] [raw]
Subject: [RESEND PATCH] kmemleak-test: Optimize kmemleak_test.c build flow

Now kmemleak-test.c is moved to samples directory,
if CONFIG_DEBUG_KMEMLEAK_TEST=m,but CONFIG_SAMPLES
is not set,it will be meaningless.

So we will remove CONFIG_DEBUG_KMEMLEAK_TEST and
add CONFIG_SAMPLE_KMEMLEAK which in samples directory
to control kmemleak-test.c build or not

Signed-off-by: Hao Ge <[email protected]>
---
mm/Kconfig.debug | 8 --------
samples/Kconfig | 7 +++++++
samples/Makefile | 2 +-
samples/kmemleak/Makefile | 2 +-
4 files changed, 9 insertions(+), 10 deletions(-)

diff --git a/mm/Kconfig.debug b/mm/Kconfig.debug
index c3547a373c9c..fb86e9952bac 100644
--- a/mm/Kconfig.debug
+++ b/mm/Kconfig.debug
@@ -249,14 +249,6 @@ config DEBUG_KMEMLEAK_MEM_POOL_SIZE
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
diff --git a/samples/Kconfig b/samples/Kconfig
index 30ef8bd48ba3..69076fbf3298 100644
--- a/samples/Kconfig
+++ b/samples/Kconfig
@@ -273,6 +273,13 @@ config SAMPLE_CORESIGHT_SYSCFG
This demonstrates how a user may create their own CoreSight
configurations and easily load them into the system at runtime.

+config SAMPLE_KMEMLEAK
+ tristate "Simple test for the kernel memory leak detector"
+ depends on DEBUG_KMEMLEAK && m
+ help
+ Build a sample program which have explicitly leaks memory to test
+ kmemleak
+
source "samples/rust/Kconfig"

endif # SAMPLES
diff --git a/samples/Makefile b/samples/Makefile
index 7cb632ef88ee..7727f1a0d6d1 100644
--- a/samples/Makefile
+++ b/samples/Makefile
@@ -33,7 +33,7 @@ subdir-$(CONFIG_SAMPLE_VFS) += vfs
obj-$(CONFIG_SAMPLE_INTEL_MEI) += mei/
subdir-$(CONFIG_SAMPLE_WATCHDOG) += watchdog
subdir-$(CONFIG_SAMPLE_WATCH_QUEUE) += watch_queue
-obj-$(CONFIG_DEBUG_KMEMLEAK_TEST) += kmemleak/
+obj-$(CONFIG_SAMPLE_KMEMLEAK) += kmemleak/
obj-$(CONFIG_SAMPLE_CORESIGHT_SYSCFG) += coresight/
obj-$(CONFIG_SAMPLE_FPROBE) += fprobe/
obj-$(CONFIG_SAMPLES_RUST) += rust/
diff --git a/samples/kmemleak/Makefile b/samples/kmemleak/Makefile
index 16b6132c540c..8a999ab43b6d 100644
--- a/samples/kmemleak/Makefile
+++ b/samples/kmemleak/Makefile
@@ -1,3 +1,3 @@
# SPDX-License-Identifier: GPL-2.0-only

-obj-$(CONFIG_DEBUG_KMEMLEAK_TEST) += kmemleak-test.o
+obj-$(CONFIG_SAMPLE_KMEMLEAK) += kmemleak-test.o
--
2.25.1


No virus found
Checked by Hillstone Network AntiVirus


2023-03-30 20:28:20

by Andrew Morton

[permalink] [raw]
Subject: Re: [RESEND PATCH] kmemleak-test: Optimize kmemleak_test.c build flow

On Thu, 30 Mar 2023 14:09:04 +0800 Hao Ge <[email protected]> wrote:

> Now kmemleak-test.c is moved to samples directory,
> if CONFIG_DEBUG_KMEMLEAK_TEST=m,but CONFIG_SAMPLES
> is not set,it will be meaningless.
>
> So we will remove CONFIG_DEBUG_KMEMLEAK_TEST and
> add CONFIG_SAMPLE_KMEMLEAK which in samples directory
> to control kmemleak-test.c build or not

Thanks.

I changed the patch title, reworked the changelog and added the Fixes:
information. Please check all this carefully.



From: Hao Ge <[email protected]>
Subject: kmemleak-test: fix kmemleak_test.c build logic
Date: Thu, 30 Mar 2023 14:09:04 +0800

kmemleak-test.c was moved to the samples directory in 1abbef4f51724
("mm,kmemleak-test.c: move kmemleak-test.c to samples dir").

If CONFIG_DEBUG_KMEMLEAK_TEST=m and CONFIG_SAMPLES is unset,
kmemleak-test.c will be unnecessarily compiled.

So move the entry for CONFIG_DEBUG_KMEMLEAK_TEST from mm/Kconfig and add a
new CONFIG_SAMPLE_KMEMLEAK in samples/ to control whether kmemleak-test.c
is built or not.

Link: https://lkml.kernel.org/r/[email protected]
Fixes: 1abbef4f51724 ("mm,kmemleak-test.c: move kmemleak-test.c to samples dir")
Signed-off-by: Hao Ge <[email protected]>
Cc: Catalin Marinas <[email protected]>
Cc: Alex Gaynor <[email protected]>
Cc: Alex Williamson <[email protected]>
Cc: Arnd Bergmann <[email protected]>
Cc: Finn Behrens <[email protected]>
Cc: Greg Kroah-Hartman <[email protected]>
Cc: Jason Gunthorpe <[email protected]>
Cc: Mark Rutland <[email protected]>
Cc: Miguel Ojeda <[email protected]>
Cc: Tony Krowiak <[email protected]>
Cc: Ye Xingchen <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
---

mm/Kconfig.debug | 8 --------
samples/Kconfig | 7 +++++++
samples/Makefile | 2 +-
samples/kmemleak/Makefile | 2 +-
4 files changed, 9 insertions(+), 10 deletions(-)

--- a/mm/Kconfig.debug~kmemleak-test-optimize-kmemleak_testc-build-flow
+++ a/mm/Kconfig.debug
@@ -249,14 +249,6 @@ config DEBUG_KMEMLEAK_MEM_POOL_SIZE
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
--- a/samples/Kconfig~kmemleak-test-optimize-kmemleak_testc-build-flow
+++ a/samples/Kconfig
@@ -273,6 +273,13 @@ config SAMPLE_CORESIGHT_SYSCFG
This demonstrates how a user may create their own CoreSight
configurations and easily load them into the system at runtime.

+config SAMPLE_KMEMLEAK
+ tristate "Simple test for the kernel memory leak detector"
+ depends on DEBUG_KMEMLEAK && m
+ help
+ Build a sample program which have explicitly leaks memory to test
+ kmemleak
+
source "samples/rust/Kconfig"

endif # SAMPLES
--- a/samples/kmemleak/Makefile~kmemleak-test-optimize-kmemleak_testc-build-flow
+++ a/samples/kmemleak/Makefile
@@ -1,3 +1,3 @@
# SPDX-License-Identifier: GPL-2.0-only

-obj-$(CONFIG_DEBUG_KMEMLEAK_TEST) += kmemleak-test.o
+obj-$(CONFIG_SAMPLE_KMEMLEAK) += kmemleak-test.o
--- a/samples/Makefile~kmemleak-test-optimize-kmemleak_testc-build-flow
+++ a/samples/Makefile
@@ -33,7 +33,7 @@ subdir-$(CONFIG_SAMPLE_VFS) += vfs
obj-$(CONFIG_SAMPLE_INTEL_MEI) += mei/
subdir-$(CONFIG_SAMPLE_WATCHDOG) += watchdog
subdir-$(CONFIG_SAMPLE_WATCH_QUEUE) += watch_queue
-obj-$(CONFIG_DEBUG_KMEMLEAK_TEST) += kmemleak/
+obj-$(CONFIG_SAMPLE_KMEMLEAK) += kmemleak/
obj-$(CONFIG_SAMPLE_CORESIGHT_SYSCFG) += coresight/
obj-$(CONFIG_SAMPLE_FPROBE) += fprobe/
obj-$(CONFIG_SAMPLES_RUST) += rust/
_