Re: [PATCH 37/41] rcu: New rcu_user_enter() and rcu_user_exit() APIs

From: Paul E. McKenney
Date: Wed May 23 2012 - 12:29:51 EST


On Wed, May 23, 2012 at 04:22:17PM +0200, Frederic Weisbecker wrote:
> On Tue, May 22, 2012 at 11:23:06AM -0700, Paul E. McKenney wrote:
> > On Tue, May 01, 2012 at 01:55:11AM +0200, Frederic Weisbecker wrote:
> > > These two APIs are provided to help the implementation
> > > of an adaptive tickless kernel (cf: nohz cpusets). We need
> > > to run into RCU extended quiescent state when we are in
> > > userland so that a tickless CPU is not involved in the
> > > global RCU state machine and can shutdown its tick safely.
> > >
> > > These APIs are called from syscall and exception entry/exit
> > > points and can't be called from interrupt.
> > >
> > > They are essentially the same than rcu_idle_enter() and
> > > rcu_idle_exit() minus the checks that ensure the CPU is
> > > running the idle task.
> >
> > This looks reasonably sane. There are a few nits like missing comment
> > headers for functions and the need for tracing, but I can handle that
> > when I pull it in. I am happy to do that pretty much any time, but not
> > before the API stabilizes. ;-)
> >
> > So let me know when it is ready for -rcu.
>
> Ok. So would you be willing to host this specific part in -rcu? I don't
> know if these APIs are welcome upstream if they have no upstream users
> yet. OTOH it would be easier for me if I don't need to include these patches
> in my endless rebases.
>
> Another solution is to host that in some seperate tree. In yours or in -tip.
> Ingo seemed to be willing to host this patchset.
>
> What do you think?
>
> I believe I need to rebase against your latest changes though.

Indeed, there has been a bit of churn in this area from RCU_FAST_NO_HZ.

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/