Initial import from FreeBSD RELENG_4:
[dragonfly.git] / contrib / ntp / html / tickadj.htm
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
2 <html>
3 <head>
4 <meta name="generator" content="HTML Tidy, see www.w3.org">
5 <title>tickadj - set time-related kernel variables</title>
6 </head>
7 <body>
8 <h3><tt>tickadj</tt> - set time-related kernel variables</h3>
9
10 <hr>
11 <h4>Synopsis</h4>
12
13 <tt>tickadj [ -Aqs ] [ -a <i>tickadj</i> ] [ -t <i>tick</i> ]</tt> 
14
15 <h4>Description</h4>
16
17 The <tt>tickadj</tt> program reads, and optionally modifies,
18 several timekeeping-related variables in the running kernel in some
19 machines, via <tt>/dev/kmem</tt>. The particular variables it is
20 concerned with are <tt>tick</tt>, which is the number of
21 microseconds added to the system time during a clock interrupt,
22 <tt>tickadj</tt>, which sets the slew rate and resolution used by
23 the <tt>adjtime</tt> system call, and <tt>dosynctodr</tt>, which
24 indicates to the kernels on some machines whether they should
25 internally adjust the system clock to keep it in line with
26 time-of-day clock or not. 
27
28 <p>Note that this program does NOT work in some kernels, in
29 particular Solaris 2.6 or later. See the <a href=
30 "solaris-dosynctodr.html">report</a>.</p>
31
32 <p>By default, with no arguments, <tt>tickadj</tt> reads the
33 variables of interest in the kernel and displays them. At the same
34 time, it determines an "optimal" value for the value of the <tt>
35 tickadj</tt> variable if the intent is to run the <tt>ntpd</tt>
36 Network Time Protocol (NTP) daemon, and prints this as well. Since
37 the operation of <tt>tickadj</tt> when reading the kernel mimics
38 the operation of similar parts of the <tt>ntpd</tt> program fairly
39 closely, this can be useful when debugging problems with <tt>
40 ntpd</tt>.</p>
41
42 <p>Note that <tt>tickadj</tt> should be run with some caution when
43 being used for the first time on different types of machines. The
44 operations which <tt>tickadj</tt> tries to perform are not
45 guaranteed to work on all Unix machines and may in rare cases cause
46 the kernel to crash.</p>
47
48 <h4>Command Line Options</h4>
49
50 <dl>
51 <dt><tt>-a <i>tickadj</i></tt></dt>
52
53 <dd>Set the kernel variable <tt>tickadj</tt> to the value <i><tt>
54 tickadj</tt></i>specified.</dd>
55
56 <dt><tt>-A</tt></dt>
57
58 <dd>Set the kernel variable <tt>tickadj</tt> to an internally
59 computed "optimal" value.</dd>
60
61 <dt><tt>-t <i>tick</i></tt></dt>
62
63 <dd>Set the kernel variable <tt>tick</tt> to the value <i><tt>
64 tick</tt></i> specified.</dd>
65
66 <dt><tt>-s</tt></dt>
67
68 <dd>Set the kernel variable <tt>dosynctodr</tt> to zero, which
69 disables the hardware time-of-year clock, a prerequisite for
70 running the <tt>ntpd</tt> daemon under SunOS4.</dd>
71
72 <dt><tt>-q</tt></dt>
73
74 <dd>Normally, <tt>tickadj</tt> is quite verbose about what it is
75 doing. The <tt>-q</tt> flag tells it to shut up about everything
76 except errors.</dd>
77 </dl>
78
79 <h4>Files</h4>
80
81 <pre>
82 /vmunix
83
84 /unix
85
86 /dev/kmem
87 </pre>
88
89 <h4>Bugs</h4>
90
91 Fiddling with kernel variables at run time as a part of ordinary
92 operations is a hideous practice which is only necessary to make up
93 for deficiencies in the implementation of <tt>adjtime</tt> in many
94 kernels and/or brokenness of the system clock in some vendors'
95 kernels. It would be much better if the kernels were fixed and the
96 <tt>tickadj</tt> program went away.&nbsp; 
97
98 <hr>
99 <a href="index.htm"><img align="left" src="pic/home.gif" alt=
100 "gif"></a>
101 <address><a href="mailto:mills@udel.edu">David L. Mills
102 &lt;mills@udel.edu&gt;</a></address>
103 </body>
104 </html>
105