Re: [chrony-dev] SOCK refclock system time resolution

[ Thread Index | Date Index | More chrony.tuxfamily.org/chrony-dev Archives ]


On Mon, Sep 11, 2023 at 16:46:07 +0200, Miroslav Lichvar wrote:
> On Mon, Sep 11, 2023 at 08:03:49AM -0400, Josef 'Jeff' Sipek wrote:
> > On Mon, Sep 11, 2023 at 10:29:30 +0200, Miroslav Lichvar wrote:
> > > That timestamp doesn't need much resolution. It just says when the
> > > offset (in double format) was captured. Milliseconds would be fine.
> > 
> > Ok.  I just saw that the code uses that the timestamp and the offset to
> > calculate the time (for non-PPS sources) and it seemed desirable to get more
> > than microsecond resolution for that before it gets fed into RCL_AddSample.
> > In other words, this timestamp indirectly affects the resolution of the
> > sample fed in.
> 
> It's converted to timespec and then back to double after applying the
> offset option. The resolution of the original timestamp doesn't
> impact the resolution of the offset. It is effectively handled in
> nanosecond resolution.

Just to make sure I understand, the "proper" way is to adjust the offset to
compensate for any rounding?  IOW, something like what I had in my program
before I messed with chrony's code:

	uint64_t sys; /* system clock unix time in ns */
	uint64_t ref; /* reference clock unix time in ns */

	...

	/* align sys time to microseconds, adjust ref time to maintain offset */
	ref -= (sys % 1000);
	sys -= (sys % 1000);

	/* send message to chrony */
	msg->tv.tv_sec = sys / 1000000000;
	msg->tv.tv_usec = (sys / 1000) % 1000000;
	msg->offset = (ref - sys) / 1e9;
	...
	sendto(...)

This assumes that time was linear during the sys%1000 nanoseconds.  That
seems reasonable but as I said, I want to make sure I understand the right
way to feed chrony via the SOCK refclock.

Thanks,

Jeff.

-- 
To unsubscribe email chrony-dev-request@xxxxxxxxxxxxxxxxxxxx with "unsubscribe" in the subject.
For help email chrony-dev-request@xxxxxxxxxxxxxxxxxxxx with "help" in the subject.
Trouble?  Email listmaster@xxxxxxxxxxxxxxxxxxxx.


Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/