FFCLOCK(4)

πŸ“¦ version 15.1, in freebsd 14.5, freebsd 15.1, nixpkgs unstable

πŸ’– FFCLOCK(4) β€” feed-forward system clock, bestie πŸ’–

okay so this is the FFCLOCK page from the Kernel Interfaces Manual (section 4, iykyk), and it’s literally all about the feed-forward system clock. buckle up, bestie πŸŽ€


🌸 NAME 🌸

FFCLOCK β€” Feed-forward system clock. that’s the whole vibe. πŸ’…


✨ SYNOPSIS ✨

options FFCLOCK

that’s it. that’s the synopsis. iconic, honestly. 🫢


πŸ’… DESCRIPTION πŸ’…

okay so, ngl, the ntpd(8) daemon has been the dominant solution for system clock synchronisation for many years, and that has in turn influenced the design of the system clock. the ntpd daemon implements a feedback control algorithm which has been demonstrated to perform poorly in common use cases. not me reading that and gasping 😭

feed-forward clock synchronisation algorithms implemented by an appropriate daemon, in concert with the FFCLOCK kernel support, have been shown to provide highly robust and accurate clock synchronisation. slay. in addition to time keeping, the FFCLOCK kernel mechanism provides new timestamping capabilities and the ability to use specialised clocks. feed-forward synchronisation is also very well suited for virtualised environments, reducing the overhead of timekeeping in guests and ensuring continued smooth operation of the system clock during guest live migration. that’s giving main character energy in a VM, fr fr πŸ¦‹

the FFCLOCK kernel support provides feed-forward timestamping functions within the kernel and system calls to support feed-forward synchronisation daemons (see ffclock(2)). periodt.

🧚 Kernel Options 🧚

the following kernel configuration options are related to FFCLOCK:

  • FFCLOCK β€” Enable feed-forward clock support. lowkey the whole point, bestie ✨

πŸŽ€ Configuration πŸŽ€

when feed-forward clock support is compiled into the kernel, multiple system clocks become available to choose from. system clock configuration is possible via the kern.sysclock sysctl(8) tree which provides the following variables:

  • kern.sysclock.active β€” Name of the current active system clock which is serving time. Set to one of the names in kern.sysclock.available in order to change the default active system clock. that’s your β€œpick me” clock πŸ’…
  • kern.sysclock.available β€” Lists the names of available system clocks (read-only). it’s giving menu of clocks, no cap πŸŽ€

feed-forward system clock configuration is possible via the kern.sysclock.ffclock sysctl tree which provides the following variables:

  • kern.sysclock.ffclock.version β€” Feed-forward clock kernel version (read-only). cute little version check, obsessed πŸ¦‹
  • kern.sysclock.ffclock.ffcounter_bypass β€” Use reliable hardware timecounter as the feed-forward counter. Will eventually be useful for virtualised environment like xen(4), but currently does nothing. yes bestie, it said β€œcurrently does nothing” πŸ˜­πŸ’€

πŸ¦‹ SEE ALSO πŸ¦‹

go read these next, bestie, the lore is real πŸ“šβœ¨


⭐ HISTORY ⭐

feed-forward clock support first appeared in FreeBSD 10.0. periodt. πŸ‘‘


πŸ’œ 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. iconic team-up, honestly 🫢

this manual page was written by Julien Ridoux <jridoux@unimelb.edu.au> and Lawrence Stewart <lstewart@FreeBSD.org>. shoutout to the page authors, they ate πŸ’…


okay bye bestie β€” this page is from Debian, dated December 1, 2011, and it’s FFCLOCK(4) πŸ’–πŸ¦‹πŸŽ€

πŸ“¦ where this page comes from