1LIBPFM(3)                  Linux Programmer's Manual                 LIBPFM(3)
2
3
4

NAME

6       libpfm_intel_skl - support for Intel SkyLake core PMU
7

SYNOPSIS

9       #include <perfmon/pfmlib.h>
10
11       PMU name: skl
12       PMU desc: Intel SkyLake
13
14

DESCRIPTION

16       The  library  supports  the  Intel SkyLake core PMU. It should be noted
17       that this PMU model only covers each core's  PMU  and  not  the  socket
18       level PMU.
19
20       On  SkyLake, the number of generic counters depends on the Hyperthread‐
21       ing (HT) mode.
22
23       counters are available. The  pfm_get_pmu_info()  function  returns  the
24       maximum number of generic counters in num_cntrs.
25
26

MODIFIERS

28       The following modifiers are supported on Intel SkyLake processors:
29
30       u      Measure  at  user level which includes privilege levels 1, 2, 3.
31              This corresponds to PFM_PLM3.  This is a boolean modifier.
32
33       k      Measure at kernel level which includes privilege level  0.  This
34              corresponds to PFM_PLM0.  This is a boolean modifier.
35
36       i      Invert  the  meaning  of  the  event. The counter will now count
37              cycles in which the event is not occurring. This  is  a  boolean
38              modifier
39
40       e      Enable  edge  detection,  i.e., count only when there is a state
41              transition from no occurrence of  the  event  to  at  least  one
42              occurrence.  This  modifier must be combined with a counter mask
43              modifier (m) with a value greater or equal to one.   This  is  a
44              boolean modifier.
45
46       c      Set  the  counter  mask value. The mask acts as a threshold. The
47              counter will count the number of cycles in which the  number  of
48              occurrences  of  the event is greater or equal to the threshold.
49              This is an integer modifier with values in the range [0:255].
50
51       t      Measure on both threads at the same time assuming  hyper-thread‐
52              ing is enabled. This is a boolean modifier.
53
54       ldlat  Pass  a  latency threshold to the MEM_TRANS_RETIRED:LOAD_LATENCY
55              event.  This is an integer attribute that must be in  the  range
56              [3:65535].  It  is required for this event.  Note that the event
57              must be used with precise sampling (PEBS).
58
59       intx   Monitor the event only when  executing  inside  a  transactional
60              memory region (in tx). Event does not count otherwise. This is a
61              boolean modifiers. Default value is 0.
62
63       intxcp Do not count occurrences of the event when they  are  inside  an
64              aborted transactional memory region. This is a boolean modifier.
65              Default value is 0.
66
67       fe_thres
68              This modifier is for the FRONTEND_RETIRED event only. It defines
69              the  period  in  core cycles after which the IDQ_*_BUBBLES umask
70              counts. It acts as a threshold, i.e., at least  a  period  of  N
71              core  cycles  where  the frontend did not deliver X uops. It can
72              only be used with the IDQ_*_BUBBLES umasks.  If  not  specified,
73              the  default threshold value is 1 cycle. the valid values are in
74              [1-4095].
75
76

OFFCORE_RESPONSE events

78       Intel SkyLake provides two offcore_response  events.  They  are  called
79       OFFCORE_RESPONSE_0 and OFFCORE_RESPONSE_1.
80
81       Those  events  need special treatment in the performance monitoring in‐
82       frastructure because each event uses an extra register  to  store  some
83       settings.  Thus, in case multiple offcore_response events are monitored
84       simultaneously, the kernel needs to manage the sharing  of  that  extra
85       register.
86
87       The  offcore_response  events  are  exposed  as  a normal events by the
88       library. The extra settings are exposed as regular umasks. The  library
89       takes  care  of  encoding the events according to the underlying kernel
90       interface.
91
92       On Intel  SkyLake,  the  umasks  are  divided  into  three  categories:
93       request,  supplier  and snoop. The user must provide at least one umask
94       for each category. The categories are shown in the umask descriptions.
95
96       There is also the special response umask called ANY_RESPONSE. When this
97       umask is used then it overrides any supplier and snoop umasks. In other
98       words, users can specify either ANY_RESPONSE  OR  any  combinations  of
99       supplier + snoops.
100
101       In  case  no  supplier  or  snoop is specified, the library defaults to
102       using ANY_RESPONSE.
103
104       For instance, the following are valid event selections:
105
106       OFFCORE_RESPONSE_0:DMND_DATA_RD:ANY_RESPONSE
107
108       OFFCORE_RESPONSE_0:ANY_REQUEST
109
110       OFFCORE_RESPONSE_0:ANY_RFO:LLC_HITM:SNOOP_ANY
111
112
113       But the following are illegal:
114
115
116       OFFCORE_RESPONSE_0:ANY_RFO:LLC_HITM:ANY_RESPONSE
117
118       OFFCORE_RESPONSE_0:ANY_RFO:LLC_HITM:SNOOP_ANY:ANY_RESPONSE
119
120

AUTHORS

122       Stephane Eranian <eranian@gmail.com>
123
124
125
126                                 August, 2015                        LIBPFM(3)
Impressum