The PROVE_RCU_REPEATEDLY Kconfig option was initially added due to the volume of messages from PROVE_RCU: Doing just one per boot would have required excessive numbers of boots to locate them all. However, PROVE_RCU messages are now relatively rare, so there is no longer any reason to need more than one such message per boot. This commit therefore removes the PROVE_RCU_REPEATEDLY Kconfig option.
Unified · Split
| @@ -4490,10 +4490,6 @@ void lockdep_rcu_suspicious(const char *file, const int line, const char *s) · 4489 unmodified lines | |||
| 4490 | { | 4490 | { |
| 4491 | struct task_struct *curr = current; | 4491 | struct task_struct *curr = current; |
| 4492 | 4492 | ||
| 4493 | #ifndef CONFIG_PROVE_RCU_REPEATEDLY | ||
| 4494 | if (!debug_locks_off()) | ||
| 4495 | return; | ||
| 4496 | #endif /* #ifdef CONFIG_PROVE_RCU_REPEATEDLY */ | ||
| 4497 | /* Note: the following can be executed concurrently, so be careful. */ | 4493 | /* Note: the following can be executed concurrently, so be careful. */ |
| 4498 | pr_warn("\n"); | 4494 | pr_warn("\n"); |
| 4499 | pr_warn("=============================\n"); | 4495 | pr_warn("=============================\n"); |
| @@ -79,9 +79,7 @@ static void __init rcu_bootup_announce_oddness(void) · 78 unmodified lines | |||
| 79 | pr_info("\tHierarchical RCU autobalancing is disabled.\n"); | 79 | pr_info("\tHierarchical RCU autobalancing is disabled.\n"); |
| 80 | if (IS_ENABLED(CONFIG_RCU_FAST_NO_HZ)) | 80 | if (IS_ENABLED(CONFIG_RCU_FAST_NO_HZ)) |
| 81 | pr_info("\tRCU dyntick-idle grace-period acceleration is enabled.\n"); | 81 | pr_info("\tRCU dyntick-idle grace-period acceleration is enabled.\n"); |
| 82 | if (IS_ENABLED(CONFIG_PROVE_RCU_REPEATEDLY)) | 82 | if (IS_ENABLED(CONFIG_PROVE_RCU)) |
| 83 | pr_info("\tRCU lockdep checking is permanently enabled.\n"); | ||
| 84 | else if (IS_ENABLED(CONFIG_PROVE_RCU)) | ||
| 85 | pr_info("\tRCU lockdep checking is enabled.\n"); | 83 | pr_info("\tRCU lockdep checking is enabled.\n"); |
| 86 | if (RCU_NUM_LVLS >= 4) | 84 | if (RCU_NUM_LVLS >= 4) |
| 87 | pr_info("\tFour(or more)-level hierarchy is enabled.\n"); | 85 | pr_info("\tFour(or more)-level hierarchy is enabled.\n"); |
| @@ -1306,20 +1306,6 @@ menu "RCU Debugging" · 1305 unmodified lines | |||
| 1306 | config PROVE_RCU | 1306 | config PROVE_RCU |
| 1307 | def_bool PROVE_LOCKING | 1307 | def_bool PROVE_LOCKING |
| 1308 | 1308 | ||
| 1309 | config PROVE_RCU_REPEATEDLY | ||
| 1310 | bool "RCU debugging: don't disable PROVE_RCU on first splat" | ||
| 1311 | depends on PROVE_RCU | ||
| 1312 | default n | ||
| 1313 | help | ||
| 1314 | By itself, PROVE_RCU will disable checking upon issuing the | ||
| 1315 | first warning (or "splat"). This feature prevents such | ||
| 1316 | disabling, allowing multiple RCU-lockdep warnings to be printed | ||
| 1317 | on a single reboot. | ||
| 1318 | |||
| 1319 | Say Y to allow multiple RCU-lockdep warnings per boot. | ||
| 1320 | |||
| 1321 | Say N if you are unsure. | ||
| 1322 | |||
| 1323 | config SPARSE_RCU_POINTER | 1309 | config SPARSE_RCU_POINTER |
| 1324 | bool "RCU debugging: sparse-based checks for pointer usage" | 1310 | bool "RCU debugging: sparse-based checks for pointer usage" |
| 1325 | default n | 1311 | default n |
| @@ -8,7 +8,6 @@ CONFIG_NO_HZ_IDLE=n · 7 unmodified lines | |||
| 8 | CONFIG_NO_HZ_FULL=n | 8 | CONFIG_NO_HZ_FULL=n |
| 9 | CONFIG_RCU_TRACE=y | 9 | CONFIG_RCU_TRACE=y |
| 10 | CONFIG_PROVE_LOCKING=y | 10 | CONFIG_PROVE_LOCKING=y |
| 11 | CONFIG_PROVE_RCU_REPEATEDLY=y | ||
| 12 | #CHECK#CONFIG_PROVE_RCU=y | 11 | #CHECK#CONFIG_PROVE_RCU=y |
| 13 | CONFIG_DEBUG_LOCK_ALLOC=y | 12 | CONFIG_DEBUG_LOCK_ALLOC=y |
| 14 | CONFIG_DEBUG_OBJECTS=y | 13 | CONFIG_DEBUG_OBJECTS=y |
| @@ -13,7 +13,6 @@ CONFIG_NO_HZ_FULL -- Do two, one with partial CPU enablement. · 12 unmodified lines | |||
| 13 | CONFIG_PREEMPT -- Do half. (First three and #8.) | 13 | CONFIG_PREEMPT -- Do half. (First three and #8.) |
| 14 | CONFIG_PROVE_LOCKING -- Do several, covering CONFIG_DEBUG_LOCK_ALLOC=y and not. | 14 | CONFIG_PROVE_LOCKING -- Do several, covering CONFIG_DEBUG_LOCK_ALLOC=y and not. |
| 15 | CONFIG_PROVE_RCU -- Hardwired to CONFIG_PROVE_LOCKING. | 15 | CONFIG_PROVE_RCU -- Hardwired to CONFIG_PROVE_LOCKING. |
| 16 | CONFIG_PROVE_RCU_REPEATEDLY -- Do one. | ||
| 17 | CONFIG_RCU_BOOST -- one of PREEMPT_RCU. | 16 | CONFIG_RCU_BOOST -- one of PREEMPT_RCU. |
| 18 | CONFIG_RCU_FANOUT -- Cover hierarchy, but overlap with others. | 17 | CONFIG_RCU_FANOUT -- Cover hierarchy, but overlap with others. |
| 19 | CONFIG_RCU_FANOUT_LEAF -- Do one non-default. | 18 | CONFIG_RCU_FANOUT_LEAF -- Do one non-default. |