tickadj - set time-related kernel variables
Synopsis
tickadj [ -Aqs ] [ -a tickadj ] [ -t tick ]
Description
The tickadj program reads, and optionally modifies, several
timekeeping-related variables in the running kernel in some machines,
via /dev/kmem. The particular variables it is concerned with
are tick, which is the number of microseconds added to the
system time during a clock interrupt, tickadj, which sets the
slew rate and resolution used by the adjtime system call, and
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.
Note that this program does NOT work in some kernels, in particular
Solaris 2.6 or later. See the
report.
By default, with no arguments, tickadj 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 tickadj
variable if the intent is to run the ntpd Network Time Protocol
(NTP) daemon, and prints this as well. Since the operation of
tickadj when reading the kernel mimics the operation of similar
parts of the ntpd program fairly closely, this can be useful
when debugging problems with ntpd.
Note that tickadj should be run with some caution when being
used for the first time on different types of machines. The operations
which tickadj tries to perform are not guaranteed to work on
all
Unix machines and may in rare cases cause the kernel to crash.
Command Line Options
- -a tickadj
- Set the kernel variable tickadj to the value
tickadjspecified.
- -A
- Set the kernel variable tickadj to an internally computed
"optimal" value.
- -t tick
- Set the kernel variable tick to the value
tick specified.
- -s
- Set the kernel variable dosynctodr to zero, which disables
the hardware time-of-year clock, a prerequisite for running the
ntpd daemon under SunOS4.
- -q
- Normally, tickadj is quite verbose about what it is doing.
The -q flag tells it to shut up about everything except
errors.
Files
/vmunix
/unix
/dev/kmem
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 adjtime 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 tickadj
program went away.
Home David L. Mills <mills@udel.edu>