aboutsummaryrefslogtreecommitdiff
path: root/lib/libc/sys/ffclock.2
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libc/sys/ffclock.2')
-rw-r--r--lib/libc/sys/ffclock.2175
1 files changed, 0 insertions, 175 deletions
diff --git a/lib/libc/sys/ffclock.2 b/lib/libc/sys/ffclock.2
deleted file mode 100644
index 2e34c5cd8e9d..000000000000
--- a/lib/libc/sys/ffclock.2
+++ /dev/null
@@ -1,175 +0,0 @@
-.\" Copyright (c) 2011 The University of Melbourne
-.\" All rights reserved.
-.\"
-.\" This documentation was written by Julien Ridoux at the University of
-.\" Melbourne under sponsorship from the FreeBSD Foundation.
-.\"
-.\" 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 AUTHOR 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 AUTHOR 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 November 21, 2011
-.Dt FFCLOCK 2
-.Os
-.Sh NAME
-.Nm ffclock_getcounter ,
-.Nm ffclock_getestimate ,
-.Nm ffclock_setestimate
-.Nd Retrieve feed-forward counter, get and set feed-forward clock estimates
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/timeffc.h
-.Ft int
-.Fn ffclock_getcounter "ffcounter *ffcount"
-.Ft int
-.Fn ffclock_getestimate "struct ffclock_estimate *cest"
-.Ft int
-.Fn ffclock_setestimate "struct ffclock_estimate *cest"
-.Sh DESCRIPTION
-The ffclock is an alternative method to synchronise the system clock.
-The ffclock implements a feed-forward paradigm and decouples the timestamping
-and timekeeping kernel functions.
-This ensures that past clock errors do not affect current timekeeping, an
-approach radically different from the feedback alternative implemented by the
-ntpd daemon when adjusting the system clock.
-The feed-forward approach has demonstrated better performance and higher
-robustness than a feedback approach when synchronising over the network.
-.Pp
-In the feed-forward context, a
-.Em timestamp
-is a cumulative value of the ticks of the timecounter, which can be converted
-into seconds by using the feed-forward
-.Em clock estimates .
-.Pp
-The
-.Fn ffclock_getcounter
-system call allows the calling process to retrieve the current value of the
-feed-forward counter maintained by the kernel.
-.Pp
-The
-.Fn ffclock_getestimate
-and
-.Fn ffclock_setestimate
-system calls allow the caller to get and set the kernel's feed-forward clock
-parameter estimates respectively.
-The
-.Fn ffclock_setestimate
-system call should be invoked by a single instance of a feed-forward
-synchronisation daemon.
-The
-.Fn ffclock_getestimate
-system call can be called by any process to retrieve the feed-forward clock
-estimates.
-.Pp
-The feed-forward approach does not require that the clock estimates be retrieved
-every time a timestamp is to be converted into seconds.
-The number of system calls can therefore be greatly reduced if the calling
-process retrieves the clock estimates from the clock synchronisation daemon
-instead.
-The
-.Fn ffclock_getestimate
-must be used when the feed-forward synchronisation daemon is not running
-.Po see
-.Sx USAGE
-below
-.Pc .
-.Pp
-The clock parameter estimates structure pointed to by
-.Fa cest
-is defined in
-.In sys/timeffc.h
-as:
-.Bd -literal
-struct ffclock_estimate {
- struct bintime update_time; /* Time of last estimates update. */
- ffcounter update_ffcount; /* Counter value at last update. */
- ffcounter leapsec_next; /* Counter value of next leap second. */
- uint64_t period; /* Estimate of counter period. */
- uint32_t errb_abs; /* Bound on absolute clock error [ns]. */
- uint32_t errb_rate; /* Bound on counter rate error [ps/s]. */
- uint32_t status; /* Clock status. */
- int16_t leapsec_total; /* All leap seconds seen so far. */
- int8_t leapsec; /* Next leap second (in {-1,0,1}). */
-};
-.Ed
-.Pp
-Only the super-user may set the feed-forward clock estimates.
-.Sh RETURN VALUES
-.Rv -std
-.Sh ERRORS
-The following error codes may be set in
-.Va errno :
-.Bl -tag -width Er
-.It Bq Er EFAULT
-The
-.Fa ffcount
-or
-.Fa cest
-pointer referenced invalid memory.
-.It Bq Er EPERM
-A user other than the super-user attempted to set the feed-forward clock
-parameter estimates.
-.El
-.Sh USAGE
-The feed-forward paradigm enables the definition of specialised clock functions.
-.Pp
-In its simplest form,
-.Fn ffclock_getcounter
-can be used to establish strict order between events or to measure small time
-intervals very accurately with a minimum performance cost.
-.Pp
-Different methods exist to access absolute time
-.Po or
-.Qq wall-clock time
-.Pc tracked by the ffclock.
-The simplest method uses the ffclock sysctl interface
-.Va kern.ffclock
-to make the system clock return the ffclock time.
-The
-.Xr clock_gettime 2
-system call can then be used to retrieve the current time seen by the
-feed-forward clock.
-Note that this setting affects the entire system and that a feed-forward
-synchronisation daemon should be running.
-.Pp
-A less automated method consists of retrieving the feed-forward counter
-timestamp from the kernel and using the feed-forward clock parameter estimates
-to convert the timestamp into seconds.
-The feed-forward clock parameter estimates can be retrieved from the kernel or
-from the synchronisation daemon directly (preferred).
-This method allows converting timestamps using different clock models as needed
-by the application, while collecting meaningful upper bounds on current clock
-error.
-.Sh SEE ALSO
-.Xr date 1 ,
-.Xr adjtime 2 ,
-.Xr clock_gettime 2 ,
-.Xr ctime 3
-.Sh HISTORY
-Feed-forward clock support first appeared in
-.Fx 10.0 .
-.Sh AUTHORS
-.An -nosplit
-The feed-forward clock support was written by
-.An Julien Ridoux Aq Mt jridoux@unimelb.edu.au
-in collaboration with
-.An Darryl Veitch Aq Mt dveitch@unimelb.edu.au
-at the University of Melbourne under sponsorship from the FreeBSD Foundation.