summaryrefslogtreecommitdiff
path: root/kernel/rcu/Kconfig.debug
blob: 3cf6132a4bb9f5d251771045a5a379d0acecf935 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
# SPDX-License-Identifier: GPL-2.0-only
#
# RCU-related debugging configuration options
#

menu "RCU Debugging"

config PROVE_RCU
	def_bool PROVE_LOCKING

config PROVE_RCU_LIST
	bool "RCU list lockdep debugging"
	depends on PROVE_RCU && RCU_EXPERT
	default n
	help
	  Enable RCU lockdep checking for list usages. By default it is
	  turned off since there are several list RCU users that still
	  need to be converted to pass a lockdep expression. To prevent
	  false-positive splats, we keep it default disabled but once all
	  users are converted, we can remove this config option.

config TORTURE_TEST
	tristate
	default n

config RCU_PERF_TEST
	tristate "performance tests for RCU"
	depends on DEBUG_KERNEL
	select TORTURE_TEST
	select SRCU
	select TASKS_RCU
	select TASKS_RUDE_RCU
	select TASKS_TRACE_RCU
	default n
	help
	  This option provides a kernel module that runs performance
	  tests on the RCU infrastructure.  The kernel module may be built
	  after the fact on the running kernel to be tested, if desired.

	  Say Y here if you want RCU performance tests to be built into
	  the kernel.
	  Say M if you want the RCU performance tests to build as a module.
	  Say N if you are unsure.

config RCU_TORTURE_TEST
	tristate "torture tests for RCU"
	depends on DEBUG_KERNEL
	select TORTURE_TEST
	select SRCU
	select TASKS_RCU
	select TASKS_RUDE_RCU
	select TASKS_TRACE_RCU
	default n
	help
	  This option provides a kernel module that runs torture tests
	  on the RCU infrastructure.  The kernel module may be built
	  after the fact on the running kernel to be tested, if desired.

	  Say Y here if you want RCU torture tests to be built into
	  the kernel.
	  Say M if you want the RCU torture tests to build as a module.
	  Say N if you are unsure.

config RCU_REF_SCALE_TEST
	tristate "Scalability tests for read-side synchronization (RCU and others)"
	depends on DEBUG_KERNEL
	select TORTURE_TEST
	select SRCU
	select TASKS_RCU
	select TASKS_RUDE_RCU
	select TASKS_TRACE_RCU
	default n
	help
	  This option provides a kernel module that runs performance tests
	  useful comparing RCU with various read-side synchronization mechanisms.
	  The kernel module may be built after the fact on the running kernel to be
	  tested, if desired.

	  Say Y here if you want these performance tests built into the kernel.
	  Say M if you want to build it as a module instead.
	  Say N if you are unsure.

config RCU_CPU_STALL_TIMEOUT
	int "RCU CPU stall timeout in seconds"
	depends on RCU_STALL_COMMON
	range 3 300
	default 21
	help
	  If a given RCU grace period extends more than the specified
	  number of seconds, a CPU stall warning is printed.  If the
	  RCU grace period persists, additional CPU stall warnings are
	  printed at more widely spaced intervals.

config RCU_TRACE
	bool "Enable tracing for RCU"
	depends on DEBUG_KERNEL
	default y if TREE_RCU
	select TRACE_CLOCK
	help
	  This option enables additional tracepoints for ftrace-style
	  event tracing.

	  Say Y here if you want to enable RCU tracing
	  Say N if you are unsure.

config RCU_EQS_DEBUG
	bool "Provide debugging asserts for adding NO_HZ support to an arch"
	depends on DEBUG_KERNEL
	help
	  This option provides consistency checks in RCU's handling of
	  NO_HZ.  These checks have proven quite helpful in detecting
	  bugs in arch-specific NO_HZ code.

	  Say N here if you need ultimate kernel/user switch latencies
	  Say Y if you are unsure

endmenu # "RCU Debugging"