hc
2024-01-05 071106ecf68c401173c58808b1cf5f68cc50d390
kernel/kernel/rcu/Kconfig.debug
....@@ -1,3 +1,4 @@
1
+# SPDX-License-Identifier: GPL-2.0-only
12 #
23 # RCU-related debugging configuration options
34 #
....@@ -7,16 +8,29 @@
78 config PROVE_RCU
89 def_bool PROVE_LOCKING
910
11
+config PROVE_RCU_LIST
12
+ bool "RCU list lockdep debugging"
13
+ depends on PROVE_RCU && RCU_EXPERT
14
+ default n
15
+ help
16
+ Enable RCU lockdep checking for list usages. By default it is
17
+ turned off since there are several list RCU users that still
18
+ need to be converted to pass a lockdep expression. To prevent
19
+ false-positive splats, we keep it default disabled but once all
20
+ users are converted, we can remove this config option.
21
+
1022 config TORTURE_TEST
1123 tristate
1224 default n
1325
14
-config RCU_PERF_TEST
26
+config RCU_SCALE_TEST
1527 tristate "performance tests for RCU"
1628 depends on DEBUG_KERNEL
1729 select TORTURE_TEST
1830 select SRCU
1931 select TASKS_RCU
32
+ select TASKS_RUDE_RCU
33
+ select TASKS_TRACE_RCU
2034 default n
2135 help
2236 This option provides a kernel module that runs performance
....@@ -34,6 +48,8 @@
3448 select TORTURE_TEST
3549 select SRCU
3650 select TASKS_RCU
51
+ select TASKS_RUDE_RCU
52
+ select TASKS_TRACE_RCU
3753 default n
3854 help
3955 This option provides a kernel module that runs torture tests
....@@ -43,6 +59,25 @@
4359 Say Y here if you want RCU torture tests to be built into
4460 the kernel.
4561 Say M if you want the RCU torture tests to build as a module.
62
+ Say N if you are unsure.
63
+
64
+config RCU_REF_SCALE_TEST
65
+ tristate "Scalability tests for read-side synchronization (RCU and others)"
66
+ depends on DEBUG_KERNEL
67
+ select TORTURE_TEST
68
+ select SRCU
69
+ select TASKS_RCU
70
+ select TASKS_RUDE_RCU
71
+ select TASKS_TRACE_RCU
72
+ default n
73
+ help
74
+ This option provides a kernel module that runs performance tests
75
+ useful comparing RCU with various read-side synchronization mechanisms.
76
+ The kernel module may be built after the fact on the running kernel to be
77
+ tested, if desired.
78
+
79
+ Say Y here if you want these performance tests built into the kernel.
80
+ Say M if you want to build it as a module instead.
4681 Say N if you are unsure.
4782
4883 config RCU_CPU_STALL_TIMEOUT
....@@ -102,4 +137,19 @@
102137 Say N here if you need ultimate kernel/user switch latencies
103138 Say Y if you are unsure
104139
140
+config RCU_STRICT_GRACE_PERIOD
141
+ bool "Provide debug RCU implementation with short grace periods"
142
+ depends on DEBUG_KERNEL && RCU_EXPERT
143
+ default n
144
+ select PREEMPT_COUNT if PREEMPT=n
145
+ help
146
+ Select this option to build an RCU variant that is strict about
147
+ grace periods, making them as short as it can. This limits
148
+ scalability, destroys real-time response, degrades battery
149
+ lifetime and kills performance. Don't try this on large
150
+ machines, as in systems with more than about 10 or 20 CPUs.
151
+ But in conjunction with tools like KASAN, it can be helpful
152
+ when looking for certain types of RCU usage bugs, for example,
153
+ too-short RCU read-side critical sections.
154
+
105155 endmenu # "RCU Debugging"