Re: [PATCH tip/core/rcu 0/4] Programmatic nestable expedited grace periods

From: Paul E. McKenney
Date: Sat Feb 21 2015 - 18:58:32 EST


On Sat, Feb 21, 2015 at 03:12:01PM +0000, Mathieu Desnoyers wrote:
> ----- Original Message -----
> > From: "Josh Triplett" <josh@xxxxxxxxxxxxxxxx>
> > To: "Peter Zijlstra" <peterz@xxxxxxxxxxxxx>
> > Cc: "Paul E. McKenney" <paulmck@xxxxxxxxxxxxxxxxxx>, linux-kernel@xxxxxxxxxxxxxxx, mingo@xxxxxxxxxx,
> > laijs@xxxxxxxxxxxxxx, dipankar@xxxxxxxxxx, akpm@xxxxxxxxxxxxxxxxxxxx, "mathieu desnoyers"
> > <mathieu.desnoyers@xxxxxxxxxxxx>, tglx@xxxxxxxxxxxxx, rostedt@xxxxxxxxxxx, dhowells@xxxxxxxxxx, edumazet@xxxxxxxxxx,
> > dvhart@xxxxxxxxxxxxxxx, fweisbec@xxxxxxxxx, oleg@xxxxxxxxxx, "bobby prani" <bobby.prani@xxxxxxxxx>
> > Sent: Saturday, February 21, 2015 1:04:28 AM
> > Subject: Re: [PATCH tip/core/rcu 0/4] Programmatic nestable expedited grace periods
> >
> > On Fri, Feb 20, 2015 at 05:54:09PM +0100, Peter Zijlstra wrote:
> > > On Fri, Feb 20, 2015 at 08:37:37AM -0800, Paul E. McKenney wrote:
> > > > On Fri, Feb 20, 2015 at 10:11:07AM +0100, Peter Zijlstra wrote:
> > > > > Does it really make a machine boot much faster? Why are people using
> > > > > synchronous gp primitives if they care about speed? Should we not fix
> > > > > that instead?
> > > >
> > > > The report I heard was that it provided 10-15% faster boot times.
> > >
> > > That's not insignificant; got more details? I think we should really
> > > look at why people are using the sync primitives.
> >
> > Paul, what do you think about adding a compile-time debug option to
> > synchronize_rcu() that causes it to capture the time on entry and exit
> > and print the duration together with the file:line of the caller?
> > Similar to initcall_debug, but for blocking calls to synchronize_rcu().
> > Put that together with initcall_debug, and you'd have a pretty good idea
> > of where that holds up boot.
> >
> > We do want early boot to run as asynchronously as possible, and to avoid
> > having later bits of boot waiting on a synchronize_rcu from earlier bits
> > of boot. Switching a caller over to call_rcu() doesn't actually help if
> > it still has to finish a grace period before it can allow later bits to
> > run. Ideally, we ought to be able to work out the "depth" of boot in
> > grace-periods.
> >
> > Has anyone wired initcall_debug up to a bootchart-like graph?
>
> The information about begin/end of synchronize_rcu, as well as begin/end
> of rcu_barrier() seems to be very relevant here. This should perhaps be
> covered tracepoints ? Isn't it already ?

Good points, but they did measure this somehow. Wouldn't some ftrace
magic get this result?

Thanx, Paul

> Thanks,
>
> Mathieu
>
> >
> > - Josh Triplett
> >
>
> --
> Mathieu Desnoyers
> EfficiOS Inc.
> http://www.efficios.com
>

--
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/