]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
tools: separate out shared radix-tree components
authorLorenzo Stoakes <lorenzo.stoakes@oracle.com>
Mon, 29 Jul 2024 11:50:40 +0000 (12:50 +0100)
committerAndrew Morton <akpm@linux-foundation.org>
Mon, 2 Sep 2024 03:25:55 +0000 (20:25 -0700)
The core components contained within the radix-tree tests which provide
shims for kernel headers and access to the maple tree are useful for
testing other things, so separate them out and make the radix tree tests
dependent on the shared components.

This lays the groundwork for us to add VMA tests of the newly introduced
vma.c file.

Link: https://lkml.kernel.org/r/1ee720c265808168e0d75608e687607d77c36719.1722251717.git.lorenzo.stoakes@oracle.com
Signed-off-by: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
Acked-by: Vlastimil Babka <vbabka@suse.cz>
Reviewed-by: Liam R. Howlett <Liam.Howlett@oracle.com>
Cc: Alexander Viro <viro@zeniv.linux.org.uk>
Cc: Brendan Higgins <brendanhiggins@google.com>
Cc: Christian Brauner <brauner@kernel.org>
Cc: David Gow <davidgow@google.com>
Cc: Eric W. Biederman <ebiederm@xmission.com>
Cc: Jan Kara <jack@suse.cz>
Cc: Kees Cook <kees@kernel.org>
Cc: Matthew Wilcox (Oracle) <willy@infradead.org>
Cc: Rae Moar <rmoar@google.com>
Cc: SeongJae Park <sj@kernel.org>
Cc: Shuah Khan <shuah@kernel.org>
Cc: Suren Baghdasaryan <surenb@google.com>
Cc: Pengfei Xu <pengfei.xu@intel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
27 files changed:
tools/testing/radix-tree/.gitignore
tools/testing/radix-tree/Makefile
tools/testing/radix-tree/xarray.c
tools/testing/shared/autoconf.h [moved from tools/testing/radix-tree/generated/autoconf.h with 100% similarity]
tools/testing/shared/linux.c [moved from tools/testing/radix-tree/linux.c with 100% similarity]
tools/testing/shared/linux/bug.h [moved from tools/testing/radix-tree/linux/bug.h with 100% similarity]
tools/testing/shared/linux/cpu.h [moved from tools/testing/radix-tree/linux/cpu.h with 100% similarity]
tools/testing/shared/linux/idr.h [moved from tools/testing/radix-tree/linux/idr.h with 100% similarity]
tools/testing/shared/linux/init.h [moved from tools/testing/radix-tree/linux/init.h with 100% similarity]
tools/testing/shared/linux/kconfig.h [moved from tools/testing/radix-tree/linux/kconfig.h with 100% similarity]
tools/testing/shared/linux/kernel.h [moved from tools/testing/radix-tree/linux/kernel.h with 100% similarity]
tools/testing/shared/linux/kmemleak.h [moved from tools/testing/radix-tree/linux/kmemleak.h with 100% similarity]
tools/testing/shared/linux/local_lock.h [moved from tools/testing/radix-tree/linux/local_lock.h with 100% similarity]
tools/testing/shared/linux/lockdep.h [moved from tools/testing/radix-tree/linux/lockdep.h with 100% similarity]
tools/testing/shared/linux/maple_tree.h [moved from tools/testing/radix-tree/linux/maple_tree.h with 100% similarity]
tools/testing/shared/linux/percpu.h [moved from tools/testing/radix-tree/linux/percpu.h with 100% similarity]
tools/testing/shared/linux/preempt.h [moved from tools/testing/radix-tree/linux/preempt.h with 100% similarity]
tools/testing/shared/linux/radix-tree.h [moved from tools/testing/radix-tree/linux/radix-tree.h with 100% similarity]
tools/testing/shared/linux/rcupdate.h [moved from tools/testing/radix-tree/linux/rcupdate.h with 100% similarity]
tools/testing/shared/linux/xarray.h [moved from tools/testing/radix-tree/linux/xarray.h with 100% similarity]
tools/testing/shared/maple-shared.h [new file with mode: 0644]
tools/testing/shared/maple-shim.c [new file with mode: 0644]
tools/testing/shared/shared.h [new file with mode: 0644]
tools/testing/shared/shared.mk [new file with mode: 0644]
tools/testing/shared/trace/events/maple_tree.h [moved from tools/testing/radix-tree/trace/events/maple_tree.h with 100% similarity]
tools/testing/shared/xarray-shared.c [new file with mode: 0644]
tools/testing/shared/xarray-shared.h [new file with mode: 0644]

