blob: 9de202d22a3504cd214bdee04ff756e4b8448088 [file] [log] [blame]
Damjan Marion47d165e2019-01-28 13:27:31 +01001
2#include <perfmon/perfmon_intel.h>
3
4static perfmon_intel_pmc_cpu_model_t cpu_model_table[] = {
5 {0x55, 0x00, 1},
6 {0x55, 0x01, 1},
7 {0x55, 0x02, 1},
8 {0x55, 0x03, 1},
9 {0x55, 0x04, 1},
10};
11
12static perfmon_intel_pmc_event_t event_table[] = {
13 {
14 .event_code = {0x00},
15 .umask = 0x01,
16 .event_name = "inst_retired.any",
17 },
18 {
19 .event_code = {0x00},
20 .umask = 0x02,
21 .event_name = "cpu_clk_unhalted.thread",
22 },
23 {
24 .event_code = {0x00},
25 .umask = 0x02,
26 .event_name = "cpu_clk_unhalted.thread_any",
27 },
28 {
29 .event_code = {0x00},
30 .umask = 0x03,
31 .event_name = "cpu_clk_unhalted.ref_tsc",
32 },
33 {
34 .event_code = {0x03},
35 .umask = 0x02,
36 .event_name = "ld_blocks.store_forward",
37 },
38 {
39 .event_code = {0x03},
40 .umask = 0x08,
41 .event_name = "ld_blocks.no_sr",
42 },
43 {
44 .event_code = {0x07},
45 .umask = 0x01,
46 .event_name = "ld_blocks_partial.address_alias",
47 },
48 {
49 .event_code = {0x08},
50 .umask = 0x01,
51 .event_name = "dtlb_load_misses.miss_causes_a_walk",
52 },
53 {
54 .event_code = {0x08},
55 .umask = 0x02,
56 .event_name = "dtlb_load_misses.walk_completed_4k",
57 },
58 {
59 .event_code = {0x08},
60 .umask = 0x04,
61 .event_name = "dtlb_load_misses.walk_completed_2m_4m",
62 },
63 {
64 .event_code = {0x08},
65 .umask = 0x08,
66 .event_name = "dtlb_load_misses.walk_completed_1g",
67 },
68 {
69 .event_code = {0x08},
70 .umask = 0x0E,
71 .event_name = "dtlb_load_misses.walk_completed",
72 },
73 {
74 .event_code = {0x08},
75 .umask = 0x10,
76 .event_name = "dtlb_load_misses.walk_pending",
77 },
78 {
79 .event_code = {0x08},
80 .umask = 0x20,
81 .event_name = "dtlb_load_misses.stlb_hit",
82 },
83 {
84 .event_code = {0x0D},
85 .umask = 0x01,
86 .event_name = "int_misc.recovery_cycles",
87 },
88 {
89 .event_code = {0x0D},
90 .umask = 0x01,
Tom Seidenberg6c81f5a2020-07-10 15:49:03 +000091 .anyt = 1,
Damjan Marion47d165e2019-01-28 13:27:31 +010092 .event_name = "int_misc.recovery_cycles_any",
93 },
94 {
95 .event_code = {0x0D},
96 .umask = 0x80,
97 .event_name = "int_misc.clear_resteer_cycles",
98 },
99 {
100 .event_code = {0x0E},
101 .umask = 0x01,
Tom Seidenberg6c81f5a2020-07-10 15:49:03 +0000102 .cmask = 1,
103 .inv = 1,
Damjan Marion47d165e2019-01-28 13:27:31 +0100104 .event_name = "uops_issued.stall_cycles",
105 },
106 {
107 .event_code = {0x0E},
108 .umask = 0x01,
109 .event_name = "uops_issued.any",
110 },
111 {
112 .event_code = {0x0E},
113 .umask = 0x20,
114 .event_name = "uops_issued.slow_lea",
115 },
116 {
117 .event_code = {0x14},
118 .umask = 0x01,
119 .event_name = "arith.divider_active",
120 },
121 {
122 .event_code = {0x24},
123 .umask = 0x21,
124 .event_name = "l2_rqsts.demand_data_rd_miss",
125 },
126 {
127 .event_code = {0x24},
128 .umask = 0x22,
129 .event_name = "l2_rqsts.rfo_miss",
130 },
131 {
132 .event_code = {0x24},
133 .umask = 0x24,
134 .event_name = "l2_rqsts.code_rd_miss",
135 },
136 {
137 .event_code = {0x24},
138 .umask = 0x27,
139 .event_name = "l2_rqsts.all_demand_miss",
140 },
141 {
142 .event_code = {0x24},
143 .umask = 0x38,
144 .event_name = "l2_rqsts.pf_miss",
145 },
146 {
147 .event_code = {0x24},
148 .umask = 0x3F,
149 .event_name = "l2_rqsts.miss",
150 },
151 {
152 .event_code = {0x24},
153 .umask = 0xc1,
154 .event_name = "l2_rqsts.demand_data_rd_hit",
155 },
156 {
157 .event_code = {0x24},
158 .umask = 0xc2,
159 .event_name = "l2_rqsts.rfo_hit",
160 },
161 {
162 .event_code = {0x24},
163 .umask = 0xc4,
164 .event_name = "l2_rqsts.code_rd_hit",
165 },
166 {
167 .event_code = {0x24},
168 .umask = 0xd8,
169 .event_name = "l2_rqsts.pf_hit",
170 },
171 {
172 .event_code = {0x24},
173 .umask = 0xE1,
174 .event_name = "l2_rqsts.all_demand_data_rd",
175 },
176 {
177 .event_code = {0x24},
178 .umask = 0xE2,
179 .event_name = "l2_rqsts.all_rfo",
180 },
181 {
182 .event_code = {0x24},
183 .umask = 0xE4,
184 .event_name = "l2_rqsts.all_code_rd",
185 },
186 {
187 .event_code = {0x24},
188 .umask = 0xe7,
189 .event_name = "l2_rqsts.all_demand_references",
190 },
191 {
192 .event_code = {0x24},
193 .umask = 0xF8,
194 .event_name = "l2_rqsts.all_pf",
195 },
196 {
197 .event_code = {0x24},
198 .umask = 0xFF,
199 .event_name = "l2_rqsts.references",
200 },
201 {
202 .event_code = {0x28},
203 .umask = 0x07,
204 .event_name = "core_power.lvl0_turbo_license",
205 },
206 {
207 .event_code = {0x28},
208 .umask = 0x18,
209 .event_name = "core_power.lvl1_turbo_license",
210 },
211 {
212 .event_code = {0x28},
213 .umask = 0x20,
214 .event_name = "core_power.lvl2_turbo_license",
215 },
216 {
217 .event_code = {0x28},
218 .umask = 0x40,
219 .event_name = "core_power.throttle",
220 },
221 {
222 .event_code = {0x2E},
223 .umask = 0x41,
224 .event_name = "longest_lat_cache.miss",
225 },
226 {
227 .event_code = {0x2E},
228 .umask = 0x4F,
229 .event_name = "longest_lat_cache.reference",
230 },
231 {
232 .event_code = {0x32},
233 .umask = 0x01,
234 .event_name = "sw_prefetch_access.nta",
235 },
236 {
237 .event_code = {0x32},
238 .umask = 0x02,
239 .event_name = "sw_prefetch_access.t0",
240 },
241 {
242 .event_code = {0x32},
243 .umask = 0x04,
244 .event_name = "sw_prefetch_access.t1_t2",
245 },
246 {
247 .event_code = {0x32},
248 .umask = 0x08,
249 .event_name = "sw_prefetch_access.prefetchw",
250 },
251 {
252 .event_code = {0x3C},
253 .umask = 0x00,
254 .event_name = "cpu_clk_unhalted.thread_p",
255 },
256 {
257 .event_code = {0x3C},
258 .umask = 0x00,
Tom Seidenberg6c81f5a2020-07-10 15:49:03 +0000259 .anyt = 1,
Damjan Marion47d165e2019-01-28 13:27:31 +0100260 .event_name = "cpu_clk_unhalted.thread_p_any",
261 },
262 {
263 .event_code = {0x3C},
264 .umask = 0x00,
265 .event_name = "cpu_clk_unhalted.ring0_trans",
266 },
267 {
268 .event_code = {0x3C},
269 .umask = 0x01,
270 .event_name = "cpu_clk_thread_unhalted.ref_xclk",
271 },
272 {
273 .event_code = {0x3C},
274 .umask = 0x01,
Tom Seidenberg6c81f5a2020-07-10 15:49:03 +0000275 .anyt = 1,
Damjan Marion47d165e2019-01-28 13:27:31 +0100276 .event_name = "cpu_clk_thread_unhalted.ref_xclk_any",
277 },
278 {
279 .event_code = {0x3C},
280 .umask = 0x01,
281 .event_name = "cpu_clk_unhalted.ref_xclk_any",
282 },
283 {
284 .event_code = {0x3C},
285 .umask = 0x01,
286 .event_name = "cpu_clk_unhalted.ref_xclk",
287 },
288 {
289 .event_code = {0x3C},
290 .umask = 0x02,
291 .event_name = "cpu_clk_thread_unhalted.one_thread_active",
292 },
293 {
294 .event_code = {0x48},
295 .umask = 0x01,
Tom Seidenberg6c81f5a2020-07-10 15:49:03 +0000296 .cmask = 1,
Damjan Marion47d165e2019-01-28 13:27:31 +0100297 .event_name = "l1d_pend_miss.pending_cycles",
298 },
299 {
300 .event_code = {0x48},
301 .umask = 0x01,
302 .event_name = "l1d_pend_miss.pending",
303 },
304 {
305 .event_code = {0x48},
306 .umask = 0x02,
307 .event_name = "l1d_pend_miss.fb_full",
308 },
309 {
310 .event_code = {0x49},
311 .umask = 0x01,
312 .event_name = "dtlb_store_misses.miss_causes_a_walk",
313 },
314 {
315 .event_code = {0x49},
316 .umask = 0x02,
317 .event_name = "dtlb_store_misses.walk_completed_4k",
318 },
319 {
320 .event_code = {0x49},
321 .umask = 0x04,
322 .event_name = "dtlb_store_misses.walk_completed_2m_4m",
323 },
324 {
325 .event_code = {0x49},
326 .umask = 0x08,
327 .event_name = "dtlb_store_misses.walk_completed_1g",
328 },
329 {
330 .event_code = {0x49},
331 .umask = 0x0E,
332 .event_name = "dtlb_store_misses.walk_completed",
333 },
334 {
335 .event_code = {0x49},
336 .umask = 0x10,
Tom Seidenberg6c81f5a2020-07-10 15:49:03 +0000337 .cmask = 1,
338 .event_name = "dtlb_store_misses.walk_active",
339 },
340 {
341 .event_code = {0x49},
342 .umask = 0x10,
Damjan Marion47d165e2019-01-28 13:27:31 +0100343 .event_name = "dtlb_store_misses.walk_pending",
344 },
345 {
346 .event_code = {0x49},
347 .umask = 0x20,
348 .event_name = "dtlb_store_misses.stlb_hit",
349 },
350 {
351 .event_code = {0x4C},
352 .umask = 0x01,
353 .event_name = "load_hit_pre.sw_pf",
354 },
355 {
356 .event_code = {0x4F},
357 .umask = 0x10,
358 .event_name = "ept.walk_pending",
359 },
360 {
361 .event_code = {0x51},
362 .umask = 0x01,
363 .event_name = "l1d.replacement",
364 },
365 {
366 .event_code = {0x54},
367 .umask = 0x01,
368 .event_name = "tx_mem.abort_conflict",
369 },
370 {
371 .event_code = {0x54},
372 .umask = 0x02,
373 .event_name = "tx_mem.abort_capacity",
374 },
375 {
376 .event_code = {0x54},
377 .umask = 0x04,
378 .event_name = "tx_mem.abort_hle_store_to_elided_lock",
379 },
380 {
381 .event_code = {0x54},
382 .umask = 0x08,
383 .event_name = "tx_mem.abort_hle_elision_buffer_not_empty",
384 },
385 {
386 .event_code = {0x54},
387 .umask = 0x10,
388 .event_name = "tx_mem.abort_hle_elision_buffer_mismatch",
389 },
390 {
391 .event_code = {0x54},
392 .umask = 0x20,
393 .event_name = "tx_mem.abort_hle_elision_buffer_unsupported_alignment",
394 },
395 {
396 .event_code = {0x54},
397 .umask = 0x40,
398 .event_name = "tx_mem.hle_elision_buffer_full",
399 },
400 {
401 .event_code = {0x59},
402 .umask = 0x01,
403 .event_name = "partial_rat_stalls.scoreboard",
404 },
405 {
406 .event_code = {0x5d},
407 .umask = 0x01,
408 .event_name = "tx_exec.misc1",
409 },
410 {
411 .event_code = {0x5d},
412 .umask = 0x02,
413 .event_name = "tx_exec.misc2",
414 },
415 {
416 .event_code = {0x5d},
417 .umask = 0x04,
418 .event_name = "tx_exec.misc3",
419 },
420 {
421 .event_code = {0x5d},
422 .umask = 0x08,
423 .event_name = "tx_exec.misc4",
424 },
425 {
426 .event_code = {0x5d},
427 .umask = 0x10,
428 .event_name = "tx_exec.misc5",
429 },
430 {
431 .event_code = {0x5E},
432 .umask = 0x01,
Tom Seidenberg6c81f5a2020-07-10 15:49:03 +0000433 .cmask = 1,
434 .inv = 1,
Damjan Marion47d165e2019-01-28 13:27:31 +0100435 .event_name = "rs_events.empty_end",
436 },
437 {
438 .event_code = {0x5E},
439 .umask = 0x01,
440 .event_name = "rs_events.empty_cycles",
441 },
442 {
443 .event_code = {0x60},
444 .umask = 0x01,
Tom Seidenberg6c81f5a2020-07-10 15:49:03 +0000445 .cmask = 1,
Damjan Marion47d165e2019-01-28 13:27:31 +0100446 .event_name = "offcore_requests_outstanding.cycles_with_demand_data_rd",
447 },
448 {
449 .event_code = {0x60},
450 .umask = 0x01,
451 .event_name = "offcore_requests_outstanding.demand_data_rd",
452 },
453 {
454 .event_code = {0x60},
455 .umask = 0x02,
456 .event_name = "offcore_requests_outstanding.demand_code_rd",
457 },
458 {
459 .event_code = {0x60},
460 .umask = 0x02,
Tom Seidenberg6c81f5a2020-07-10 15:49:03 +0000461 .cmask = 1,
Damjan Marion47d165e2019-01-28 13:27:31 +0100462 .event_name = "offcore_requests_outstanding.cycles_with_demand_code_rd",
463 },
464 {
465 .event_code = {0x60},
466 .umask = 0x04,
467 .event_name = "offcore_requests_outstanding.demand_rfo",
468 },
469 {
470 .event_code = {0x60},
471 .umask = 0x04,
Tom Seidenberg6c81f5a2020-07-10 15:49:03 +0000472 .cmask = 1,
Damjan Marion47d165e2019-01-28 13:27:31 +0100473 .event_name = "offcore_requests_outstanding.cycles_with_demand_rfo",
474 },
475 {
476 .event_code = {0x60},
477 .umask = 0x08,
Tom Seidenberg6c81f5a2020-07-10 15:49:03 +0000478 .cmask = 1,
Damjan Marion47d165e2019-01-28 13:27:31 +0100479 .event_name = "offcore_requests_outstanding.cycles_with_data_rd",
480 },
481 {
482 .event_code = {0x60},
483 .umask = 0x08,
484 .event_name = "offcore_requests_outstanding.all_data_rd",
485 },
486 {
487 .event_code = {0x60},
488 .umask = 0x10,
489 .event_name = "offcore_requests_outstanding.l3_miss_demand_data_rd",
490 },
491 {
492 .event_code = {0x79},
493 .umask = 0x04,
Tom Seidenberg6c81f5a2020-07-10 15:49:03 +0000494 .cmask = 1,
Damjan Marion47d165e2019-01-28 13:27:31 +0100495 .event_name = "idq.mite_cycles",
496 },
497 {
498 .event_code = {0x79},
499 .umask = 0x04,
500 .event_name = "idq.mite_uops",
501 },
502 {
503 .event_code = {0x79},
504 .umask = 0x08,
Tom Seidenberg6c81f5a2020-07-10 15:49:03 +0000505 .cmask = 1,
Damjan Marion47d165e2019-01-28 13:27:31 +0100506 .event_name = "idq.dsb_cycles",
507 },
508 {
509 .event_code = {0x79},
510 .umask = 0x08,
511 .event_name = "idq.dsb_uops",
512 },
513 {
514 .event_code = {0x79},
515 .umask = 0x10,
516 .event_name = "idq.ms_dsb_cycles",
517 },
518 {
519 .event_code = {0x79},
520 .umask = 0x18,
Tom Seidenberg6c81f5a2020-07-10 15:49:03 +0000521 .cmask = 1,
Damjan Marion47d165e2019-01-28 13:27:31 +0100522 .event_name = "idq.all_dsb_cycles_any_uops",
523 },
524 {
525 .event_code = {0x79},
526 .umask = 0x18,
Tom Seidenberg6c81f5a2020-07-10 15:49:03 +0000527 .cmask = 4,
Damjan Marion47d165e2019-01-28 13:27:31 +0100528 .event_name = "idq.all_dsb_cycles_4_uops",
529 },
530 {
531 .event_code = {0x79},
532 .umask = 0x20,
533 .event_name = "idq.ms_mite_uops",
534 },
535 {
536 .event_code = {0x79},
537 .umask = 0x24,
538 .event_name = "idq.all_mite_cycles_any_uops",
539 },
540 {
541 .event_code = {0x79},
542 .umask = 0x24,
543 .event_name = "idq.all_mite_cycles_4_uops",
544 },
545 {
546 .event_code = {0x79},
547 .umask = 0x30,
Tom Seidenberg6c81f5a2020-07-10 15:49:03 +0000548 .cmask = 1,
Damjan Marion47d165e2019-01-28 13:27:31 +0100549 .event_name = "idq.ms_cycles",
550 },
551 {
552 .event_code = {0x79},
553 .umask = 0x30,
554 .event_name = "idq.ms_uops",
555 },
556 {
557 .event_code = {0x79},
558 .umask = 0x30,
Tom Seidenberg6c81f5a2020-07-10 15:49:03 +0000559 .edge = 1,
Damjan Marion47d165e2019-01-28 13:27:31 +0100560 .event_name = "idq.ms_switches",
561 },
562 {
563 .event_code = {0x80},
564 .umask = 0x04,
565 .event_name = "icache_16b.ifdata_stall",
566 },
567 {
568 .event_code = {0x83},
569 .umask = 0x01,
570 .event_name = "icache_64b.iftag_hit",
571 },
572 {
573 .event_code = {0x83},
574 .umask = 0x02,
575 .event_name = "icache_64b.iftag_miss",
576 },
577 {
578 .event_code = {0x83},
579 .umask = 0x04,
580 .event_name = "icache_64b.iftag_stall",
581 },
582 {
583 .event_code = {0x85},
584 .umask = 0x01,
585 .event_name = "itlb_misses.miss_causes_a_walk",
586 },
587 {
588 .event_code = {0x85},
589 .umask = 0x02,
590 .event_name = "itlb_misses.walk_completed_4k",
591 },
592 {
593 .event_code = {0x85},
594 .umask = 0x04,
595 .event_name = "itlb_misses.walk_completed_2m_4m",
596 },
597 {
598 .event_code = {0x85},
599 .umask = 0x08,
600 .event_name = "itlb_misses.walk_completed_1g",
601 },
602 {
603 .event_code = {0x85},
604 .umask = 0x0E,
605 .event_name = "itlb_misses.walk_completed",
606 },
607 {
608 .event_code = {0x85},
609 .umask = 0x10,
610 .event_name = "itlb_misses.walk_pending",
611 },
612 {
613 .event_code = {0x85},
614 .umask = 0x10,
615 .event_name = "itlb_misses.walk_active",
616 },
617 {
618 .event_code = {0x85},
619 .umask = 0x20,
620 .event_name = "itlb_misses.stlb_hit",
621 },
622 {
623 .event_code = {0x87},
624 .umask = 0x01,
625 .event_name = "ild_stall.lcp",
626 },
627 {
628 .event_code = {0x9C},
629 .umask = 0x01,
Tom Seidenberg6c81f5a2020-07-10 15:49:03 +0000630 .cmask = 1,
631 .inv = 1,
Damjan Marion47d165e2019-01-28 13:27:31 +0100632 .event_name = "idq_uops_not_delivered.cycles_fe_was_ok",
633 },
634 {
635 .event_code = {0x9C},
636 .umask = 0x01,
Tom Seidenberg6c81f5a2020-07-10 15:49:03 +0000637 .cmask = 1,
Damjan Marion47d165e2019-01-28 13:27:31 +0100638 .event_name = "idq_uops_not_delivered.cycles_le_3_uop_deliv.core",
639 },
640 {
641 .event_code = {0x9C},
642 .umask = 0x01,
Tom Seidenberg6c81f5a2020-07-10 15:49:03 +0000643 .cmask = 2,
Damjan Marion47d165e2019-01-28 13:27:31 +0100644 .event_name = "idq_uops_not_delivered.cycles_le_2_uop_deliv.core",
645 },
646 {
647 .event_code = {0x9C},
648 .umask = 0x01,
Tom Seidenberg6c81f5a2020-07-10 15:49:03 +0000649 .cmask = 3,
Damjan Marion47d165e2019-01-28 13:27:31 +0100650 .event_name = "idq_uops_not_delivered.cycles_le_1_uop_deliv.core",
651 },
652 {
653 .event_code = {0x9C},
654 .umask = 0x01,
Tom Seidenberg6c81f5a2020-07-10 15:49:03 +0000655 .cmask = 4,
Damjan Marion47d165e2019-01-28 13:27:31 +0100656 .event_name = "idq_uops_not_delivered.cycles_0_uops_deliv.core",
657 },
658 {
659 .event_code = {0x9C},
660 .umask = 0x01,
661 .event_name = "idq_uops_not_delivered.core",
662 },
663 {
664 .event_code = {0xA1},
665 .umask = 0x01,
666 .event_name = "uops_dispatched_port.port_0",
667 },
668 {
669 .event_code = {0xA1},
670 .umask = 0x02,
671 .event_name = "uops_dispatched_port.port_1",
672 },
673 {
674 .event_code = {0xA1},
675 .umask = 0x04,
676 .event_name = "uops_dispatched_port.port_2",
677 },
678 {
679 .event_code = {0xA1},
680 .umask = 0x08,
681 .event_name = "uops_dispatched_port.port_3",
682 },
683 {
684 .event_code = {0xA1},
685 .umask = 0x10,
686 .event_name = "uops_dispatched_port.port_4",
687 },
688 {
689 .event_code = {0xA1},
690 .umask = 0x20,
691 .event_name = "uops_dispatched_port.port_5",
692 },
693 {
694 .event_code = {0xA1},
695 .umask = 0x40,
696 .event_name = "uops_dispatched_port.port_6",
697 },
698 {
699 .event_code = {0xA1},
700 .umask = 0x80,
701 .event_name = "uops_dispatched_port.port_7",
702 },
703 {
704 .event_code = {0xa2},
705 .umask = 0x01,
706 .event_name = "resource_stalls.any",
707 },
708 {
709 .event_code = {0xA2},
710 .umask = 0x08,
711 .event_name = "resource_stalls.sb",
712 },
713 {
714 .event_code = {0xA3},
715 .umask = 0x01,
Tom Seidenberg6c81f5a2020-07-10 15:49:03 +0000716 .cmask = 1,
Damjan Marion47d165e2019-01-28 13:27:31 +0100717 .event_name = "cycle_activity.cycles_l2_miss",
718 },
719 {
720 .event_code = {0xA3},
721 .umask = 0x04,
Tom Seidenberg6c81f5a2020-07-10 15:49:03 +0000722 .cmask = 4,
Damjan Marion47d165e2019-01-28 13:27:31 +0100723 .event_name = "cycle_activity.stalls_total",
724 },
725 {
726 .event_code = {0xA3},
727 .umask = 0x05,
Tom Seidenberg6c81f5a2020-07-10 15:49:03 +0000728 .cmask = 5,
Damjan Marion47d165e2019-01-28 13:27:31 +0100729 .event_name = "cycle_activity.stalls_l2_miss",
730 },
731 {
732 .event_code = {0xA3},
733 .umask = 0x08,
Tom Seidenberg6c81f5a2020-07-10 15:49:03 +0000734 .cmask = 8,
Damjan Marion47d165e2019-01-28 13:27:31 +0100735 .event_name = "cycle_activity.cycles_l1d_miss",
736 },
737 {
738 .event_code = {0xA3},
739 .umask = 0x0C,
Tom Seidenberg6c81f5a2020-07-10 15:49:03 +0000740 .cmask = 12,
Damjan Marion47d165e2019-01-28 13:27:31 +0100741 .event_name = "cycle_activity.stalls_l1d_miss",
742 },
743 {
744 .event_code = {0xA3},
745 .umask = 0x10,
Tom Seidenberg6c81f5a2020-07-10 15:49:03 +0000746 .cmask = 16,
Damjan Marion47d165e2019-01-28 13:27:31 +0100747 .event_name = "cycle_activity.cycles_mem_any",
748 },
749 {
750 .event_code = {0xA3},
751 .umask = 0x14,
Tom Seidenberg6c81f5a2020-07-10 15:49:03 +0000752 .cmask = 20,
Damjan Marion47d165e2019-01-28 13:27:31 +0100753 .event_name = "cycle_activity.stalls_mem_any",
754 },
755 {
756 .event_code = {0xA6},
757 .umask = 0x01,
758 .event_name = "exe_activity.exe_bound_0_ports",
759 },
760 {
761 .event_code = {0xA6},
762 .umask = 0x02,
763 .event_name = "exe_activity.1_ports_util",
764 },
765 {
766 .event_code = {0xA6},
767 .umask = 0x04,
768 .event_name = "exe_activity.2_ports_util",
769 },
770 {
771 .event_code = {0xA6},
772 .umask = 0x08,
773 .event_name = "exe_activity.3_ports_util",
774 },
775 {
776 .event_code = {0xA6},
777 .umask = 0x10,
778 .event_name = "exe_activity.4_ports_util",
779 },
780 {
781 .event_code = {0xA6},
782 .umask = 0x40,
783 .event_name = "exe_activity.bound_on_stores",
784 },
785 {
786 .event_code = {0xA8},
787 .umask = 0x01,
788 .event_name = "lsd.uops",
789 },
790 {
791 .event_code = {0xA8},
792 .umask = 0x01,
Tom Seidenberg6c81f5a2020-07-10 15:49:03 +0000793 .cmask = 4,
Damjan Marion47d165e2019-01-28 13:27:31 +0100794 .event_name = "lsd.cycles_4_uops",
795 },
796 {
797 .event_code = {0xA8},
798 .umask = 0x01,
Tom Seidenberg6c81f5a2020-07-10 15:49:03 +0000799 .cmask = 1,
Damjan Marion47d165e2019-01-28 13:27:31 +0100800 .event_name = "lsd.cycles_active",
801 },
802 {
803 .event_code = {0xAB},
804 .umask = 0x02,
805 .event_name = "dsb2mite_switches.penalty_cycles",
806 },
807 {
808 .event_code = {0xAE},
809 .umask = 0x01,
810 .event_name = "itlb.itlb_flush",
811 },
812 {
813 .event_code = {0xB0},
814 .umask = 0x01,
815 .event_name = "offcore_requests.demand_data_rd",
816 },
817 {
818 .event_code = {0xB0},
819 .umask = 0x02,
820 .event_name = "offcore_requests.demand_code_rd",
821 },
822 {
823 .event_code = {0xB0},
824 .umask = 0x04,
825 .event_name = "offcore_requests.demand_rfo",
826 },
827 {
828 .event_code = {0xB0},
829 .umask = 0x08,
830 .event_name = "offcore_requests.all_data_rd",
831 },
832 {
833 .event_code = {0xB0},
834 .umask = 0x10,
835 .event_name = "offcore_requests.l3_miss_demand_data_rd",
836 },
837 {
838 .event_code = {0xB0},
839 .umask = 0x80,
840 .event_name = "offcore_requests.all_requests",
841 },
842 {
843 .event_code = {0xB1},
844 .umask = 0x01,
Tom Seidenberg6c81f5a2020-07-10 15:49:03 +0000845 .cmask = 4,
Damjan Marion47d165e2019-01-28 13:27:31 +0100846 .event_name = "uops_executed.cycles_ge_4_uops_exec",
847 },
848 {
849 .event_code = {0xB1},
850 .umask = 0x01,
Tom Seidenberg6c81f5a2020-07-10 15:49:03 +0000851 .cmask = 3,
Damjan Marion47d165e2019-01-28 13:27:31 +0100852 .event_name = "uops_executed.cycles_ge_3_uops_exec",
853 },
854 {
855 .event_code = {0xB1},
856 .umask = 0x01,
Tom Seidenberg6c81f5a2020-07-10 15:49:03 +0000857 .cmask = 2,
Damjan Marion47d165e2019-01-28 13:27:31 +0100858 .event_name = "uops_executed.cycles_ge_2_uops_exec",
859 },
860 {
861 .event_code = {0xB1},
862 .umask = 0x01,
Tom Seidenberg6c81f5a2020-07-10 15:49:03 +0000863 .cmask = 1,
Damjan Marion47d165e2019-01-28 13:27:31 +0100864 .event_name = "uops_executed.cycles_ge_1_uop_exec",
865 },
866 {
867 .event_code = {0xB1},
868 .umask = 0x01,
Tom Seidenberg6c81f5a2020-07-10 15:49:03 +0000869 .cmask = 1,
870 .inv = 1,
Damjan Marion47d165e2019-01-28 13:27:31 +0100871 .event_name = "uops_executed.stall_cycles",
872 },
873 {
874 .event_code = {0xB1},
875 .umask = 0x01,
876 .event_name = "uops_executed.thread",
877 },
878 {
879 .event_code = {0xB1},
880 .umask = 0x02,
881 .event_name = "uops_executed.core",
882 },
883 {
884 .event_code = {0xB1},
885 .umask = 0x02,
Tom Seidenberg6c81f5a2020-07-10 15:49:03 +0000886 .cmask = 1,
887 .inv = 1,
Damjan Marion47d165e2019-01-28 13:27:31 +0100888 .event_name = "uops_executed.core_cycles_none",
889 },
890 {
891 .event_code = {0xB1},
892 .umask = 0x02,
Tom Seidenberg6c81f5a2020-07-10 15:49:03 +0000893 .cmask = 4,
Damjan Marion47d165e2019-01-28 13:27:31 +0100894 .event_name = "uops_executed.core_cycles_ge_4",
895 },
896 {
897 .event_code = {0xB1},
898 .umask = 0x02,
Tom Seidenberg6c81f5a2020-07-10 15:49:03 +0000899 .cmask = 3,
Damjan Marion47d165e2019-01-28 13:27:31 +0100900 .event_name = "uops_executed.core_cycles_ge_3",
901 },
902 {
903 .event_code = {0xB1},
904 .umask = 0x02,
Tom Seidenberg6c81f5a2020-07-10 15:49:03 +0000905 .cmask = 2,
Damjan Marion47d165e2019-01-28 13:27:31 +0100906 .event_name = "uops_executed.core_cycles_ge_2",
907 },
908 {
909 .event_code = {0xB1},
910 .umask = 0x02,
Tom Seidenberg6c81f5a2020-07-10 15:49:03 +0000911 .cmask = 1,
Damjan Marion47d165e2019-01-28 13:27:31 +0100912 .event_name = "uops_executed.core_cycles_ge_1",
913 },
914 {
915 .event_code = {0xB1},
916 .umask = 0x10,
917 .event_name = "uops_executed.x87",
918 },
919 {
920 .event_code = {0xB2},
921 .umask = 0x01,
922 .event_name = "offcore_requests_buffer.sq_full",
923 },
924 {
925 .event_code = {0xB7, 0xBB},
926 .umask = 0x01,
927 .event_name = "offcore_response",
928 },
929 {
930 .event_code = {0xBD},
931 .umask = 0x01,
932 .event_name = "tlb_flush.dtlb_thread",
933 },
934 {
935 .event_code = {0xBD},
936 .umask = 0x20,
937 .event_name = "tlb_flush.stlb_any",
938 },
939 {
940 .event_code = {0xC0},
941 .umask = 0x00,
942 .event_name = "inst_retired.any_p",
943 },
944 {
945 .event_code = {0xC0},
946 .umask = 0x01,
947 .event_name = "inst_retired.prec_dist",
948 },
949 {
950 .event_code = {0xC0},
951 .umask = 0x01,
Tom Seidenberg6c81f5a2020-07-10 15:49:03 +0000952 .cmask = 10,
Damjan Marion47d165e2019-01-28 13:27:31 +0100953 .event_name = "inst_retired.total_cycles_ps",
954 },
955 {
956 .event_code = {0xC2},
957 .umask = 0x02,
Tom Seidenberg6c81f5a2020-07-10 15:49:03 +0000958 .cmask = 10,
959 .inv = 1,
Damjan Marion47d165e2019-01-28 13:27:31 +0100960 .event_name = "uops_retired.total_cycles",
961 },
962 {
963 .event_code = {0xC2},
964 .umask = 0x02,
Tom Seidenberg6c81f5a2020-07-10 15:49:03 +0000965 .cmask = 1,
966 .inv = 1,
Damjan Marion47d165e2019-01-28 13:27:31 +0100967 .event_name = "uops_retired.stall_cycles",
968 },
969 {
970 .event_code = {0xC2},
971 .umask = 0x02,
972 .event_name = "uops_retired.retire_slots",
973 },
974 {
975 .event_code = {0xC3},
976 .umask = 0x01,
Tom Seidenberg6c81f5a2020-07-10 15:49:03 +0000977 .cmask = 1,
978 .edge = 1,
Damjan Marion47d165e2019-01-28 13:27:31 +0100979 .event_name = "machine_clears.count",
980 },
981 {
982 .event_code = {0xC3},
983 .umask = 0x02,
984 .event_name = "machine_clears.memory_ordering",
985 },
986 {
987 .event_code = {0xC3},
988 .umask = 0x04,
989 .event_name = "machine_clears.smc",
990 },
991 {
992 .event_code = {0xC4},
993 .umask = 0x00,
994 .event_name = "br_inst_retired.all_branches",
995 },
996 {
997 .event_code = {0xC4},
998 .umask = 0x01,
999 .event_name = "br_inst_retired.conditional",
1000 },
1001 {
1002 .event_code = {0xC4},
1003 .umask = 0x02,
1004 .event_name = "br_inst_retired.near_call",
1005 },
1006 {
1007 .event_code = {0xC4},
1008 .umask = 0x04,
1009 .event_name = "br_inst_retired.all_branches_pebs",
1010 },
1011 {
1012 .event_code = {0xC4},
1013 .umask = 0x08,
1014 .event_name = "br_inst_retired.near_return",
1015 },
1016 {
1017 .event_code = {0xC4},
1018 .umask = 0x10,
1019 .event_name = "br_inst_retired.not_taken",
1020 },
1021 {
1022 .event_code = {0xC4},
1023 .umask = 0x20,
1024 .event_name = "br_inst_retired.near_taken",
1025 },
1026 {
1027 .event_code = {0xC4},
1028 .umask = 0x40,
1029 .event_name = "br_inst_retired.far_branch",
1030 },
1031 {
1032 .event_code = {0xC5},
1033 .umask = 0x00,
1034 .event_name = "br_misp_retired.all_branches",
1035 },
1036 {
1037 .event_code = {0xC5},
1038 .umask = 0x01,
1039 .event_name = "br_misp_retired.conditional",
1040 },
1041 {
1042 .event_code = {0xC5},
1043 .umask = 0x02,
1044 .event_name = "br_misp_retired.near_call",
1045 },
1046 {
1047 .event_code = {0xC5},
1048 .umask = 0x04,
1049 .event_name = "br_misp_retired.all_branches_pebs",
1050 },
1051 {
1052 .event_code = {0xC5},
1053 .umask = 0x20,
1054 .event_name = "br_misp_retired.near_taken",
1055 },
1056 {
1057 .event_code = {0xC7},
1058 .umask = 0x01,
1059 .event_name = "fp_arith_inst_retired.scalar_double",
1060 },
1061 {
1062 .event_code = {0xC7},
1063 .umask = 0x02,
1064 .event_name = "fp_arith_inst_retired.scalar_single",
1065 },
1066 {
1067 .event_code = {0xC7},
1068 .umask = 0x04,
1069 .event_name = "fp_arith_inst_retired.128b_packed_double",
1070 },
1071 {
1072 .event_code = {0xC7},
1073 .umask = 0x08,
1074 .event_name = "fp_arith_inst_retired.128b_packed_single",
1075 },
1076 {
1077 .event_code = {0xC7},
1078 .umask = 0x10,
1079 .event_name = "fp_arith_inst_retired.256b_packed_double",
1080 },
1081 {
1082 .event_code = {0xC7},
1083 .umask = 0x20,
1084 .event_name = "fp_arith_inst_retired.256b_packed_single",
1085 },
1086 {
1087 .event_code = {0xC7},
1088 .umask = 0x40,
1089 .event_name = "fp_arith_inst_retired.512b_packed_double",
1090 },
1091 {
1092 .event_code = {0xC7},
1093 .umask = 0x80,
1094 .event_name = "fp_arith_inst_retired.512b_packed_single",
1095 },
1096 {
1097 .event_code = {0xC8},
1098 .umask = 0x01,
1099 .event_name = "hle_retired.start",
1100 },
1101 {
1102 .event_code = {0xC8},
1103 .umask = 0x02,
1104 .event_name = "hle_retired.commit",
1105 },
1106 {
1107 .event_code = {0xC8},
1108 .umask = 0x04,
1109 .event_name = "hle_retired.aborted",
1110 },
1111 {
1112 .event_code = {0xC8},
1113 .umask = 0x08,
1114 .event_name = "hle_retired.aborted_mem",
1115 },
1116 {
1117 .event_code = {0xC8},
1118 .umask = 0x10,
1119 .event_name = "hle_retired.aborted_timer",
1120 },
1121 {
1122 .event_code = {0xC8},
1123 .umask = 0x20,
1124 .event_name = "hle_retired.aborted_unfriendly",
1125 },
1126 {
1127 .event_code = {0xC8},
1128 .umask = 0x40,
1129 .event_name = "hle_retired.aborted_memtype",
1130 },
1131 {
1132 .event_code = {0xC8},
1133 .umask = 0x80,
1134 .event_name = "hle_retired.aborted_events",
1135 },
1136 {
1137 .event_code = {0xC9},
1138 .umask = 0x01,
1139 .event_name = "rtm_retired.start",
1140 },
1141 {
1142 .event_code = {0xC9},
1143 .umask = 0x02,
1144 .event_name = "rtm_retired.commit",
1145 },
1146 {
1147 .event_code = {0xC9},
1148 .umask = 0x04,
1149 .event_name = "rtm_retired.aborted",
1150 },
1151 {
1152 .event_code = {0xC9},
1153 .umask = 0x08,
1154 .event_name = "rtm_retired.aborted_mem",
1155 },
1156 {
1157 .event_code = {0xC9},
1158 .umask = 0x10,
1159 .event_name = "rtm_retired.aborted_timer",
1160 },
1161 {
1162 .event_code = {0xC9},
1163 .umask = 0x20,
1164 .event_name = "rtm_retired.aborted_unfriendly",
1165 },
1166 {
1167 .event_code = {0xC9},
1168 .umask = 0x40,
1169 .event_name = "rtm_retired.aborted_memtype",
1170 },
1171 {
1172 .event_code = {0xC9},
1173 .umask = 0x80,
1174 .event_name = "rtm_retired.aborted_events",
1175 },
1176 {
1177 .event_code = {0xCA},
1178 .umask = 0x1E,
Tom Seidenberg6c81f5a2020-07-10 15:49:03 +00001179 .cmask = 1,
Damjan Marion47d165e2019-01-28 13:27:31 +01001180 .event_name = "fp_assist.any",
1181 },
1182 {
1183 .event_code = {0xCB},
1184 .umask = 0x01,
1185 .event_name = "hw_interrupts.received",
1186 },
1187 {
1188 .event_code = {0xCC},
1189 .umask = 0x20,
1190 .event_name = "rob_misc_events.lbr_inserts",
1191 },
1192 {
1193 .event_code = {0xCC},
1194 .umask = 0x40,
1195 .event_name = "rob_misc_events.pause_inst",
1196 },
1197 {
1198 .event_code = {0xD0},
1199 .umask = 0x11,
1200 .event_name = "mem_inst_retired.stlb_miss_loads",
1201 },
1202 {
1203 .event_code = {0xD0},
1204 .umask = 0x12,
1205 .event_name = "mem_inst_retired.stlb_miss_stores",
1206 },
1207 {
1208 .event_code = {0xD0},
1209 .umask = 0x21,
1210 .event_name = "mem_inst_retired.lock_loads",
1211 },
1212 {
1213 .event_code = {0xD0},
1214 .umask = 0x41,
1215 .event_name = "mem_inst_retired.split_loads",
1216 },
1217 {
1218 .event_code = {0xD0},
1219 .umask = 0x42,
1220 .event_name = "mem_inst_retired.split_stores",
1221 },
1222 {
1223 .event_code = {0xD0},
1224 .umask = 0x81,
1225 .event_name = "mem_inst_retired.all_loads",
1226 },
1227 {
1228 .event_code = {0xD0},
1229 .umask = 0x82,
1230 .event_name = "mem_inst_retired.all_stores",
1231 },
1232 {
1233 .event_code = {0xD1},
1234 .umask = 0x01,
1235 .event_name = "mem_load_retired.l1_hit",
1236 },
1237 {
1238 .event_code = {0xD1},
1239 .umask = 0x02,
1240 .event_name = "mem_load_retired.l2_hit",
1241 },
1242 {
1243 .event_code = {0xD1},
1244 .umask = 0x04,
1245 .event_name = "mem_load_retired.l3_hit",
1246 },
1247 {
1248 .event_code = {0xD1},
1249 .umask = 0x08,
1250 .event_name = "mem_load_retired.l1_miss",
1251 },
1252 {
1253 .event_code = {0xD1},
1254 .umask = 0x10,
1255 .event_name = "mem_load_retired.l2_miss",
1256 },
1257 {
1258 .event_code = {0xD1},
1259 .umask = 0x20,
1260 .event_name = "mem_load_retired.l3_miss",
1261 },
1262 {
1263 .event_code = {0xD1},
1264 .umask = 0x40,
1265 .event_name = "mem_load_retired.fb_hit",
1266 },
1267 {
1268 .event_code = {0xD2},
1269 .umask = 0x01,
1270 .event_name = "mem_load_l3_hit_retired.xsnp_miss",
1271 },
1272 {
1273 .event_code = {0xD2},
1274 .umask = 0x02,
1275 .event_name = "mem_load_l3_hit_retired.xsnp_hit",
1276 },
1277 {
1278 .event_code = {0xD2},
1279 .umask = 0x04,
1280 .event_name = "mem_load_l3_hit_retired.xsnp_hitm",
1281 },
1282 {
1283 .event_code = {0xD2},
1284 .umask = 0x08,
1285 .event_name = "mem_load_l3_hit_retired.xsnp_none",
1286 },
1287 {
1288 .event_code = {0xD3},
1289 .umask = 0x01,
1290 .event_name = "mem_load_l3_miss_retired.local_dram",
1291 },
1292 {
1293 .event_code = {0xD3},
1294 .umask = 0x02,
1295 .event_name = "mem_load_l3_miss_retired.remote_dram",
1296 },
1297 {
1298 .event_code = {0xD3},
1299 .umask = 0x04,
1300 .event_name = "mem_load_l3_miss_retired.remote_hitm",
1301 },
1302 {
1303 .event_code = {0xD3},
1304 .umask = 0x08,
1305 .event_name = "mem_load_l3_miss_retired.remote_fwd",
1306 },
1307 {
1308 .event_code = {0xD4},
1309 .umask = 0x04,
1310 .event_name = "mem_load_misc_retired.uc",
1311 },
1312 {
1313 .event_code = {0xE6},
1314 .umask = 0x01,
1315 .event_name = "baclears.any",
1316 },
1317 {
1318 .event_code = {0xEF},
1319 .umask = 0x01,
1320 .event_name = "core_snoop_response.rsp_ihiti",
1321 },
1322 {
1323 .event_code = {0xEF},
1324 .umask = 0x02,
1325 .event_name = "core_snoop_response.rsp_ihitfse",
1326 },
1327 {
1328 .event_code = {0xEF},
1329 .umask = 0x04,
1330 .event_name = "core_snoop_response.rsp_shitfse",
1331 },
1332 {
1333 .event_code = {0xEF},
1334 .umask = 0x08,
1335 .event_name = "core_snoop_response.rsp_sfwdm",
1336 },
1337 {
1338 .event_code = {0xEF},
1339 .umask = 0x10,
1340 .event_name = "core_snoop_response.rsp_ifwdm",
1341 },
1342 {
1343 .event_code = {0xEF},
1344 .umask = 0x20,
1345 .event_name = "core_snoop_response.rsp_ifwdfe",
1346 },
1347 {
1348 .event_code = {0xEF},
1349 .umask = 0x40,
1350 .event_name = "core_snoop_response.rsp_sfwdfe",
1351 },
1352 {
1353 .event_code = {0xF0},
1354 .umask = 0x40,
1355 .event_name = "l2_trans.l2_wb",
1356 },
1357 {
1358 .event_code = {0xF1},
1359 .umask = 0x1F,
1360 .event_name = "l2_lines_in.all",
1361 },
1362 {
1363 .event_code = {0xF2},
1364 .umask = 0x01,
1365 .event_name = "l2_lines_out.silent",
1366 },
1367 {
1368 .event_code = {0xF2},
1369 .umask = 0x02,
1370 .event_name = "l2_lines_out.non_silent",
1371 },
1372 {
1373 .event_code = {0xF2},
1374 .umask = 0x04,
1375 .event_name = "l2_lines_out.useless_pref",
1376 },
1377 {
1378 .event_code = {0xF2},
1379 .umask = 0x04,
1380 .event_name = "l2_lines_out.useless_hwpf",
1381 },
1382 {
1383 .event_code = {0xF4},
1384 .umask = 0x10,
1385 .event_name = "sq_misc.split_lock",
1386 },
1387 {
1388 .event_code = {0xFE},
1389 .umask = 0x02,
1390 .event_name = "idi_misc.wb_upgrade",
1391 },
1392 {
1393 .event_code = {0xFE},
1394 .umask = 0x04,
1395 .event_name = "idi_misc.wb_downgrade",
1396 },
1397 {
1398 .event_code = {0xB7, 0xBB},
1399 .umask = 0x01,
1400 .event_name = "offcore_response.demand_data_rd.l3_hit.snoop_hit_with_fwd",
1401 },
1402 {
1403 .event_code = {0xB7, 0xBB},
1404 .umask = 0x01,
1405 .event_name = "offcore_response.demand_rfo.l3_hit.snoop_hit_with_fwd",
1406 },
1407 {
1408 .event_code = {0xB7, 0xBB},
1409 .umask = 0x01,
1410 .event_name = "offcore_response.demand_code_rd.l3_hit.snoop_hit_with_fwd",
1411 },
1412 {
1413 .event_code = {0xB7, 0xBB},
1414 .umask = 0x01,
1415 .event_name = "offcore_response.pf_l2_data_rd.l3_hit.snoop_hit_with_fwd",
1416 },
1417 {
1418 .event_code = {0xB7, 0xBB},
1419 .umask = 0x01,
1420 .event_name = "offcore_response.pf_l2_rfo.l3_hit.snoop_hit_with_fwd",
1421 },
1422 {
1423 .event_code = {0xB7, 0xBB},
1424 .umask = 0x01,
1425 .event_name = "offcore_response.pf_l3_data_rd.l3_hit.snoop_hit_with_fwd",
1426 },
1427 {
1428 .event_code = {0xB7, 0xBB},
1429 .umask = 0x01,
1430 .event_name = "offcore_response.pf_l3_rfo.l3_hit.snoop_hit_with_fwd",
1431 },
1432 {
1433 .event_code = {0xB7, 0xBB},
1434 .umask = 0x01,
1435 .event_name = "offcore_response.pf_l1d_and_sw.l3_hit.snoop_hit_with_fwd",
1436 },
1437 {
1438 .event_code = {0xB7, 0xBB},
1439 .umask = 0x01,
1440 .event_name = "offcore_response.all_pf_data_rd.l3_hit.snoop_hit_with_fwd",
1441 },
1442 {
1443 .event_code = {0xB7, 0xBB},
1444 .umask = 0x01,
1445 .event_name = "offcore_response.all_pf_rfo.l3_hit.snoop_hit_with_fwd",
1446 },
1447 {
1448 .event_code = {0xB7, 0xBB},
1449 .umask = 0x01,
1450 .event_name = "offcore_response.all_data_rd.l3_hit.snoop_hit_with_fwd",
1451 },
1452 {
1453 .event_code = {0xB7, 0xBB},
1454 .umask = 0x01,
1455 .event_name = "offcore_response.all_rfo.l3_hit.snoop_hit_with_fwd",
1456 },
1457 {
1458 .event_name = 0,
1459 },
1460};
1461
1462PERFMON_REGISTER_INTEL_PMC (cpu_model_table, event_table);
1463