| .. | .. | 
|---|
 | 1 | +# SPDX-License-Identifier: GPL-2.0-only  | 
|---|
| 1 | 2 |  # | 
|---|
| 2 | 3 |  # RCU-related debugging configuration options | 
|---|
| 3 | 4 |  # | 
|---|
| .. | .. | 
|---|
| 7 | 8 |  config PROVE_RCU | 
|---|
| 8 | 9 |  	def_bool PROVE_LOCKING | 
|---|
| 9 | 10 |   | 
|---|
 | 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 | +  | 
|---|
| 10 | 22 |  config TORTURE_TEST | 
|---|
| 11 | 23 |  	tristate | 
|---|
| 12 | 24 |  	default n | 
|---|
| 13 | 25 |   | 
|---|
| 14 |  | -config RCU_PERF_TEST  | 
|---|
 | 26 | +config RCU_SCALE_TEST  | 
|---|
| 15 | 27 |  	tristate "performance tests for RCU" | 
|---|
| 16 | 28 |  	depends on DEBUG_KERNEL | 
|---|
| 17 | 29 |  	select TORTURE_TEST | 
|---|
| 18 | 30 |  	select SRCU | 
|---|
| 19 | 31 |  	select TASKS_RCU | 
|---|
 | 32 | +	select TASKS_RUDE_RCU  | 
|---|
 | 33 | +	select TASKS_TRACE_RCU  | 
|---|
| 20 | 34 |  	default n | 
|---|
| 21 | 35 |  	help | 
|---|
| 22 | 36 |  	  This option provides a kernel module that runs performance | 
|---|
| .. | .. | 
|---|
| 34 | 48 |  	select TORTURE_TEST | 
|---|
| 35 | 49 |  	select SRCU | 
|---|
| 36 | 50 |  	select TASKS_RCU | 
|---|
 | 51 | +	select TASKS_RUDE_RCU  | 
|---|
 | 52 | +	select TASKS_TRACE_RCU  | 
|---|
| 37 | 53 |  	default n | 
|---|
| 38 | 54 |  	help | 
|---|
| 39 | 55 |  	  This option provides a kernel module that runs torture tests | 
|---|
| .. | .. | 
|---|
| 43 | 59 |  	  Say Y here if you want RCU torture tests to be built into | 
|---|
| 44 | 60 |  	  the kernel. | 
|---|
| 45 | 61 |  	  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.  | 
|---|
| 46 | 81 |  	  Say N if you are unsure. | 
|---|
| 47 | 82 |   | 
|---|
| 48 | 83 |  config RCU_CPU_STALL_TIMEOUT | 
|---|
| .. | .. | 
|---|
| 102 | 137 |  	  Say N here if you need ultimate kernel/user switch latencies | 
|---|
| 103 | 138 |  	  Say Y if you are unsure | 
|---|
| 104 | 139 |   | 
|---|
 | 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 | +  | 
|---|
| 105 | 155 |  endmenu # "RCU Debugging" | 
|---|