summaryrefslogtreecommitdiffstats
path: root/usr.sbin/xntpd/doc/tickadj.8
blob: e510bfd05f64bb7a1400b6809259753ea264b14d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
.\"	$Id: tickadj.8,v 1.5 1998/01/22 07:26:08 charnier Exp $
.\"
.Dd December 21, 1993
.Dt TICKADJ 8
.Os
.Sh NAME
.Nm tickadj
.Nd fiddle time\-related variables in the kernel
.Sh SYNOPSIS
.Nm tickadj
.Op Fl Adkpqs
.Op Fl a Ar new_tickadj
.Op Fl t Ar new_tick
.Sh DESCRIPTION
The
.Nm
program reads, and optionally modifies, several time\-keeping\-related
variables in the running kernel, via
.Pa /dev/kmem .
The particular variables it is concerned with are
.Em tick ,
which is the number of microseconds added to the system time during a
clock interrupt,
.Em tickadj ,
which sets the slew rate and resolution used by the
.Xr adjtime 2
system call, and
.Em dosynctodr ,
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.
.Pp
By default, with no arguments,
.Nm
reads the variables of interest in the kernel and prints them.  At the
same time it determines an
.Qq optimal
value for the value of the
.Em tickadj
variable if the intent is to run the
.Xr xntpd 8
Network Time Protocol daemon, and prints this as well.  Since the operation
of
.Nm
when reading the kernel mimics the operation of similar parts of the
.Xr xntpd 8
program fairly closely, this is useful for doing debugging of problems
with
.Xr xntpd 8 Ns .
.Pp
Various flags may be specified to change the variables of interest in
the running kernel:
.Bl -tag -width indent
.It Fl a Ar new_tickadj
Allow one to set the variable
.Em tickadj
to the value specified as an argument.
.It Fl A
Cause
.Em tickadj
to be modified, but instead will set it to the internally computed
.Qq optimal
value.
.It Fl d
Add debugging information.
.It Fl k
Use
.Pa /dev/kmem
instead of
.Pa /kernel .
This is the default.
.It Fl p
Tell
.Nm
to set the value of the variable
.Em noprintf
to one.
.It Fl q
Tell
.Nm
to shut up about everything except errors. Normally
.Nm
is quite verbose about what it is doing.
.It Fl s
Tell
.Nm
to set the value of the variable
.Em dosynctodr
to zero, a prerequisite for running the
.Xr xntpd 8
daemon under SunOS 4.0.
.It Fl t Ar new_tick
May be used to reset the kernel's value of
.Em tick ,
a capability which is useful on machines with very broken clocks.
.El
.Pp
Note that
.Nm
should be run with some caution when being used for the first time on
different types of machines.  The operations which
.Nm
trys to perform are not guaranteed to work on all Unix machines.
.Sh FILES
.Bl -tag -width /dev/kmem -compact
.It Pa /kernel
.It Pa /dev/kmem
.El
.Sh SEE ALSO
.Xr xntpd 8
.Sh HISTORY
Written by
.An Dennis Ferguson
at the University of Toronto.
.Sh BUGS
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
.Xr adjtime 2
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
.Nm
program went away.
OpenPOWER on IntegriCloud