144 lines
3.3 KiB
Groff
144 lines
3.3 KiB
Groff
''' $Header
|
|
'''
|
|
.de Sh
|
|
.br
|
|
.ne 5
|
|
.PP
|
|
\fB\\$1\fR
|
|
.PP
|
|
..
|
|
.de Sp
|
|
.if t .sp .5v
|
|
.if n .sp
|
|
..
|
|
.de Ip
|
|
.br
|
|
.ie \\n.$>=3 .ne \\$3
|
|
.el .ne 3
|
|
.IP "\\$1" \\$2
|
|
..
|
|
'''
|
|
''' Set up \*(-- to give an unbreakable dash;
|
|
''' string Tr holds user defined translation string.
|
|
''' Bell System Logo is used as a dummy character.
|
|
'''
|
|
.tr \(bs-|\(bv\*(Tr
|
|
.ie n \{\
|
|
.ds -- \(bs-
|
|
.if (\n(.H=4u)&(1m=24u) .ds -- \(bs\h'-12u'\(bs\h'-12u'-\" diablo 10 pitch
|
|
.if (\n(.H=4u)&(1m=20u) .ds -- \(bs\h'-12u'\(bs\h'-8u'-\" diablo 12 pitch
|
|
.ds L" ""
|
|
.ds R" ""
|
|
.ds L' '
|
|
.ds R' '
|
|
'br\}
|
|
.el\{\
|
|
.ds -- \(em\|
|
|
.tr \*(Tr
|
|
.ds L" ``
|
|
.ds R" ''
|
|
.ds L' `
|
|
.ds R' '
|
|
'br\}
|
|
.TH TICKADJ 8 LOCAL
|
|
.SH NAME
|
|
tickadj - fiddle time\-related variables in the kernel
|
|
.SH SYNOPSIS
|
|
.B tickadj
|
|
[
|
|
.B -Aqs
|
|
] [
|
|
.B -a
|
|
.I new_tickadj
|
|
] [
|
|
.B -t
|
|
.I new_tick
|
|
]
|
|
.SH DESCRIPTION
|
|
The
|
|
.I tickadj
|
|
program reads, and optionally modifies, several time\-keeping\-related
|
|
variables in the running kernel, via
|
|
.IR /dev/kmem .
|
|
The particular variables it is concerned with are
|
|
.IR tick ,
|
|
which is the number of microseconds added to the system time during a
|
|
clock interrupt,
|
|
.IR tickadj ,
|
|
which sets the slew rate and resolution used by the
|
|
.IR adjtime (2)
|
|
system call, and
|
|
.IR dosynctodr ,
|
|
which indicates to the kernels on some machines whether they should internally
|
|
adjust the system clock to keep it in line with with time\-of\-day clock
|
|
or not.
|
|
.PP
|
|
By default, with no arguments,
|
|
.I tickadj
|
|
reads the variables of interest in the kernel and prints them. At the
|
|
same time it determines an \*(L"optimal\*(R" value for the value of the
|
|
.I tickadj
|
|
variable if the intent is to run the
|
|
.IR xntpd (8)
|
|
Network Time Protocol daemon, and prints this as well. Since the operation
|
|
of
|
|
.I tickadj
|
|
when reading the kernel mimics the operation of similar parts of the
|
|
.IR xntpd (8)
|
|
program fairly closely, this is useful for doing debugging of problems
|
|
with
|
|
.IR xntpd (8).
|
|
.PP
|
|
Various flags may be specified to change the variables of interest in
|
|
the running kernel. The
|
|
.B -a
|
|
flag allows one to set the the variable
|
|
.I tickadj
|
|
to the value specified as an argument. The
|
|
.B -A
|
|
flag will also cause
|
|
.I tickadj
|
|
to be modified, but instead will set it to the internally computed
|
|
\*(L"optimal\*(R" value. The
|
|
.B -t
|
|
flag may be used to reset the kernel's value of
|
|
.IR tick ,
|
|
a capability which is useful on machines with very broken clocks. The
|
|
.B -s
|
|
flag tells the program to set the value of the variable
|
|
.I dosynctodr
|
|
to zero, a prerequisite for running the
|
|
.IR xntpd (8)
|
|
daemon under SunOS 4.0. Normally
|
|
.I tickadj
|
|
is quite verbose about what it is doing. The
|
|
.B -q
|
|
flag tells it to shut up about everything except errors.
|
|
.PP
|
|
Note that
|
|
.I tickadj
|
|
should be run with some caution when being used for the first time on
|
|
different types of machines. The operations which
|
|
.I tickadj
|
|
trys to perform are not guaranteed to work on all Unix machines.
|
|
.SH FILES
|
|
.nf
|
|
/vmunix
|
|
/unix
|
|
/dev/kmem
|
|
.fi
|
|
.SH SEE ALSO
|
|
xntpd(8)
|
|
.SH HISTORY
|
|
Written by 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
|
|
.IR adjtime (8)
|
|
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
|
|
.I tickadj
|
|
program went away.
|