Re: [tip:core/rcu] rcu: Add second diagnostic check for a possible CPU-hotplug race

Paul E. McKenney
2009-08-09T19:23:46Z

On Sun, Aug 09, 2009 at 11:30:10AM -0700, Paul E. McKenney wrote:
> On Sun, Aug 09, 2009 at 01:10:08PM +0200, Ingo Molnar wrote:
> >
> > * Ingo Molnar <mingo@elte.hu> wrote:
> >
> > > > rcu: Add second diagnostic check for a possible CPU-hotplug race
> > >
> > > has a build problem too:
> > >
> > > kernel/built-in.o: In function `rcu_cpu_notified':
> > > (.text+0x1d787): undefined reference to `cpu_notified'
> > > kernel/built-in.o: In function `rcu_init':
> > > (.init.text+0x1174): undefined reference to `cpu_notified'
> > > kernel/built-in.o: In function `rcu_init':
> > > (.init.text+0x11a8): undefined reference to `cpu_notified'
> > >
> > > Maybe we should simplify all those Kconfig rules? It's a maze.
>
> Or I could fix up my scripts so that I once again test the relevant
> combinations -before- I submit the patch. :-/

That said, I could imagine the following simplifications:

o CONFIG_SMP always implies CONFIG_HOTPLUG_CPU, eliminating the
need to test CONFIG_SMP&&!CONFIG_HOTPLUG_CPU.

o Make CONFIG_NO_HZ unconditional. (Now, -that- should get a
reaction! For one thing, I am not sure that all architectures
support CONFIG_NO_HZ.)

o Eliminate the combination CONFIG_PREEMPT && CONFIG_TREE_RCU.
In other words, make a preemptable kernel imply preemptable RCU
and vice versa.

o After sufficient testing, eliminate CONFIG_PREEMPT_RCU in favor
of CONFIG_TREE_PREEMPT_RCU (currently under development).

o After sufficient testing, make !CONFIG_SMP imply
CONFIG_TINY_RCU. This might require a preemptable variant of
CONFIG_TINY_RCU.

There are probably quite a few similar simplifications.

Thanx, Paul