Re: TREE_SRCU slows hotplug by factor ~16

From: Paul E. McKenney
Date: Thu Apr 27 2017 - 08:37:52 EST


On Thu, Apr 27, 2017 at 07:44:00AM +0200, Mike Galbraith wrote:
> On Wed, 2017-04-26 at 22:32 -0700, Paul E. McKenney wrote:
> > On Thu, Apr 27, 2017 at 06:15:56AM +0200, Mike Galbraith wrote:
> > > On Wed, 2017-04-26 at 21:11 -0700, Paul E. McKenney wrote:
> > >
> > > > This is with srcutree.exp_holdoff set to 25*1000?
> > >
> > > Yup.
> >
> > And please see below for the trivial patch, just for confirmation.
> > May I add your Tested-by?
>
> Sure.
>
> > diff --git a/kernel/rcu/srcutree.c b/kernel/rcu/srcutree.c
> > index ccbe1fb84165..65f03bca5b32 100644
> > --- a/kernel/rcu/srcutree.c
> > +++ b/kernel/rcu/srcutree.c
> > @@ -39,7 +39,7 @@
> >
> > #include "rcu.h"
> >
> > -ulong exp_holdoff = 50 * 1000; /* Holdoff (ns) for auto-expediting. */
> > +ulong exp_holdoff = 25 * 1000; /* Holdoff (ns) for auto-expediting. */
>
> Yup, exactly what I did.

Woo-hoo!!!

I will beat up on this a bit and send a pull request to Ingo.

And thank you very much for finding this, gathering the trace data
(which was critically important to my figuring out what was going
on), and for testing the patches!

Thanx, Paul