freebsd-dev/usr.sbin/pmcstudy/pmcstudy.1
Randall Stewart d95b3509e1 Update the hwpmc driver to have the new type HASWELL_XEON. Also
go back through HASWELL, IVY_BRIDGE, IVY_BRIDGE_XEON and SANDY_BRIDGE
to straighten out all the missing PMCs. We also add a new pmc tool
pmcstudy, this allows one to run the various formulas from
the documents "Using Intel Vtune Amplifier XE on XXX Generation platforms" for
IB/SB and Haswell. The tool also allows one to postulate your own
formulas with any of the various PMC's. At some point I will enahance
this to work with Brendan Gregg's flame-graphs so we can flamegraph
various PMC interactions. Note the manual page also needs some
work (lots of work) but gnn has committed to help me with that ;-)
Reviewed by: gnn
MFC after:1 month
Sponsored by:	Netflix Inc.
2015-01-14 12:46:58 +00:00

66 lines
3.4 KiB
Groff

.\" Copyright (c) 2015
.\" Netflix Inc.
.\"
.\" 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 REGENTS 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 REGENTS 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 Dec 2, 2014
.Dt PMC_COUNTER_STUDY 1
.Os
.Sh NAME
.Nm pmc_counter_study
.Nd Perform various study's on a systems overall PMC's.
.Sh SYNOPSIS
.Nm
.Sh DESCRIPTION
The
.Nm
The pmc_counter_study program is designed to run various tests against
your systems performance. There are roughly 20-22 canned tests that
setup specific PMC's and then run various formulas on the output information.
These formulas can be found in Intel documentation "Using Intel Vtune
amplifier xe on NNN Generation Intel Core Processors". The NNN is either
2nd, 3rd or 4th generation i.e. Sandy Bridge, Ivy Bridge and Haswell.
Currently the program only works on these three Intel processor types.
You can see the complete list of formula's by running the program
with the -H option. If you know a formula name you can run it by
typing -e name. If you know a name and want what the formula is you
can run the program with -e name -h and the program will not run but
it will tell you what that name will do (if known). The -T option can
be used to test all PMC's that are known to your system. When running a
test you will want to specify -m N where N is the number of 1 second samples
to collect and analize (it bounds the time the test runs). Finally for
those that have there own ideas on what formulas that you want to run
you can type your own formula in with -E "formula". The formula can
declare directly the PMC's by name or you can use an abbreviation
%NNN. To find out the abbreviations on your system you may run
pmc_counter_study -L and it will tell you each PMC name and the
abbreviation you can use. An example of a formula of your own might
be -E "FP_ASSIST.ANY / INST_RETIRED.ANY_P" <or short hand on Haswell>
-E " %176 / %150". You must have spaces between each entry and
you may use paraenthisis to prioritize the operators. Add (+), Subtract (-1),
Divide (/) and Multiplication (*) is supported. You may also introduce
constant numbers as well. So for example you can do a standard efficency
test like -E "UOPS_RETIRED.RETIRE_SLOTS / (4 * CPU_CLK_UNHALTED.THREAD_P)".