CLOCK_MONOTONIC / CLOCK_UPTIME is not really monotonic between threads

Seo Townsend seotownsend at icloud.com
Sat Jun 4 11:09:58 UTC 2016


Heyy,
Sure your machine isn’t sitting next to a block hole?  :P

Many of the names (CLOCK_XXXXXX) seem to be just aliased.
https://github.com/freebsd/freebsd/blob/master/sys/kern/kern_time.c#L343 <https://github.com/freebsd/freebsd/blob/master/sys/kern/kern_time.c#L343>

I didn’t thoroughly look at this, but it seems like there’s a margin of noise
introduced by drift corrections that might (half ass-edly) explain the sub millisecond
errors you were receiving?
https://github.com/freebsd/freebsd/blob/master/sys/kern/kern_tc.c#L1374 <https://github.com/freebsd/freebsd/blob/master/sys/kern/kern_tc.c#L1347>

For the larger >1ms errors, ...that’s probably not good?  lol.  Might be worth it
to try the timersub library function: (http://www.unix.com/man-page/freebsd/3/timercmp/)
to calculate the delta.

> On Jun 3, 2016, at 7:28 AM, Maxim Sobolev <sobomax at FreeBSD.org> wrote:
> 
> a. multiple cores.
> b. makes no difference
> c. yes, I believe so
> 
> kern.timecounter.tsc_shift: 1
> kern.timecounter.smp_tsc_adjust: 0
> kern.timecounter.smp_tsc: 1
> kern.timecounter.invariant_tsc: 1
> machdep.tsc_freq: 2658118740
> machdep.disable_tsc_calibration: 0
> machdep.disable_tsc: 0
> 
> d. no, single socket Intel Q6700. I've also seen this problem on core
> i7-4770 running virtualbox 5.x. I have a hints that this also happens on
> our bigger production boxes, but I have no specifics yet.
> 
> On Thu, Jun 2, 2016 at 10:05 PM, Adrian Chadd <adrian.chadd at gmail.com>
> wrote:
> 
>> [snip]
>> 
>> a) is it on one core, or multiple cores?
>> b) CLOCK_MONOTONIC_FAST?
>> c) is it on a system that /has/ invariant-TSC ?
>> d) is this a multi-socket system?
>> 
>> 
>> 
>> -adrian
>> 
>> 
> _______________________________________________
> freebsd-arch at freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-arch
> To unsubscribe, send any mail to "freebsd-arch-unsubscribe at freebsd.org"



More information about the freebsd-threads mailing list