Kernel time-keeping adjustments - how to tune?
Kevin Kinsey
kdk at daleco.biz
Mon Jan 17 22:34:50 PST 2005
John wrote:
>On Mon, Jan 17, 2005 at 03:05:22PM -0600, Kevin Kinsey wrote:
>
>
>>John wrote:
>>
>>
>>>OK - on my FreeBSD 5.3-STABLE system, as I have documented (cf:
>>>message thread Re: ntpd problems since upgrading to 5.3), ntpd
>>>won't run, even with an identical configuation to the 5.2.1 system
>>>next to it. Furthermore, when I run adjkerntz -a, it totally whacks
>>>the system's ability to keep time - it races forward at quite a
>>>high rate. ntpdate runs, and sets the time correctly.
>>>
>>>At one point, something managed to get the timekeeping parameters
>>>pretty near normal - less than a second of drift per hour (much
>>>better than the 40% rate it is now - it gains about 24 seconds PER
>>>MINUTE). Then I ran adjkerntz -a again, just to see if it really
>>>was the culprit. It does seem that it is adjkerntz that is causing
>>>(or triggering) the problem, but now I can't get the system back
>>>to a decent time-keeping rate. Whatever it was I stumbled across
>>>before, I'm not finding it again now.
>>>
>>>Now, it doesn't appear that adjkerntz itself has changed in YEARS,
>>>so it must be some change in the system call operation, parameters,
>>>or data structures that is causing this.
>>>
>>>So - since I don't seem to be able to stumble across what I did
>>>right before to get the timekeeping somewhat near normal, I am
>>>wondering if there's a manual way to reach them.
>>>
>>>
>>I read through the cited thread, and don't see any replies;
>>nor do I see enough explanation to give you any magic
>>beans. Of course, I'm no one's fairy godmother...
>>
>>
>
>LOL! No - I don't expect you to be - that'd take ALL the challenge
>out of it!
>
>
>
>>>the clock on my 5.3-STABLE system is RACING.
>>>It is going at almost twice as fast as real time.
>>>
>>>
>>Hmm, that might mean something. What do you get from:
>>
>>sysctl -a | grep timecounter
>>
>>
>
>I don't know what all this means, but here it is...
>kern.timecounter.stepwarnings: 0
>kern.timecounter.nbinuptime: 37254938
>kern.timecounter.nnanouptime: 0
>kern.timecounter.nmicrouptime: 3040
>kern.timecounter.nbintime: 19671985
>kern.timecounter.nnanotime: 2982761
>kern.timecounter.nmicrotime: 16689224
>kern.timecounter.ngetbinuptime: 0
>kern.timecounter.ngetnanouptime: 318046
>kern.timecounter.ngetmicrouptime: 14256461
>kern.timecounter.ngetbintime: 0
>kern.timecounter.ngetnanotime: 0
>kern.timecounter.ngetmicrotime: 3461614
>kern.timecounter.nsetclock: 87
>kern.timecounter.hardware: TSC
>kern.timecounter.choice: TSC(800) i8254(0) dummy(-1000000)
>kern.timecounter.tick: 1
>
>Are these all documented somewhere? I'm sure they must be, but
>I don't know where to look...
>
>
I dunno; my first guess would be sysctl(8), but I don't see
that every knob is mentioned.
I've experienced a "racing" clock on some mobos (but mostly
older ones<?>) with 5.X --- I don't remember it with 4.X, but
I've set up many more 5.X boxes now.
Setting the kern.timecounter.hardware sysctl to i8254
fixed a "racing" situation for me. After that, things settled
down a bit, and finally ntpd could sync up with its master.
It was quite unsettling, because my secretary's time records
and emails were coming to me anywhere from 4 hours to 3 days
in the future until we figured out what was going on. So, just
a thought, but you might try, as root:
# sysctl kern.timecounter.hardware=i8254
YMMV, of course. If it makes things worse, you'd go back
to TSC in a similar manner. If it helps, add this line:
kern.timecounter.hardware=i8254
to /etc/sysctl.conf.
Kevin Kinsey
More information about the freebsd-questions
mailing list