Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 31 Dec 1995 16:03:21 +1100
From:      Bruce Evans <bde@zeta.org.au>
To:        freebsd-current@freebsd.org, peter@haywire.dialix.com
Subject:   Re: Tick, tock, adjust the clock
Message-ID:  <199512310503.QAA17446@godzilla.zeta.org.au>

next in thread | raw e-mail | index | archive | help
>Well, I've found an answer that totally cures it for us.. I increased
>the 'tickadj' rate from 5us to 40us..  ie: tickadj -a 40

>pwroot@gecko2[3:35am]~-101# tickadj
>tick = 10000 us, tickadj = 40 us
>calculated hz = 100.00 Hz
>recommended value of tickadj = 5 us

>And after a few days of running, behold! It has locked in!
>...
>The question is.. what have I done? :-)  Have I simply made the kernel
>respond to adjtime() faster?

I think you just made it possible for adjtime() to work.  One of my
clocks has a drift of about 7 parts in 10000, so a tickadj of 5 couldn't
possibly work for it.

tickadj = 40 was the default in FreeBSD-1.1.5.  The `recommended'
value above is based on 5 being the largest reasonable amount of
drift for a `tick' of 10000 (except on RS6000's, which apparently
live in a universe with different universal constants :-).

I still think the best fix involves changing TIMER_FREQUENCY.  There
is no official mechanism for doing this, but it can be fiddled with
fairly easily:

- write a slightly different value to timer_0_max_count in /dev/kmem
- access pcaudio to get the new value written to the clock hardware.

Bruce



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199512310503.QAA17446>