xref: /freebsd/contrib/ntp/html/tickadj.html (revision ea906c4152774dff300bb26fbfc1e4188351c89a)
19c2daa00SOllivier Robert<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
29c2daa00SOllivier Robert
39c2daa00SOllivier Robert<html>
49c2daa00SOllivier Robert
59c2daa00SOllivier Robert	<head>
6ea906c41SOllivier Robert		<meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
79c2daa00SOllivier Robert		<meta name="generator" content="HTML Tidy, see www.w3.org">
89c2daa00SOllivier Robert		<title>tickadj - set time-related kernel variables</title>
99c2daa00SOllivier Robert		<link href="scripts/style.css" type="text/css" rel="stylesheet">
109c2daa00SOllivier Robert	</head>
119c2daa00SOllivier Robert
129c2daa00SOllivier Robert	<body>
139c2daa00SOllivier Robert		<h3><tt>tickadj</tt> - set time-related kernel variables</h3>
14ea906c41SOllivier Robert		<p>Last update: <csobj format="ShortTime" h="25" locale="00000409" region="0" t="DateTime" w="61">18:50</csobj> UTC <csobj format="LongDate" h="25" locale="00000409" region="0" t="DateTime" w="246">Thursday, July 28, 2005</csobj></p>
159c2daa00SOllivier Robert		<hr>
169c2daa00SOllivier Robert		<h4>Synopsis</h4>
179c2daa00SOllivier Robert		<tt>tickadj [ -Aqs ] [ -a <i>tickadj</i> ] [ -t <i>tick</i> ]</tt>
189c2daa00SOllivier Robert		<h4>Description</h4>
199c2daa00SOllivier Robert		<p>The <tt>tickadj</tt> program reads, and optionally modifies, several timekeeping-related variables in older kernels that do not have support for precision ttimekeeping, including HP-UX, SunOS, Ultrix, SGI and probably others. Those machines provide means to patch the kernel <tt>/dev/kmem</tt>. Newer machines with precision time support, including Solaris, Tru64, FreeBSD and Linux (with PPSkit patch) should NOT use the program. The particular variables that can be changed with <tt>tickadj</tt> include <tt>tick</tt>, which is the number of microseconds added to the system time for 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>
209c2daa00SOllivier Robert		<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 &quot;optimal&quot; 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>
219c2daa00SOllivier Robert		<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.</p>
229c2daa00SOllivier Robert		<h4>Command Line Options</h4>
239c2daa00SOllivier Robert		<dl>
249c2daa00SOllivier Robert			<dt><tt>-a <i>tickadj</i></tt>
259c2daa00SOllivier Robert			<dd>Set the kernel variable <tt>tickadj</tt> to the value <i><tt>tickadj</tt></i>specified.
269c2daa00SOllivier Robert			<dt><tt>-A</tt>
279c2daa00SOllivier Robert			<dd>Set the kernel variable <tt>tickadj</tt> to an internally computed &quot;optimal&quot; value.
289c2daa00SOllivier Robert			<dt><tt>-t <i>tick</i></tt>
299c2daa00SOllivier Robert			<dd>Set the kernel variable <tt>tick</tt> to the value <i><tt>tick</tt></i> specified.
309c2daa00SOllivier Robert			<dt><tt>-s</tt>
319c2daa00SOllivier Robert			<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.
329c2daa00SOllivier Robert			<dt><tt>-q</tt>
339c2daa00SOllivier Robert			<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.
349c2daa00SOllivier Robert		</dl>
359c2daa00SOllivier Robert		<h4>Files</h4>
369c2daa00SOllivier Robert		<pre>
379c2daa00SOllivier Robert/vmunix
389c2daa00SOllivier Robert
399c2daa00SOllivier Robert/unix
409c2daa00SOllivier Robert
419c2daa00SOllivier Robert/dev/kmem
429c2daa00SOllivier Robert</pre>
439c2daa00SOllivier Robert		<h4>Bugs</h4>
449c2daa00SOllivier Robert		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.
459c2daa00SOllivier Robert		<hr>
469c2daa00SOllivier Robert		<script type="text/javascript" language="javascript" src="scripts/footer.txt"></script>
479c2daa00SOllivier Robert	</body>
489c2daa00SOllivier Robert
499c2daa00SOllivier Robert</html>