diff options
author | wuqiang.matt <wuqiang.matt@bytedance.com> | 2023-10-17 21:56:51 +0800 |
---|---|---|
committer | Masami Hiramatsu (Google) <mhiramat@kernel.org> | 2023-10-18 22:36:03 +0900 |
commit | 92f90d3b0d5e384f218c8068138ed1b3afa025af (patch) | |
tree | c3a80c8f064eb6cafb87b6a2fa285ffc051b560d /lib/Kconfig.debug | |
parent | b4edb8d2d4647a71a246d91fe34ff25c2c5f3481 (diff) | |
download | lwn-92f90d3b0d5e384f218c8068138ed1b3afa025af.tar.gz lwn-92f90d3b0d5e384f218c8068138ed1b3afa025af.zip |
lib: objpool test module added
The test_objpool module (test_objpool) will run several testcases
for objpool stress and performance evaluation. Each testcase will
have all available cpu cores involved to create a situation of high
parallel and high contention.
As of now there are 5 groups and 5 * 2 testcases in total:
1) group 1: synchronous mode
objpool is managed synchronously, that is, all objects are to be
reclaimed before objpool finalization and the objpool owner makes
sure of it. All threads on different cores run in the same pace
2) group 2: synchronous mode + hrtimer
this case have 2 customers: normal threads and hrtimer softirqs
3) group 3: synchronous + overrun mode
This test group is mainly for performance evaluation of missing
cases when pre-allocated objects are less than the requested
4) group 4: asynchronous mode
This case is just an emulation of kretprobe, with refcount used
to control the objpool lifecycle
5) group 5: asynchronous mode with hrtimer
hrtimer softirq is introduced to stress async objpool operations
Link: https://lore.kernel.org/all/20231017135654.82270-3-wuqiang.matt@bytedance.com/
Signed-off-by: wuqiang.matt <wuqiang.matt@bytedance.com>
Acked-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
Signed-off-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
Diffstat (limited to 'lib/Kconfig.debug')
-rw-r--r-- | lib/Kconfig.debug | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug index fa307f93fa2e..207702c5eb29 100644 --- a/lib/Kconfig.debug +++ b/lib/Kconfig.debug @@ -2945,6 +2945,17 @@ config TEST_CLOCKSOURCE_WATCHDOG If unsure, say N. +config TEST_OBJPOOL + tristate "Test module for correctness and stress of objpool" + default n + depends on m && DEBUG_KERNEL + help + This builds the "test_objpool" module that should be used for + correctness verification and concurrent testings of objects + allocation and reclamation. + + If unsure, say N. + endif # RUNTIME_TESTING_MENU config ARCH_USE_MEMTEST |