index 49bccb90c35ba00d05353624b70393e1fd0c5243..ce167a7619818e8d1693d54a5988a71613713b76 100644 (file)
@@ -1,4 +1,5 @@
 # SPDX-License-Identifier: GPL-2.0-only
+generated/autoconf.h
 generated/bit-length.h
 generated/map-shift.h
 idr.c
index d1acd7d588501229d2ef16219a5218689774e787..8b3591a51e1fa670bcb99b1602aebe0654da472e 100644 (file)
@@ -1,77 +1,29 @@
 # SPDX-License-Identifier: GPL-2.0
 
-CFLAGS += -I. -I../../include -I../../../lib -g -Og -Wall \
-         -D_LGPL_SOURCE -fsanitize=address -fsanitize=undefined
-LDFLAGS += -fsanitize=address -fsanitize=undefined
-LDLIBS+= -lpthread -lurcu
-TARGETS = main idr-test multiorder xarray maple
-LIBS := slab.o find_bit.o bitmap.o hweight.o vsprintf.o
-CORE_OFILES := xarray.o radix-tree.o idr.o linux.o test.o maple.o $(LIBS)
-OFILES = main.o $(CORE_OFILES) regression1.o regression2.o regression3.o \
-        regression4.o tag_check.o multiorder.o idr-test.o iteration_check.o \
-        iteration_check_2.o benchmark.o
-
-ifndef SHIFT
-       SHIFT=3
-endif
+.PHONY: clean
 
-ifeq ($(BUILD), 32)
-       CFLAGS += -m32
-       LDFLAGS += -m32
-LONG_BIT := 32
-endif
-
-ifndef LONG_BIT
-LONG_BIT := $(shell getconf LONG_BIT)
-endif
+TARGETS = main idr-test multiorder xarray maple
+CORE_OFILES = $(SHARED_OFILES) xarray.o maple.o test.o
+OFILES = main.o $(CORE_OFILES) regression1.o regression2.o \
+        regression3.o regression4.o tag_check.o multiorder.o idr-test.o \
+       iteration_check.o iteration_check_2.o benchmark.o
 
 targets: generated/map-shift.h generated/bit-length.h $(TARGETS)
 
+include ../shared/shared.mk
+
 main:  $(OFILES)
 
 idr-test.o: ../../../lib/test_ida.c
 idr-test: idr-test.o $(CORE_OFILES)
 
-xarray: $(CORE_OFILES)
+xarray: $(CORE_OFILES) xarray.o
 
-maple: $(CORE_OFILES)
+maple: $(CORE_OFILES) maple.o
 
 multiorder: multiorder.o $(CORE_OFILES)
 
 clean:
