path: root/init/Kconfig
diff options
authorPaul E. McKenney <>2008-03-10 11:43:57 -0700
committerLinus Torvalds <>2008-03-10 18:01:20 -0700
commit21bbb39c376ce6beeeb549d155f0d53dc76ed000 (patch)
tree762d0ae6d1cd88aaa231739c3e88437e52ffa387 /init/Kconfig
parentf47831fabaf0206abc56ee5a33fd006fe29b6dc6 (diff)
rcu: move PREEMPT_RCU config option back under PREEMPT
The original preemptible-RCU patch put the choice between classic and preemptible RCU into kernel/Kconfig.preempt, which resulted in build failures on machines not supporting CONFIG_PREEMPT. This choice was therefore moved to init/Kconfig, which worked, but placed the choice between classic and preemptible RCU at the top level, a very obtuse choice indeed. This patch changes from the Kconfig "choice" mechanism to a pair of booleans, only one of which (CONFIG_PREEMPT_RCU) is user-visible, and is located in kernel/Kconfig.preempt, where one would expect it to be. The other (CONFIG_CLASSIC_RCU) is in init/Kconfig so that it is available to all architectures, hopefully avoiding build breakage. Thanks to Roman Zippel for suggesting this approach. Signed-off-by: Paul E. McKenney <> Cc: Ingo Molnar <> Acked-by: Steven Rostedt <> Cc: Dipankar Sarma <> Cc: Josh Triplett <> Cc: Thomas Gleixner <> Cc: Peter Zijlstra <> Cc: Roman Zippel <> Cc: Sam Ravnborg <> Signed-off-by: Andrew Morton <> Signed-off-by: Linus Torvalds <>
Diffstat (limited to 'init/Kconfig')
1 files changed, 3 insertions, 31 deletions
diff --git a/init/Kconfig b/init/Kconfig
index 074ac97f55e3..a97924bc5b8d 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -865,38 +865,10 @@ source "block/Kconfig"
- prompt "RCU implementation type:"
- default CLASSIC_RCU
- help
- This allows you to choose either the classic RCU implementation
- that is designed for best read-side performance on non-realtime
- systems, or the preemptible RCU implementation for best latency
- on realtime systems. Note that some kernel preemption modes
- will restrict your choice.
- Select the default if you are unsure.
- bool "Classic RCU"
+ def_bool !PREEMPT_RCU
This option selects the classic RCU implementation that is
designed for best read-side performance on non-realtime
- systems.
- Say Y if you are unsure.
- bool "Preemptible RCU"
- depends on PREEMPT
- help
- This option reduces the latency of the kernel by making certain
- RCU sections preemptible. Normally RCU code is non-preemptible, if
- this option is selected then read-only RCU sections become
- preemptible. This helps latency, but may expose bugs due to
- now-naive assumptions about each RCU read-side critical section
- remaining on a given CPU through its execution.
- Say N if you are unsure.
+ systems. Classic RCU is the default. Note that the
+ PREEMPT_RCU symbol is used to select/deselect this option.