|
Packit |
577717 |
.TH LIBPFM 3 "November, 2013" "" "Linux Programmer's Manual"
|
|
Packit |
577717 |
.SH NAME
|
|
Packit |
577717 |
libpfm_intel_slm - support for Intel Silvermont core PMU
|
|
Packit |
577717 |
.SH SYNOPSIS
|
|
Packit |
577717 |
.nf
|
|
Packit |
577717 |
.B #include <perfmon/pfmlib.h>
|
|
Packit |
577717 |
.sp
|
|
Packit |
577717 |
.B PMU name: slm
|
|
Packit |
577717 |
.B PMU desc: Intel Silvermont
|
|
Packit |
577717 |
.sp
|
|
Packit |
577717 |
.SH DESCRIPTION
|
|
Packit |
577717 |
The library supports the Intel Silvermont core PMU.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
.SH MODIFIERS
|
|
Packit |
577717 |
The following modifiers are supported on Intel Silvermont processors:
|
|
Packit |
577717 |
.TP
|
|
Packit |
577717 |
.B u
|
|
Packit |
577717 |
Measure at user level which includes privilege levels 1, 2, 3. This corresponds to \fBPFM_PLM3\fR.
|
|
Packit |
577717 |
This is a boolean modifier.
|
|
Packit |
577717 |
.TP
|
|
Packit |
577717 |
.B k
|
|
Packit |
577717 |
Measure at kernel level which includes privilege level 0. This corresponds to \fBPFM_PLM0\fR.
|
|
Packit |
577717 |
This is a boolean modifier.
|
|
Packit |
577717 |
.TP
|
|
Packit |
577717 |
.B i
|
|
Packit |
577717 |
Invert the meaning of the event. The counter will now count cycles in which the event is \fBnot\fR
|
|
Packit |
577717 |
occurring. This is a boolean modifier
|
|
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
|
|
Packit |
577717 |
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 |
577717 |
This is a boolean modifier.
|
|
Packit |
577717 |
.TP
|
|
Packit |
577717 |
.B c
|
|
Packit |
577717 |
Set the counter mask value. The mask acts as a threshold. The counter will count the number of cycles
|
|
Packit |
577717 |
in which the number of occurrences of the event is greater or equal to the threshold. This is an integer
|
|
Packit |
577717 |
modifier with values in the range [0:255].
|
|
Packit |
577717 |
|
|
Packit |
577717 |
.SH OFFCORE_RESPONSE events
|
|
Packit |
577717 |
Intel Silvermont provides two offcore_response events:
|
|
Packit |
577717 |
\fBOFFCORE_RESPONSE_0\fR and \fBOFFCORE_RESPONSE_1\fR.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Those events need special treatment in the performance monitoring infrastructure
|
|
Packit |
577717 |
because each event uses an extra register to store some settings. Thus, in
|
|
Packit |
577717 |
case multiple offcore_response events are monitored simultaneously, the kernel needs
|
|
Packit |
577717 |
to manage the sharing of that extra register.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
The offcore_response events are exposed as a normal event by the library. The extra
|
|
Packit |
577717 |
settings are exposed as regular umasks. The library takes care of encoding the
|
|
Packit |
577717 |
events according to the underlying kernel interface.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
On Intel Silvermont, the umasks are divided into three categories: request, supplier
|
|
Packit |
577717 |
and snoop. The user must provide at least one umask for each category. The categories
|
|
Packit |
577717 |
are shown in the umask descriptions. The library provides a default umask per category
|
|
Packit |
577717 |
if not provided by the user.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
There is also the special response umask called \fBANY_RESPONSE\fR. When this umask
|
|
Packit |
577717 |
is used then it overrides any supplier and snoop umasks. In other words, users can
|
|
Packit |
577717 |
specify either \fBANY_RESPONSE\fR \fBOR\fR any combinations of supplier + snoops.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
In case no supplier or snoop is specified, the library defaults to using
|
|
Packit |
577717 |
\fBANY_RESPONSE\fR.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
For instance, the following are valid event selections:
|
|
Packit |
577717 |
.TP
|
|
Packit |
577717 |
.B OFFCORE_RESPONSE_0:DMND_DATA_RD:ANY_RESPONSE
|
|
Packit |
577717 |
.TP
|
|
Packit |
577717 |
.B OFFCORE_RESPONSE_0:ANY_REQUEST
|
|
Packit |
577717 |
.TP
|
|
Packit |
577717 |
.B OFFCORE_RESPONSE_0:ANY_RFO:LLC_HITM:SNOOP_ANY
|
|
Packit |
577717 |
|
|
Packit |
577717 |
.P
|
|
Packit |
577717 |
But the following are illegal:
|
|
Packit |
577717 |
|
|
Packit |
577717 |
.TP
|
|
Packit |
577717 |
.B OFFCORE_RESPONSE_0:ANY_RFO:NON_DRAM:ANY_RESPONSE
|
|
Packit |
577717 |
.TP
|
|
Packit |
577717 |
.B OFFCORE_RESPONSE_0:ANY_RFO:L2_HIT:SNOOP_ANY:ANY_RESPONSE
|
|
Packit |
577717 |
|
|
Packit |
577717 |
.SH AUTHORS
|
|
Packit |
577717 |
.nf
|
|
Packit |
577717 |
Stephane Eranian <eranian@gmail.com>
|
|
Packit |
577717 |
.if
|
|
Packit |
577717 |
.PP
|