[ntp:questions] TSC, default precision, FreeBSD

David Mills mills at udel.edu
Wed Sep 2 03:30:51 UTC 2009


Danny,

I have a dual processor Intel here running FreeBSD that works really 
sweet. Intel now recommends tying the clock reading and update function 
to one processor and presumably that's what FreeBSD did. I disagree with 
that; my design for the multiprocessor Alpha, now in HP Tru64, didn't 
need to do that. Details in the nanokernel distribution at 
www.eecis.udel.edu/~mills/resource.html. Presumably, this is where the 
precision kernel code first originated, as the code I see in the various 
kernels bears an uncanny resemblance.

Dave

Danny Mayer wrote:

>Janusz U. wrote:
>  
>
>>Hello.
>>
>>I am trying to understand changes between NTP 4.1.1 and 4.1.1/4.2.0
>>versions.
>>When we use FreeBSD6 and NTP 4.1.1 (eg. NIST) we will get higher
>>    
>>
>
>Where does NIST come in here?
>
>  
>
>>precision which here is calculated from TSC frequency. But for new NTP
>>the precision will be lower (calculated from "call/jumps" time). I can
>>see some redefinition of the default precision meaning.
>>
>>    
>>
>
>I suspect that this may be due to the fact that on a multiprocessor the
>TSC which is on each processor are unsynchronized with each other and
>therefore you will get different results when you call gettimeofday()
>depending on which processor you are one when making the request. There
>are various methods that can be use to resynchronize them or require
>that only one be used when setting or reading the clock. I suspect that
>attempts where made to address this but I cannot be sure since I was not
>involved at the time. Dave Mills would know for sure.
>
>  
>
>>NTP - Network time protocol Changeset details for 1.706.1.10
>>http://ntp.bkbits.net:8080/ntp-dev/?PAGE=gnupatch&REV=1.706.1.10
>>
>>--- 1.99.1.1/ntpd/ntp_proto.c 2001-09-20 13:09:36 -07:00
>>+++ 1.99.1.2/ntpd/ntp_proto.c 2001-10-08 19:36:19 -07:00
>>
>>http://ntp.bkbits.net:8080/ntp-dev/ntpd/ntp_proto.c?PAGE=diffs&REV=3bc262a3RdhnVfTzQgIi8IXLNzMIIA
>>
>>Was it caused by SMP vs TSC appearing? Why was FreeBSD focused only?
>>Random/noise for get_systime() / clock_gettime() appeared 4-5 years
>>later so it seems not related to the default precision exactly.
>>
>>    
>>
>
>Most likely issues related to multiprocessors but this code is 8 years
>old so it is hard to know.
>
>Danny
>
>  
>




More information about the questions mailing list