-       $(RM) $(TARGETS) *.o radix-tree.c idr.c generated/map-shift.h generated/bit-length.h
-
-vpath %.c ../../lib
-
-$(OFILES): Makefile *.h */*.h generated/map-shift.h generated/bit-length.h \
-       ../../include/linux/*.h \
-       ../../include/asm/*.h \
-       ../../../include/linux/xarray.h \
-       ../../../include/linux/maple_tree.h \
-       ../../../include/linux/radix-tree.h \
-       ../../../lib/radix-tree.h \
-       ../../../include/linux/idr.h
-
-radix-tree.c: ../../../lib/radix-tree.c
-       sed -e 's/^static //' -e 's/__always_inline //' -e 's/inline //' < $< > $@
-
-idr.c: ../../../lib/idr.c
-       sed -e 's/^static //' -e 's/__always_inline //' -e 's/inline //' < $< > $@
-
-xarray.o: ../../../lib/xarray.c ../../../lib/test_xarray.c
-
-maple.o: ../../../lib/maple_tree.c ../../../lib/test_maple_tree.c
-
-generated/map-shift.h:
-       @if ! grep -qws $(SHIFT) generated/map-shift.h; then            \
-               echo "#define XA_CHUNK_SHIFT $(SHIFT)" >                \
-                               generated/map-shift.h;                  \
-       fi
-
-generated/bit-length.h: FORCE
-       @if ! grep -qws CONFIG_$(LONG_BIT)BIT generated/bit-length.h; then   \
-               echo "Generating $@";                                        \
-               echo "#define CONFIG_$(LONG_BIT)BIT 1" > $@;                 \
-       fi
+       $(RM) $(TARGETS) *.o radix-tree.c idr.c generated/*
 
-FORCE: ;
+$(OFILES): $(SHARED_DEPS) *.h
index d0e53bff1eb6b6c6e71644f0567c7451740d6e1a..253208a8541b45abcd3ab4e6209e1a538c6b18b7 100644 (file)
@@ -4,17 +4,9 @@
  * Copyright (c) 2018 Matthew Wilcox <willy@infradead.org>
  */
 
-#define XA_DEBUG
+#include "xarray-shared.h"
 #include "test.h"
 
-#define module_init(x)
-#define module_exit(x)
-#define MODULE_AUTHOR(x)
-#define MODULE_DESCRIPTION(X)
-#define MODULE_LICENSE(x)
-#define dump_stack()   assert(0)
-
-#include "../../../lib/xarray.c"
 #undef XA_DEBUG
 #include "../../../lib/test_xarray.c"
 
