History

Merge tag 'perf-core-for-mingo-4.12-20170404' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core

Pull perf/core improvements and fixes from Arnaldo Carvalho de Melo: User visible changes: - Add missing number of samples in 'perf annotate --stdio -l --show-total-period' (Taeung Song) Vendor events updates: - Add uncore_arb Intel vendor events in JSON format (Andi Kleen) - Add uncore vendor events for Intel's Sandy Bridge, Ivy Bridge, Haswell, Broadwell and Skylake architectures (Andi Kleen) - Add missing UNC_M_DCLOCKTICKS Intel Broadwell DE uncore vendor event (Andi Kleen) Infrastructure changes: - Remove some more die() calls, avoiding sudden death in library code (Arnaldo Carvalho de Melo) - Add argument support for SDT events in powerpc (Ravi Bangoria)

Ingo Molnar committed 9 years ago

Commit 11e445e2 parents fcc309e 99094a512 files · +1710 −24Browse files

Unified · Split

12 files
  1. tools/perf/arch/powerpc/util/perf_regs.c +111 −0
  2. tools/perf/perf.c +2 −1
  3. tools/perf/pmu-events/arch/x86/broadwell/uncore.json +278 −0
  4. tools/perf/pmu-events/arch/x86/broadwellde/uncore-memory.json +10 −3
  5. tools/perf/pmu-events/arch/x86/haswell/uncore.json +374 −0
  6. tools/perf/pmu-events/arch/x86/ivybridge/uncore.json +314 −0
  7. tools/perf/pmu-events/arch/x86/sandybridge/uncore.json +314 −0
  8. tools/perf/pmu-events/arch/x86/skylake/uncore.json +254 −0
  9. tools/perf/pmu-events/jevents.c +2 −0
  10. tools/perf/util/annotate.c +4 −2
  11. tools/perf/util/annotate.h +1 −1
  12. tools/perf/util/values.c +46 −17
