.\" .\" Copyright (c) 2021 Netflix, Inc. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" .\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS .\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED .\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR .\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS .\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR .\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF .\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS .\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN .\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" POSSIBILITY OF SUCH DAMAGE. .\" .Dd June 18, 2021 .Dt HZ 9 .Os .Sh NAME .Nm hz , .Nm tick , .Nm stathz , .Nm profhz .Nd system time model .Sh SYNOPSIS .In sys/kernel.h .Pp .Vt extern int hz; .Vt extern int tick; .Vt extern int stathz; /* deprecated */ .Vt extern int profhz; /* deprecated */ .Sh DESCRIPTION .Fx utilizes periodic, one-shot, global or per-CPU timing hardware using .Xr eventtimers 9 to produce traditional clock behavior. .Pp The main clock is used to update the system's notion of time via .Xr timecounters 9 and to pace periodic system callbacks via .Xr callout 9 , .Xr epoch 9 , and other methods documented in .Xr hardclock 9 . That routine will be called approximately .Va hz times per second. .Pp The second clock, running at either .Va stathz or .Va profhz was used to gather timing statistics, but has been replaced with the more functional .Xr hwpmc 4 . These values are returned for .Qq compatibility with .Bx 4.4 , .St -p1003.1-2001 and the .Xr setitimer 2 .Va ITIMER_PROF flag, which were deprecated in .St -p1003.1-2008 in favor of .Xr timer_settime 2 . .Pp .Va tick is the length of time in microseconds of one system tick. .Pp These system variables are also available as .Em struct clockinfo from .Xr sysctl 3 and .Sy kern.clockrate from .Xr sysctl 8 . .Pp The .Va hz rate may be overridden by defining .Dv HZ in the kernel configuration file or setting .Sy kern.hz system tuneable via .Xr loader.conf 5 . .Pp The current default is 1000 Hz for a tick of 1 ms for real hardware. For virtual machine guests, the default is 100 Hz for a tick of 10 ms. Only override the default value if you really know what you are doing. Due to the adaptive nature of timeouts, changing this value has less effect than it had in the past. .Sh SEE ALSO .Xr setitimer 2 , .Xr timer_settime 2 , .Xr loader.conf 5 , .Xr callout 9 , .Xr eventtimers 9 , .Xr hardclock 9 , .Xr microtime 9 , .Xr time_second 9 , .Xr timecounters 9