Thread (10 messages) 10 messages, 4 authors, 2009-09-03

Re: time jumps forward/backwards

From: Benjamin Gamsa <hidden>
Date: 2009-09-01 00:09:51

Benjamin Gamsa wrote:
Paul Mackerras wrote:
quoted
Ben Gamsa writes:
quoted
It appears to be the case that when the time on the system is around 
the epoch (1970), that time will occasionally jump forward and then 
backward by about 17592 seconds.  When it jumps forward, it always 
jumps back a few milliseconds later.  However, it's not always easy 
to catch these occurrences.  The delta is more specifically about 
17592186059 usec, give or take a few 10s of microseconds (most of the 
time), despite the fact that the user-level program I have that is 
testing it only checks every 10 milliseconds.
I don't think the time code in the kernel is designed to handle
negative values, i.e., times before the epoch.  If you want it to do
that you'll have to check places like arch/powerpc/kernel/time.c,
kernel/time/timekeeping.c, arch/powerpc/include/asm/time.h, etc., and
make sure that it uses signed types where necessary and that the
arithmetic is correct.
The time never goes negative.  It starts off at the epoch and moves 
forward, but sometimes it jumps forward by 17952 seconds, and then 
immediately jumps back.  But it never goes negative (or prior to 1970).
One important thing I forgot to add is that ntpd is running on this 
system, but the ntp servers are not available.  I suspect the problem 
may be related to ntpd, even though I've seen the time jump even when I 
had ntpd stopped within gdb.  I've not yet been able to confirm if the 
problem still occurs when ntpd is never even started, although I will be 
testing that soon (the tests often require many hours to establish if 
there are no jumps).

	ben
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help