Re: [PATCH v5 tip/core/rcu 15/16] rcu: Make RCU-tasks wait for idle tasks

From: Peter Zijlstra
Date: Wed Aug 13 2014 - 10:44:23 EST


On Wed, Aug 13, 2014 at 10:13:01AM -0400, Steven Rostedt wrote:
> On Wed, 13 Aug 2014 16:07:05 +0200
> Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote:
>
> > On Wed, Aug 13, 2014 at 09:51:32AM -0400, Steven Rostedt wrote:
> >
> > > I still need to look at the patches, but if this is just for the idle
> > > case, then we don't need it. The idle case can be solved with a simple
> > > sched_on_each_cpu(). I need a way to solve waiting for processes to
> > > finish from a preemption point.
> > >
> > > That's all I want, and if we can remove the "idle" case and document it
> > > well that it's not covered and a sched_on_each_cpu() may be needed,
> > > then I'm fine with that.
> > >
> > > sched_on_each_cpu(dummy_op);
> > > call_rcu_tasks(free_tramp);
> >
> > Sure, but why not dtrt and push rcu_idle hooks all the way down into the
> > idle drivers if and where appropriate?
> >
> > There isn't _that_ much idle driver code. Also, some stuff should be
> > cleaned up; we're already calling stop_critical_timings() in the generic
> > idle code, and then calling it again in the cpuidle drivers.
> >
> >
>
> True, perhaps the rcu code should hook into the stop_critical_timings
> code?

Not sure; the current proposal would have rcu_idle code be far narrower
than the critical_timings thing, not sure if that's an accident or
desired.

If they have similar requirements we could indeed merge them.

Attachment: pgpmnaDXidlJH.pgp
Description: PGP signature