Re: [PATCH fyi] RCU: the bloatwatch edition

From: Paul E. McKenney
Date: Wed Jan 14 2009 - 11:01:16 EST


On Wed, Jan 14, 2009 at 11:40:55AM +0100, Ingo Molnar wrote:
>
> * Paul E. McKenney <paulmck@xxxxxxxxxxxxxxxxxx> wrote:
>
> > Just FYI, not for inclusion.
> >
> > This patch is a version of RCU designed for !CONFIG_SMP provided as a
> > proof of concept of a small-footprint RCU implementation. In
> > particular, the implementation of synchronize_rcu() is extremely
> > lightweight and high performance. It passes moderate rcutorture testing
> > in each of the four relevant configurations (combinations of NO_HZ and
> > PREEMPT) on x86.
> >
> > Signed-off-by: Paul E. McKenney <paulmck@xxxxxxxxxxxxxxxxxx>
>
> maybe it could be included - dependent on PREEMPT, just like we have SLOB?

I suppose that the fact that it already depends on !SMP should keep
it hidden from most people, and it does work just fine for !PREEMPT.
My concern is rather that if no one is using it, the code will bitrot
rather quickly. None of us needs a broken RCU implementation in mainline,
least of all me. ;-)

> it would also be rather educative IMO: if someone wants to understand the
> core concepts of RCU, start with kernel/rcutiny.c. We are getting
> complaints from academic institutions that the Linux kernel is getting too
> complex to teach in courses - and that's a pity.

Yeah, I have had to refer a number of institutions to various LWN
articles. I think that it is safe to say that LWN is not on every
university's normal reading list. ;-) One (surprisingly prominent)
institution that -does- read LWN unfortunately chose "The design
of preemptible read-copy-update" to introduce themselves to RCU
(http://lwn.net/Articles/253651/), and, needless to say, found it
tough going. I offered my sympathies and pointed them at the "What is
RCU?" LWN series.

So it might well be good to have simplified implementations for academic
study and perhaps also for deep embedded use. Sort of like the approach
for designing video games -- easy first level, second level is a bit
harder, and so on.

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/