All of lore.kernel.org
 help / color / mirror / Atom feed
From: john stultz <johnstul@us.ibm.com>
To: Richard Cochran <richardcochran@gmail.com>
Cc: Andy Lutomirski <luto@amacapital.net>,
	linux-kernel@vger.kernel.org, Kumar Sundararajan <kumar@fb.com>,
	Arun Sharma <asharma@fb.com>,
	Peter Zijlstra <peterz@infradead.org>,
	Ingo Molnar <mingo@elte.hu>, Thomas Gleixner <tglx@linutronix.de>
Subject: Re: [RFC 0/2] ABI for clock_gettime_ns
Date: Wed, 14 Dec 2011 08:48:30 -0800	[thread overview]
Message-ID: <1323881310.6805.41.camel@work-vm> (raw)
In-Reply-To: <20111214074640.GB2180@netboy.at.omicron.at>

On Wed, 2011-12-14 at 08:46 +0100, Richard Cochran wrote:
> On Mon, Dec 12, 2011 at 11:09:29PM -0800, Andy Lutomirski wrote:
> > On Mon, Dec 12, 2011 at 7:43 PM, john stultz <johnstul@us.ibm.com> wrote:
> > >> - New name, to distance ourselves from POSIX (clock_ns_get?)
> > 
> > I will defer to the bikeshedding consensus :)
> > 
> > >> - Family of calls, with set/get
> > 
> > Setting the time is a big can of worms.  adjtimex is rather
> > incomprehensible (without reading lots of source and/or the rfc) and
> > IMO puts a lot of NTP magic into the kernel, where it doesn't belong.

Honestly, I don't really see how we jumped to adjtimex from setting the
time, nor the complexity hinted at. First, the rational for getting
clock_gettime_ns is to avoid the overhead of userland translating from
timespec to ns.   I doubt there are similar performance needs for
settimeofday().  Even if it was needed, it shouldn't be more complex
then the unit conversion done in this abi patch. Am I missing something?

> > That being said, it might be nice to do something about leap seconds.
> > I always thought that the nanosecond count should include every
> > possible leap second so that every time that actually happens
> > corresponds to a unique count, but maybe that's just me.
> 
> The advantage of working with TAI is that you can use simple addition
> and substraction (converting the result to UTC or whatever), and the
> answer is always correct.

But again, the hard part with in-kernel TAI (possibly as the base of
time)is that initialization of the TAI/UTC offset needs to be able to be
phased in slowly, as we also have to preserve legacy interfaces and
behavior. 

> > >> - Sub nanosecond field
> > 
> > Me.  A nanosecond is approximately a light-second.  Other than things
> > local to a single computer, not much of interest happens on a
> > sub-nanosecond time scale.  Also, a single 64-bit count is nice, and
> > 2^64 picoseconds isn't very long.
> 
> Believe it or not, people (from the Test and Measurement field) have
> already been asking me about having subnanosecond time values from the
> kernel.
> 
> What about this sort of time value?
> 
> struct sys_timeval {
> 	__s64 nanoseconds;
> 	__u32 fractional_ns;
> };
> 
> The second field can just be zero, for now.

I'm mixed on this. 

We could do this, as the kernel keeps track of sub-ns granularity.
However, its not stored in a decimal format. So I worry the extra math
needed to convert it to something usable might add extra overhead,
removing the gain of the proposed clock_gettime_ns() interface.


> > >> - TAI time base (or according to parameter?)
> > >
> > > Having a CLOCK_TAI would be interesting across the board. We already
> > > keep a TAI offset in the ntp code. However, I'm not sure if ntp actually
> > > sets it these days.
> > 
> > A friend of mine would probably appreciate various barycentric time
> > scales as well.  This would also be a different (and unrelated) patch.
> 
> What about this: a new, non-POSIX, rational time interface providing
> TAI time values, and a user space library for time scale conversion?

Why do we need a new interface for TAI? clock_gettime(CLOCK_TAI,...)
should be achievable. I do think it would be interesting, but I also
think its separate from the goal of this proposal.

thanks
-john



  reply	other threads:[~2011-12-14 16:49 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-12-13  1:26 [RFC 0/2] ABI for clock_gettime_ns Andy Lutomirski
2011-12-13  1:26 ` [RFC 1/2] Add clock_gettime_ns syscall Andy Lutomirski
2011-12-13  3:32   ` Richard Cochran
2011-12-13  1:26 ` [RFC 2/2] x86-64: Add __vdso_clock_gettime_ns vsyscall Andy Lutomirski
2011-12-13  3:24 ` [RFC 0/2] ABI for clock_gettime_ns Richard Cochran
2011-12-13  3:43   ` john stultz
2011-12-13  7:09     ` Andy Lutomirski
2011-12-14  7:46       ` Richard Cochran
2011-12-14 16:48         ` john stultz [this message]
2011-12-14 17:15           ` Andy Lutomirski
2011-12-14 17:31             ` john stultz
2011-12-14 18:37             ` Richard Cochran
2011-12-14 18:30           ` Richard Cochran
2011-12-14 19:07             ` john stultz
2011-12-14 19:20               ` Andy Lutomirski
2011-12-14 21:34                 ` john stultz
2011-12-15 11:35                   ` Richard Cochran
2011-12-22 12:03               ` Richard Cochran
2011-12-24  5:59                 ` Andy Lutomirski
2011-12-24  6:50                   ` Richard Cochran
2011-12-25  4:06                     ` Andy Lutomirski
2011-12-14  7:20     ` Richard Cochran
2011-12-14 16:23       ` john stultz
2011-12-14 18:21         ` Richard Cochran
2011-12-14 18:57           ` john stultz
2012-01-07 19:51             ` Richard Cochran
2011-12-21  0:50 ` Arun Sharma
2011-12-21  1:07   ` Andy Lutomirski

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1323881310.6805.41.camel@work-vm \
    --to=johnstul@us.ibm.com \
    --cc=asharma@fb.com \
    --cc=kumar@fb.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=luto@amacapital.net \
    --cc=mingo@elte.hu \
    --cc=peterz@infradead.org \
    --cc=richardcochran@gmail.com \
    --cc=tglx@linutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.