Re: [PATCH tip/core/rcu 01/11] rcu: Expedite grace periods duringsuspend/resume

From: Paul E. McKenney
Date: Sun Aug 18 2013 - 20:29:28 EST


On Sun, Aug 18, 2013 at 11:34:44AM +0200, Borislav Petkov wrote:
> On Sat, Aug 17, 2013 at 08:17:17PM -0700, Josh Triplett wrote:
> > On Sat, Aug 17, 2013 at 06:37:46PM -0700, Paul E. McKenney wrote:
> > > From: Borislav Petkov <bp@xxxxxxxxx>
> > >
> > > CONFIG_RCU_FAST_NO_HZ can increase grace-period durations by up to
> > > a factor of four, which can result in long suspend and resume times.
> > > Thus, this commit temporarily switches to expedited grace periods when
> > > suspending the box and return to normal settings when resuming.
> > >
> > > [ paulmck: This also papers over an audio/irq bug, but hopefully that will
> > > be fixed soon. ]
> > >
> > > Signed-off-by: Borislav Petkov <bp@xxxxxxx>
> > > Signed-off-by: Paul E. McKenney <paulmck@xxxxxxxxxxxxxxxxxx>
> >
> > This patch still seems like a hack, and there *ought* to be a better
> > general solution to avoid excessive grace-period latency. Nonetheless,
> > in the absence of such a solution,
> > Reviewed-by: Josh Triplett <josh@xxxxxxxxxxxxxxxx>
>
> Yeah, I'm not happy about it either but from quickly skimming over what
> context we're using rcu_expedited in, the basic requirement for a fix is
> for the pm core to be able to tell rcu not to stretch grace periods.
>
> So simply setting a variable is much simpler than switching to calling
> all those *_expedited() rcu flavors from the pm notifier when going
> down.
>
> Unless Paul has a better idea, of course.
>
> The basic problem here is, however, that you need to temporarily
> reconfigure the inner workings of a subsystem because hardware is
> performing a power state transition. Unless someone teaches rcu about
> power state transitions... :-)

I would guess that once we have a few more subsystems that want RCU to
temporarily expedite its grace periods, we will have enough information
and experience to do something a bit more general. In the meantime,
I am opting for something simple. ;-)

Thanx, Paul

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