Messages in this thread | | | Date | Fri, 20 Feb 2015 22:04:28 -0800 | From | Josh Triplett <> | 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?
- Josh Triplett
| |