Re: [Lse-tech] [RFC][Patch 1/5] nanosecond timestamps and diffs

From: john stultz
Date: Mon Dec 12 2005 - 15:06:35 EST


On Mon, 2005-12-12 at 20:00 +0000, Shailabh Nagar wrote:
> john stultz wrote:
> > On Mon, 2005-12-12 at 19:31 +0000, Shailabh Nagar wrote:
> >
> >>Christoph Lameter wrote:
> >>
> >>>On Wed, 7 Dec 2005, Shailabh Nagar wrote:
> >>>>+void getnstimestamp(struct timespec *ts)
> >>>
> >>>There is already getnstimeofday in the kernel.
> >>
> >>Yes, and that function is being used within the getnstimestamp() being proposed.
> >>However, John Stultz had advised that getnstimeofday could get affected by calls to
> >>settimeofday and had recommended adjusting the getnstimeofday value with wall_to_monotonic.
> >>
> >>John, could you elaborate ?
> >
> > I think you pretty well have it covered.
> >
> > getnstimeofday + wall_to_monotonic should be higher-res and more
> > reliable (then TSC based sched_clock(), for example) for getting a
> > timestamp.
> >
> > There may be performance concerns as you have to access the clock
> > hardware in getnstimeofday(), but there really is no other way for
> > reliable finely grained monotonically increasing timestamps.
> >

> Thanks, that clarifies. I guess the other underlying concern here would be whether these
> improvements (in resolution and reliability) should be going into getnstimeofday()
> itself (rather than creating a new func for the same) ? Or is it better to leave
> getnstimeofday as it is ?

No, getnstimeofday() is very much needed to get a nanosecond grained
wall-time clock, so a new function is needed for the monotonic clock.

In my timeofday re-work I have used the name "get_monotonic_clock()" and
"get_monotonic_clock_ts()" for basically the same functionality
(providing a ktime and a timespec respectively). You might consider
naming it as such, but resolving these naming collisions shouldn't be
too difficult either way.

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/