NetBSD/dist/ntp/html/tickadj.htm

91 lines
3.1 KiB
HTML

<HTML><HEAD><TITLE>
<TT>tickadj</TT> - set time-related kernel variables
</TITLE></HEAD><BODY><H3>
<TT>tickadj</TT> - set time-related kernel variables
</H3><HR>
<H4>Synopsis</H4>
<TT>tickadj [ -Aqs ] [ -a <I>tickadj</I> ] [ -t <I>tick</I> ]</TT>
<H4>Description</H4>
The <TT>tickadj</TT> program reads, and optionally modifies, several
timekeeping-related variables in the running kernel in some machines,
via <TT>/dev/kmem</TT>. The particular variables it is concerned with
are <TT>tick</TT>, which is the number of microseconds added to the
system time during a clock interrupt, <TT>tickadj</TT>, which sets the
slew rate and resolution used by the <TT>adjtime</TT> system call, and
<TT>dosynctodr</TT>, which indicates to the kernels on some machines
whether they should internally adjust the system clock to keep it in
line with time-of-day clock or not.
<P>Note that this program does NOT work in some kernels, in particular
Solaris 2.6 or later. See the <A HREF="solaris-dosynctodr.html">
report</A>.
<P>By default, with no arguments, <TT>tickadj</TT> reads the variables
of interest in the kernel and displays them. At the same time, it
determines an "optimal" value for the value of the <TT>tickadj</TT>
variable if the intent is to run the <TT>ntpd</TT> Network Time Protocol
(NTP) daemon, and prints this as well. Since the operation of
<TT>tickadj</TT> when reading the kernel mimics the operation of similar
parts of the <TT>ntpd</TT> program fairly closely, this can be useful
when debugging problems with <TT>ntpd</TT>.
<P>Note that <TT>tickadj</TT> should be run with some caution when being
used for the first time on different types of machines. The operations
which <TT>tickadj</TT> tries to perform are not guaranteed to work on
all
Unix machines and may in rare cases cause the kernel to crash.
<H4>
Command Line Options</H4>
<DL>
<DT><TT>-a <I>tickadj</I></TT></DT>
<DD>Set the kernel variable <TT>tickadj</TT> to the value
<I><TT>tickadj</TT></I>specified.</DD>
<DT><TT>-A</TT></DT>
<DD>Set the kernel variable <TT>tickadj</TT> to an internally computed
"optimal" value.</DD>
<DT><TT>-t <I>tick</I></TT></DT>
<DD>Set the kernel variable <TT>tick</TT> to the value
<I><TT>tick</TT></I> specified.</DD>
<DT><TT>-s</TT></DT>
<DD>Set the kernel variable <TT>dosynctodr</TT> to zero, which disables
the hardware time-of-year clock, a prerequisite for running the
<TT>ntpd</TT> daemon under SunOS4.</DD>
<DT><TT>-q</TT></DT>
<DD>Normally, <TT>tickadj</TT> is quite verbose about what it is doing.
The <TT>-q</TT> flag tells it to shut up about everything except
errors.</DD>
</DL>
<H4>Files</H4>
<PRE>
/vmunix
/unix
/dev/kmem</PRE>
<H4>Bugs</H4>
Fiddling with kernel variables at run time as a part of ordinary
operations is a hideous practice which is only necessary to make up for
deficiencies in the implementation of <TT>adjtime</TT> in many kernels
and/or brokenness of the system clock in some vendors' kernels. It would
be much better if the kernels were fixed and the <TT>tickadj</TT>
program went away.&nbsp;
<hr><a href=index.htm>Home</a><address><a
href=mailto:mills@udel.edu> David L. Mills &lt;mills@udel.edu&gt;</a>
</address></a></body></html>