Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
KVMCLOCK(4)		    Kernel Interfaces Manual		   KVMCLOCK(4)

NAME
       kvmclock	-- Para-virtualized clock driver for x86 KVM guests

SYNOPSIS
       To  compile  this  driver  into the kernel, place the following line in
       your kernel configuration file:

	     device kvm_clock

DESCRIPTION
       This driver reads time-keeping information  from	 the  para-virtualized
       clock  device  provided	by  the	 KVM  hypervisor  on Linux hosts.  The
       kvmclock	driver is only implemented on i386 and	amd64  platforms.   It
       acts  as	 a timecounters(4) device and is preferred over	the Time Stamp
       Counter (TSC) when available.  The driver exports timekeeping  informa-
       tion  via /dev/pvclock, enabling	the implementation of clock_gettime(2)
       and related functions without entering the kernel.

       The kvmclock driver works by accessing a	per-vCPU timekeeping structure
       maintained by the hypervisor.  It uses a	combination  of	 TSC  readings
       and  information	from the shared	structure to produce a high-resolution
       timecounter which is invariant under hypervisor events such as vCPU mi-
       gration and live	VM migration.

SYSCTL VARIABLES
       The following variables are available as	both sysctl(8)	variables  and
       loader(8) tunables:

       dev.kvmclock.0.vdso_enable_without_rdtscp
	       By  default,  timekeeping  information is exported to userspace
	       only when the (virtual) CPU announces support for the  "rdtscp"
	       instruction.  Setting this sysctl to 1 overrides	this behavior,
	       allowing	timekeeping information	to be exported even in the ab-
	       sence  of "rdtscp" support.  However, this breaks compatibility
	       with copies of /lib/libc.so.7 released prior to	FreeBSD	 14.0,
	       and statically linked binaries which embed a copy of the	system
	       C  library.   Thus,  this sysctl	value should not be changed if
	       the system may execute binaries older than FreeBSD 14.0.

       dev.kvmclock.0.vdso_force_unstable
	       Mark the	timecounter as unstable	for userspace consumers.  This
	       is mostly useful	for debugging the driver and  userspace	 time-
	       keeping code, and generally should not be touched.

SEE ALSO
       timecounters(4)

HISTORY
       The kvmclock driver first appeared in FreeBSD 13.1.

FreeBSD	16.0 CURRENT	       February	1, 2023			   KVMCLOCK(4)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=kvmclock&sektion=4&manpath=FreeBSD+16.0-CURRENT>

home | help