Re: [RFC] time: xtime_lock is held too long

john stultz
2011-05-06T20:24:28Z

On Fri, 2011-05-06 at 22:04 +0200, Eric Dumazet wrote:
> Le vendredi 06 mai 2011 à 21:26 +0200, Eric Dumazet a écrit :
> > Le vendredi 06 mai 2011 à 19:50 +0200, Andi Kleen a écrit :
> > > On Fri, May 06, 2011 at 07:42:47PM +0200, Eric Dumazet wrote:
> > > > Le vendredi 06 mai 2011 à 18:59 +0200, Andi Kleen a écrit :
> > > >
> > > > > If you have a better way to make it faster please share it.
> > > >
> > > > Ideally we could use RCU :)
> > >
> > > Hmm, I didn't think my case had a lot of loops in the seqlock -- just
> > > expensive cache misses -- but I should double check.
> > >
> > > For the lots of loop case we probably need to understand first why you
> > > iterate that often.
> >
> > Yep, I'll try to investigate on this
> >
>
> So apparently some calls to tick_do_update_jiffies64() are pretty
> expensive :

So would the easier solution be to just break out timekeeper locking
from the xtime_lock?

So basically we would just add a timekeeper.lock seqlock and use it to
protect only the timekeeping code? We can still keep xtime_lock around
for the tick/jiffies protection (well, until tglx kills jiffies :), but
gettimeofday and friends wouldn't be blocked for so long.

That should be pretty straight forward now that the timekeeper data is
completely static to timkeeeping.c.

thanks
-john