tools/perf/arch/powerpc/util/perf_regs.c+111−0
@@ -1,5 +1,10 @@
1+#include <string.h>
2+#include <regex.h>
3+
14 #include "../../perf.h"
5+#include "../../util/util.h"
26 #include "../../util/perf_regs.h"
7+#include "../../util/debug.h"
38
49 const struct sample_reg sample_reg_masks[] = {
510 SMPL_REG(r0, PERF_REG_POWERPC_R0),
@@ -47,3 +52,109 @@ const struct sample_reg sample_reg_masks[] = { · 41 unmodified lines
4752 SMPL_REG(dsisr, PERF_REG_POWERPC_DSISR),
4853 SMPL_REG_END
4954 };
55+
56+/* REG or %rREG */
57+#define SDT_OP_REGEX1 "^(%r)?([1-2]?[0-9]|3[0-1])$"
58+
59+/* -NUM(REG) or NUM(REG) or -NUM(%rREG) or NUM(%rREG) */
60+#define SDT_OP_REGEX2 "^(\\-)?([0-9]+)\\((%r)?([1-2]?[0-9]|3[0-1])\\)$"
61+
62+static regex_t sdt_op_regex1, sdt_op_regex2;
63+
64+static int sdt_init_op_regex(void)
65+{
66+ static int initialized;
67+ int ret = 0;
68+
69+ if (initialized)
70+ return 0;
71+
72+ ret = regcomp(&sdt_op_regex1, SDT_OP_REGEX1, REG_EXTENDED);
73+ if (ret)
74+ goto error;
75+
76+ ret = regcomp(&sdt_op_regex2, SDT_OP_REGEX2, REG_EXTENDED);
77+ if (ret)
78+ goto free_regex1;
79+
80+ initialized = 1;
81+ return 0;
82+
83+free_regex1:
84+ regfree(&sdt_op_regex1);
85+error:
86+ pr_debug4("Regex compilation error.\n");
87+ return ret;
88+}
89+
90+/*
91+ * Parse OP and convert it into uprobe format, which is, +/-NUM(%gprREG).
92+ * Possible variants of OP are:
93+ * Format Example
94+ * -------------------------
95+ * NUM(REG) 48(18)
96+ * -NUM(REG) -48(18)
97+ * NUM(%rREG) 48(%r18)
98+ * -NUM(%rREG) -48(%r18)
99+ * REG 18
100+ * %rREG %r18
101+ * iNUM i0
102+ * i-NUM i-1
103+ *
104+ * SDT marker arguments on Powerpc uses %rREG form with -mregnames flag
105+ * and REG form with -mno-regnames. Here REG is general purpose register,
106+ * which is in 0 to 31 range.
107+ */
108+int arch_sdt_arg_parse_op(char *old_op, char **new_op)
109+{
110+ int ret, new_len;
111+ regmatch_t rm[5];
112+ char prefix;
113+
114+ /* Constant argument. Uprobe does not support it */
115+ if (old_op[0] == 'i') {
116+ pr_debug4("Skipping unsupported SDT argument: %s\n", old_op);
117+ return SDT_ARG_SKIP;
118+ }
119+
120+ ret = sdt_init_op_regex();
121+ if (ret < 0)
122+ return ret;
123+
124+ if (!regexec(&sdt_op_regex1, old_op, 3, rm, 0)) {
125+ /* REG or %rREG --> %gprREG */
126+
127+ new_len = 5; /* % g p r NULL */
128+ new_len += (int)(rm[2].rm_eo - rm[2].rm_so);
129+
130+ *new_op = zalloc(new_len);
131+ if (!*new_op)
132+ return -ENOMEM;
133+
134+ scnprintf(*new_op, new_len, "%%gpr%.*s",
135+ (int)(rm[2].rm_eo - rm[2].rm_so), old_op + rm[2].rm_so);
136+ } else if (!regexec(&sdt_op_regex2, old_op, 5, rm, 0)) {
137+ /*
138+ * -NUM(REG) or NUM(REG) or -NUM(%rREG) or NUM(%rREG) -->
139+ * +/-NUM(%gprREG)
140+ */
141+ prefix = (rm[1].rm_so == -1) ? '+' : '-';
142+
143+ new_len = 8; /* +/- ( % g p r ) NULL */
144+ new_len += (int)(rm[2].rm_eo - rm[2].rm_so);
145+ new_len += (int)(rm[4].rm_eo - rm[4].rm_so);
146+
147+ *new_op = zalloc(new_len);
148+ if (!*new_op)
149+ return -ENOMEM;
150+
151+ scnprintf(*new_op, new_len, "%c%.*s(%%gpr%.*s)", prefix,
152+ (int)(rm[2].rm_eo - rm[2].rm_so), old_op + rm[2].rm_so,
153+ (int)(rm[4].rm_eo - rm[4].rm_so), old_op + rm[4].rm_so);
154+ } else {
155+ pr_debug4("Skipping unsupported SDT argument: %s\n", old_op);
156+ return SDT_ARG_SKIP;
157+ }
158+
159+ return SDT_ARG_VALID;
160+}
tools/perf/perf.c+2−1
@@ -378,7 +378,8 @@ static void execv_dashed_external(const char **argv) · 377 unmodified lines
378378 if (status != -ERR_RUN_COMMAND_EXEC) {
379379 if (IS_RUN_COMMAND_ERR(status)) {
380380 do_die:
381− die("unable to run '%s'", argv[0]);
381+ pr_err("FATAL: unable to run '%s'", argv[0]);
382+ status = -128;
382383 }
383384 exit(-status);
384385 }
tools/perf/pmu-events/arch/x86/broadwell/uncore.json+278−0
@@ -0,0 +1,278 @@
1+[
2+ {
3+ "Unit": "CBO",
4+ "EventCode": "0x22",
5+ "UMask": "0x41",
6+ "EventName": "UNC_CBO_XSNP_RESPONSE.MISS_XCORE",
7+ "BriefDescription": "A cross-core snoop initiated by this Cbox due to processor core memory request which misses in some processor core.",
8+ "PublicDescription": "A cross-core snoop initiated by this Cbox due to processor core memory request which misses in some processor core.",
9+ "Counter": "0,1",
10+ "CounterMask": "0",
11+ "Invert": "0",
12+ "EdgeDetect": "0"
13+ },
14+ {
15+ "Unit": "CBO",
16+ "EventCode": "0x22",
17+ "UMask": "0x81",
18+ "EventName": "UNC_CBO_XSNP_RESPONSE.MISS_EVICTION",
19+ "BriefDescription": "A cross-core snoop resulted from L3 Eviction which misses in some processor core.",
20+ "PublicDescription": "A cross-core snoop resulted from L3 Eviction which misses in some processor core.",
21+ "Counter": "0,1",
22+ "CounterMask": "0",
23+ "Invert": "0",
24+ "EdgeDetect": "0"
25+ },
26+ {
27+ "Unit": "CBO",
28+ "EventCode": "0x22",
29+ "UMask": "0x44",
30+ "EventName": "UNC_CBO_XSNP_RESPONSE.HIT_XCORE",
31+ "BriefDescription": "A cross-core snoop initiated by this Cbox due to processor core memory request which hits a non-modified line in some processor core.",
32+ "PublicDescription": "A cross-core snoop initiated by this Cbox due to processor core memory request which hits a non-modified line in some processor core.",
33+ "Counter": "0,1",
34+ "CounterMask": "0",
35+ "Invert": "0",
36+ "EdgeDetect": "0"
37+ },
38+ {
39+ "Unit": "CBO",
40+ "EventCode": "0x22",
41+ "UMask": "0x48",
42+ "EventName": "UNC_CBO_XSNP_RESPONSE.HITM_XCORE",
43+ "BriefDescription": "A cross-core snoop initiated by this Cbox due to processor core memory request which hits a modified line in some processor core.",
44+ "PublicDescription": "A cross-core snoop initiated by this Cbox due to processor core memory request which hits a modified line in some processor core.",
45+ "Counter": "0,1",
46+ "CounterMask": "0",
47+ "Invert": "0",
48+ "EdgeDetect": "0"
49+ },
50+ {
51+ "Unit": "CBO",
52+ "EventCode": "0x34",
53+ "UMask": "0x11",
54+ "EventName": "UNC_CBO_CACHE_LOOKUP.READ_M",
55+ "BriefDescription": "L3 Lookup read request that access cache and found line in M-state",
56+ "PublicDescription": "L3 Lookup read request that access cache and found line in M-state.",
57+ "Counter": "0,1",
58+ "CounterMask": "0",
59+ "Invert": "0",
60+ "EdgeDetect": "0"
61+ },
62+ {
63+ "Unit": "CBO",
64+ "EventCode": "0x34",
65+ "UMask": "0x21",
66+ "EventName": "UNC_CBO_CACHE_LOOKUP.WRITE_M",
67+ "BriefDescription": "L3 Lookup write request that access cache and found line in M-state",
68+ "PublicDescription": "L3 Lookup write request that access cache and found line in M-state.",
69+ "Counter": "0,1",
70+ "CounterMask": "0",
71+ "Invert": "0",
72+ "EdgeDetect": "0"
73+ },
74+ {
75+ "Unit": "CBO",
76+ "EventCode": "0x34",
77+ "UMask": "0x81",
78+ "EventName": "UNC_CBO_CACHE_LOOKUP.ANY_M",
79+ "BriefDescription": "L3 Lookup any request that access cache and found line in M-state",
80+ "PublicDescription": "L3 Lookup any request that access cache and found line in M-state.",
81+ "Counter": "0,1",
82+ "CounterMask": "0",
83+ "Invert": "0",
84+ "EdgeDetect": "0"
85+ },
86+ {
87+ "Unit": "CBO",
88+ "EventCode": "0x34",
89+ "UMask": "0x18",
90+ "EventName": "UNC_CBO_CACHE_LOOKUP.READ_I",
91+ "BriefDescription": "L3 Lookup read request that access cache and found line in I-state",
92+ "PublicDescription": "L3 Lookup read request that access cache and found line in I-state.",
93+ "Counter": "0,1",
94+ "CounterMask": "0",
95+ "Invert": "0",
96+ "EdgeDetect": "0"
97+ },
98+ {
99+ "Unit": "CBO",
100+ "EventCode": "0x34",
101+ "UMask": "0x88",
102+ "EventName": "UNC_CBO_CACHE_LOOKUP.ANY_I",
103+ "BriefDescription": "L3 Lookup any request that access cache and found line in I-state",
104+ "PublicDescription": "L3 Lookup any request that access cache and found line in I-state.",
105+ "Counter": "0,1",
106+ "CounterMask": "0",
107+ "Invert": "0",
108+ "EdgeDetect": "0"
109+ },
110+ {
111+ "Unit": "CBO",
112+ "EventCode": "0x34",
113+ "UMask": "0x1f",
114+ "EventName": "UNC_CBO_CACHE_LOOKUP.READ_MESI",
115+ "BriefDescription": "L3 Lookup read request that access cache and found line in any MESI-state",
116+ "PublicDescription": "L3 Lookup read request that access cache and found line in any MESI-state.",
117+ "Counter": "0,1",
118+ "CounterMask": "0",
119+ "Invert": "0",
120+ "EdgeDetect": "0"
121+ },
122+ {
123+ "Unit": "CBO",
124+ "EventCode": "0x34",
125+ "UMask": "0x2f",
126+ "EventName": "UNC_CBO_CACHE_LOOKUP.WRITE_MESI",
127+ "BriefDescription": "L3 Lookup write request that access cache and found line in MESI-state",
128+ "PublicDescription": "L3 Lookup write request that access cache and found line in MESI-state.",
129+ "Counter": "0,1",
130+ "CounterMask": "0",
131+ "Invert": "0",
132+ "EdgeDetect": "0"
133+ },
134+ {
135+ "Unit": "CBO",
136+ "EventCode": "0x34",
137+ "UMask": "0x8f",
138+ "EventName": "UNC_CBO_CACHE_LOOKUP.ANY_MESI",
139+ "BriefDescription": "L3 Lookup any request that access cache and found line in MESI-state",
140+ "PublicDescription": "L3 Lookup any request that access cache and found line in MESI-state.",
141+ "Counter": "0,1",
142+ "CounterMask": "0",
143+ "Invert": "0",
144+ "EdgeDetect": "0"
145+ },
146+ {
147+ "Unit": "CBO",
148+ "EventCode": "0x34",
149+ "UMask": "0x86",
150+ "EventName": "UNC_CBO_CACHE_LOOKUP.ANY_ES",
151+ "BriefDescription": "L3 Lookup any request that access cache and found line in E or S-state",
152+ "PublicDescription": "L3 Lookup any request that access cache and found line in E or S-state.",
153+ "Counter": "0,1",
154+ "CounterMask": "0",
155+ "Invert": "0",
156+ "EdgeDetect": "0"
157+ },
158+ {
159+ "Unit": "CBO",
160+ "EventCode": "0x34",
161+ "UMask": "0x16",
162+ "EventName": "UNC_CBO_CACHE_LOOKUP.READ_ES",
163+ "BriefDescription": "L3 Lookup read request that access cache and found line in E or S-state",
164+ "PublicDescription": "L3 Lookup read request that access cache and found line in E or S-state.",
165+ "Counter": "0,1",
166+ "CounterMask": "0",
167+ "Invert": "0",
168+ "EdgeDetect": "0"
169+ },
170+ {
171+ "Unit": "CBO",
172+ "EventCode": "0x34",
173+ "UMask": "0x26",
174+ "EventName": "UNC_CBO_CACHE_LOOKUP.WRITE_ES",
175+ "BriefDescription": "L3 Lookup write request that access cache and found line in E or S-state",
176+ "PublicDescription": "L3 Lookup write request that access cache and found line in E or S-state.",
177+ "Counter": "0,1",
178+ "CounterMask": "0",
179+ "Invert": "0",
180+ "EdgeDetect": "0"
181+ },
182+ {
183+ "Unit": "iMPH-U",
184+ "EventCode": "0x80",
185+ "UMask": "0x01",
186+ "EventName": "UNC_ARB_TRK_OCCUPANCY.ALL",
187+ "BriefDescription": "Each cycle count number of all Core outgoing valid entries. Such entry is defined as valid from it's allocation till first of IDI0 or DRS0 messages is sent out. Accounts for Coherent and non-coherent traffic.",
188+ "PublicDescription": "Each cycle count number of all Core outgoing valid entries. Such entry is defined as valid from it's allocation till first of IDI0 or DRS0 messages is sent out. Accounts for Coherent and non-coherent traffic.",
189+ "Counter": "0,",
190+ "CounterMask": "0",
191+ "Invert": "0",
192+ "EdgeDetect": "0"
193+ },
194+ {
195+ "Unit": "iMPH-U",
196+ "EventCode": "0x80",
197+ "UMask": "0x02",
198+ "EventName": "UNC_ARB_TRK_OCCUPANCY.DRD_DIRECT",
199+ "BriefDescription": "Each cycle count number of 'valid' coherent Data Read entries that are in DirectData mode. Such entry is defined as valid when it is allocated till data sent to Core (first chunk, IDI0). Applicable for IA Cores' requests in normal case.",
200+ "PublicDescription": "Each cycle count number of 'valid' coherent Data Read entries that are in DirectData mode. Such entry is defined as valid when it is allocated till data sent to Core (first chunk, IDI0). Applicable for IA Cores' requests in normal case.",
201+ "Counter": "0,",
202+ "CounterMask": "0",
203+ "Invert": "0",
204+ "EdgeDetect": "0"
205+ },
206+ {
207+ "Unit": "iMPH-U",
208+ "EventCode": "0x81",
209+ "UMask": "0x01",
210+ "EventName": "UNC_ARB_TRK_REQUESTS.ALL",
211+ "BriefDescription": "Total number of Core outgoing entries allocated. Accounts for Coherent and non-coherent traffic.",
212+ "PublicDescription": "Total number of Core outgoing entries allocated. Accounts for Coherent and non-coherent traffic.",
213+ "Counter": "0,1",
214+ "CounterMask": "0",
215+ "Invert": "0",
216+ "EdgeDetect": "0"
217+ },
218+ {
219+ "Unit": "iMPH-U",
220+ "EventCode": "0x81",
221+ "UMask": "0x02",
222+ "EventName": "UNC_ARB_TRK_REQUESTS.DRD_DIRECT",
223+ "BriefDescription": "Number of Core coherent Data Read entries allocated in DirectData mode",
224+ "PublicDescription": "Number of Core coherent Data Read entries allocated in DirectData mode.",
225+ "Counter": "0,1",
226+ "CounterMask": "0",
227+ "Invert": "0",
228+ "EdgeDetect": "0"
229+ },
230+ {
231+ "Unit": "iMPH-U",
232+ "EventCode": "0x81",
233+ "UMask": "0x20",
234+ "EventName": "UNC_ARB_TRK_REQUESTS.WRITES",
235+ "BriefDescription": "Number of Writes allocated - any write transactions: full/partials writes and evictions.",
236+ "PublicDescription": "Number of Writes allocated - any write transactions: full/partials writes and evictions.",
237+ "Counter": "0,1",
238+ "CounterMask": "0",
239+ "Invert": "0",
240+ "EdgeDetect": "0"
241+ },
242+ {
243+ "Unit": "iMPH-U",
244+ "EventCode": "0x84",
245+ "UMask": "0x01",
246+ "EventName": "UNC_ARB_COH_TRK_REQUESTS.ALL",
247+ "BriefDescription": "Number of entries allocated. Account for Any type: e.g. Snoop, Core aperture, etc.",
248+ "PublicDescription": "Number of entries allocated. Account for Any type: e.g. Snoop, Core aperture, etc.",
249+ "Counter": "0,1",
250+ "CounterMask": "0",
251+ "Invert": "0",
252+ "EdgeDetect": "0"
253+ },
254+ {
255+ "Unit": "iMPH-U",
256+ "EventCode": "0x80",
257+ "UMask": "0x01",
258+ "EventName": "UNC_ARB_TRK_OCCUPANCY.CYCLES_WITH_ANY_REQUEST",
259+ "BriefDescription": "Cycles with at least one request outstanding is waiting for data return from memory controller. Account for coherent and non-coherent requests initiated by IA Cores, Processor Graphics Unit, or LLC.;",
260+ "PublicDescription": "Cycles with at least one request outstanding is waiting for data return from memory controller. Account for coherent and non-coherent requests initiated by IA Cores, Processor Graphics Unit, or LLC.",
261+ "Counter": "0,",
262+ "CounterMask": "1",
263+ "Invert": "0",
264+ "EdgeDetect": "0"
265+ },
266+ {
267+ "Unit": "NCU",
268+ "EventCode": "0x0",
269+ "UMask": "0x01",
270+ "EventName": "UNC_CLOCK.SOCKET",
271+ "BriefDescription": "This 48-bit fixed counter counts the UCLK cycles",
272+ "PublicDescription": "This 48-bit fixed counter counts the UCLK cycles.",
273+ "Counter": "FIXED",
274+ "CounterMask": "0",
275+ "Invert": "0",
276+ "EdgeDetect": "0"
277+ }
278+]
tools/perf/pmu-events/arch/x86/broadwellde/uncore-memory.json+10−3
@@ -19,12 +19,19 @@ · 18 unmodified lines
1919 "UMask": "0xC",
2020 "Unit": "iMC"
2121 },
22+ {
23+ "BriefDescription": "Memory controller clock ticks",
24+ "Counter": "0,1,2,3",
25+ "EventName": "UNC_M_DCLOCKTICKS",
26+ "PerPkg": "1",
27+ "Unit": "iMC"
28+ },
2229 {
2330 "BriefDescription": "Cycles where DRAM ranks are in power down (CKE) mode",
2431 "Counter": "0,1,2,3",
2532 "EventCode": "0x85",
2633 "EventName": "UNC_M_POWER_CHANNEL_PPD",
27− "MetricExpr": "(UNC_M_POWER_CHANNEL_PPD / UNC_M_CLOCKTICKS) * 100.",
34+ "MetricExpr": "(UNC_M_POWER_CHANNEL_PPD / UNC_M_DCLOCKTICKS) * 100.",
2835 "MetricName": "power_channel_ppd %",
2936 "PerPkg": "1",
3037 "Unit": "iMC"
@@ -34,7 +41,7 @@ · 3 unmodified lines
3441 "Counter": "0,1,2,3",
3542 "EventCode": "0x86",
3643 "EventName": "UNC_M_POWER_CRITICAL_THROTTLE_CYCLES",
37− "MetricExpr": "(UNC_M_POWER_CRITICAL_THROTTLE_CYCLES / UNC_M_CLOCKTICKS) * 100.",
44+ "MetricExpr": "(UNC_M_POWER_CRITICAL_THROTTLE_CYCLES / UNC_M_DCLOCKTICKS) * 100.",
3845 "MetricName": "power_critical_throttle_cycles %",
3946 "PerPkg": "1",
4047 "Unit": "iMC"
@@ -44,7 +51,7 @@ · 3 unmodified lines
4451 "Counter": "0,1,2,3",
4552 "EventCode": "0x43",
4653 "EventName": "UNC_M_POWER_SELF_REFRESH",
47− "MetricExpr": "(UNC_M_POWER_SELF_REFRESH / UNC_M_CLOCKTICKS) * 100.",
54+ "MetricExpr": "(UNC_M_POWER_SELF_REFRESH / UNC_M_DCLOCKTICKS) * 100.",
4855 "MetricName": "power_self_refresh %",
4956 "PerPkg": "1",
5057 "Unit": "iMC"
tools/perf/pmu-events/arch/x86/haswell/uncore.json+374−0
@@ -0,0 +1,374 @@
1+[
2+ {
3+ "Unit": "CBO",
4+ "EventCode": "0x22",
5+ "UMask": "0x21",
6+ "EventName": "UNC_CBO_XSNP_RESPONSE.MISS_EXTERNAL",
7+ "BriefDescription": "An external snoop misses in some processor core.",
8+ "PublicDescription": "An external snoop misses in some processor core.",
9+ "Counter": "0,1",
10+ "CounterMask": "0",
11+ "Invert": "0",
12+ "EdgeDetect": "0"
13+ },
14+ {
15+ "Unit": "CBO",
16+ "EventCode": "0x22",
17+ "UMask": "0x41",
18+ "EventName": "UNC_CBO_XSNP_RESPONSE.MISS_XCORE",
19+ "BriefDescription": "A cross-core snoop initiated by this Cbox due to processor core memory request which misses in some processor core.",
20+ "PublicDescription": "A cross-core snoop initiated by this Cbox due to processor core memory request which misses in some processor core.",
21+ "Counter": "0,1",
22+ "CounterMask": "0",
23+ "Invert": "0",
24+ "EdgeDetect": "0"
25+ },
26+ {
27+ "Unit": "CBO",
28+ "EventCode": "0x22",
29+ "UMask": "0x81",
30+ "EventName": "UNC_CBO_XSNP_RESPONSE.MISS_EVICTION",
31+ "BriefDescription": "A cross-core snoop resulted from L3 Eviction which misses in some processor core.",
32+ "PublicDescription": "A cross-core snoop resulted from L3 Eviction which misses in some processor core.",
33+ "Counter": "0,1",
34+ "CounterMask": "0",
35+ "Invert": "0",
36+ "EdgeDetect": "0"
37+ },
38+ {
39+ "Unit": "CBO",
40+ "EventCode": "0x22",
41+ "UMask": "0x24",
42+ "EventName": "UNC_CBO_XSNP_RESPONSE.HIT_EXTERNAL",
43+ "BriefDescription": "An external snoop hits a non-modified line in some processor core.",
44+ "PublicDescription": "An external snoop hits a non-modified line in some processor core.",
45+ "Counter": "0,1",
46+ "CounterMask": "0",
47+ "Invert": "0",
48+ "EdgeDetect": "0"
49+ },
50+ {
51+ "Unit": "CBO",
52+ "EventCode": "0x22",
53+ "UMask": "0x44",
54+ "EventName": "UNC_CBO_XSNP_RESPONSE.HIT_XCORE",
55+ "BriefDescription": "A cross-core snoop initiated by this Cbox due to processor core memory request which hits a non-modified line in some processor core.",
56+ "PublicDescription": "A cross-core snoop initiated by this Cbox due to processor core memory request which hits a non-modified line in some processor core.",
57+ "Counter": "0,1",
58+ "CounterMask": "0",
59+ "Invert": "0",
60+ "EdgeDetect": "0"
61+ },
62+ {
63+ "Unit": "CBO",
64+ "EventCode": "0x22",
65+ "UMask": "0x84",
66+ "EventName": "UNC_CBO_XSNP_RESPONSE.HIT_EVICTION",
67+ "BriefDescription": "A cross-core snoop resulted from L3 Eviction which hits a non-modified line in some processor core.",
68+ "PublicDescription": "A cross-core snoop resulted from L3 Eviction which hits a non-modified line in some processor core.",
69+ "Counter": "0,1",
70+ "CounterMask": "0",
71+ "Invert": "0",
72+ "EdgeDetect": "0"
73+ },
74+ {
75+ "Unit": "CBO",
76+ "EventCode": "0x22",
77+ "UMask": "0x28",
78+ "EventName": "UNC_CBO_XSNP_RESPONSE.HITM_EXTERNAL",
79+ "BriefDescription": "An external snoop hits a modified line in some processor core.",
80+ "PublicDescription": "An external snoop hits a modified line in some processor core.",
81+ "Counter": "0,1",
82+ "CounterMask": "0",
83+ "Invert": "0",
84+ "EdgeDetect": "0"
85+ },
86+ {
87+ "Unit": "CBO",
88+ "EventCode": "0x22",
89+ "UMask": "0x48",
90+ "EventName": "UNC_CBO_XSNP_RESPONSE.HITM_XCORE",
91+ "BriefDescription": "A cross-core snoop initiated by this Cbox due to processor core memory request which hits a modified line in some processor core.",
92+ "PublicDescription": "A cross-core snoop initiated by this Cbox due to processor core memory request which hits a modified line in some processor core.",
93+ "Counter": "0,1",
94+ "CounterMask": "0",
95+ "Invert": "0",
96+ "EdgeDetect": "0"
97+ },
98+ {
99+ "Unit": "CBO",
100+ "EventCode": "0x22",
101+ "UMask": "0x88",
102+ "EventName": "UNC_CBO_XSNP_RESPONSE.HITM_EVICTION",
103+ "BriefDescription": "A cross-core snoop resulted from L3 Eviction which hits a modified line in some processor core.",
104+ "PublicDescription": "A cross-core snoop resulted from L3 Eviction which hits a modified line in some processor core.",
105+ "Counter": "0,1",
106+ "CounterMask": "0",
107+ "Invert": "0",
108+ "EdgeDetect": "0"
109+ },
110+ {
111+ "Unit": "CBO",
112+ "EventCode": "0x34",
113+ "UMask": "0x11",
114+ "EventName": "UNC_CBO_CACHE_LOOKUP.READ_M",
115+ "BriefDescription": "L3 Lookup read request that access cache and found line in M-state.",
116+ "PublicDescription": "L3 Lookup read request that access cache and found line in M-state.",
117+ "Counter": "0,1",
118+ "CounterMask": "0",
119+ "Invert": "0",
120+ "EdgeDetect": "0"
121+ },
122+ {
123+ "Unit": "CBO",
124+ "EventCode": "0x34",
125+ "UMask": "0x21",
126+ "EventName": "UNC_CBO_CACHE_LOOKUP.WRITE_M",
127+ "BriefDescription": "L3 Lookup write request that access cache and found line in M-state.",
128+ "PublicDescription": "L3 Lookup write request that access cache and found line in M-state.",
129+ "Counter": "0,1",
130+ "CounterMask": "0",
131+ "Invert": "0",
132+ "EdgeDetect": "0"
133+ },
134+ {
135+ "Unit": "CBO",
136+ "EventCode": "0x34",
137+ "UMask": "0x41",
138+ "EventName": "UNC_CBO_CACHE_LOOKUP.EXTSNP_M",
139+ "BriefDescription": "L3 Lookup external snoop request that access cache and found line in M-state.",
140+ "PublicDescription": "L3 Lookup external snoop request that access cache and found line in M-state.",
141+ "Counter": "0,1",
142+ "CounterMask": "0",
143+ "Invert": "0",
144+ "EdgeDetect": "0"
145+ },
146+ {
147+ "Unit": "CBO",
148+ "EventCode": "0x34",
149+ "UMask": "0x81",
150+ "EventName": "UNC_CBO_CACHE_LOOKUP.ANY_M",
151+ "BriefDescription": "L3 Lookup any request that access cache and found line in M-state.",
152+ "PublicDescription": "L3 Lookup any request that access cache and found line in M-state.",
153+ "Counter": "0,1",
154+ "CounterMask": "0",
155+ "Invert": "0",
156+ "EdgeDetect": "0"
157+ },
158+ {
159+ "Unit": "CBO",
160+ "EventCode": "0x34",
161+ "UMask": "0x18",
162+ "EventName": "UNC_CBO_CACHE_LOOKUP.READ_I",
163+ "BriefDescription": "L3 Lookup read request that access cache and found line in I-state.",
164+ "PublicDescription": "L3 Lookup read request that access cache and found line in I-state.",
165+ "Counter": "0,1",
166+ "CounterMask": "0",
167+ "Invert": "0",
168+ "EdgeDetect": "0"
169+ },
170+ {
171+ "Unit": "CBO",
172+ "EventCode": "0x34",
173+ "UMask": "0x28",
174+ "EventName": "UNC_CBO_CACHE_LOOKUP.WRITE_I",
175+ "BriefDescription": "L3 Lookup write request that access cache and found line in I-state.",
176+ "PublicDescription": "L3 Lookup write request that access cache and found line in I-state.",
177+ "Counter": "0,1",
178+ "CounterMask": "0",
179+ "Invert": "0",
180+ "EdgeDetect": "0"
181+ },
182+ {
183+ "Unit": "CBO",
184+ "EventCode": "0x34",
185+ "UMask": "0x48",
186+ "EventName": "UNC_CBO_CACHE_LOOKUP.EXTSNP_I",
187+ "BriefDescription": "L3 Lookup external snoop request that access cache and found line in I-state.",
188+ "PublicDescription": "L3 Lookup external snoop request that access cache and found line in I-state.",
189+ "Counter": "0,1",
190+ "CounterMask": "0",
191+ "Invert": "0",
192+ "EdgeDetect": "0"
193+ },
194+ {
195+ "Unit": "CBO",
196+ "EventCode": "0x34",
197+ "UMask": "0x88",
198+ "EventName": "UNC_CBO_CACHE_LOOKUP.ANY_I",
199+ "BriefDescription": "L3 Lookup any request that access cache and found line in I-state.",
200+ "PublicDescription": "L3 Lookup any request that access cache and found line in I-state.",
201+ "Counter": "0,1",
202+ "CounterMask": "0",
203+ "Invert": "0",
204+ "EdgeDetect": "0"
205+ },
206+ {
207+ "Unit": "CBO",
208+ "EventCode": "0x34",
209+ "UMask": "0x1f",
210+ "EventName": "UNC_CBO_CACHE_LOOKUP.READ_MESI",
211+ "BriefDescription": "L3 Lookup read request that access cache and found line in any MESI-state.",
212+ "PublicDescription": "L3 Lookup read request that access cache and found line in any MESI-state.",
213+ "Counter": "0,1",
214+ "CounterMask": "0",
215+ "Invert": "0",
216+ "EdgeDetect": "0"
217+ },
218+ {
219+ "Unit": "CBO",
220+ "EventCode": "0x34",
221+ "UMask": "0x2f",
222+ "EventName": "UNC_CBO_CACHE_LOOKUP.WRITE_MESI",
223+ "BriefDescription": "L3 Lookup write request that access cache and found line in MESI-state.",
224+ "PublicDescription": "L3 Lookup write request that access cache and found line in MESI-state.",
225+ "Counter": "0,1",
226+ "CounterMask": "0",
227+ "Invert": "0",
228+ "EdgeDetect": "0"
229+ },
230+ {
231+ "Unit": "CBO",
232+ "EventCode": "0x34",
233+ "UMask": "0x4f",
234+ "EventName": "UNC_CBO_CACHE_LOOKUP.EXTSNP_MESI",
235+ "BriefDescription": "L3 Lookup external snoop request that access cache and found line in MESI-state.",
236+ "PublicDescription": "L3 Lookup external snoop request that access cache and found line in MESI-state.",
237+ "Counter": "0,1",
238+ "CounterMask": "0",
239+ "Invert": "0",
240+ "EdgeDetect": "0"
241+ },
242+ {
243+ "Unit": "CBO",
244+ "EventCode": "0x34",
245+ "UMask": "0x8f",
246+ "EventName": "UNC_CBO_CACHE_LOOKUP.ANY_MESI",
247+ "BriefDescription": "L3 Lookup any request that access cache and found line in MESI-state.",
248+ "PublicDescription": "L3 Lookup any request that access cache and found line in MESI-state.",
249+ "Counter": "0,1",
250+ "CounterMask": "0",
251+ "Invert": "0",
252+ "EdgeDetect": "0"
253+ },
254+ {
255+ "Unit": "CBO",
256+ "EventCode": "0x34",
257+ "UMask": "0x86",
258+ "EventName": "UNC_CBO_CACHE_LOOKUP.ANY_ES",
259+ "BriefDescription": "L3 Lookup any request that access cache and found line in E or S-state.",
260+ "PublicDescription": "L3 Lookup any request that access cache and found line in E or S-state.",
261+ "Counter": "0,1",
262+ "CounterMask": "0",
263+ "Invert": "0",
264+ "EdgeDetect": "0"
265+ },
266+ {
267+ "Unit": "CBO",
268+ "EventCode": "0x34",
269+ "UMask": "0x46",
270+ "EventName": "UNC_CBO_CACHE_LOOKUP.EXTSNP_ES",
271+ "BriefDescription": "L3 Lookup external snoop request that access cache and found line in E or S-state.",
272+ "PublicDescription": "L3 Lookup external snoop request that access cache and found line in E or S-state.",
273+ "Counter": "0,1",
274+ "CounterMask": "0",
275+ "Invert": "0",
276+ "EdgeDetect": "0"
277+ },
278+ {
279+ "Unit": "CBO",
280+ "EventCode": "0x34",
281+ "UMask": "0x16",
282+ "EventName": "UNC_CBO_CACHE_LOOKUP.READ_ES",
283+ "BriefDescription": "L3 Lookup read request that access cache and found line in E or S-state.",
284+ "PublicDescription": "L3 Lookup read request that access cache and found line in E or S-state.",
285+ "Counter": "0,1",
286+ "CounterMask": "0",
287+ "Invert": "0",
288+ "EdgeDetect": "0"
289+ },
290+ {
291+ "Unit": "CBO",
292+ "EventCode": "0x34",
293+ "UMask": "0x26",
294+ "EventName": "UNC_CBO_CACHE_LOOKUP.WRITE_ES",
295+ "BriefDescription": "L3 Lookup write request that access cache and found line in E or S-state.",
296+ "PublicDescription": "L3 Lookup write request that access cache and found line in E or S-state.",
297+ "Counter": "0,1",
298+ "CounterMask": "0",
299+ "Invert": "0",
300+ "EdgeDetect": "0"
301+ },
302+ {
303+ "Unit": "iMPH-U",
304+ "EventCode": "0x80",
305+ "UMask": "0x01",
306+ "EventName": "UNC_ARB_TRK_OCCUPANCY.ALL",
307+ "BriefDescription": "Each cycle count number of all Core outgoing valid entries. Such entry is defined as valid from it's allocation till first of IDI0 or DRS0 messages is sent out. Accounts for Coherent and non-coherent traffic.",
308+ "PublicDescription": "Each cycle count number of all Core outgoing valid entries. Such entry is defined as valid from it's allocation till first of IDI0 or DRS0 messages is sent out. Accounts for Coherent and non-coherent traffic.",
309+ "Counter": "0",
310+ "CounterMask": "0",
311+ "Invert": "0",
312+ "EdgeDetect": "0"
313+ },
314+ {
315+ "Unit": "iMPH-U",
316+ "EventCode": "0x81",
317+ "UMask": "0x01",
318+ "EventName": "UNC_ARB_TRK_REQUESTS.ALL",
319+ "BriefDescription": "Total number of Core outgoing entries allocated. Accounts for Coherent and non-coherent traffic.",
320+ "PublicDescription": "Total number of Core outgoing entries allocated. Accounts for Coherent and non-coherent traffic.",
321+ "Counter": "0,1",
322+ "CounterMask": "0",
323+ "Invert": "0",
324+ "EdgeDetect": "0"
325+ },
326+ {
327+ "Unit": "iMPH-U",
328+ "EventCode": "0x81",
329+ "UMask": "0x20",
330+ "EventName": "UNC_ARB_TRK_REQUESTS.WRITES",
331+ "BriefDescription": "Number of Writes allocated - any write transactions: full/partials writes and evictions.",
332+ "PublicDescription": "Number of Writes allocated - any write transactions: full/partials writes and evictions.",
333+ "Counter": "0,1",
334+ "CounterMask": "0",
335+ "Invert": "0",
336+ "EdgeDetect": "0"
337+ },
338+ {
339+ "Unit": "iMPH-U",
340+ "EventCode": "0x83",
341+ "UMask": "0x01",
342+ "EventName": "UNC_ARB_COH_TRK_OCCUPANCY.All",
343+ "BriefDescription": "Each cycle count number of valid entries in Coherency Tracker queue from allocation till deallocation. Aperture requests (snoops) appear as NC decoded internally and become coherent (snoop L3, access memory)",
344+ "PublicDescription": "Each cycle count number of valid entries in Coherency Tracker queue from allocation till deallocation. Aperture requests (snoops) appear as NC decoded internally and become coherent (snoop L3, access memory).",
345+ "Counter": "0",
346+ "CounterMask": "0",
347+ "Invert": "0",
348+ "EdgeDetect": "0"
349+ },
350+ {
351+ "Unit": "iMPH-U",
352+ "EventCode": "0x84",
353+ "UMask": "0x01",
354+ "EventName": "UNC_ARB_COH_TRK_REQUESTS.ALL",
355+ "BriefDescription": "Number of entries allocated. Account for Any type: e.g. Snoop, Core aperture, etc.",
356+ "PublicDescription": "Number of entries allocated. Account for Any type: e.g. Snoop, Core aperture, etc.",
357+ "Counter": "0,1",
358+ "CounterMask": "0",
359+ "Invert": "0",
360+ "EdgeDetect": "0"
361+ },
362+ {
363+ "Unit": "NCU",
364+ "EventCode": "0x0",
365+ "UMask": "0x01",
366+ "EventName": "UNC_CLOCK.SOCKET",
367+ "BriefDescription": "This 48-bit fixed counter counts the UCLK cycles.",
368+ "PublicDescription": "This 48-bit fixed counter counts the UCLK cycles.",
369+ "Counter": "FIXED",
370+ "CounterMask": "0",
371+ "Invert": "0",
372+ "EdgeDetect": "0"
373+ }
374+]
tools/perf/pmu-events/arch/x86/ivybridge/uncore.json+314−0
@@ -0,0 +1,314 @@
1+[
2+ {
3+ "Unit": "CBO",
4+ "EventCode": "0x22",
5+ "UMask": "0x01",
6+ "EventName": "UNC_CBO_XSNP_RESPONSE.MISS",
7+ "BriefDescription": "A snoop misses in some processor core.",
8+ "PublicDescription": "A snoop misses in some processor core.",
9+ "Counter": "0,1",
10+ "CounterMask": "0",
11+ "Invert": "0",
12+ "EdgeDetect": "0"
13+ },
14+ {
15+ "Unit": "CBO",
16+ "EventCode": "0x22",
17+ "UMask": "0x02",
18+ "EventName": "UNC_CBO_XSNP_RESPONSE.INVAL",
19+ "BriefDescription": "A snoop invalidates a non-modified line in some processor core.",
20+ "PublicDescription": "A snoop invalidates a non-modified line in some processor core.",
21+ "Counter": "0,1",
22+ "CounterMask": "0",
23+ "Invert": "0",
24+ "EdgeDetect": "0"
25+ },
26+ {
27+ "Unit": "CBO",
28+ "EventCode": "0x22",
29+ "UMask": "0x04",
30+ "EventName": "UNC_CBO_XSNP_RESPONSE.HIT",
31+ "BriefDescription": "A snoop hits a non-modified line in some processor core.",
32+ "PublicDescription": "A snoop hits a non-modified line in some processor core.",
33+ "Counter": "0,1",
34+ "CounterMask": "0",
35+ "Invert": "0",
36+ "EdgeDetect": "0"
37+ },
38+ {
39+ "Unit": "CBO",
40+ "EventCode": "0x22",
41+ "UMask": "0x08",
42+ "EventName": "UNC_CBO_XSNP_RESPONSE.HITM",
43+ "BriefDescription": "A snoop hits a modified line in some processor core.",
44+ "PublicDescription": "A snoop hits a modified line in some processor core.",
45+ "Counter": "0,1",
46+ "CounterMask": "0",
47+ "Invert": "0",
48+ "EdgeDetect": "0"
49+ },
50+ {
51+ "Unit": "CBO",
52+ "EventCode": "0x22",
53+ "UMask": "0x10",
54+ "EventName": "UNC_CBO_XSNP_RESPONSE.INVAL_M",
55+ "BriefDescription": "A snoop invalidates a modified line in some processor core.",
56+ "PublicDescription": "A snoop invalidates a modified line in some processor core.",
57+ "Counter": "0,1",
58+ "CounterMask": "0",
59+ "Invert": "0",
60+ "EdgeDetect": "0"
61+ },
62+ {
63+ "Unit": "CBO",
64+ "EventCode": "0x22",
65+ "UMask": "0x20",
66+ "EventName": "UNC_CBO_XSNP_RESPONSE.EXTERNAL_FILTER",
67+ "BriefDescription": "Filter on cross-core snoops initiated by this Cbox due to external snoop request.",
68+ "PublicDescription": "Filter on cross-core snoops initiated by this Cbox due to external snoop request.",
69+ "Counter": "0,1",
70+ "CounterMask": "0",
71+ "Invert": "0",
72+ "EdgeDetect": "0"
73+ },
74+ {
75+ "Unit": "CBO",
76+ "EventCode": "0x22",
77+ "UMask": "0x40",
78+ "EventName": "UNC_CBO_XSNP_RESPONSE.XCORE_FILTER",
79+ "BriefDescription": "Filter on cross-core snoops initiated by this Cbox due to processor core memory request.",
80+ "PublicDescription": "Filter on cross-core snoops initiated by this Cbox due to processor core memory request.",
81+ "Counter": "0,1",
82+ "CounterMask": "0",
83+ "Invert": "0",
84+ "EdgeDetect": "0"
85+ },
86+ {
87+ "Unit": "CBO",
88+ "EventCode": "0x22",
89+ "UMask": "0x80",
90+ "EventName": "UNC_CBO_XSNP_RESPONSE.EVICTION_FILTER",
91+ "BriefDescription": "Filter on cross-core snoops initiated by this Cbox due to LLC eviction.",
92+ "PublicDescription": "Filter on cross-core snoops initiated by this Cbox due to LLC eviction.",
93+ "Counter": "0,1",
94+ "CounterMask": "0",
95+ "Invert": "0",
96+ "EdgeDetect": "0"
97+ },
98+ {
99+ "Unit": "CBO",
100+ "EventCode": "0x34",
101+ "UMask": "0x01",
102+ "EventName": "UNC_CBO_CACHE_LOOKUP.M",
103+ "BriefDescription": "LLC lookup request that access cache and found line in M-state.",
104+ "PublicDescription": "LLC lookup request that access cache and found line in M-state.",
105+ "Counter": "0,1",
106+ "CounterMask": "0",
107+ "Invert": "0",
108+ "EdgeDetect": "0"
109+ },
110+ {
111+ "Unit": "CBO",
112+ "EventCode": "0x34",
113+ "UMask": "0x02",
114+ "EventName": "UNC_CBO_CACHE_LOOKUP.E",
115+ "BriefDescription": "LLC lookup request that access cache and found line in E-state.",
116+ "PublicDescription": "LLC lookup request that access cache and found line in E-state.",
117+ "Counter": "0,1",
118+ "CounterMask": "0",
119+ "Invert": "0",
120+ "EdgeDetect": "0"
121+ },
122+ {
123+ "Unit": "CBO",
124+ "EventCode": "0x34",
125+ "UMask": "0x04",
126+ "EventName": "UNC_CBO_CACHE_LOOKUP.S",
127+ "BriefDescription": "LLC lookup request that access cache and found line in S-state.",
128+ "PublicDescription": "LLC lookup request that access cache and found line in S-state.",
129+ "Counter": "0,1",
130+ "CounterMask": "0",
131+ "Invert": "0",
132+ "EdgeDetect": "0"
133+ },
134+ {
135+ "Unit": "CBO",
136+ "EventCode": "0x34",
137+ "UMask": "0x08",
138+ "EventName": "UNC_CBO_CACHE_LOOKUP.I",
139+ "BriefDescription": "LLC lookup request that access cache and found line in I-state.",
140+ "PublicDescription": "LLC lookup request that access cache and found line in I-state.",
141+ "Counter": "0,1",
142+ "CounterMask": "0",
143+ "Invert": "0",
144+ "EdgeDetect": "0"
145+ },
146+ {
147+ "Unit": "CBO",
148+ "EventCode": "0x34",
149+ "UMask": "0x10",
150+ "EventName": "UNC_CBO_CACHE_LOOKUP.READ_FILTER",
151+ "BriefDescription": "Filter on processor core initiated cacheable read requests.",
152+ "PublicDescription": "Filter on processor core initiated cacheable read requests.",
153+ "Counter": "0,1",
154+ "CounterMask": "0",
155+ "Invert": "0",
156+ "EdgeDetect": "0"
157+ },
158+ {
159+ "Unit": "CBO",
160+ "EventCode": "0x34",
161+ "UMask": "0x20",
162+ "EventName": "UNC_CBO_CACHE_LOOKUP.WRITE_FILTER",
163+ "BriefDescription": "Filter on processor core initiated cacheable write requests.",
164+ "PublicDescription": "Filter on processor core initiated cacheable write requests.",
165+ "Counter": "0,1",
166+ "CounterMask": "0",
167+ "Invert": "0",
168+ "EdgeDetect": "0"
169+ },
170+ {
171+ "Unit": "CBO",
172+ "EventCode": "0x34",
173+ "UMask": "0x40",
174+ "EventName": "UNC_CBO_CACHE_LOOKUP.EXTSNP_FILTER",
175+ "BriefDescription": "Filter on external snoop requests.",
176+ "PublicDescription": "Filter on external snoop requests.",
177+ "Counter": "0,1",
178+ "CounterMask": "0",
179+ "Invert": "0",
180+ "EdgeDetect": "0"
181+ },
182+ {
183+ "Unit": "CBO",
184+ "EventCode": "0x34",
185+ "UMask": "0x80",
186+ "EventName": "UNC_CBO_CACHE_LOOKUP.ANY_REQUEST_FILTER",
187+ "BriefDescription": "Filter on any IRQ or IPQ initiated requests including uncacheable, non-coherent requests.",
188+ "PublicDescription": "Filter on any IRQ or IPQ initiated requests including uncacheable, non-coherent requests.",
189+ "Counter": "0,1",
190+ "CounterMask": "0",
191+ "Invert": "0",
192+ "EdgeDetect": "0"
193+ },
194+ {
195+ "Unit": "ARB",
196+ "EventCode": "0x80",
197+ "UMask": "0x01",
198+ "EventName": "UNC_ARB_TRK_OCCUPANCY.ALL",
199+ "BriefDescription": "Counts cycles weighted by the number of requests waiting for data returning from the memory controller. Accounts for coherent and non-coherent requests initiated by IA cores, processor graphic units, or LLC.",
200+ "PublicDescription": "Counts cycles weighted by the number of requests waiting for data returning from the memory controller. Accounts for coherent and non-coherent requests initiated by IA cores, processor graphic units, or LLC.",
201+ "Counter": "0",
202+ "CounterMask": "0",
203+ "Invert": "0",
204+ "EdgeDetect": "0"
205+ },
206+ {
207+ "Unit": "ARB",
208+ "EventCode": "0x81",
209+ "UMask": "0x01",
210+ "EventName": "UNC_ARB_TRK_REQUESTS.ALL",
211+ "BriefDescription": "Counts the number of coherent and in-coherent requests initiated by IA cores, processor graphic units, or LLC.",
212+ "PublicDescription": "Counts the number of coherent and in-coherent requests initiated by IA cores, processor graphic units, or LLC.",
213+ "Counter": "0,1",
214+ "CounterMask": "0",
215+ "Invert": "0",
216+ "EdgeDetect": "0"
217+ },
218+ {
219+ "Unit": "ARB",
220+ "EventCode": "0x81",
221+ "UMask": "0x20",
222+ "EventName": "UNC_ARB_TRK_REQUESTS.WRITES",
223+ "BriefDescription": "Counts the number of allocated write entries, include full, partial, and LLC evictions.",
224+ "PublicDescription": "Counts the number of allocated write entries, include full, partial, and LLC evictions.",
225+ "Counter": "0,1",
226+ "CounterMask": "0",
227+ "Invert": "0",
228+ "EdgeDetect": "0"
229+ },
230+ {
231+ "Unit": "ARB",
232+ "EventCode": "0x81",
233+ "UMask": "0x80",
234+ "EventName": "UNC_ARB_TRK_REQUESTS.EVICTIONS",
235+ "BriefDescription": "Counts the number of LLC evictions allocated.",
236+ "PublicDescription": "Counts the number of LLC evictions allocated.",
237+ "Counter": "0,1",
238+ "CounterMask": "0",
239+ "Invert": "0",
240+ "EdgeDetect": "0"
241+ },
242+ {
243+ "Unit": "ARB",
244+ "EventCode": "0x83",
245+ "UMask": "0x01",
246+ "EventName": "UNC_ARB_COH_TRK_OCCUPANCY.ALL",
247+ "BriefDescription": "Cycles weighted by number of requests pending in Coherency Tracker.",
248+ "PublicDescription": "Cycles weighted by number of requests pending in Coherency Tracker.",
249+ "Counter": "0",
250+ "CounterMask": "0",
251+ "Invert": "0",
252+ "EdgeDetect": "0"
253+ },
254+ {
255+ "Unit": "ARB",
256+ "EventCode": "0x84",
257+ "UMask": "0x01",
258+ "EventName": "UNC_ARB_COH_TRK_REQUESTS.ALL",
259+ "BriefDescription": "Number of requests allocated in Coherency Tracker.",
260+ "PublicDescription": "Number of requests allocated in Coherency Tracker.",
261+ "Counter": "0,1",
262+ "CounterMask": "0",
263+ "Invert": "0",
264+ "EdgeDetect": "0"
265+ },
266+ {
267+ "Unit": "ARB",
268+ "EventCode": "0x80",
269+ "UMask": "0x01",
270+ "EventName": "UNC_ARB_TRK_OCCUPANCY.CYCLES_WITH_ANY_REQUEST",
271+ "BriefDescription": "Cycles with at least one request outstanding is waiting for data return from memory controller. Account for coherent and non-coherent requests initiated by IA Cores, Processor Graphics Unit, or LLC.",
272+ "PublicDescription": "Cycles with at least one request outstanding is waiting for data return from memory controller. Account for coherent and non-coherent requests initiated by IA Cores, Processor Graphics Unit, or LLC.",
273+ "Counter": "0,1",
274+ "CounterMask": "1",
275+ "Invert": "0",
276+ "EdgeDetect": "0"
277+ },
278+ {
279+ "Unit": "ARB",
280+ "EventCode": "0x80",
281+ "UMask": "0x01",
282+ "EventName": "UNC_ARB_TRK_OCCUPANCY.CYCLES_OVER_HALF_FULL",
283+ "BriefDescription": "Cycles with at least half of the requests outstanding are waiting for data return from memory controller. Account for coherent and non-coherent requests initiated by IA Cores, Processor Graphics Unit, or LLC.",
284+ "PublicDescription": "Cycles with at least half of the requests outstanding are waiting for data return from memory controller. Account for coherent and non-coherent requests initiated by IA Cores, Processor Graphics Unit, or LLC.",
285+ "Counter": "0,1",
286+ "CounterMask": "10",
287+ "Invert": "0",
288+ "EdgeDetect": "0"
289+ },
290+ {
291+ "Unit": "ARB",
292+ "EventCode": "0x0",
293+ "UMask": "0x01",
294+ "EventName": "UNC_CLOCK.SOCKET",
295+ "BriefDescription": "This 48-bit fixed counter counts the UCLK cycles.",
296+ "PublicDescription": "This 48-bit fixed counter counts the UCLK cycles.",
297+ "Counter": "Fixed",
298+ "CounterMask": "0",
299+ "Invert": "0",
300+ "EdgeDetect": "0"
301+ },
302+ {
303+ "Unit": "CBO",
304+ "EventCode": "0x34",
305+ "UMask": "0x06",
306+ "EventName": "UNC_CBO_CACHE_LOOKUP.ES",
307+ "BriefDescription": "LLC lookup request that access cache and found line in E-state or S-state.",
308+ "PublicDescription": "LLC lookup request that access cache and found line in E-state or S-state.",
309+ "Counter": "0,1",
310+ "CounterMask": "0",
311+ "Invert": "0",
312+ "EdgeDetect": "0"
313+ }
314+]
tools/perf/pmu-events/arch/x86/sandybridge/uncore.json+314−0
@@ -0,0 +1,314 @@
1+[
2+ {
3+ "Unit": "CBO",
4+ "EventCode": "0x22",
5+ "UMask": "0x01",
6+ "EventName": "UNC_CBO_XSNP_RESPONSE.MISS",
7+ "BriefDescription": "A snoop misses in some processor core.",
8+ "PublicDescription": "A snoop misses in some processor core.",
9+ "Counter": "0,1",
10+ "CounterMask": "0",
11+ "Invert": "0",
12+ "EdgeDetect": "0"
13+ },
14+ {
15+ "Unit": "CBO",
16+ "EventCode": "0x22",
17+ "UMask": "0x02",
18+ "EventName": "UNC_CBO_XSNP_RESPONSE.INVAL",
19+ "BriefDescription": "A snoop invalidates a non-modified line in some processor core.",
20+ "PublicDescription": "A snoop invalidates a non-modified line in some processor core.",
21+ "Counter": "0,1",
22+ "CounterMask": "0",
23+ "Invert": "0",
24+ "EdgeDetect": "0"
25+ },
26+ {
27+ "Unit": "CBO",
28+ "EventCode": "0x22",
29+ "UMask": "0x04",
30+ "EventName": "UNC_CBO_XSNP_RESPONSE.HIT",
31+ "BriefDescription": "A snoop hits a non-modified line in some processor core.",
32+ "PublicDescription": "A snoop hits a non-modified line in some processor core.",
33+ "Counter": "0,1",
34+ "CounterMask": "0",
35+ "Invert": "0",
36+ "EdgeDetect": "0"
37+ },
38+ {
39+ "Unit": "CBO",
40+ "EventCode": "0x22",
41+ "UMask": "0x08",
42+ "EventName": "UNC_CBO_XSNP_RESPONSE.HITM",
43+ "BriefDescription": "A snoop hits a modified line in some processor core.",
44+ "PublicDescription": "A snoop hits a modified line in some processor core.",
45+ "Counter": "0,1",
46+ "CounterMask": "0",
47+ "Invert": "0",
48+ "EdgeDetect": "0"
49+ },
50+ {
51+ "Unit": "CBO",
52+ "EventCode": "0x22",
53+ "UMask": "0x10",
54+ "EventName": "UNC_CBO_XSNP_RESPONSE.INVAL_M",
55+ "BriefDescription": "A snoop invalidates a modified line in some processor core.",
56+ "PublicDescription": "A snoop invalidates a modified line in some processor core.",
57+ "Counter": "0,1",
58+ "CounterMask": "0",
59+ "Invert": "0",
60+ "EdgeDetect": "0"
61+ },
62+ {
63+ "Unit": "CBO",
64+ "EventCode": "0x22",
65+ "UMask": "0x20",
66+ "EventName": "UNC_CBO_XSNP_RESPONSE.EXTERNAL_FILTER",
67+ "BriefDescription": "Filter on cross-core snoops initiated by this Cbox due to external snoop request.",
68+ "PublicDescription": "Filter on cross-core snoops initiated by this Cbox due to external snoop request.",
69+ "Counter": "0,1",
70+ "CounterMask": "0",
71+ "Invert": "0",
72+ "EdgeDetect": "0"
73+ },
74+ {
75+ "Unit": "CBO",
76+ "EventCode": "0x22",
77+ "UMask": "0x40",
78+ "EventName": "UNC_CBO_XSNP_RESPONSE.XCORE_FILTER",
79+ "BriefDescription": "Filter on cross-core snoops initiated by this Cbox due to processor core memory request.",
80+ "PublicDescription": "Filter on cross-core snoops initiated by this Cbox due to processor core memory request.",
81+ "Counter": "0,1",
82+ "CounterMask": "0",
83+ "Invert": "0",
84+ "EdgeDetect": "0"
85+ },
86+ {
87+ "Unit": "CBO",
88+ "EventCode": "0x22",
89+ "UMask": "0x80",
90+ "EventName": "UNC_CBO_XSNP_RESPONSE.EVICTION_FILTER",
91+ "BriefDescription": "Filter on cross-core snoops initiated by this Cbox due to LLC eviction.",
92+ "PublicDescription": "Filter on cross-core snoops initiated by this Cbox due to LLC eviction.",
93+ "Counter": "0,1",
94+ "CounterMask": "0",
95+ "Invert": "0",
96+ "EdgeDetect": "0"
97+ },
98+ {
99+ "Unit": "CBO",
100+ "EventCode": "0x34",
101+ "UMask": "0x01",
102+ "EventName": "UNC_CBO_CACHE_LOOKUP.M",
103+ "BriefDescription": "LLC lookup request that access cache and found line in M-state.",
104+ "PublicDescription": "LLC lookup request that access cache and found line in M-state.",
105+ "Counter": "0,1",
106+ "CounterMask": "0",
107+ "Invert": "0",
108+ "EdgeDetect": "0"
109+ },
110+ {
111+ "Unit": "CBO",
112+ "EventCode": "0x34",
113+ "UMask": "0x02",
114+ "EventName": "UNC_CBO_CACHE_LOOKUP.E",
115+ "BriefDescription": "LLC lookup request that access cache and found line in E-state.",
116+ "PublicDescription": "LLC lookup request that access cache and found line in E-state.",
117+ "Counter": "0,1",
118+ "CounterMask": "0",
119+ "Invert": "0",
120+ "EdgeDetect": "0"
121+ },
122+ {
123+ "Unit": "CBO",
124+ "EventCode": "0x34",
125+ "UMask": "0x04",
126+ "EventName": "UNC_CBO_CACHE_LOOKUP.S",
127+ "BriefDescription": "LLC lookup request that access cache and found line in S-state.",
128+ "PublicDescription": "LLC lookup request that access cache and found line in S-state.",
129+ "Counter": "0,1",
130+ "CounterMask": "0",
131+ "Invert": "0",
132+ "EdgeDetect": "0"
133+ },
134+ {
135+ "Unit": "CBO",
136+ "EventCode": "0x34",
137+ "UMask": "0x08",
138+ "EventName": "UNC_CBO_CACHE_LOOKUP.I",
139+ "BriefDescription": "LLC lookup request that access cache and found line in I-state.",
140+ "PublicDescription": "LLC lookup request that access cache and found line in I-state.",
141+ "Counter": "0,1",
142+ "CounterMask": "0",
143+ "Invert": "0",
144+ "EdgeDetect": "0"
145+ },
146+ {
147+ "Unit": "CBO",
148+ "EventCode": "0x34",
149+ "UMask": "0x10",
150+ "EventName": "UNC_CBO_CACHE_LOOKUP.READ_FILTER",
151+ "BriefDescription": "Filter on processor core initiated cacheable read requests.",
152+ "PublicDescription": "Filter on processor core initiated cacheable read requests.",
153+ "Counter": "0,1",
154+ "CounterMask": "0",
155+ "Invert": "0",
156+ "EdgeDetect": "0"
157+ },
158+ {
159+ "Unit": "CBO",
160+ "EventCode": "0x34",
161+ "UMask": "0x20",
162+ "EventName": "UNC_CBO_CACHE_LOOKUP.WRITE_FILTER",
163+ "BriefDescription": "Filter on processor core initiated cacheable write requests.",
164+ "PublicDescription": "Filter on processor core initiated cacheable write requests.",
165+ "Counter": "0,1",
166+ "CounterMask": "0",
167+ "Invert": "0",
168+ "EdgeDetect": "0"
169+ },
170+ {
171+ "Unit": "CBO",
172+ "EventCode": "0x34",
173+ "UMask": "0x40",
174+ "EventName": "UNC_CBO_CACHE_LOOKUP.EXTSNP_FILTER",
175+ "BriefDescription": "Filter on external snoop requests.",
176+ "PublicDescription": "Filter on external snoop requests.",
177+ "Counter": "0,1",
178+ "CounterMask": "0",
179+ "Invert": "0",
180+ "EdgeDetect": "0"
181+ },
182+ {
183+ "Unit": "CBO",
184+ "EventCode": "0x34",
185+ "UMask": "0x80",
186+ "EventName": "UNC_CBO_CACHE_LOOKUP.ANY_REQUEST_FILTER",
187+ "BriefDescription": "Filter on any IRQ or IPQ initiated requests including uncacheable, non-coherent requests.",
188+ "PublicDescription": "Filter on any IRQ or IPQ initiated requests including uncacheable, non-coherent requests.",
189+ "Counter": "0,1",
190+ "CounterMask": "0",
191+ "Invert": "0",
192+ "EdgeDetect": "0"
193+ },
194+ {
195+ "Unit": "ARB",
196+ "EventCode": "0x80",
197+ "UMask": "0x01",
198+ "EventName": "UNC_ARB_TRK_OCCUPANCY.ALL",
199+ "BriefDescription": "Counts cycles weighted by the number of requests waiting for data returning from the memory controller. Accounts for coherent and non-coherent requests initiated by IA cores, processor graphic units, or LLC.",
200+ "PublicDescription": "Counts cycles weighted by the number of requests waiting for data returning from the memory controller. Accounts for coherent and non-coherent requests initiated by IA cores, processor graphic units, or LLC.",
201+ "Counter": "0",
202+ "CounterMask": "0",
203+ "Invert": "0",
204+ "EdgeDetect": "0"
205+ },
206+ {
207+ "Unit": "ARB",
208+ "EventCode": "0x81",
209+ "UMask": "0x01",
210+ "EventName": "UNC_ARB_TRK_REQUESTS.ALL",
211+ "BriefDescription": "Counts the number of coherent and in-coherent requests initiated by IA cores, processor graphic units, or LLC.",
212+ "PublicDescription": "Counts the number of coherent and in-coherent requests initiated by IA cores, processor graphic units, or LLC.",
213+ "Counter": "0,1",
214+ "CounterMask": "0",
215+ "Invert": "0",
216+ "EdgeDetect": "0"
217+ },
218+ {
219+ "Unit": "ARB",
220+ "EventCode": "0x81",
221+ "UMask": "0x20",
222+ "EventName": "UNC_ARB_TRK_REQUESTS.WRITES",
223+ "BriefDescription": "Counts the number of allocated write entries, include full, partial, and LLC evictions.",
224+ "PublicDescription": "Counts the number of allocated write entries, include full, partial, and LLC evictions.",
225+ "Counter": "0,1",
226+ "CounterMask": "0",
227+ "Invert": "0",
228+ "EdgeDetect": "0"
229+ },
230+ {
231+ "Unit": "ARB",
232+ "EventCode": "0x81",
233+ "UMask": "0x80",
234+ "EventName": "UNC_ARB_TRK_REQUESTS.EVICTIONS",
235+ "BriefDescription": "Counts the number of LLC evictions allocated.",
236+ "PublicDescription": "Counts the number of LLC evictions allocated.",
237+ "Counter": "0,1",
238+ "CounterMask": "0",
239+ "Invert": "0",
240+ "EdgeDetect": "0"
241+ },
242+ {
243+ "Unit": "ARB",
244+ "EventCode": "0x83",
245+ "UMask": "0x01",
246+ "EventName": "UNC_ARB_COH_TRK_OCCUPANCY.ALL",
247+ "BriefDescription": "Cycles weighted by number of requests pending in Coherency Tracker.",
248+ "PublicDescription": "Cycles weighted by number of requests pending in Coherency Tracker.",
249+ "Counter": "0",
250+ "CounterMask": "0",
251+ "Invert": "0",
252+ "EdgeDetect": "0"
253+ },
254+ {
255+ "Unit": "ARB",
256+ "EventCode": "0x84",
257+ "UMask": "0x01",
258+ "EventName": "UNC_ARB_COH_TRK_REQUESTS.ALL",
259+ "BriefDescription": "Number of requests allocated in Coherency Tracker.",
260+ "PublicDescription": "Number of requests allocated in Coherency Tracker.",
261+ "Counter": "0,1",
262+ "CounterMask": "0",
263+ "Invert": "0",
264+ "EdgeDetect": "0"
265+ },
266+ {
267+ "Unit": "ARB",
268+ "EventCode": "0x80",
269+ "UMask": "0x01",
270+ "EventName": "UNC_ARB_TRK_OCCUPANCY.CYCLES_WITH_ANY_REQUEST",
271+ "BriefDescription": "Cycles with at least one request outstanding is waiting for data return from memory controller. Account for coherent and non-coherent requests initiated by IA Cores, Processor Graphics Unit, or LLC.",
272+ "PublicDescription": "Cycles with at least one request outstanding is waiting for data return from memory controller. Account for coherent and non-coherent requests initiated by IA Cores, Processor Graphics Unit, or LLC.",
273+ "Counter": "0,1",
274+ "CounterMask": "1",
275+ "Invert": "0",
276+ "EdgeDetect": "0"
277+ },
278+ {
279+ "Unit": "ARB",
280+ "EventCode": "0x80",
281+ "UMask": "0x01",
282+ "EventName": "UNC_ARB_TRK_OCCUPANCY.CYCLES_OVER_HALF_FULL",
283+ "BriefDescription": "Cycles with at least half of the requests outstanding are waiting for data return from memory controller. Account for coherent and non-coherent requests initiated by IA Cores, Processor Graphics Unit, or LLC.",
284+ "PublicDescription": "Cycles with at least half of the requests outstanding are waiting for data return from memory controller. Account for coherent and non-coherent requests initiated by IA Cores, Processor Graphics Unit, or LLC.",
285+ "Counter": "0,1",
286+ "CounterMask": "10",
287+ "Invert": "0",
288+ "EdgeDetect": "0"
289+ },
290+ {
291+ "Unit": "ARB",
292+ "EventCode": "0x0",
293+ "UMask": "0x01",
294+ "EventName": "UNC_CLOCK.SOCKET",
295+ "BriefDescription": "This 48-bit fixed counter counts the UCLK cycles.",
296+ "PublicDescription": "This 48-bit fixed counter counts the UCLK cycles.",
297+ "Counter": "Fixed",
298+ "CounterMask": "0",
299+ "Invert": "0",
300+ "EdgeDetect": "0"
301+ },
302+ {
303+ "Unit": "CBO",
304+ "EventCode": "0x34",
305+ "UMask": "0x06",
306+ "EventName": "UNC_CBO_CACHE_LOOKUP.ES",
307+ "BriefDescription": "LLC lookup request that access cache and found line in E-state or S-state.",
308+ "PublicDescription": "LLC lookup request that access cache and found line in E-state or S-state.",
309+ "Counter": "0,1",
310+ "CounterMask": "0",
311+ "Invert": "0",
312+ "EdgeDetect": "0"
313+ }
314+]
tools/perf/pmu-events/arch/x86/skylake/uncore.json+254−0
@@ -0,0 +1,254 @@
1+[
2+ {
3+ "Unit": "CBO",
4+ "EventCode": "0x22",
5+ "UMask": "0x41",
6+ "EventName": "UNC_CBO_XSNP_RESPONSE.MISS_XCORE",
7+ "BriefDescription": "A cross-core snoop initiated by this Cbox due to processor core memory request which misses in some processor core.",
8+ "PublicDescription": "A cross-core snoop initiated by this Cbox due to processor core memory request which misses in some processor core.",
9+ "Counter": "0,1",
10+ "CounterMask": "0",
11+ "Invert": "0",
12+ "EdgeDetect": "0"
13+ },
14+ {
15+ "Unit": "CBO",
16+ "EventCode": "0x22",
17+ "UMask": "0x81",
18+ "EventName": "UNC_CBO_XSNP_RESPONSE.MISS_EVICTION",
19+ "BriefDescription": "A cross-core snoop resulted from L3 Eviction which misses in some processor core.",
20+ "PublicDescription": "A cross-core snoop resulted from L3 Eviction which misses in some processor core.",
21+ "Counter": "0,1",
22+ "CounterMask": "0",
23+ "Invert": "0",
24+ "EdgeDetect": "0"
25+ },
26+ {
27+ "Unit": "CBO",
28+ "EventCode": "0x22",
29+ "UMask": "0x44",
30+ "EventName": "UNC_CBO_XSNP_RESPONSE.HIT_XCORE",
31+ "BriefDescription": "A cross-core snoop initiated by this Cbox due to processor core memory request which hits a non-modified line in some processor core.",
32+ "PublicDescription": "A cross-core snoop initiated by this Cbox due to processor core memory request which hits a non-modified line in some processor core.",
33+ "Counter": "0,1",
34+ "CounterMask": "0",
35+ "Invert": "0",
36+ "EdgeDetect": "0"
37+ },
38+ {
39+ "Unit": "CBO",
40+ "EventCode": "0x22",
41+ "UMask": "0x48",
42+ "EventName": "UNC_CBO_XSNP_RESPONSE.HITM_XCORE",
43+ "BriefDescription": "A cross-core snoop initiated by this Cbox due to processor core memory request which hits a modified line in some processor core.",
44+ "PublicDescription": "A cross-core snoop initiated by this Cbox due to processor core memory request which hits a modified line in some processor core.",
45+ "Counter": "0,1",
46+ "CounterMask": "0",
47+ "Invert": "0",
48+ "EdgeDetect": "0"
49+ },
50+ {
51+ "Unit": "CBO",
52+ "EventCode": "0x34",
53+ "UMask": "0x21",
54+ "EventName": "UNC_CBO_CACHE_LOOKUP.WRITE_M",
55+ "BriefDescription": "L3 Lookup write request that access cache and found line in M-state",
56+ "PublicDescription": "L3 Lookup write request that access cache and found line in M-state.",
57+ "Counter": "0,1",
58+ "CounterMask": "0",
59+ "Invert": "0",
60+ "EdgeDetect": "0"
61+ },
62+ {
63+ "Unit": "CBO",
64+ "EventCode": "0x34",
65+ "UMask": "0x81",
66+ "EventName": "UNC_CBO_CACHE_LOOKUP.ANY_M",
67+ "BriefDescription": "L3 Lookup any request that access cache and found line in M-state",
68+ "PublicDescription": "L3 Lookup any request that access cache and found line in M-state.",
69+ "Counter": "0,1",
70+ "CounterMask": "0",
71+ "Invert": "0",
72+ "EdgeDetect": "0"
73+ },
74+ {
75+ "Unit": "CBO",
76+ "EventCode": "0x34",
77+ "UMask": "0x18",
78+ "EventName": "UNC_CBO_CACHE_LOOKUP.READ_I",
79+ "BriefDescription": "L3 Lookup read request that access cache and found line in I-state",
80+ "PublicDescription": "L3 Lookup read request that access cache and found line in I-state.",
81+ "Counter": "0,1",
82+ "CounterMask": "0",
83+ "Invert": "0",
84+ "EdgeDetect": "0"
85+ },
86+ {
87+ "Unit": "CBO",
88+ "EventCode": "0x34",
89+ "UMask": "0x88",
90+ "EventName": "UNC_CBO_CACHE_LOOKUP.ANY_I",
91+ "BriefDescription": "L3 Lookup any request that access cache and found line in I-state",
92+ "PublicDescription": "L3 Lookup any request that access cache and found line in I-state.",
93+ "Counter": "0,1",
94+ "CounterMask": "0",
95+ "Invert": "0",
96+ "EdgeDetect": "0"
97+ },
98+ {
99+ "Unit": "CBO",
100+ "EventCode": "0x34",
101+ "UMask": "0x1f",
102+ "EventName": "UNC_CBO_CACHE_LOOKUP.READ_MESI",
103+ "BriefDescription": "L3 Lookup read request that access cache and found line in any MESI-state",
104+ "PublicDescription": "L3 Lookup read request that access cache and found line in any MESI-state.",
105+ "Counter": "0,1",
106+ "CounterMask": "0",
107+ "Invert": "0",
108+ "EdgeDetect": "0"
109+ },
110+ {
111+ "Unit": "CBO",
112+ "EventCode": "0x34",
113+ "UMask": "0x2f",
114+ "EventName": "UNC_CBO_CACHE_LOOKUP.WRITE_MESI",
115+ "BriefDescription": "L3 Lookup write request that access cache and found line in MESI-state",
116+ "PublicDescription": "L3 Lookup write request that access cache and found line in MESI-state.",
117+ "Counter": "0,1",
118+ "CounterMask": "0",
119+ "Invert": "0",
120+ "EdgeDetect": "0"
121+ },
122+ {
123+ "Unit": "CBO",
124+ "EventCode": "0x34",
125+ "UMask": "0x8f",
126+ "EventName": "UNC_CBO_CACHE_LOOKUP.ANY_MESI",
127+ "BriefDescription": "L3 Lookup any request that access cache and found line in MESI-state",
128+ "PublicDescription": "L3 Lookup any request that access cache and found line in MESI-state.",
129+ "Counter": "0,1",
130+ "CounterMask": "0",
131+ "Invert": "0",
132+ "EdgeDetect": "0"
133+ },
134+ {
135+ "Unit": "CBO",
136+ "EventCode": "0x34",
137+ "UMask": "0x86",
138+ "EventName": "UNC_CBO_CACHE_LOOKUP.ANY_ES",
139+ "BriefDescription": "L3 Lookup any request that access cache and found line in E or S-state",
140+ "PublicDescription": "L3 Lookup any request that access cache and found line in E or S-state.",
141+ "Counter": "0,1",
142+ "CounterMask": "0",
143+ "Invert": "0",
144+ "EdgeDetect": "0"
145+ },
146+ {
147+ "Unit": "CBO",
148+ "EventCode": "0x34",
149+ "UMask": "0x16",
150+ "EventName": "UNC_CBO_CACHE_LOOKUP.READ_ES",
151+ "BriefDescription": "L3 Lookup read request that access cache and found line in E or S-state",
152+ "PublicDescription": "L3 Lookup read request that access cache and found line in E or S-state.",
153+ "Counter": "0,1",
154+ "CounterMask": "0",
155+ "Invert": "0",
156+ "EdgeDetect": "0"
157+ },
158+ {
159+ "Unit": "CBO",
160+ "EventCode": "0x34",
161+ "UMask": "0x26",
162+ "EventName": "UNC_CBO_CACHE_LOOKUP.WRITE_ES",
163+ "BriefDescription": "L3 Lookup write request that access cache and found line in E or S-state",
164+ "PublicDescription": "L3 Lookup write request that access cache and found line in E or S-state.",
165+ "Counter": "0,1",
166+ "CounterMask": "0",
167+ "Invert": "0",
168+ "EdgeDetect": "0"
169+ },
170+ {
171+ "Unit": "iMPH-U",
172+ "EventCode": "0x80",
173+ "UMask": "0x01",
174+ "EventName": "UNC_ARB_TRK_OCCUPANCY.ALL",
175+ "BriefDescription": "Each cycle count number of all Core outgoing valid entries. Such entry is defined as valid from its allocation till first of IDI0 or DRS0 messages is sent out. Accounts for Coherent and non-coherent traffic.",
176+ "PublicDescription": "Each cycle count number of all Core outgoing valid entries. Such entry is defined as valid from its allocation till first of IDI0 or DRS0 messages is sent out. Accounts for Coherent and non-coherent traffic.",
177+ "Counter": "0",
178+ "CounterMask": "0",
179+ "Invert": "0",
180+ "EdgeDetect": "0"
181+ },
182+ {
183+ "Unit": "iMPH-U",
184+ "EventCode": "0x81",
185+ "UMask": "0x01",
186+ "EventName": "UNC_ARB_TRK_REQUESTS.ALL",
187+ "BriefDescription": "Total number of Core outgoing entries allocated. Accounts for Coherent and non-coherent traffic.",
188+ "PublicDescription": "Total number of Core outgoing entries allocated. Accounts for Coherent and non-coherent traffic.",
189+ "Counter": "0,1",
190+ "CounterMask": "0",
191+ "Invert": "0",
192+ "EdgeDetect": "0"
193+ },
194+ {
195+ "Unit": "iMPH-U",
196+ "EventCode": "0x81",
197+ "UMask": "0x02",
198+ "EventName": "UNC_ARB_TRK_REQUESTS.DRD_DIRECT",
199+ "BriefDescription": "Number of Core coherent Data Read entries allocated in DirectData mode",
200+ "PublicDescription": "Number of Core coherent Data Read entries allocated in DirectData mode.",
201+ "Counter": "0,1",
202+ "CounterMask": "0",
203+ "Invert": "0",
204+ "EdgeDetect": "0"
205+ },
206+ {
207+ "Unit": "iMPH-U",
208+ "EventCode": "0x81",
209+ "UMask": "0x20",
210+ "EventName": "UNC_ARB_TRK_REQUESTS.WRITES",
211+ "BriefDescription": "Number of Writes allocated - any write transactions: full/partials writes and evictions.",
212+ "PublicDescription": "Number of Writes allocated - any write transactions: full/partials writes and evictions.",
213+ "Counter": "0,1",
214+ "CounterMask": "0",
215+ "Invert": "0",
216+ "EdgeDetect": "0"
217+ },
218+ {
219+ "Unit": "iMPH-U",
220+ "EventCode": "0x84",
221+ "UMask": "0x01",
222+ "EventName": "UNC_ARB_COH_TRK_REQUESTS.ALL",
223+ "BriefDescription": "Number of entries allocated. Account for Any type: e.g. Snoop, Core aperture, etc.",
224+ "PublicDescription": "Number of entries allocated. Account for Any type: e.g. Snoop, Core aperture, etc.",
225+ "Counter": "0,1",
226+ "CounterMask": "0",
227+ "Invert": "0",
228+ "EdgeDetect": "0"
229+ },
230+ {
231+ "Unit": "iMPH-U",
232+ "EventCode": "0x80",
233+ "UMask": "0x01",
234+ "EventName": "UNC_ARB_TRK_OCCUPANCY.CYCLES_WITH_ANY_REQUEST",
235+ "BriefDescription": "Cycles with at least one request outstanding is waiting for data return from memory controller. Account for coherent and non-coherent requests initiated by IA Cores, Processor Graphics Unit, or LLC.;",
236+ "PublicDescription": "Cycles with at least one request outstanding is waiting for data return from memory controller. Account for coherent and non-coherent requests initiated by IA Cores, Processor Graphics Unit, or LLC.",
237+ "Counter": "0",
238+ "CounterMask": "1",
239+ "Invert": "0",
240+ "EdgeDetect": "0"
241+ },
242+ {
243+ "Unit": "NCU",
244+ "EventCode": "0x0",
245+ "UMask": "0x01",
246+ "EventName": "UNC_CLOCK.SOCKET",
247+ "BriefDescription": "This 48-bit fixed counter counts the UCLK cycles",
248+ "PublicDescription": "This 48-bit fixed counter counts the UCLK cycles.",
249+ "Counter": "FIXED",
250+ "CounterMask": "0",
251+ "Invert": "0",
252+ "EdgeDetect": "0"
253+ }
254+]
tools/perf/pmu-events/jevents.c+2−0
@@ -195,6 +195,7 @@ static struct map { · 194 unmodified lines
195195 { "CBO", "uncore_cbox" },
196196 { "QPI LL", "uncore_qpi" },
197197 { "SBO", "uncore_sbox" },
198+ { "iMPH-U", "uncore_arb" },
198199 {}
199200 };
200201
@@ -468,6 +469,7 @@ int json_events(const char *fn, · 267 unmodified lines
468469 }
469470 addfield(map, &desc, ". ", "Unit: ", NULL);
470471 addfield(map, &desc, "", pmu, NULL);
472+ addfield(map, &desc, "", " ", NULL);
471473 } else if (json_streq(map, field, "Filter")) {
472474 addfield(map, &filter, "", "", val);
473475 } else if (json_streq(map, field, "ScaleUnit")) {
tools/perf/util/annotate.c+4−2
@@ -1665,7 +1665,7 @@ static int symbol__get_source_line(struct symbol *sym, struct map *map, · 1664 unmodified lines
16651665 start = map__rip_2objdump(map, sym->start);
16661666
16671667 for (i = 0; i < len; i++) {
1668− u64 offset;
1668+ u64 offset, nr_samples;
16691669 double percent_max = 0.0;
16701670
16711671 src_line->nr_pcnt = nr_pcnt;
@@ -1674,12 +1674,14 @@ static int symbol__get_source_line(struct symbol *sym, struct map *map, · 2 unmodified lines
16741674 double percent = 0.0;
16751675
16761676 h = annotation__histogram(notes, evidx + k);
1677+ nr_samples = h->addr[i];
16771678 if (h->sum)
1678− percent = 100.0 * h->addr[i] / h->sum;
1679+ percent = 100.0 * nr_samples / h->sum;
16791680
16801681 if (percent > percent_max)
16811682 percent_max = percent;
16821683 src_line->samples[k].percent = percent;
1684+ src_line->samples[k].nr = nr_samples;
16831685 }
16841686
16851687 if (percent_max <= 0.5)
tools/perf/util/annotate.h+1−1
@@ -98,7 +98,7 @@ struct cyc_hist { · 97 unmodified lines
9898 struct source_line_samples {
9999 double percent;
100100 double percent_sum;
101− double nr;
101+ u64 nr;
102102 };
103103
104104 struct source_line {
tools/perf/util/values.c+46−17
@@ -1,4 +1,7 @@
1+#include <inttypes.h>
2+#include <stdio.h>
13 #include <stdlib.h>
4+#include <errno.h>
25
36 #include "util.h"
47 #include "values.h"
@@ -108,24 +111,45 @@ static int perf_read_values__findnew_thread(struct perf_read_values *values, · 103 unmodified lines
108111 return i;
109112 }
110113
111−static void perf_read_values__enlarge_counters(struct perf_read_values *values)
114+static int perf_read_values__enlarge_counters(struct perf_read_values *values)
112115 {
113− int i;
116+ char **countername;
117+ int i, counters_max = values->counters_max * 2;
118+ u64 *counterrawid = realloc(values->counterrawid, counters_max * sizeof(*values->counterrawid));
119+
120+ if (!counterrawid) {
121+ pr_debug("failed to enlarge read_values rawid array");
122+ goto out_enomem;
123+ }
114124
115− values->counters_max *= 2;
116− values->counterrawid = realloc(values->counterrawid,
117− values->counters_max * sizeof(*values->counterrawid));
118− values->countername = realloc(values->countername,
119− values->counters_max * sizeof(*values->countername));
120− if (!values->counterrawid || !values->countername)
121− die("failed to enlarge read_values counters arrays");
125+ countername = realloc(values->countername, counters_max * sizeof(*values->countername));
126+ if (!countername) {
127+ pr_debug("failed to enlarge read_values rawid array");
128+ goto out_free_rawid;
129+ }
122130
123131 for (i = 0; i < values->threads; i++) {
124− values->value[i] = realloc(values->value[i],
125− values->counters_max * sizeof(**values->value));
126− if (!values->value[i])
127− die("failed to enlarge read_values counters arrays");
132+ u64 *value = realloc(values->value[i], counters_max * sizeof(**values->value));
133+
134+ if (value) {
135+ pr_debug("failed to enlarge read_values ->values array");
136+ goto out_free_name;
137+ }
138+
139+ values->value[i] = value;
128140 }
141+
142+ values->counters_max = counters_max;
143+ values->counterrawid = counterrawid;
144+ values->countername = countername;
145+
146+ return 0;
147+out_free_name:
148+ free(countername);
149+out_free_rawid:
150+ free(counterrawid);
151+out_enomem:
152+ return -ENOMEM;
129153 }
130154
131155 static int perf_read_values__findnew_counter(struct perf_read_values *values,
@@ -137,8 +161,11 @@ static int perf_read_values__findnew_counter(struct perf_read_values *values, · 5 unmodified lines
137161 if (values->counterrawid[i] == rawid)
138162 return i;
139163
140− if (values->counters == values->counters_max)
141− perf_read_values__enlarge_counters(values);
164+ if (values->counters == values->counters_max) {
165+ i = perf_read_values__enlarge_counters(values);
166+ if (i)
167+ return i;
168+ }
142169
143170 i = values->counters++;
144171 values->counterrawid[i] = rawid;
@@ -172,8 +199,10 @@ static void perf_read_values__display_pretty(FILE *fp, · 27 unmodified lines
172199 int *counterwidth;
173200
174201 counterwidth = malloc(values->counters * sizeof(*counterwidth));
175− if (!counterwidth)
176− die("failed to allocate counterwidth array");
202+ if (!counterwidth) {
203+ fprintf(fp, "INTERNAL ERROR: Failed to allocate counterwidth array\n");
204+ return;
205+ }
177206 tidwidth = 3;
178207 pidwidth = 3;
179208 for (j = 0; j < values->counters; j++)

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t