FFCLOCK(4)
π FFCLOCK(4) π
okay so bestie, welcome to the Kernel Interfaces Manual β this is the page for FFCLOCK, aka the Feed-forward system clock. buckle up, it's giving kernel-internals-cute π
β¨ NAME β¨
FFCLOCK β Feed-forward system clock π°οΈπ«
πΈ SYNOPSIS πΈ
options FFCLOCK
that's it. one line. iconic. π
π¦ DESCRIPTION π¦
okay so storytime πβ¨. The ntpd(8) daemon has been the dominant solution for system clock synchronisation for like, many many years β and the way it ran the game actually shaped how the system clock itself got designed. but here's the tea β: ntpd runs a feedback control algorithm, and that thing has been demonstrated to perform poorly in common use cases. not me calling out a decades-old daemon π.
meanwhile, feed-forward clock synchronisation algorithms β implemented by an appropriate daemon, working in concert with the FFCLOCK kernel support β have been shown to give you clock synchronisation that's highly robust and accurate. slay.
and it's not just timekeeping, bestie. the FFCLOCK kernel mechanism also hands you:
- new timestamping capabilities π₯
- the ability to use specialised clocks π
feed-forward sync is also very well suited for virtualised environments β it reduces the overhead of timekeeping in guests and keeps the system clock running smoothly during guest live migration. the way it just... handles all that. π§
so basically, the FFCLOCK kernel support provides feed-forward timestamping functions within the kernel, plus system calls to support feed-forward synchronisation daemons (go peek at ffclock(2) for that part π).
π§ Kernel Options π§
these are the kernel config options that have anything to do with FFCLOCK:
FFCLOCKβ Enable feed-forward clock support. β
π Configuration π
when feed-forward clock support is compiled into the kernel, you get multiple system clocks to choose from. yes, plural. we're fancy now.
system clock configuration happens through the kern.sysclock sysctl(8) tree, which gives you these variables:
kern.sysclock.activeβ Name of the current active system clock which is serving time. wanna change the default active system clock? set it to one of the names listed inkern.sysclock.available. done. π«kern.sysclock.availableβ Lists the names of available system clocks. read-only, so don't try it bestie π.
and then, feed-forward system clock configuration lives in the kern.sysclock.ffclock sysctl tree, with these variables:
kern.sysclock.ffclock.versionβ Feed-forward clock kernel version (read-only). πkern.sysclock.ffclock.ffcounter_bypassβ Use a reliable hardware timecounter as the feed-forward counter. it will eventually be useful for virtualised environments likexen(4), but currently does nothing. yeah. it's just vibing in there. π
π SEE ALSO π
clock_gettime(2), ffclock(2), bpf(4), timecounters(4), sysctl(8)
go read them, iykwyk π«Ά
π HISTORY π
Feed-forward clock support first appeared in FreeBSD 10.0. a whole era. π
π AUTHORS π
The feed-forward clock support was written by Julien Ridoux <jridoux@unimelb.edu.au> in collaboration with Darryl Veitch <dveitch@unimelb.edu.au> at the University of Melbourne, under sponsorship from the FreeBSD Foundation. π
This manual page was written by Julien Ridoux <jridoux@unimelb.edu.au> and Lawrence Stewart <lstewart@FreeBSD.org>. absolute legends, no cap π«‘β¨
okay that's the whole page bestie, you ate it, go timestamp something π°οΈπ
Debian Β· December 1, 2011 Β· FFCLOCK(4) β mwah, thanks for reading, love u, bye ππ¦π
π¦ where this page comes from
- debian bookworm: freebsd-manpages 12.2-1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- debian trixie: freebsd-manpages 12.2-2 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu jammy: freebsd-manpages 12.2-1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu noble: freebsd-manpages 12.2-1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu questing: freebsd-manpages 12.2-2
- ubuntu resolute: freebsd-manpages 12.2-2build1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu stonking: freebsd-manpages 12.2-2build1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- Copyright (c) 2011 The University of Melbourne
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms