From: Nishanth Aravamudan <nacc@linux.vnet.ibm.com>
To: john.stultz@linaro.org
Cc: tglx@linutronix.de, linux-kernel@vger.kernel.org, jstancek@redhat.com
Subject: time / gtod seconds value out of sync?
Date: Thu, 19 Feb 2015 10:35:31 -0800 [thread overview]
Message-ID: <20150219183531.GA13745@linux.vnet.ibm.com> (raw)
Hi John,
We're seeing an interesting issue with the openposix testcase
difftime/1-1, which basically calls gtod/time, sleeps, calls time/gtod,
then difftime and sees if they disagree. The issue occurs with either
vDSO implementations or direct syscalls.
We are seeing failures on ppc64le and x86_64 (probably other places too,
just not tested yet), because (I'm pretty sure), the time() syscalls
granularity is not accounting for the nsecs value at all. Instead, it
just returns get_seconds().
In one case, I see, in sys_time():
[ 313.001823] NACC: timekeeping_get_ns = 1000121642
[ 314.001889] NACC: timekeeping_get_ns = 188401
gtod correctly accumulates those nsecs into the secs value:
ts->tv_sec = tk->xtime_sec;
nsecs = timekeeping_get_ns(&tk->tkr);
ts->tv_nsec = 0;
timespec64_add_ns(ts, nsecs);
but time() does:
return tk->xtime_sec;
It seems like overkill to do the full timekeeping_get_ns() in time(),
but maybe it's also necessary to account for leap seconds? That is, we
need to ensure that accumulate_nsecs_to_secs() has been called before
return tk->xtime_sec?
Thoughts?
Thanks,
Nish
next reply other threads:[~2015-02-19 18:35 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-02-19 18:35 Nishanth Aravamudan [this message]
2015-02-19 19:03 ` time / gtod seconds value out of sync? John Stultz
2015-02-19 19:16 ` Ingo Molnar
2015-02-19 19:28 ` Nishanth Aravamudan
2015-02-20 13:31 ` Jan Stancek
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=20150219183531.GA13745@linux.vnet.ibm.com \
--to=nacc@linux.vnet.ibm.com \
--cc=john.stultz@linaro.org \
--cc=jstancek@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox