LIBPFM(3) Linux Programmer's Manual LIBPFM(3)NAMElibpfm_intel_snbep_unc_cbo - support for Intel Sandy Bridge-EP C-Box
uncore PMU
SYNOPSIS
#include <perfmon/pfmlib.h>
PMU name: snbep_unc_cbo[0-7]
PMU desc: Intel Sandy Bridge-EP C-Box uncore PMU
DESCRIPTION
The library supports the Intel Sandy Bridge C-Box (coherency engine)
uncore PMU. This PMU model only exists on Sandy Bridge model 45. There
is one C-box PMU per physical core. Therefore there are eight identical
C-Box PMU instances numbered frmo 0 to 7. On dual-socket systems, the
number refers to the C-Box PMU on the socket where the program runs.
For instance, if running on CPU8, then snbep_unc_cbo0 refers to the C-
Box for physical core 0 on socket 1. Conversely, if running on CPU0,
then the same snbep_unc_cbo0 refers to the C-Box for physical core 0
but on socket 0.
Each C-Box PMU implements 4 generic counters and a filter register used
only with certain events and umasks.
MODIFIERS
The following modifiers are supported on Intel Sandy Bridge C-Box
uncore PMU:
i Invert the meaning of the event. The counter will now count C-
Box cycles in which the event is not occurring. This is a bool‐
ean modifier
e 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 mod‐
ifier (t) with a value greater or equal to one. This is a bool‐
ean modifier.
t Set the threshold value. When set to a non-zero value, the
counter counts the number of C-Box cycles in which the number of
occurrences of the event is greater or equal to the threshold.
This is an integer modifier with values in the range [0:255].
nf Node filter. Certain events, such as UNC_C_LLC_LOOKUP,
UNC_C_LLC_VICTIMS, provide a NID umask. Sometimes the NID is
combined with other filtering capabilities, such as opcodes.
The node filter is an 8-bit max bitmask. A node corresponds to a
processor socket. The legal values therefore depdend on the
underlying hardware configuration. For dual-socket systems, the
bitmask has two valid bits [0:1].
cf Core Filter. This is a 3-bit filter which is used to filter
based on phyiscal core origin of the C-Box request. Possible
values are 0-7. If the filter is not specified, then no filter‐
ing takes place.
tf Thread Filter. This is a 1-bit filter which is used to filter C-
Box requests based on logical processor (hyper-thread) identifi‐
cation. Possibles values are 0-1. If the filter is not speci‐
fied, then no filtering takes place.
Opcode filtering
Certain events, such as UNC_C_TOR_INSERTS supports opcode matching on
the C-BOX transaction type. To use this feature, first an opcode match‐
ing umask must be selected, e.g., MISS_OPCODE. Second, the opcode to
match on must be selected via a second umasks amongs the OPC_* umasks.
For instance, UNC_C_TOR_INSERTS:OPCODE:OPC_RFO, counts the number of
TOR insertions for RFO transactions.
Opcode matching may be combined with node filtering with certain
umasks. In general the filtering support is encoded into the umask
name, e.g., NID_OPCODE supports both node and opcode filtering. For
instance, UNC_C_TOR_INSERTS:NID_OPCODE:OPC_RFO:nf=1.
AUTHORS
Stephane Eranian <eranian@gmail.com>
August, 2012 LIBPFM(3)