Re: [RFC PATCH 4/6] Preempt-RCU: Implementation
From: Paul E. McKenney <hidden>
Date: 2008-02-29 04:54:00
Also in:
lkml
On Fri, Feb 29, 2008 at 05:34:54AM +0100, Roman Zippel wrote:
Hi, On Thursday 13. December 2007, Gautham R Shenoy wrote:quoted
diff --git a/kernel/Kconfig.preempt b/kernel/Kconfig.preempt index c64ce9c..06cafcc 100644 --- a/kernel/Kconfig.preempt +++ b/kernel/Kconfig.preempt@@ -63,3 +63,41 @@ config PREEMPT_BKL Say Y here if you are building a kernel for a desktop system. Say N if you are unsure. +choice + prompt "RCU implementation type:" + default CLASSIC_RCU + +config CLASSIC_RCU + bool "Classic RCU" + help + 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. + +config PREEMPT_RCU + 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. + +endchoiceWhy got this moved into init/Kconfig?
Because there are some arches that don't have kernel/Kconfig.preempt, its earlier home. Therefore, putting it into kernel/Kconfig.preempt broke those arches' builds by supplying neither PREEMPT_RCU nor CLASSIC_RCU.
Now it's somewhere in the root menu, not really belonging to anything.
Do you have a suggested location?
Also why is this a choice? Are more RCU types planned?
I don't expect additional drop-in replacements for RCU, though people are certainly free to experiment if they wish. It is a choice because this gives people a very clear idea of the two options and because it makes the implementation a bit cleaner. Thanx, Paul