* [PATCH v3 1/2] selftests/mm: respect build verbosity settings for 32/64-bit targets
2026-04-22 8:04 [PATCH v3 0/2] selftests/mm: clean up build output and verbosity Li Wang
@ 2026-04-22 8:04 ` Li Wang
2026-04-23 13:38 ` David Hildenbrand (Arm)
2026-04-22 8:04 ` [PATCH v3 2/2] selftests/mm: suppress compiler error in liburing check Li Wang
2026-04-23 13:31 ` [PATCH v3 0/2] selftests/mm: clean up build output and verbosity David Hildenbrand (Arm)
2 siblings, 1 reply; 6+ messages in thread
From: Li Wang @ 2026-04-22 8:04 UTC (permalink / raw)
To: akpm, david, ljs, Liam.Howlett, vbabka, rppt, surenb, mhocko,
shuah
Cc: linux-mm, linux-kselftest, linux-kernel
The 32-bit and 64-bit compilation rules invoke $(CC) directly, bypassing
the $(Q) quiet prefix and $(call msg,...) helper used by the rest of the
selftests build system. This causes these rules to always print the full
compiler command line, even when V=0 (the default).
Wrap the commands with $(Q) and $(call msg,CC,,$@) to match the
convention used by lib.mk, so that quiet and verbose builds behave
consistently across all targets.
==== Build logs ====
...
CC merge
CC rmap
CC soft-dirty
gcc -Wall -O2 -I /usr/src/25/tools/testing/selftests/../../..
-isystem /usr/src/25/tools/testing/selftests/../../../usr/include
-isystem /usr/src/25/tools/testing/selftests/../../../tools/include/uapi
-Wunreachable-code -U_FORTIFY_SOURCE -no-pie -D_GNU_SOURCE=
-I/usr/src/25/tools/testing/selftests/../../../tools/testing/selftests
-m32 -mxsave protection_keys.c vm_util.c thp_settings.c pkey_util.c
-lrt -lpthread -lm -lrt -ldl -lm
-o /usr/src/25/tools/testing/selftests/mm/protection_keys_32
gcc -Wall -O2 -I /usr/src/25/tools/testing/selftests/../../..
-isystem /usr/src/25/tools/testing/selftests/../../../usr/include
-isystem /usr/src/25/tools/testing/selftests/../../../tools/include/uapi
-Wunreachable-code -U_FORTIFY_SOURCE -no-pie -D_GNU_SOURCE=
-I/usr/src/25/tools/testing/selftests/../../../tools/testing/selftests
-m32 -mxsave pkey_sighandler_tests.c vm_util.c thp_settings.c pkey_util.c
-lrt -lpthread -lm -lrt -ldl -lm
-o /usr/src/25/tools/testing/selftests/mm/pkey_sighandler_tests_32
...
Reported-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Li Wang <wangli.ahau@gmail.com>
Tested-by: Andrew Morton <akpm@linux-foundation.org>
---
tools/testing/selftests/mm/Makefile | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/tools/testing/selftests/mm/Makefile b/tools/testing/selftests/mm/Makefile
index cd24596cdd2..6195770eba6 100644
--- a/tools/testing/selftests/mm/Makefile
+++ b/tools/testing/selftests/mm/Makefile
@@ -216,7 +216,8 @@ ifeq ($(CAN_BUILD_I386),1)
$(BINARIES_32): CFLAGS += -m32 -mxsave
$(BINARIES_32): LDLIBS += -lrt -ldl -lm
$(BINARIES_32): $(OUTPUT)/%_32: %.c
- $(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(notdir $^) $(LDLIBS) -o $@
+ $(call msg,CC,,$@)
+ $(Q)$(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(notdir $^) $(LDLIBS) -o $@
$(foreach t,$(VMTARGETS),$(eval $(call gen-target-rule-32,$(t))))
endif
@@ -224,7 +225,8 @@ ifeq ($(CAN_BUILD_X86_64),1)
$(BINARIES_64): CFLAGS += -m64 -mxsave
$(BINARIES_64): LDLIBS += -lrt -ldl
$(BINARIES_64): $(OUTPUT)/%_64: %.c
- $(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(notdir $^) $(LDLIBS) -o $@
+ $(call msg,CC,,$@)
+ $(Q)$(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(notdir $^) $(LDLIBS) -o $@
$(foreach t,$(VMTARGETS),$(eval $(call gen-target-rule-64,$(t))))
endif
--
2.53.0
^ permalink raw reply related [flat|nested] 6+ messages in thread* Re: [PATCH v3 1/2] selftests/mm: respect build verbosity settings for 32/64-bit targets
2026-04-22 8:04 ` [PATCH v3 1/2] selftests/mm: respect build verbosity settings for 32/64-bit targets Li Wang
@ 2026-04-23 13:38 ` David Hildenbrand (Arm)
0 siblings, 0 replies; 6+ messages in thread
From: David Hildenbrand (Arm) @ 2026-04-23 13:38 UTC (permalink / raw)
To: Li Wang, akpm, ljs, Liam.Howlett, vbabka, rppt, surenb, mhocko,
shuah
Cc: linux-mm, linux-kselftest, linux-kernel
On 4/22/26 10:04, Li Wang wrote:
> The 32-bit and 64-bit compilation rules invoke $(CC) directly, bypassing
> the $(Q) quiet prefix and $(call msg,...) helper used by the rest of the
> selftests build system. This causes these rules to always print the full
> compiler command line, even when V=0 (the default).
>
> Wrap the commands with $(Q) and $(call msg,CC,,$@) to match the
> convention used by lib.mk, so that quiet and verbose builds behave
> consistently across all targets.
>
> ==== Build logs ====
> ...
> CC merge
> CC rmap
> CC soft-dirty
> gcc -Wall -O2 -I /usr/src/25/tools/testing/selftests/../../..
> -isystem /usr/src/25/tools/testing/selftests/../../../usr/include
> -isystem /usr/src/25/tools/testing/selftests/../../../tools/include/uapi
> -Wunreachable-code -U_FORTIFY_SOURCE -no-pie -D_GNU_SOURCE=
> -I/usr/src/25/tools/testing/selftests/../../../tools/testing/selftests
> -m32 -mxsave protection_keys.c vm_util.c thp_settings.c pkey_util.c
> -lrt -lpthread -lm -lrt -ldl -lm
> -o /usr/src/25/tools/testing/selftests/mm/protection_keys_32
> gcc -Wall -O2 -I /usr/src/25/tools/testing/selftests/../../..
> -isystem /usr/src/25/tools/testing/selftests/../../../usr/include
> -isystem /usr/src/25/tools/testing/selftests/../../../tools/include/uapi
> -Wunreachable-code -U_FORTIFY_SOURCE -no-pie -D_GNU_SOURCE=
> -I/usr/src/25/tools/testing/selftests/../../../tools/testing/selftests
> -m32 -mxsave pkey_sighandler_tests.c vm_util.c thp_settings.c pkey_util.c
> -lrt -lpthread -lm -lrt -ldl -lm
> -o /usr/src/25/tools/testing/selftests/mm/pkey_sighandler_tests_32
> ...
>
> Reported-by: Andrew Morton <akpm@linux-foundation.org>
> Signed-off-by: Li Wang <wangli.ahau@gmail.com>
> Tested-by: Andrew Morton <akpm@linux-foundation.org>
> ---
Great
Tested-by: David Hildenbrand (Arm) <david@kernel.org>
Acked-by: David Hildenbrand (Arm) <david@kernel.org>
--
Cheers,
David
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH v3 2/2] selftests/mm: suppress compiler error in liburing check
2026-04-22 8:04 [PATCH v3 0/2] selftests/mm: clean up build output and verbosity Li Wang
2026-04-22 8:04 ` [PATCH v3 1/2] selftests/mm: respect build verbosity settings for 32/64-bit targets Li Wang
@ 2026-04-22 8:04 ` Li Wang
2026-04-23 13:40 ` David Hildenbrand (Arm)
2026-04-23 13:31 ` [PATCH v3 0/2] selftests/mm: clean up build output and verbosity David Hildenbrand (Arm)
2 siblings, 1 reply; 6+ messages in thread
From: Li Wang @ 2026-04-22 8:04 UTC (permalink / raw)
To: akpm, david, ljs, Liam.Howlett, vbabka, rppt, surenb, mhocko,
shuah
Cc: linux-mm, linux-kselftest, linux-kernel
When building the mm selftests on a system without liburing development
headers, check_config.sh leaks a raw compiler error:
/tmp/tmp.kIIOIqwe3n.c:2:10: fatal error: liburing.h: No such file or directory
2 | #include <liburing.h>
| ^~~~~~~~~~~~
Since this is an expected failure during the configuration probe,
redirect the compiler output to /dev/null to hide it.
And the build system prints a clear warning when this occurs:
Warning: missing liburing support. Some tests will be skipped.
Because the user is properly notified about the missing dependency, the
raw compiler error is redundant and only confuse users.
Additionally, update the Makefile to use $(Q) and $(call msg,...) for
the check_config.sh execution. This aligns the probe with standard
kbuild output formatting, providing a clean "CHK" message instead of
printing the raw command during the build.
Signed-off-by: Li Wang <wangli.ahau@gmail.com>
---
tools/testing/selftests/mm/Makefile | 3 ++-
tools/testing/selftests/mm/check_config.sh | 2 +-
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/tools/testing/selftests/mm/Makefile b/tools/testing/selftests/mm/Makefile
index 6195770eba6..18779045b7f 100644
--- a/tools/testing/selftests/mm/Makefile
+++ b/tools/testing/selftests/mm/Makefile
@@ -263,7 +263,8 @@ $(OUTPUT)/migration: LDLIBS += -lnuma
$(OUTPUT)/rmap: LDLIBS += -lnuma
local_config.mk local_config.h: check_config.sh
- CC="$(CC)" CFLAGS="$(CFLAGS)" ./check_config.sh
+ $(call msg,CHK,config,$@)
+ $(Q)CC="$(CC)" CFLAGS="$(CFLAGS)" ./check_config.sh
EXTRA_CLEAN += local_config.mk local_config.h
diff --git a/tools/testing/selftests/mm/check_config.sh b/tools/testing/selftests/mm/check_config.sh
index b84c82bbf87..32beaefe279 100755
--- a/tools/testing/selftests/mm/check_config.sh
+++ b/tools/testing/selftests/mm/check_config.sh
@@ -16,7 +16,7 @@ echo "#include <sys/types.h>" > $tmpfile_c
echo "#include <liburing.h>" >> $tmpfile_c
echo "int func(void) { return 0; }" >> $tmpfile_c
-$CC $CFLAGS -c $tmpfile_c -o $tmpfile_o
+$CC $CFLAGS -c $tmpfile_c -o $tmpfile_o >/dev/null 2>&1
if [ -f $tmpfile_o ]; then
echo "#define LOCAL_CONFIG_HAVE_LIBURING 1" > $OUTPUT_H_FILE
--
2.53.0
^ permalink raw reply related [flat|nested] 6+ messages in thread* Re: [PATCH v3 2/2] selftests/mm: suppress compiler error in liburing check
2026-04-22 8:04 ` [PATCH v3 2/2] selftests/mm: suppress compiler error in liburing check Li Wang
@ 2026-04-23 13:40 ` David Hildenbrand (Arm)
0 siblings, 0 replies; 6+ messages in thread
From: David Hildenbrand (Arm) @ 2026-04-23 13:40 UTC (permalink / raw)
To: Li Wang, akpm, ljs, Liam.Howlett, vbabka, rppt, surenb, mhocko,
shuah
Cc: linux-mm, linux-kselftest, linux-kernel
On 4/22/26 10:04, Li Wang wrote:
> When building the mm selftests on a system without liburing development
> headers, check_config.sh leaks a raw compiler error:
>
> /tmp/tmp.kIIOIqwe3n.c:2:10: fatal error: liburing.h: No such file or directory
> 2 | #include <liburing.h>
> | ^~~~~~~~~~~~
>
> Since this is an expected failure during the configuration probe,
> redirect the compiler output to /dev/null to hide it.
>
> And the build system prints a clear warning when this occurs:
>
> Warning: missing liburing support. Some tests will be skipped.
>
> Because the user is properly notified about the missing dependency, the
> raw compiler error is redundant and only confuse users.
>
> Additionally, update the Makefile to use $(Q) and $(call msg,...) for
> the check_config.sh execution. This aligns the probe with standard
> kbuild output formatting, providing a clean "CHK" message instead of
> printing the raw command during the build.
>
> Signed-off-by: Li Wang <wangli.ahau@gmail.com>
> ---
Thanks!
Tested-by: David Hildenbrand (Arm) <david@kernel.org>
Acked-by: David Hildenbrand (Arm) <david@kernel.org>
--
Cheers,
David
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v3 0/2] selftests/mm: clean up build output and verbosity
2026-04-22 8:04 [PATCH v3 0/2] selftests/mm: clean up build output and verbosity Li Wang
2026-04-22 8:04 ` [PATCH v3 1/2] selftests/mm: respect build verbosity settings for 32/64-bit targets Li Wang
2026-04-22 8:04 ` [PATCH v3 2/2] selftests/mm: suppress compiler error in liburing check Li Wang
@ 2026-04-23 13:31 ` David Hildenbrand (Arm)
2 siblings, 0 replies; 6+ messages in thread
From: David Hildenbrand (Arm) @ 2026-04-23 13:31 UTC (permalink / raw)
To: Li Wang, akpm, ljs, Liam.Howlett, vbabka, rppt, surenb, mhocko,
shuah
Cc: linux-mm, linux-kselftest, linux-kernel
On 4/22/26 10:04, Li Wang wrote:
> Currently, the build process for the mm selftests is unnecessarily noisy.
>
> First, it leaks raw compiler errors during the liburing feature probe if
> the headers are missing, which is confusing since the build system already
> handles this gracefully with a clear warning.
>
> Second, the specific 32-bit and 64-bit compilation targets ignore the
> standard kbuild verbosity settings, always printing their full compiler
> commands even during a default quiet build.
>
> Notes:
> My email address has changed due to employment change.
> Previous Signed-off-by was with <liwang@redhat.com>.
:(
As a former RH'er, I'm deeply sorry for what has happened there, really.
Thank you for continuing to contribute upstream, highly appreciated!
--
Cheers,
David
^ permalink raw reply [flat|nested] 6+ messages in thread