Re: [RFC PATCH 4/6] Preempt-RCU: Implementation

From: Paul E. McKenney
Date: Thu Feb 28 2008 - 23:54:00 EST


On Fri, Feb 29, 2008 at 05:34:54AM +0100, Roman Zippel wrote:
> Hi,
>
> On Thursday 13. December 2007, Gautham R Shenoy wrote:
>
> > 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.
> > +
> > +endchoice
>
> Why 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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/