Re: [PATCH RFC tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

From: Paul E. McKenney
Date: Tue Jul 29 2014 - 14:07:35 EST


On Tue, Jul 29, 2014 at 07:33:32PM +0200, Peter Zijlstra wrote:
> On Tue, Jul 29, 2014 at 10:23:04AM -0700, Paul E. McKenney wrote:
> > On Tue, Jul 29, 2014 at 10:14:16AM +0200, Peter Zijlstra wrote:
> > > On Mon, Jul 28, 2014 at 03:56:12PM -0700, Paul E. McKenney wrote:
> > > > @@ -254,6 +254,8 @@ void rcu_check_callbacks(int cpu, int user)
> > > > rcu_sched_qs(cpu);
> > > > else if (!in_softirq())
> > > > rcu_bh_qs(cpu);
> > > > + if (user)
> > > > + rcu_note_voluntary_context_switch(current);
> > > > }
> > >
> > > There's nothing like sending email you can't find something... :-)
> >
> > Well, this is unfortunately only a partial solution. It does not handle
> > the NO_HZ_FULL scheduling-clock-free usermode execution. I have ink on
> > paper indicating a couple of ways to do that, but figured I should get
> > feedback on this stuff before going too much farther.
>
> Yah, so the nohz_full already has the horrid overhead of user<->kernel
> switches, so you can 'trivially' hook into those.

Yep, the plan is to use RCU's dyntick-idle code as the hook.

> FWIW its _the_ thing that makes nohz_full uninteresting for me. The
> required overhead is insane. But yes there are people willing to pay
> that etc..

It would indeed be good to reduce the overhead. I could imagine all sorts
of insane approaches involving assuming that CPU write buffers flush in
bounded time, though CPU vendors seem unwilling to make guarantees in
this area. ;-)

Or is something other than rcu_user_enter() and rcu_user_exit() causing
the pain here?

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/