summaryrefslogtreecommitdiffstats
path: root/share/man/man9/get_cyclecount.9
diff options
context:
space:
mode:
Diffstat (limited to 'share/man/man9/get_cyclecount.9')
-rw-r--r--share/man/man9/get_cyclecount.995
1 files changed, 95 insertions, 0 deletions
diff --git a/share/man/man9/get_cyclecount.9 b/share/man/man9/get_cyclecount.9
new file mode 100644
index 0000000..afdb5d2
--- /dev/null
+++ b/share/man/man9/get_cyclecount.9
@@ -0,0 +1,95 @@
+.\" Copyright (c) 2000 Mark R V Murray
+.\" All rights reserved.
+.\"
+.\" 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.
+.\"
+.\" $FreeBSD$
+.\"
+.Dd March 15, 2011
+.Dt GET_CYCLECOUNT 9
+.Os
+.Sh NAME
+.Nm get_cyclecount
+.Nd get the CPU's fast counter register contents
+.Sh SYNOPSIS
+.In sys/param.h
+.In sys/systm.h
+.In machine/cpu.h
+.Ft uint64_t
+.Fn get_cyclecount "void"
+.Sh DESCRIPTION
+The
+.Fn get_cyclecount
+function uses a register
+available in most modern CPUs
+to return a value
+that is monotonically increasing
+inside each CPU.
+.Pp
+On SMP systems,
+there will be a number of
+separate monotonic sequences,
+one for each CPU running.
+The value in the SMP case is
+selected from one of these sequences,
+dependent on which CPU
+was scheduled to service the request.
+.Pp
+The speed and the maximum value
+of each counter
+is CPU-dependent.
+Some CPUs
+(such as the
+.Tn Intel
+80486)
+do not have such a register,
+so
+.Fn get_cyclecount
+on these platforms
+returns a (monotonic) combination of numbers
+represented by the
+structure returned by
+.Xr binuptime 9 .
+.Pp
+The
+.Tn AMD64
+and
+.Tn Intel 64
+processors use the
+.Li TSC
+register.
+.Pp
+The
+.Tn IA64
+processors use the
+.Li AR.ITC
+register.
+.Sh SEE ALSO
+.Xr binuptime 9
+.Sh HISTORY
+The
+.Fn get_cyclecount
+function first appeared in
+.Fx 5.0 .
+.Sh AUTHORS
+This manual page was written by
+.An Mark Murray Aq Mt markm@FreeBSD.org .
OpenPOWER on IntegriCloud