153 lines
5.6 KiB
Groff
153 lines
5.6 KiB
Groff
.\" $NetBSD: pmc.1,v 1.13 2017/07/13 10:59:53 wiz Exp $
|
|
.\"
|
|
.\" Copyright (c) 2017 The NetBSD Foundation, Inc.
|
|
.\" All rights reserved.
|
|
.\"
|
|
.\" This code is derived from software contributed to The NetBSD Foundation
|
|
.\" by Maxime Villard.
|
|
.\"
|
|
.\" 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 NETBSD FOUNDATION, INC. 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 FOUNDATION 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.
|
|
.\"
|
|
.\" Copyright (c) 2000 Zembu Labs, Inc.
|
|
.\" All rights reserved.
|
|
.\"
|
|
.\" Author: Jason R. Thorpe <thorpej@zembu.com>
|
|
.\"
|
|
.\" 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.
|
|
.\" 3. All advertising materials mentioning features or use of this software
|
|
.\" must display the following acknowledgement:
|
|
.\" This product includes software developed by Zembu Labs, Inc.
|
|
.\" 4. Neither the name of Zembu Labs nor the names of its employees may
|
|
.\" be used to endorse or promote products derived from this software
|
|
.\" without specific prior written permission.
|
|
.\"
|
|
.\" THIS SOFTWARE IS PROVIDED BY ZEMBU LABS, INC. ``AS IS'' AND ANY EXPRESS
|
|
.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WAR-
|
|
.\" RANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DIS-
|
|
.\" CLAIMED. IN NO EVENT SHALL ZEMBU LABS 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 July 12, 2017
|
|
.Dt PMC 1
|
|
.Os
|
|
.Sh NAME
|
|
.Nm pmc
|
|
.Nd performance-monitoring counter interface
|
|
.Sh SYNOPSIS
|
|
.Nm pmc
|
|
.Ar command
|
|
.Op Ar arguments
|
|
.Sh DESCRIPTION
|
|
The
|
|
.Nm
|
|
tool can be used to control and inspect the state of the
|
|
Performance-Monitoring Counters (PMCs) in the system.
|
|
.Pp
|
|
The first argument,
|
|
.Ar command ,
|
|
specifies the action to take.
|
|
Valid commands are:
|
|
.Bl -tag -width offline
|
|
.It list
|
|
Display a list of performance counter events available on the system.
|
|
.It start Ar name:option Op Ar name:option ...
|
|
Start one or several counters.
|
|
.Ar name
|
|
specifies the name of the event to count; it must be taken from the list of
|
|
available events.
|
|
.Ar option
|
|
specifies the source of the event; it must be a combination of
|
|
.Ar u
|
|
(userland) and
|
|
.Ar k
|
|
(kernel).
|
|
.It stop
|
|
Stop any performance counters that are currently running, and display the
|
|
values of these counters.
|
|
.El
|
|
.Sh FILES
|
|
.Pa src/sys/arch/x86/x86/pmc.c
|
|
x86 implementation.
|
|
.Pp
|
|
.Pa src/usr.bin/pmc/pmc.c
|
|
pmc tool.
|
|
.Sh EXAMPLES
|
|
The following command prints the available counters.
|
|
.Dl # pmc list
|
|
.Pp
|
|
The following command starts two counters.
|
|
The former will count the 'l2cache-access' events that are triggered from
|
|
userland, the latter will count the 'l1cache-access' events triggered from
|
|
both userland and the kernel.
|
|
.Dl # pmc start l2cache-access:u l1cache-access:uk
|
|
.Pp
|
|
Note that the two following commands are not exactly identical.
|
|
.Dl # pmc start l1cache-access:u l1cache-access:k
|
|
.Dl # pmc start l1cache-access:uk
|
|
The former will start two different counters that have a different source but
|
|
track the same event.
|
|
The latter will start one counter that tracks the event from all sources;
|
|
it therefore does the sum of the two counters from the first command, but
|
|
takes only one counter to do so.
|
|
.Sh INTERPRETING RESULTS
|
|
For each PMC on each CPU, the value reported by the
|
|
.Nm
|
|
tool is the number of events counted, encoded in a 64bit integer.
|
|
.Sh DIAGNOSTICS
|
|
.Bl -diag
|
|
.It PMC support not compiled into the kernel
|
|
Performance-monitoring counter support has not been compiled into the
|
|
kernel.
|
|
It may be included using the
|
|
.Em PMC
|
|
option.
|
|
See
|
|
.Xr options 4
|
|
for details.
|
|
.El
|
|
.Sh SEE ALSO
|
|
.Xr options 4
|
|
.Sh HISTORY
|
|
The
|
|
.Nm
|
|
command first appeared in
|
|
.Nx 1.6 .
|
|
It was revamped in
|
|
.Nx 8.0 .
|
|
.Sh BUGS
|
|
The
|
|
.Nm
|
|
command currently only supports performance-monitoring counters
|
|
on the i386 and amd64 architectures.
|