DragonFly BSD
DragonFly users List (threaded) for 2005-04
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

Re: NTPD unable to adjust local clock


From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxx>
Date: Wed, 6 Apr 2005 12:11:42 -0700 (PDT)

:I would send a box with a timer doing more than 30ms / 60s back immediately.
:Oscillating clocks are not a problem (as in: oscillating vs. the referencer
:time), the question is how big that difference is. I'm pretty sure now
:that the current behaviour is simply a bug in the offset determination code.
:I just have to think how to best fix it.
:
:Somewhat related, what do you think about the attached patch? It removes
:the limitation of adjtime working only in steps of tickadj (30ms).
:
:Joerg

    No, it's 30ms over 60 seconds.  The actual adjustment is tickdelta 
    microseconds per tick... which is much, much less then 30ms.  Since
    there isn't much of a point making adjtime() accurate down to the
    microsecond (since it has no PLL capability), I don't think that change
    would benefit us much.

					-Matt
					Matthew Dillon 
					<dillon@xxxxxxxxxxxxx>


:Index: kern_clock.c
:===================================================================
:RCS file: /home/joerg/wd/repository/dragonflybsd/src/sys/kern/kern_clock.c,v
:retrieving revision 1.31
:diff -u -r1.31 kern_clock.c
:--- kern_clock.c	13 Mar 2005 21:33:47 -0000	1.31
:+++ kern_clock.c	6 Apr 2005 18:21:55 -0000
:@@ -312,6 +312,8 @@
: 		    --basetime.tv_sec;
: 		}
: 		timedelta -= tickdelta;
:+		if (timedelta > 0 && timedelta < tickdelta)
:+		    tickdelta = timedelta;
: 		rel_mplock();
: 	    }
: 
:Index: kern_time.c
:===================================================================
:RCS file: /home/joerg/wd/repository/dragonflybsd/src/sys/kern/kern_time.c,v
:retrieving revision 1.19
:diff -u -r1.19 kern_time.c
:--- kern_time.c	29 Mar 2005 00:35:55 -0000	1.19
:+++ kern_time.c	6 Apr 2005 18:21:55 -0000
:@@ -460,8 +460,10 @@
: 		ntickdelta = 10 * tickadj;
: 	else
: 		ntickdelta = tickadj;
:+#if 0
: 	if (ndelta % ntickdelta)
: 		ndelta = ndelta / ntickdelta * ntickdelta;
:+#endif
: 
: 	/*
: 	 * To make hardclock()'s job easier, make the per-tick delta negative
:
:--HcAYCG3uE/tztfnV--




[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]