Blame src/libpfm4/docs/man3/libpfm_intel_ivb.3

Packit Service a1973e
.TH LIBPFM 3  "August, 2012" "" "Linux Programmer's Manual"
Packit Service a1973e
.SH NAME
Packit Service a1973e
libpfm_intel_ivb - support for Intel Ivy Bridge core PMU
Packit Service a1973e
.SH SYNOPSIS
Packit Service a1973e
.nf
Packit Service a1973e
.B #include <perfmon/pfmlib.h>
Packit Service a1973e
.sp
Packit Service a1973e
.B PMU name: ivb
Packit Service a1973e
.B PMU desc: Intel Ivy Bridge
Packit Service a1973e
.B PMU name: ivb_ep
Packit Service a1973e
.B PMU desc: Intel Ivy Bridge EP
Packit Service a1973e
.sp
Packit Service a1973e
.SH DESCRIPTION
Packit Service a1973e
The library supports the Intel Ivy Bridge core PMU. It should be noted that
Packit Service a1973e
this PMU model only covers each core's PMU and not the socket level
Packit Service a1973e
PMU.
Packit Service a1973e
Packit Service a1973e
On Ivy Bridge, the number of generic counters depends on the Hyperthreading (HT) mode.
Packit Service a1973e
When HT is on, then only 4 generic counters are available. When HT is off, then 8 generic
Packit Service a1973e
counters are available. The \fBpfm_get_pmu_info()\fR function returns the maximum number
Packit Service a1973e
of generic counters in \fBnum_cntrs\fr.
Packit Service a1973e
Packit Service a1973e
.SH MODIFIERS
Packit Service a1973e
The following modifiers are supported on Intel Ivy Bridge processors:
Packit Service a1973e
.TP
Packit Service a1973e
.B u
Packit Service a1973e
Measure at user level which includes privilege levels 1, 2, 3. This corresponds to \fBPFM_PLM3\fR.
Packit Service a1973e
This is a boolean modifier.
Packit Service a1973e
.TP
Packit Service a1973e
.B k
Packit Service a1973e
Measure at kernel level which includes privilege level 0. This corresponds to \fBPFM_PLM0\fR.
Packit Service a1973e
This is a boolean modifier.
Packit Service a1973e
.TP
Packit Service a1973e
.B i
Packit Service a1973e
Invert the meaning of the event. The counter will now count cycles in which the event is \fBnot\fR
Packit Service a1973e
occurring. This is a boolean modifier
Packit Service a1973e
.TP
Packit Service a1973e
.B e
Packit Service a1973e
Enable edge detection, i.e., count only when there is a state transition from no occurrence of the event
Packit Service a1973e
to at least one occurrence. This modifier must be combined with a counter mask modifier (m) with a value greater or equal to one.
Packit Service a1973e
This is a boolean modifier.
Packit Service a1973e
.TP
Packit Service a1973e
.B c
Packit Service a1973e
Set the counter mask value. The mask acts as a threshold. The counter will count the number of cycles
Packit Service a1973e
in which the number of occurrences of the event is greater or equal to the threshold. This is an integer
Packit Service a1973e
modifier with values in the range [0:255].
Packit Service a1973e
.TP
Packit Service a1973e
.B t
Packit Service a1973e
Measure on both threads at the same time assuming hyper-threading is enabled. This is a boolean modifier.
Packit Service a1973e
.TP
Packit Service a1973e
.B ldlat
Packit Service a1973e
Pass a latency threshold to the MEM_TRANS_RETIRED:LATENCY_ABOVE_THRESHOLD event.
Packit Service a1973e
This is an integer attribute that must be in the range [3:65535]. It is required
Packit Service a1973e
for this event.  Note that the event must be used with precise sampling (PEBS).
Packit Service a1973e
Packit Service a1973e
.SH OFFCORE_RESPONSE events
Packit Service a1973e
Intel Ivy Bridge provides two offcore_response events. They are called OFFCORE_RESPONSE_0 and OFFCORE_RESPONSE_1.
Packit Service a1973e
Packit Service a1973e
Those events need special treatment in the performance monitoring infrastructure
Packit Service a1973e
because each event uses an extra register to store some settings. Thus, in
Packit Service a1973e
case multiple offcore_response events are monitored simultaneously, the kernel needs
Packit Service a1973e
to manage the sharing of that extra register.
Packit Service a1973e
Packit Service a1973e
The offcore_response events are exposed as a normal events by the library. The extra
Packit Service a1973e
settings are exposed as regular umasks. The library takes care of encoding the
Packit Service a1973e
events according to the underlying kernel interface.
Packit Service a1973e
Packit Service a1973e
On Intel Ivy Bridge, the umasks are divided into three categories: request, supplier
Packit Service a1973e
and snoop. The user must provide at least one umask for each category. The categories
Packit Service a1973e
are shown in the umask descriptions.
Packit Service a1973e
Packit Service a1973e
There is also the special response umask called \fBANY_RESPONSE\fR. When this umask
Packit Service a1973e
is used then it overrides any supplier and snoop umasks. In other words, users can
Packit Service a1973e
specify either \fBANY_RESPONSE\fR \fBOR\fR any combinations of supplier + snoops.
Packit Service a1973e
Packit Service a1973e
In case no supplier or snoop is specified, the library defaults to using
Packit Service a1973e
\fBANY_RESPONSE\fR.
Packit Service a1973e
Packit Service a1973e
For instance, the following are valid event selections:
Packit Service a1973e
.TP
Packit Service a1973e
.B OFFCORE_RESPONSE_0:DMND_DATA_RD:ANY_RESPONSE
Packit Service a1973e
.TP
Packit Service a1973e
.B OFFCORE_RESPONSE_0:ANY_REQUEST
Packit Service a1973e
.TP
Packit Service a1973e
.B OFFCORE_RESPONSE_0:ANY_RFO:LLC_HITM:SNOOP_ANY
Packit Service a1973e
Packit Service a1973e
.P
Packit Service a1973e
But the following are illegal:
Packit Service a1973e
Packit Service a1973e
.TP
Packit Service a1973e
.B OFFCORE_RESPONSE_0:ANY_RFO:LLC_HITM:ANY_RESPONSE
Packit Service a1973e
.TP
Packit Service a1973e
.B OFFCORE_RESPONSE_0:ANY_RFO:LLC_HITM:SNOOP_ANY:ANY_RESPONSE
Packit Service a1973e
Packit Service a1973e
.SH AUTHORS
Packit Service a1973e
.nf
Packit Service a1973e
Stephane Eranian <eranian@gmail.com>
Packit Service a1973e
.if
Packit Service a1973e
.PP