|author||Paul E. McKenney <email@example.com>||2008-03-10 11:43:57 -0700|
|committer||Linus Torvalds <firstname.lastname@example.org>||2008-03-10 18:01:20 -0700|
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 <email@example.com> Cc: Ingo Molnar <firstname.lastname@example.org> Acked-by: Steven Rostedt <email@example.com> Cc: Dipankar Sarma <firstname.lastname@example.org> Cc: Josh Triplett <email@example.com> Cc: Thomas Gleixner <firstname.lastname@example.org> Cc: Peter Zijlstra <email@example.com> Cc: Roman Zippel <firstname.lastname@example.org> Cc: Sam Ravnborg <email@example.com> Signed-off-by: Andrew Morton <firstname.lastname@example.org> Signed-off-by: Linus Torvalds <email@example.com>
Diffstat (limited to 'kernel/Kconfig.preempt')
1 files changed, 15 insertions, 0 deletions
diff --git a/kernel/Kconfig.preempt b/kernel/Kconfig.preempt
index 0669b70fa6a..9fdba03dc1f 100644
@@ -52,8 +52,23 @@ config PREEMPT
+ bool "Preemptible RCU"
+ depends on PREEMPT
+ default n
+ 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.
bool "Enable tracing for RCU - currently stats in debugfs"
+ depends on PREEMPT_RCU