diff --git a/tools/testing/shared/maple-shared.h b/tools/testing/shared/maple-shared.h
new file mode 100644 (file)
index 0000000..3d847ed
--- /dev/null
@@ -0,0 +1,9 @@
+/* SPDX-License-Identifier: GPL-2.0+ */
+
+#define CONFIG_DEBUG_MAPLE_TREE
+#define CONFIG_MAPLE_SEARCH
+#define MAPLE_32BIT (MAPLE_NODE_SLOTS > 31)
+#include "shared.h"
+#include <stdlib.h>
+#include <time.h>
+#include "linux/init.h"
diff --git a/tools/testing/shared/maple-shim.c b/tools/testing/shared/maple-shim.c
new file mode 100644 (file)
index 0000000..640df76
--- /dev/null
@@ -0,0 +1,7 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+/* Very simple shim around the maple tree. */
+
+#include "maple-shared.h"
+
+#include "../../../lib/maple_tree.c"
diff --git a/tools/testing/shared/shared.h b/tools/testing/shared/shared.h
new file mode 100644 (file)
index 0000000..f08f683
--- /dev/null
@@ -0,0 +1,33 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+
+#include <linux/types.h>
+#include <linux/bug.h>
+#include <linux/kernel.h>
+#include <linux/bitops.h>
+
+#include <linux/gfp.h>
+#include <linux/rcupdate.h>
+
+#ifndef module_init
+#define module_init(x)
+#endif
+
+#ifndef module_exit
+#define module_exit(x)
+#endif
+
+#ifndef MODULE_AUTHOR
+#define MODULE_AUTHOR(x)
+#endif
+
+#ifndef MODULE_LICENSE
+#define MODULE_LICENSE(x)
+#endif
+
+#ifndef MODULE_DESCRIPTION
+#define MODULE_DESCRIPTION(x)
+#endif
+
+#ifndef dump_stack
+#define dump_stack()   assert(0)
+#endif
diff --git a/tools/testing/shared/shared.mk b/tools/testing/shared/shared.mk
new file mode 100644 (file)
index 0000000..a05f058
--- /dev/null
@@ -0,0 +1,72 @@
+# SPDX-License-Identifier: GPL-2.0
+
+CFLAGS += -I../shared -I. -I../../include -I../../../lib -g -Og -Wall \
+         -D_LGPL_SOURCE -fsanitize=address -fsanitize=undefined
+LDFLAGS += -fsanitize=address -fsanitize=undefined
+LDLIBS += -lpthread -lurcu
+LIBS := slab.o find_bit.o bitmap.o hweight.o vsprintf.o
+SHARED_OFILES = xarray-shared.o radix-tree.o idr.o linux.o $(LIBS)
+
+SHARED_DEPS = Makefile ../shared/shared.mk ../shared/*.h generated/map-shift.h \
+       generated/bit-length.h generated/autoconf.h \
+       ../../include/linux/*.h \
+       ../../include/asm/*.h \
+       ../../../include/linux/xarray.h \
+       ../../../include/linux/maple_tree.h \
+       ../../../include/linux/radix-tree.h \
+       ../../../lib/radix-tree.h \
+       ../../../include/linux/idr.h
+
+ifndef SHIFT
+       SHIFT=3
+endif
+
+ifeq ($(BUILD), 32)
+       CFLAGS += -m32
+       LDFLAGS += -m32
+LONG_BIT := 32
+endif
+
+ifndef LONG_BIT
+LONG_BIT := $(shell getconf LONG_BIT)
+endif
+
+%.o: ../shared/%.c
+       $(CC) -c $(CFLAGS) $< -o $@
+
+vpath %.c ../../lib
+
+$(SHARED_OFILES): $(SHARED_DEPS)
+
+radix-tree.c: ../../../lib/radix-tree.c
+       sed -e 's/^static //' -e 's/__always_inline //' -e 's/inline //' < $< > $@
+
+idr.c: ../../../lib/idr.c
+       sed -e 's/^static //' -e 's/__always_inline //' -e 's/inline //' < $< > $@
+
+xarray-shared.o: ../shared/xarray-shared.c ../../../lib/xarray.c \
+       ../../../lib/test_xarray.c
+
+maple-shared.o: ../shared/maple-shared.c ../../../lib/maple_tree.c \
+       ../../../lib/test_maple_tree.c
+
+generated/autoconf.h:
+       @mkdir -p generated
+       cp ../shared/autoconf.h generated/autoconf.h
+
+generated/map-shift.h:
+       @mkdir -p generated
+       @if ! grep -qws $(SHIFT) generated/map-shift.h; then            \
+               echo "Generating $@";                                   \
+               echo "#define XA_CHUNK_SHIFT $(SHIFT)" >                \
+                               generated/map-shift.h;                  \
+       fi
+
+generated/bit-length.h: FORCE
+       @mkdir -p generated
+       @if ! grep -qws CONFIG_$(LONG_BIT)BIT generated/bit-length.h; then   \
+               echo "Generating $@";                                        \
+               echo "#define CONFIG_$(LONG_BIT)BIT 1" > $@;                 \
+       fi
+
+FORCE: ;
diff --git a/tools/testing/shared/xarray-shared.c b/tools/testing/shared/xarray-shared.c
new file mode 100644 (file)
index 0000000..e909019
--- /dev/null
@@ -0,0 +1,5 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include "xarray-shared.h"
+
+#include "../../../lib/xarray.c"
diff --git a/tools/testing/shared/xarray-shared.h b/tools/testing/shared/xarray-shared.h
new file mode 100644 (file)
index 0000000..ac2d16f
--- /dev/null
@@ -0,0 +1,4 @@
+/* SPDX-License-Identifier: GPL-2.0+ */
+
+#define XA_DEBUG
+#include "shared.h"