|
Packit |
577717 |
.TH LIBPFM 3 "February, 2014" "" "Linux Programmer's Manual"
|
|
Packit |
577717 |
.SH NAME
|
|
Packit |
577717 |
libpfm_intel_ivbep_unc_cbo - support for Intel Ivy Bridge-EP C-Box uncore PMU
|
|
Packit |
577717 |
.SH SYNOPSIS
|
|
Packit |
577717 |
.nf
|
|
Packit |
577717 |
.B #include <perfmon/pfmlib.h>
|
|
Packit |
577717 |
.sp
|
|
Packit |
577717 |
.B PMU name: ivbep_unc_cbo[0-7]
|
|
Packit |
577717 |
.B PMU desc: Intel Ivy Bridge-EP C-Box uncore PMU
|
|
Packit |
577717 |
.sp
|
|
Packit |
577717 |
.SH DESCRIPTION
|
|
Packit |
577717 |
The library supports the Intel Ivy Bridge C-Box (coherency engine) uncore PMU.
|
|
Packit |
577717 |
This PMU model only exists on Ivy Bridge model 62. There is one C-box
|
|
Packit |
577717 |
PMU per physical core. Therefore there are up to fifteen identical C-Box PMU instances
|
|
Packit |
577717 |
numbered from 0 to 14. On dual-socket systems, the number refers to the C-Box
|
|
Packit |
577717 |
PMU on the socket where the program runs. For instance, if running on CPU15, then
|
|
Packit |
577717 |
ivbep_unc_cbo0 refers to the C-Box for physical core 0 on socket 1. Conversely,
|
|
Packit |
577717 |
if running on CPU0, then the same ivbep_unc_cbo0 refers to the C-Box for physical
|
|
Packit |
577717 |
core 0 but on socket 0.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Each C-Box PMU implements 4 generic counters and two filter registers used only
|
|
Packit |
577717 |
with certain events and umasks.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
.SH MODIFIERS
|
|
Packit |
577717 |
The following modifiers are supported on Intel Ivy Bridge C-Box uncore PMU:
|
|
Packit |
577717 |
.TP
|
|
Packit |
577717 |
.B e
|
|
Packit |
577717 |
Enable edge detection, i.e., count only when there is a state transition from no occurrence of the event to at least one occurrence. This modifier must be combined with a threshold modifier (t) with a value greater or equal to one. This is a boolean modifier.
|
|
Packit |
577717 |
.TP
|
|
Packit |
577717 |
.B t
|
|
Packit |
577717 |
Set the threshold value. When set to a non-zero value, the counter counts the number
|
|
Packit |
577717 |
of C-Box cycles in which the number of occurrences of the event is greater or equal to
|
|
Packit |
577717 |
the threshold. This is an integer modifier with values in the range [0:255].
|
|
Packit |
577717 |
.TP
|
|
Packit |
577717 |
.B nf
|
|
Packit |
577717 |
Node filter. Certain events, such as UNC_C_LLC_LOOKUP, UNC_C_LLC_VICTIMS, provide a \fBNID\fR umask.
|
|
Packit |
577717 |
Sometimes the \fBNID\fR is combined with other filtering capabilities, such as opcodes.
|
|
Packit |
577717 |
The node filter is an 8-bit max bitmask. A node corresponds to a processor
|
|
Packit |
577717 |
socket. The legal values therefore depend on the underlying hardware configuration. For
|
|
Packit |
577717 |
dual-socket systems, the bitmask has two valid bits [0:1].
|
|
Packit |
577717 |
.TP
|
|
Packit |
577717 |
.B cf
|
|
Packit |
577717 |
Core Filter. This is a 3-bit filter which is used to filter based on physical core origin
|
|
Packit |
577717 |
of the C-Box request. Possible values are 0-7. If the filter is not specified, then no
|
|
Packit |
577717 |
filtering takes place.
|
|
Packit |
577717 |
.TP
|
|
Packit |
577717 |
.B tf
|
|
Packit |
577717 |
Thread Filter. This is a 1-bit filter which is used to filter C-Box requests based on logical
|
|
Packit |
577717 |
processor (hyper-thread) identification. Possibles values are 0-1. If the filter is not
|
|
Packit |
577717 |
specified, then no filtering takes place.
|
|
Packit |
577717 |
.TP
|
|
Packit |
577717 |
.B nc
|
|
Packit |
577717 |
Non-Coherent. This is a 1-bit filter which is used to filter C-Box requests only for the
|
|
Packit |
577717 |
TOR_INSERTS and TOR_OCCUPANCY umasks using the OPCODE matcher. If the filter is not
|
|
Packit |
577717 |
specified, then no filtering takes place.
|
|
Packit |
577717 |
.TP
|
|
Packit |
577717 |
.B isoc
|
|
Packit |
577717 |
Isochronous. This is a 1-bit filter which is used to filter C-Box requests only for the
|
|
Packit |
577717 |
TOR_INSERTS and TOR_OCCUPANCY umasks using the OPCODE matcher. If the filter is not
|
|
Packit |
577717 |
specified, then no filtering takes place.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
.SH Opcode filtering
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Certain events, such as UNC_C_TOR_INSERTS supports opcode matching on the C-BOX transaction
|
|
Packit |
577717 |
type. To use this feature, first an opcode matching umask must be selected, e.g., MISS_OPCODE.
|
|
Packit |
577717 |
Second, the opcode to match on must be selected via a second umask among the OPC_* umasks.
|
|
Packit |
577717 |
For instance, UNC_C_TOR_INSERTS:OPCODE:OPC_RFO, counts the number of TOR insertions for RFO
|
|
Packit |
577717 |
transactions.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Opcode matching may be combined with node filtering with certain umasks. In general, the
|
|
Packit |
577717 |
filtering support is encoded into the umask name, e.g., NID_OPCODE supports both
|
|
Packit |
577717 |
node and opcode filtering. For instance, UNC_C_TOR_INSERTS:NID_OPCODE:OPC_RFO:nf=1.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
.SH AUTHORS
|
|
Packit |
577717 |
.nf
|
|
Packit |
577717 |
Stephane Eranian <eranian@gmail.com>
|
|
Packit |
577717 |
.if
|
|
Packit |
577717 |
.PP
|