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

From: john stultz
Date: Fri May 06 2011 - 16:24:32 EST


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


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