mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-11 04:18:39 +08:00
maple_tree: make test code work without debug enabled
The test code is less useful without debug, but can still do general validations. Define mt_dump(), mas_dump() and mas_wr_dump() as a noop if debug is not enabled and document it in the test module information that more information can be obtained with another kernel config option. MT_BUG_ON() will report a failures without tree dumps, and the output will be less useful. Link: https://lkml.kernel.org/r/20230518145544.1722059-17-Liam.Howlett@oracle.com Signed-off-by: Liam R. Howlett <Liam.Howlett@oracle.com> Cc: David Binderman <dcb314@hotmail.com> Cc: Peng Zhang <zhangpeng.00@bytedance.com> Cc: Sergey Senozhatsky <senozhatsky@chromium.org> Cc: Vernon Yang <vernon2gm@gmail.com> Cc: Wei Yang <richard.weiyang@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
parent
acd4de60dd
commit
a5199577b1
@ -2302,9 +2302,13 @@ config TEST_XARRAY
|
||||
tristate "Test the XArray code at runtime"
|
||||
|
||||
config TEST_MAPLE_TREE
|
||||
depends on DEBUG_KERNEL
|
||||
select DEBUG_MAPLE_TREE
|
||||
tristate "Test the Maple Tree code at runtime"
|
||||
tristate "Test the Maple Tree code at runtime or module load"
|
||||
help
|
||||
Enable this option to test the maple tree code functions at boot, or
|
||||
when the module is loaded. Enable "Debug Maple Trees" will enable
|
||||
more verbose output on failures.
|
||||
|
||||
If unsure, say N.
|
||||
|
||||
config TEST_RHASHTABLE
|
||||
tristate "Perform selftest on resizable hash table"
|
||||
|
@ -11,12 +11,33 @@
|
||||
#include <linux/module.h>
|
||||
|
||||
#define MTREE_ALLOC_MAX 0x2000000000000Ul
|
||||
#ifndef CONFIG_DEBUG_MAPLE_TREE
|
||||
#define CONFIG_DEBUG_MAPLE_TREE
|
||||
#endif
|
||||
#define CONFIG_MAPLE_SEARCH
|
||||
#define MAPLE_32BIT (MAPLE_NODE_SLOTS > 31)
|
||||
|
||||
#ifndef CONFIG_DEBUG_MAPLE_TREE
|
||||
#define mt_dump(mt, fmt) do {} while (0)
|
||||
#define mt_validate(mt) do {} while (0)
|
||||
#define mt_cache_shrink() do {} while (0)
|
||||
#define mas_dump(mas) do {} while (0)
|
||||
#define mas_wr_dump(mas) do {} while (0)
|
||||
atomic_t maple_tree_tests_run;
|
||||
atomic_t maple_tree_tests_passed;
|
||||
#undef MT_BUG_ON
|
||||
|
||||
#define MT_BUG_ON(__tree, __x) do { \
|
||||
atomic_inc(&maple_tree_tests_run); \
|
||||
if (__x) { \
|
||||
pr_info("BUG at %s:%d (%u)\n", \
|
||||
__func__, __LINE__, __x); \
|
||||
pr_info("Pass: %u Run:%u\n", \
|
||||
atomic_read(&maple_tree_tests_passed), \
|
||||
atomic_read(&maple_tree_tests_run)); \
|
||||
} else { \
|
||||
atomic_inc(&maple_tree_tests_passed); \
|
||||
} \
|
||||
} while (0)
|
||||
#endif
|
||||
|
||||
/* #define BENCH_SLOT_STORE */
|
||||
/* #define BENCH_NODE_STORE */
|
||||
/* #define BENCH_AWALK */
|
||||
|
@ -22,7 +22,6 @@
|
||||
#define dump_stack() assert(0)
|
||||
|
||||
#include "../../../lib/maple_tree.c"
|
||||
#undef CONFIG_DEBUG_MAPLE_TREE
|
||||
#include "../../../lib/test_maple_tree.c"
|
||||
|
||||
#define RCU_RANGE_COUNT 1000
|
||||
|
Loading…
Reference in New Issue
Block a user