d95b3509e1
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.
66 lines
3.4 KiB
Groff
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)".
|
|
|