Re: [PATCH tip/core/rcu 04/13] rcu: Make RCU_FANOUT_LEAF help text more explicit about skew_tick

From: Paul E. McKenney
Date: Thu Apr 13 2017 - 12:55:27 EST


On Thu, Apr 13, 2017 at 06:19:48PM +0200, Peter Zijlstra wrote:
> On Thu, Apr 13, 2017 at 09:03:33AM -0700, Paul E. McKenney wrote:
> > On Thu, Apr 13, 2017 at 11:15:35AM +0200, Peter Zijlstra wrote:
> > > On Wed, Apr 12, 2017 at 09:55:40AM -0700, Paul E. McKenney wrote:
> > > > If you set RCU_FANOUT_LEAF too high, you can get lock contention
> > > > on the leaf rcu_node, and you should boot with the skew_tick kernel
> > > > parameter set in order to avoid this lock contention. This commit
> > > > therefore upgrades the RCU_FANOUT_LEAF help text to explicitly state
> > > > this.
> > > >
> > > > Signed-off-by: Paul E. McKenney <paulmck@xxxxxxxxxxxxxxxxxx>
> > > > ---
> > > > init/Kconfig | 10 ++++++++--
> > > > 1 file changed, 8 insertions(+), 2 deletions(-)
> > > >
> > > > diff --git a/init/Kconfig b/init/Kconfig
> > > > index a92f27da4a27..946e561e67b7 100644
> > > > --- a/init/Kconfig
> > > > +++ b/init/Kconfig
> > > > @@ -612,11 +612,17 @@ config RCU_FANOUT_LEAF
> > > > initialization. These systems tend to run CPU-bound, and thus
> > > > are not helped by synchronized interrupts, and thus tend to
> > > > skew them, which reduces lock contention enough that large
> > > > - leaf-level fanouts work well.
> > > > + leaf-level fanouts work well. That said, setting leaf-level
> > > > + fanout to a large number will likely cause problematic
> > > > + lock contention on the leaf-level rcu_node structures unless
> > > > + you boot with the skew_tick kernel parameter.
> > >
> > > Why mention a way out of a problem you shouldn't have to begin with?
> > >
> > > Just state its bad and result in lock contention and leave it at that.
> >
> > To avoid people tuning huge machines having to wait for me to give
> > them an answer as to why they are suffering lock contention after
> > cranking up the value of RCU_FANOUT_LEAF.
> >
> > Or am I missing your point?
>
> Your answer should be: don't do that then. Not provide them a shady work
> around.
>
> tick skew isn't pretty and has other problems (there's a reason its not
> on by default). You're then doing two things you shouldn't.

The tick skew problem that I know of is energy efficiency for light
workloads. This doesn't normally apply to the large heavily loaded
systems on which people skew ticks.

So what are the other problems?

Thanx, Paul