tools/testing/selftests/mm/.gitignore | 71 +++------------------- tools/testing/selftests/mm/Makefile | 6 +- tools/testing/selftests/mm/check_config.sh | 2 +- tools/testing/selftests/mm/cow.c | 2 +- tools/testing/selftests/mm/gup_longterm.c | 2 +- 5 files changed, 15 insertions(+), 68 deletions(-)
From: Pratyush Mallick <pratmal@google.com>
The current .gitignore hardcodes each generated test binary by name,
requiring updates every time a new test is added.
Switch to the patten-matching approach similar to KVM:selftests.
Ignore everything by default and then allow source extensions (.c, .h, .sh)
and tracked non-source files.
To avoid un-ignoring the generated headers, rename local_config.h to
local_config.h_gen.
Acked-by: Lorenzo Stoakes <ljs@kernel.org>
Reviewed-by: Yosry Ahmed <yosryahmed@google.com>
Reviewed-by: David Hildenbrand <david@kernel.org>
Signed-off-by: Pratyush Mallick <pratmal@google.com>
---
Changelog since v1 (RFC):
- Renamed local_config.h to local_config.h_gen to avoid conflict with !*.h.
- Updated Makefile, check_config.sh, and affected .c files for the rename.
- Removed *.mod.c as it was unnecessary.
tools/testing/selftests/mm/.gitignore | 71 +++-------------------
tools/testing/selftests/mm/Makefile | 6 +-
tools/testing/selftests/mm/check_config.sh | 2 +-
tools/testing/selftests/mm/cow.c | 2 +-
tools/testing/selftests/mm/gup_longterm.c | 2 +-
5 files changed, 15 insertions(+), 68 deletions(-)
diff --git a/tools/testing/selftests/mm/.gitignore b/tools/testing/selftests/mm/.gitignore
index 83ad9454dd9d..fcd892ed21e3 100644
--- a/tools/testing/selftests/mm/.gitignore
+++ b/tools/testing/selftests/mm/.gitignore
@@ -1,63 +1,10 @@
# SPDX-License-Identifier: GPL-2.0-only
-cow
-hugepage-mmap
-hugepage-mremap
-hugepage-shm
-hugepage-vmemmap
-hugetlb-madvise
-hugetlb-read-hwpoison
-hugetlb-soft-offline
-khugepaged
-map_hugetlb
-map_populate
-thuge-gen
-compaction_test
-memory-failure
-migration
-mlock2-tests
-mrelease_test
-mremap_dontunmap
-mremap_test
-on-fault-limit
-transhuge-stress
-pagemap_ioctl
-pfnmap
-process_madv
-*.tmp*
-protection_keys
-protection_keys_32
-protection_keys_64
-madv_populate
-uffd-stress
-uffd-unit-tests
-uffd-wp-mremap
-mlock-intersect-test
-mlock-random-test
-virtual_address_range
-gup_test
-va_128TBswitch
-map_fixed_noreplace
-write_to_hugetlbfs
-hmm-tests
-memfd_secret
-soft-dirty
-split_huge_page_test
-ksm_tests
-local_config.h
-local_config.mk
-ksm_functional_tests
-mdwe_test
-gup_longterm
-mkdirty
-va_high_addr_switch
-hugetlb_fault_after_madv
-hugetlb_madv_vs_map
-mseal_test
-droppable
-hugetlb_dio
-pkey_sighandler_tests_32
-pkey_sighandler_tests_64
-guard-regions
-merge
-prctl_thp_disable
-rmap
+*
+!/**/
+!*.c
+!*.h
+!*.sh
+!.gitignore
+!Makefile
+!config
+!settings
diff --git a/tools/testing/selftests/mm/Makefile b/tools/testing/selftests/mm/Makefile
index 7a5de4e9bf52..32f4b016b74f 100644
--- a/tools/testing/selftests/mm/Makefile
+++ b/tools/testing/selftests/mm/Makefile
@@ -5,7 +5,7 @@
# script so kunit knows to run it, and add it to the list below.
# If you do not YOUR TESTS WILL NOT RUN IN THE CI.
-LOCAL_HDRS += $(selfdir)/mm/local_config.h $(top_srcdir)/mm/gup_test.h
+LOCAL_HDRS += $(selfdir)/mm/local_config.h_gen $(top_srcdir)/mm/gup_test.h
LOCAL_HDRS += $(selfdir)/mm/mseal_helpers.h
include local_config.mk
@@ -259,10 +259,10 @@ $(OUTPUT)/migration: LDLIBS += -lnuma
$(OUTPUT)/rmap: LDLIBS += -lnuma
-local_config.mk local_config.h: check_config.sh
+local_config.mk local_config.h_gen: check_config.sh
CC="$(CC)" CFLAGS="$(CFLAGS)" ./check_config.sh
-EXTRA_CLEAN += local_config.mk local_config.h
+EXTRA_CLEAN += local_config.mk local_config.h_gen
ifeq ($(IOURING_EXTRA_LIBS),)
all: warn_missing_liburing
diff --git a/tools/testing/selftests/mm/check_config.sh b/tools/testing/selftests/mm/check_config.sh
index b84c82bbf875..b46bf2d2e7f8 100755
--- a/tools/testing/selftests/mm/check_config.sh
+++ b/tools/testing/selftests/mm/check_config.sh
@@ -4,7 +4,7 @@
# Probe for libraries and create header files to record the results. Both C
# header files and Makefile include fragments are created.
-OUTPUT_H_FILE=local_config.h
+OUTPUT_H_FILE=local_config.h_gen
OUTPUT_MKFILE=local_config.mk
tmpname=$(mktemp)
diff --git a/tools/testing/selftests/mm/cow.c b/tools/testing/selftests/mm/cow.c
index d9c69c04b67d..87710c5a2d3c 100644
--- a/tools/testing/selftests/mm/cow.c
+++ b/tools/testing/selftests/mm/cow.c
@@ -21,7 +21,7 @@
#include <sys/wait.h>
#include <linux/memfd.h>
-#include "local_config.h"
+#include "local_config.h_gen"
#ifdef LOCAL_CONFIG_HAVE_LIBURING
#include <liburing.h>
#endif /* LOCAL_CONFIG_HAVE_LIBURING */
diff --git a/tools/testing/selftests/mm/gup_longterm.c b/tools/testing/selftests/mm/gup_longterm.c
index f61150d28eb2..00ea0dd2f655 100644
--- a/tools/testing/selftests/mm/gup_longterm.c
+++ b/tools/testing/selftests/mm/gup_longterm.c
@@ -21,7 +21,7 @@
#include <linux/magic.h>
#include <linux/memfd.h>
-#include "local_config.h"
+#include "local_config.h_gen"
#ifdef LOCAL_CONFIG_HAVE_LIBURING
#include <liburing.h>
#endif /* LOCAL_CONFIG_HAVE_LIBURING */
--
2.54.0.545.g6539524ca2-goog
On Tue, May 5, 2026 at 8:22 AM <pratmal@google.com> wrote: > > From: Pratyush Mallick <pratmal@google.com> > > The current .gitignore hardcodes each generated test binary by name, > requiring updates every time a new test is added. > > Switch to the patten-matching approach similar to KVM:selftests. > Ignore everything by default and then allow source extensions (.c, .h, .sh) > and tracked non-source files. > > To avoid un-ignoring the generated headers, rename local_config.h to > local_config.h_gen. > > Acked-by: Lorenzo Stoakes <ljs@kernel.org> > Reviewed-by: Yosry Ahmed <yosryahmed@google.com> > Reviewed-by: David Hildenbrand <david@kernel.org> I think these need to be sorted out (as I mentioned privately). Also, we probably need to split this into two patches: one renaming local_config.h and one updating .gitignore.
On 5/8/26 20:34, Yosry Ahmed wrote: > On Tue, May 5, 2026 at 8:22 AM <pratmal@google.com> wrote: >> >> From: Pratyush Mallick <pratmal@google.com> >> >> The current .gitignore hardcodes each generated test binary by name, >> requiring updates every time a new test is added. >> >> Switch to the patten-matching approach similar to KVM:selftests. >> Ignore everything by default and then allow source extensions (.c, .h, .sh) >> and tracked non-source files. >> >> To avoid un-ignoring the generated headers, rename local_config.h to >> local_config.h_gen. >> >> Acked-by: Lorenzo Stoakes <ljs@kernel.org> >> Reviewed-by: Yosry Ahmed <yosryahmed@google.com> >> Reviewed-by: David Hildenbrand <david@kernel.org> > > I think these need to be sorted out (as I mentioned privately). > > Also, we probably need to split this into two patches: one renaming > local_config.h and one updating .gitignore. Yeah we could, but no strong opinion from my side. -- Cheers, David
On Tue, May 05, 2026 at 03:22:28PM +0000, pratmal@google.com wrote: > From: Pratyush Mallick <pratmal@google.com> > > The current .gitignore hardcodes each generated test binary by name, > requiring updates every time a new test is added. > > Switch to the patten-matching approach similar to KVM:selftests. > Ignore everything by default and then allow source extensions (.c, .h, .sh) > and tracked non-source files. > > To avoid un-ignoring the generated headers, rename local_config.h to > local_config.h_gen. > > Acked-by: Lorenzo Stoakes <ljs@kernel.org> > Reviewed-by: Yosry Ahmed <yosryahmed@google.com> > Reviewed-by: David Hildenbrand <david@kernel.org> > Signed-off-by: Pratyush Mallick <pratmal@google.com> Acked-by: Mike Rapoport (Microsoft) <rppt@kernel.org> > --- > Changelog since v1 (RFC): > - Renamed local_config.h to local_config.h_gen to avoid conflict with !*.h. > - Updated Makefile, check_config.sh, and affected .c files for the rename. > - Removed *.mod.c as it was unnecessary. > > tools/testing/selftests/mm/.gitignore | 71 +++------------------- > tools/testing/selftests/mm/Makefile | 6 +- > tools/testing/selftests/mm/check_config.sh | 2 +- > tools/testing/selftests/mm/cow.c | 2 +- > tools/testing/selftests/mm/gup_longterm.c | 2 +- > 5 files changed, 15 insertions(+), 68 deletions(-) -- Sincerely yours, Mike.
© 2016 - 2026 Red Hat, Inc.