mirror of https://github.com/Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
132 lines
4.1 KiB
132 lines
4.1 KiB
# 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_SCALE_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 |
|
|
|
config RCU_STRICT_GRACE_PERIOD |
|
bool "Provide debug RCU implementation with short grace periods" |
|
depends on DEBUG_KERNEL && RCU_EXPERT && NR_CPUS <= 4 |
|
default n |
|
select PREEMPT_COUNT if PREEMPT=n |
|
help |
|
Select this option to build an RCU variant that is strict about |
|
grace periods, making them as short as it can. This limits |
|
scalability, destroys real-time response, degrades battery |
|
lifetime and kills performance. Don't try this on large |
|
machines, as in systems with more than about 10 or 20 CPUs. |
|
But in conjunction with tools like KASAN, it can be helpful |
|
when looking for certain types of RCU usage bugs, for example, |
|
too-short RCU read-side critical sections. |
|
|
|
endmenu # "RCU Debugging"
|
|
|