Re: [patch 13/20] timer: Switch to a non cascading wheel

From: Paul E. McKenney
Date: Fri Jun 17 2016 - 00:05:33 EST


On Thu, Jun 16, 2016 at 05:40:51PM -0700, Paul E. McKenney wrote:
> On Thu, Jun 16, 2016 at 08:14:02PM +0200, Peter Zijlstra wrote:
> > On Thu, Jun 16, 2016 at 09:02:15AM -0700, Paul E. McKenney wrote:
> > > > 2) When we do that right, we can make the tick frequency a command line option
> > > > and just have a compiled in default.
> > >
> > > As long as there is something that tells RCU what the tick frequency
> > > actually is at runtime, this should not be a problem. For example,
> > > in rcu_implicit_dynticks_qs(), the following:
> > >
> > > rdp->rsp->jiffies_resched += 5;
> > >
> > > Would instead need to be something like:
> > >
> > > rdp->rsp->jiffies_resched += 5 * jiffies_per_tick;
> > >
> > > Changing tick frequency at runtime would be a bit more tricky, as it would
> > > be tough to avoid some oddball false positives during the transition.
> >
> > So the 'fun' part will be frequencies with non integer factors of 1000.
> > Like say HZ=300. For that we'll have to keep jiffies_remainder, and
> > add an extra jiffy every time that rolls over.
> >
> > That would make your case slightly more interesting than you really
> > want I suspect.
>
> My particular case is not that sensitive, so 1000/300 would be plenty
> accurate.

That said... If someone were to set HZ=501, now -that- could be a
bit problematic. :-/

Thanx, Paul