xref: /openbmc/linux/kernel/rcu/Kconfig.debug (revision 3d6e43c75d6bab212e8bc142585ee36eb8e2e5d9)
1# SPDX-License-Identifier: GPL-2.0-only
2#
3# RCU-related debugging configuration options
4#
5
6menu "RCU Debugging"
7
8config PROVE_RCU
9	def_bool PROVE_LOCKING
10
11config 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
22config TORTURE_TEST
23	tristate
24	default n
25
26config RCU_PERF_TEST
27	tristate "performance tests for RCU"
28	depends on DEBUG_KERNEL
29	select TORTURE_TEST
30	select SRCU
31	select TASKS_RCU
32	select TASKS_RUDE_RCU
33	default n
34	help
35	  This option provides a kernel module that runs performance
36	  tests on the RCU infrastructure.  The kernel module may be built
37	  after the fact on the running kernel to be tested, if desired.
38
39	  Say Y here if you want RCU performance tests to be built into
40	  the kernel.
41	  Say M if you want the RCU performance tests to build as a module.
42	  Say N if you are unsure.
43
44config RCU_TORTURE_TEST
45	tristate "torture tests for RCU"
46	depends on DEBUG_KERNEL
47	select TORTURE_TEST
48	select SRCU
49	select TASKS_RCU
50	select TASKS_RUDE_RCU
51	default n
52	help
53	  This option provides a kernel module that runs torture tests
54	  on the RCU infrastructure.  The kernel module may be built
55	  after the fact on the running kernel to be tested, if desired.
56
57	  Say Y here if you want RCU torture tests to be built into
58	  the kernel.
59	  Say M if you want the RCU torture tests to build as a module.
60	  Say N if you are unsure.
61
62config RCU_CPU_STALL_TIMEOUT
63	int "RCU CPU stall timeout in seconds"
64	depends on RCU_STALL_COMMON
65	range 3 300
66	default 21
67	help
68	  If a given RCU grace period extends more than the specified
69	  number of seconds, a CPU stall warning is printed.  If the
70	  RCU grace period persists, additional CPU stall warnings are
71	  printed at more widely spaced intervals.
72
73config RCU_TRACE
74	bool "Enable tracing for RCU"
75	depends on DEBUG_KERNEL
76	default y if TREE_RCU
77	select TRACE_CLOCK
78	help
79	  This option enables additional tracepoints for ftrace-style
80	  event tracing.
81
82	  Say Y here if you want to enable RCU tracing
83	  Say N if you are unsure.
84
85config RCU_EQS_DEBUG
86	bool "Provide debugging asserts for adding NO_HZ support to an arch"
87	depends on DEBUG_KERNEL
88	help
89	  This option provides consistency checks in RCU's handling of
90	  NO_HZ.  These checks have proven quite helpful in detecting
91	  bugs in arch-specific NO_HZ code.
92
93	  Say N here if you need ultimate kernel/user switch latencies
94	  Say Y if you are unsure
95
96endmenu # "RCU Debugging"
97