blob: 8d3bb3f47b68f34d35334d69cdc75b59b441f27a [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 {0x56, 0x00, 0},
6
7};
8
9static perfmon_intel_pmc_event_t event_table[] = {
10 {
11 .event_code = {0x00},
12 .umask = 0x01,
13 .event_name = "inst_retired.any",
14 },
15 {
16 .event_code = {0x00},
17 .umask = 0x02,
18 .event_name = "cpu_clk_unhalted.thread",
19 },
20 {
21 .event_code = {0x00},
22 .umask = 0x02,
23 .event_name = "cpu_clk_unhalted.thread_any",
24 },
25 {
26 .event_code = {0x00},
27 .umask = 0x03,
28 .event_name = "cpu_clk_unhalted.ref_tsc",
29 },
30 {
31 .event_code = {0x03},
32 .umask = 0x02,
33 .event_name = "ld_blocks.store_forward",
34 },
35 {
36 .event_code = {0x03},
37 .umask = 0x08,
38 .event_name = "ld_blocks.no_sr",
39 },
40 {
41 .event_code = {0x05},
42 .umask = 0x01,
43 .event_name = "misalign_mem_ref.loads",
44 },
45 {
46 .event_code = {0x05},
47 .umask = 0x02,
48 .event_name = "misalign_mem_ref.stores",
49 },
50 {
51 .event_code = {0x07},
52 .umask = 0x01,
53 .event_name = "ld_blocks_partial.address_alias",
54 },
55 {
56 .event_code = {0x08},
57 .umask = 0x01,
58 .event_name = "dtlb_load_misses.miss_causes_a_walk",
59 },
60 {
61 .event_code = {0x08},
62 .umask = 0x02,
63 .event_name = "dtlb_load_misses.walk_completed_4k",
64 },
65 {
66 .event_code = {0x08},
67 .umask = 0x04,
68 .event_name = "dtlb_load_misses.walk_completed_2m_4m",
69 },
70 {
71 .event_code = {0x08},
72 .umask = 0x08,
73 .event_name = "dtlb_load_misses.walk_completed_1g",
74 },
75 {
76 .event_code = {0x08},
77 .umask = 0x0e,
78 .event_name = "dtlb_load_misses.walk_completed",
79 },
80 {
81 .event_code = {0x08},
82 .umask = 0x10,
83 .event_name = "dtlb_load_misses.walk_duration",
84 },
85 {
86 .event_code = {0x08},
87 .umask = 0x20,
88 .event_name = "dtlb_load_misses.stlb_hit_4k",
89 },
90 {
91 .event_code = {0x08},
92 .umask = 0x40,
93 .event_name = "dtlb_load_misses.stlb_hit_2m",
94 },
95 {
96 .event_code = {0x08},
97 .umask = 0x60,
98 .event_name = "dtlb_load_misses.stlb_hit",
99 },
100 {
101 .event_code = {0x0D},
102 .umask = 0x03,
103 .event_name = "int_misc.recovery_cycles",
104 },
105 {
106 .event_code = {0x0D},
107 .umask = 0x03,
108 .event_name = "int_misc.recovery_cycles_any",
109 },
110 {
111 .event_code = {0x0D},
112 .umask = 0x08,
113 .event_name = "int_misc.rat_stall_cycles",
114 },
115 {
116 .event_code = {0x0E},
117 .umask = 0x01,
118 .event_name = "uops_issued.any",
119 },
120 {
121 .event_code = {0x0E},
122 .umask = 0x01,
123 .event_name = "uops_issued.stall_cycles",
124 },
125 {
126 .event_code = {0x0E},
127 .umask = 0x10,
128 .event_name = "uops_issued.flags_merge",
129 },
130 {
131 .event_code = {0x0E},
132 .umask = 0x20,
133 .event_name = "uops_issued.slow_lea",
134 },
135 {
136 .event_code = {0x0E},
137 .umask = 0x40,
138 .event_name = "uops_issued.single_mul",
139 },
140 {
141 .event_code = {0x14},
142 .umask = 0x01,
143 .event_name = "arith.fpu_div_active",
144 },
145 {
146 .event_code = {0x24},
147 .umask = 0x21,
148 .event_name = "l2_rqsts.demand_data_rd_miss",
149 },
150 {
151 .event_code = {0x24},
152 .umask = 0x22,
153 .event_name = "l2_rqsts.rfo_miss",
154 },
155 {
156 .event_code = {0x24},
157 .umask = 0x24,
158 .event_name = "l2_rqsts.code_rd_miss",
159 },
160 {
161 .event_code = {0x24},
162 .umask = 0x27,
163 .event_name = "l2_rqsts.all_demand_miss",
164 },
165 {
166 .event_code = {0x24},
167 .umask = 0x30,
168 .event_name = "l2_rqsts.l2_pf_miss",
169 },
170 {
171 .event_code = {0x24},
172 .umask = 0x3F,
173 .event_name = "l2_rqsts.miss",
174 },
175 {
176 .event_code = {0x24},
177 .umask = 0x41,
178 .event_name = "l2_rqsts.demand_data_rd_hit",
179 },
180 {
181 .event_code = {0x24},
182 .umask = 0x42,
183 .event_name = "l2_rqsts.rfo_hit",
184 },
185 {
186 .event_code = {0x24},
187 .umask = 0x44,
188 .event_name = "l2_rqsts.code_rd_hit",
189 },
190 {
191 .event_code = {0x24},
192 .umask = 0x50,
193 .event_name = "l2_rqsts.l2_pf_hit",
194 },
195 {
196 .event_code = {0x24},
197 .umask = 0xE1,
198 .event_name = "l2_rqsts.all_demand_data_rd",
199 },
200 {
201 .event_code = {0x24},
202 .umask = 0xE2,
203 .event_name = "l2_rqsts.all_rfo",
204 },
205 {
206 .event_code = {0x24},
207 .umask = 0xE4,
208 .event_name = "l2_rqsts.all_code_rd",
209 },
210 {
211 .event_code = {0x24},
212 .umask = 0xe7,
213 .event_name = "l2_rqsts.all_demand_references",
214 },
215 {
216 .event_code = {0x24},
217 .umask = 0xF8,
218 .event_name = "l2_rqsts.all_pf",
219 },
220 {
221 .event_code = {0x24},
222 .umask = 0xFF,
223 .event_name = "l2_rqsts.references",
224 },
225 {
226 .event_code = {0x27},
227 .umask = 0x50,
228 .event_name = "l2_demand_rqsts.wb_hit",
229 },
230 {
231 .event_code = {0x2E},
232 .umask = 0x41,
233 .event_name = "longest_lat_cache.miss",
234 },
235 {
236 .event_code = {0x2E},
237 .umask = 0x4F,
238 .event_name = "longest_lat_cache.reference",
239 },
240 {
241 .event_code = {0x3C},
242 .umask = 0x00,
243 .event_name = "cpu_clk_unhalted.thread_p",
244 },
245 {
246 .event_code = {0x3C},
247 .umask = 0x00,
248 .event_name = "cpu_clk_unhalted.thread_p_any",
249 },
250 {
251 .event_code = {0x3C},
252 .umask = 0x01,
253 .event_name = "cpu_clk_thread_unhalted.ref_xclk",
254 },
255 {
256 .event_code = {0x3C},
257 .umask = 0x01,
258 .event_name = "cpu_clk_thread_unhalted.ref_xclk_any",
259 },
260 {
261 .event_code = {0x3C},
262 .umask = 0x01,
263 .event_name = "cpu_clk_unhalted.ref_xclk",
264 },
265 {
266 .event_code = {0x3C},
267 .umask = 0x01,
268 .event_name = "cpu_clk_unhalted.ref_xclk_any",
269 },
270 {
271 .event_code = {0x3c},
272 .umask = 0x02,
273 .event_name = "cpu_clk_thread_unhalted.one_thread_active",
274 },
275 {
276 .event_code = {0x3C},
277 .umask = 0x02,
278 .event_name = "cpu_clk_unhalted.one_thread_active",
279 },
280 {
281 .event_code = {0x48},
282 .umask = 0x01,
283 .event_name = "l1d_pend_miss.pending",
284 },
285 {
286 .event_code = {0x48},
287 .umask = 0x01,
288 .event_name = "l1d_pend_miss.pending_cycles",
289 },
290 {
291 .event_code = {0x48},
292 .umask = 0x01,
293 .event_name = "l1d_pend_miss.pending_cycles_any",
294 },
295 {
296 .event_code = {0x48},
297 .umask = 0x02,
298 .event_name = "l1d_pend_miss.fb_full",
299 },
300 {
301 .event_code = {0x49},
302 .umask = 0x01,
303 .event_name = "dtlb_store_misses.miss_causes_a_walk",
304 },
305 {
306 .event_code = {0x49},
307 .umask = 0x02,
308 .event_name = "dtlb_store_misses.walk_completed_4k",
309 },
310 {
311 .event_code = {0x49},
312 .umask = 0x04,
313 .event_name = "dtlb_store_misses.walk_completed_2m_4m",
314 },
315 {
316 .event_code = {0x49},
317 .umask = 0x08,
318 .event_name = "dtlb_store_misses.walk_completed_1g",
319 },
320 {
321 .event_code = {0x49},
322 .umask = 0x0e,
323 .event_name = "dtlb_store_misses.walk_completed",
324 },
325 {
326 .event_code = {0x49},
327 .umask = 0x10,
328 .event_name = "dtlb_store_misses.walk_duration",
329 },
330 {
331 .event_code = {0x49},
332 .umask = 0x20,
333 .event_name = "dtlb_store_misses.stlb_hit_4k",
334 },
335 {
336 .event_code = {0x49},
337 .umask = 0x40,
338 .event_name = "dtlb_store_misses.stlb_hit_2m",
339 },
340 {
341 .event_code = {0x49},
342 .umask = 0x60,
343 .event_name = "dtlb_store_misses.stlb_hit",
344 },
345 {
346 .event_code = {0x4c},
347 .umask = 0x01,
348 .event_name = "load_hit_pre.sw_pf",
349 },
350 {
351 .event_code = {0x4C},
352 .umask = 0x02,
353 .event_name = "load_hit_pre.hw_pf",
354 },
355 {
356 .event_code = {0x4F},
357 .umask = 0x10,
358 .event_name = "ept.walk_cycles",
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_write",
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 = {0x58},
402 .umask = 0x01,
403 .event_name = "move_elimination.int_eliminated",
404 },
405 {
406 .event_code = {0x58},
407 .umask = 0x02,
408 .event_name = "move_elimination.simd_eliminated",
409 },
410 {
411 .event_code = {0x58},
412 .umask = 0x04,
413 .event_name = "move_elimination.int_not_eliminated",
414 },
415 {
416 .event_code = {0x58},
417 .umask = 0x08,
418 .event_name = "move_elimination.simd_not_eliminated",
419 },
420 {
421 .event_code = {0x5C},
422 .umask = 0x01,
423 .event_name = "cpl_cycles.ring0",
424 },
425 {
426 .event_code = {0x5C},
427 .umask = 0x01,
428 .event_name = "cpl_cycles.ring0_trans",
429 },
430 {
431 .event_code = {0x5C},
432 .umask = 0x02,
433 .event_name = "cpl_cycles.ring123",
434 },
435 {
436 .event_code = {0x5d},
437 .umask = 0x01,
438 .event_name = "tx_exec.misc1",
439 },
440 {
441 .event_code = {0x5d},
442 .umask = 0x02,
443 .event_name = "tx_exec.misc2",
444 },
445 {
446 .event_code = {0x5d},
447 .umask = 0x04,
448 .event_name = "tx_exec.misc3",
449 },
450 {
451 .event_code = {0x5d},
452 .umask = 0x08,
453 .event_name = "tx_exec.misc4",
454 },
455 {
456 .event_code = {0x5d},
457 .umask = 0x10,
458 .event_name = "tx_exec.misc5",
459 },
460 {
461 .event_code = {0x5E},
462 .umask = 0x01,
463 .event_name = "rs_events.empty_cycles",
464 },
465 {
466 .event_code = {0x5E},
467 .umask = 0x01,
468 .event_name = "rs_events.empty_end",
469 },
470 {
471 .event_code = {0x60},
472 .umask = 0x01,
473 .event_name = "offcore_requests_outstanding.demand_data_rd",
474 },
475 {
476 .event_code = {0x60},
477 .umask = 0x01,
478 .event_name = "offcore_requests_outstanding.cycles_with_demand_data_rd",
479 },
480 {
481 .event_code = {0x60},
482 .umask = 0x01,
483 .event_name = "offcore_requests_outstanding.demand_data_rd_ge_6",
484 },
485 {
486 .event_code = {0x60},
487 .umask = 0x02,
488 .event_name = "offcore_requests_outstanding.demand_code_rd",
489 },
490 {
491 .event_code = {0x60},
492 .umask = 0x04,
493 .event_name = "offcore_requests_outstanding.demand_rfo",
494 },
495 {
496 .event_code = {0x60},
497 .umask = 0x04,
498 .event_name = "offcore_requests_outstanding.cycles_with_demand_rfo",
499 },
500 {
501 .event_code = {0x60},
502 .umask = 0x08,
503 .event_name = "offcore_requests_outstanding.all_data_rd",
504 },
505 {
506 .event_code = {0x60},
507 .umask = 0x08,
508 .event_name = "offcore_requests_outstanding.cycles_with_data_rd",
509 },
510 {
511 .event_code = {0x63},
512 .umask = 0x01,
513 .event_name = "lock_cycles.split_lock_uc_lock_duration",
514 },
515 {
516 .event_code = {0x63},
517 .umask = 0x02,
518 .event_name = "lock_cycles.cache_lock_duration",
519 },
520 {
521 .event_code = {0x79},
522 .umask = 0x02,
523 .event_name = "idq.empty",
524 },
525 {
526 .event_code = {0x79},
527 .umask = 0x04,
528 .event_name = "idq.mite_uops",
529 },
530 {
531 .event_code = {0x79},
532 .umask = 0x04,
533 .event_name = "idq.mite_cycles",
534 },
535 {
536 .event_code = {0x79},
537 .umask = 0x08,
538 .event_name = "idq.dsb_uops",
539 },
540 {
541 .event_code = {0x79},
542 .umask = 0x08,
543 .event_name = "idq.dsb_cycles",
544 },
545 {
546 .event_code = {0x79},
547 .umask = 0x10,
548 .event_name = "idq.ms_dsb_uops",
549 },
550 {
551 .event_code = {0x79},
552 .umask = 0x10,
553 .event_name = "idq.ms_dsb_cycles",
554 },
555 {
556 .event_code = {0x79},
557 .umask = 0x10,
558 .event_name = "idq.ms_dsb_occur",
559 },
560 {
561 .event_code = {0x79},
562 .umask = 0x18,
563 .event_name = "idq.all_dsb_cycles_4_uops",
564 },
565 {
566 .event_code = {0x79},
567 .umask = 0x18,
568 .event_name = "idq.all_dsb_cycles_any_uops",
569 },
570 {
571 .event_code = {0x79},
572 .umask = 0x20,
573 .event_name = "idq.ms_mite_uops",
574 },
575 {
576 .event_code = {0x79},
577 .umask = 0x24,
578 .event_name = "idq.all_mite_cycles_4_uops",
579 },
580 {
581 .event_code = {0x79},
582 .umask = 0x24,
583 .event_name = "idq.all_mite_cycles_any_uops",
584 },
585 {
586 .event_code = {0x79},
587 .umask = 0x30,
588 .event_name = "idq.ms_uops",
589 },
590 {
591 .event_code = {0x79},
592 .umask = 0x30,
593 .event_name = "idq.ms_cycles",
594 },
595 {
596 .event_code = {0x79},
597 .umask = 0x30,
598 .event_name = "idq.ms_switches",
599 },
600 {
601 .event_code = {0x79},
602 .umask = 0x3C,
603 .event_name = "idq.mite_all_uops",
604 },
605 {
606 .event_code = {0x80},
607 .umask = 0x01,
608 .event_name = "icache.hit",
609 },
610 {
611 .event_code = {0x80},
612 .umask = 0x02,
613 .event_name = "icache.misses",
614 },
615 {
616 .event_code = {0x80},
617 .umask = 0x04,
618 .event_name = "icache.ifdata_stall",
619 },
620 {
621 .event_code = {0x85},
622 .umask = 0x01,
623 .event_name = "itlb_misses.miss_causes_a_walk",
624 },
625 {
626 .event_code = {0x85},
627 .umask = 0x02,
628 .event_name = "itlb_misses.walk_completed_4k",
629 },
630 {
631 .event_code = {0x85},
632 .umask = 0x04,
633 .event_name = "itlb_misses.walk_completed_2m_4m",
634 },
635 {
636 .event_code = {0x85},
637 .umask = 0x08,
638 .event_name = "itlb_misses.walk_completed_1g",
639 },
640 {
641 .event_code = {0x85},
642 .umask = 0x0e,
643 .event_name = "itlb_misses.walk_completed",
644 },
645 {
646 .event_code = {0x85},
647 .umask = 0x10,
648 .event_name = "itlb_misses.walk_duration",
649 },
650 {
651 .event_code = {0x85},
652 .umask = 0x20,
653 .event_name = "itlb_misses.stlb_hit_4k",
654 },
655 {
656 .event_code = {0x85},
657 .umask = 0x40,
658 .event_name = "itlb_misses.stlb_hit_2m",
659 },
660 {
661 .event_code = {0x85},
662 .umask = 0x60,
663 .event_name = "itlb_misses.stlb_hit",
664 },
665 {
666 .event_code = {0x87},
667 .umask = 0x01,
668 .event_name = "ild_stall.lcp",
669 },
670 {
671 .event_code = {0x88},
672 .umask = 0x41,
673 .event_name = "br_inst_exec.nontaken_conditional",
674 },
675 {
676 .event_code = {0x88},
677 .umask = 0x81,
678 .event_name = "br_inst_exec.taken_conditional",
679 },
680 {
681 .event_code = {0x88},
682 .umask = 0x82,
683 .event_name = "br_inst_exec.taken_direct_jump",
684 },
685 {
686 .event_code = {0x88},
687 .umask = 0x84,
688 .event_name = "br_inst_exec.taken_indirect_jump_non_call_ret",
689 },
690 {
691 .event_code = {0x88},
692 .umask = 0x88,
693 .event_name = "br_inst_exec.taken_indirect_near_return",
694 },
695 {
696 .event_code = {0x88},
697 .umask = 0x90,
698 .event_name = "br_inst_exec.taken_direct_near_call",
699 },
700 {
701 .event_code = {0x88},
702 .umask = 0xA0,
703 .event_name = "br_inst_exec.taken_indirect_near_call",
704 },
705 {
706 .event_code = {0x88},
707 .umask = 0xC1,
708 .event_name = "br_inst_exec.all_conditional",
709 },
710 {
711 .event_code = {0x88},
712 .umask = 0xC2,
713 .event_name = "br_inst_exec.all_direct_jmp",
714 },
715 {
716 .event_code = {0x88},
717 .umask = 0xC4,
718 .event_name = "br_inst_exec.all_indirect_jump_non_call_ret",
719 },
720 {
721 .event_code = {0x88},
722 .umask = 0xC8,
723 .event_name = "br_inst_exec.all_indirect_near_return",
724 },
725 {
726 .event_code = {0x88},
727 .umask = 0xD0,
728 .event_name = "br_inst_exec.all_direct_near_call",
729 },
730 {
731 .event_code = {0x88},
732 .umask = 0xFF,
733 .event_name = "br_inst_exec.all_branches",
734 },
735 {
736 .event_code = {0x89},
737 .umask = 0x41,
738 .event_name = "br_misp_exec.nontaken_conditional",
739 },
740 {
741 .event_code = {0x89},
742 .umask = 0x81,
743 .event_name = "br_misp_exec.taken_conditional",
744 },
745 {
746 .event_code = {0x89},
747 .umask = 0x84,
748 .event_name = "br_misp_exec.taken_indirect_jump_non_call_ret",
749 },
750 {
751 .event_code = {0x89},
752 .umask = 0x88,
753 .event_name = "br_misp_exec.taken_return_near",
754 },
755 {
756 .event_code = {0x89},
757 .umask = 0xA0,
758 .event_name = "br_misp_exec.taken_indirect_near_call",
759 },
760 {
761 .event_code = {0x89},
762 .umask = 0xC1,
763 .event_name = "br_misp_exec.all_conditional",
764 },
765 {
766 .event_code = {0x89},
767 .umask = 0xC4,
768 .event_name = "br_misp_exec.all_indirect_jump_non_call_ret",
769 },
770 {
771 .event_code = {0x89},
772 .umask = 0xFF,
773 .event_name = "br_misp_exec.all_branches",
774 },
775 {
776 .event_code = {0x9C},
777 .umask = 0x01,
778 .event_name = "idq_uops_not_delivered.core",
779 },
780 {
781 .event_code = {0x9C},
782 .umask = 0x01,
783 .event_name = "idq_uops_not_delivered.cycles_0_uops_deliv.core",
784 },
785 {
786 .event_code = {0x9C},
787 .umask = 0x01,
788 .event_name = "idq_uops_not_delivered.cycles_le_1_uop_deliv.core",
789 },
790 {
791 .event_code = {0x9C},
792 .umask = 0x01,
793 .event_name = "idq_uops_not_delivered.cycles_le_2_uop_deliv.core",
794 },
795 {
796 .event_code = {0x9C},
797 .umask = 0x01,
798 .event_name = "idq_uops_not_delivered.cycles_le_3_uop_deliv.core",
799 },
800 {
801 .event_code = {0x9C},
802 .umask = 0x01,
803 .event_name = "idq_uops_not_delivered.cycles_fe_was_ok",
804 },
805 {
806 .event_code = {0xA0},
807 .umask = 0x03,
808 .event_name = "uop_dispatches_cancelled.simd_prf",
809 },
810 {
811 .event_code = {0xA1},
812 .umask = 0x01,
813 .event_name = "uops_dispatched_port.port_0",
814 },
815 {
816 .event_code = {0xA1},
817 .umask = 0x01,
818 .event_name = "uops_executed_port.port_0_core",
819 },
820 {
821 .event_code = {0xA1},
822 .umask = 0x01,
823 .event_name = "uops_executed_port.port_0",
824 },
825 {
826 .event_code = {0xA1},
827 .umask = 0x02,
828 .event_name = "uops_dispatched_port.port_1",
829 },
830 {
831 .event_code = {0xA1},
832 .umask = 0x02,
833 .event_name = "uops_executed_port.port_1_core",
834 },
835 {
836 .event_code = {0xA1},
837 .umask = 0x02,
838 .event_name = "uops_executed_port.port_1",
839 },
840 {
841 .event_code = {0xA1},
842 .umask = 0x04,
843 .event_name = "uops_dispatched_port.port_2",
844 },
845 {
846 .event_code = {0xA1},
847 .umask = 0x04,
848 .event_name = "uops_executed_port.port_2_core",
849 },
850 {
851 .event_code = {0xA1},
852 .umask = 0x04,
853 .event_name = "uops_executed_port.port_2",
854 },
855 {
856 .event_code = {0xA1},
857 .umask = 0x08,
858 .event_name = "uops_dispatched_port.port_3",
859 },
860 {
861 .event_code = {0xA1},
862 .umask = 0x08,
863 .event_name = "uops_executed_port.port_3_core",
864 },
865 {
866 .event_code = {0xA1},
867 .umask = 0x08,
868 .event_name = "uops_executed_port.port_3",
869 },
870 {
871 .event_code = {0xA1},
872 .umask = 0x10,
873 .event_name = "uops_dispatched_port.port_4",
874 },
875 {
876 .event_code = {0xA1},
877 .umask = 0x10,
878 .event_name = "uops_executed_port.port_4_core",
879 },
880 {
881 .event_code = {0xA1},
882 .umask = 0x10,
883 .event_name = "uops_executed_port.port_4",
884 },
885 {
886 .event_code = {0xA1},
887 .umask = 0x20,
888 .event_name = "uops_dispatched_port.port_5",
889 },
890 {
891 .event_code = {0xA1},
892 .umask = 0x20,
893 .event_name = "uops_executed_port.port_5_core",
894 },
895 {
896 .event_code = {0xA1},
897 .umask = 0x20,
898 .event_name = "uops_executed_port.port_5",
899 },
900 {
901 .event_code = {0xA1},
902 .umask = 0x40,
903 .event_name = "uops_dispatched_port.port_6",
904 },
905 {
906 .event_code = {0xA1},
907 .umask = 0x40,
908 .event_name = "uops_executed_port.port_6_core",
909 },
910 {
911 .event_code = {0xA1},
912 .umask = 0x40,
913 .event_name = "uops_executed_port.port_6",
914 },
915 {
916 .event_code = {0xA1},
917 .umask = 0x80,
918 .event_name = "uops_dispatched_port.port_7",
919 },
920 {
921 .event_code = {0xA1},
922 .umask = 0x80,
923 .event_name = "uops_executed_port.port_7_core",
924 },
925 {
926 .event_code = {0xA1},
927 .umask = 0x80,
928 .event_name = "uops_executed_port.port_7",
929 },
930 {
931 .event_code = {0xA2},
932 .umask = 0x01,
933 .event_name = "resource_stalls.any",
934 },
935 {
936 .event_code = {0xA2},
937 .umask = 0x04,
938 .event_name = "resource_stalls.rs",
939 },
940 {
941 .event_code = {0xA2},
942 .umask = 0x08,
943 .event_name = "resource_stalls.sb",
944 },
945 {
946 .event_code = {0xA2},
947 .umask = 0x10,
948 .event_name = "resource_stalls.rob",
949 },
950 {
951 .event_code = {0xA3},
952 .umask = 0x01,
953 .event_name = "cycle_activity.cycles_l2_pending",
954 },
955 {
956 .event_code = {0xA3},
957 .umask = 0x01,
958 .event_name = "cycle_activity.cycles_l2_miss",
959 },
960 {
961 .event_code = {0xA3},
962 .umask = 0x02,
963 .event_name = "cycle_activity.cycles_ldm_pending",
964 },
965 {
966 .event_code = {0xA3},
967 .umask = 0x02,
968 .event_name = "cycle_activity.cycles_mem_any",
969 },
970 {
971 .event_code = {0xA3},
972 .umask = 0x04,
973 .event_name = "cycle_activity.cycles_no_execute",
974 },
975 {
976 .event_code = {0xA3},
977 .umask = 0x04,
978 .event_name = "cycle_activity.stalls_total",
979 },
980 {
981 .event_code = {0xA3},
982 .umask = 0x05,
983 .event_name = "cycle_activity.stalls_l2_pending",
984 },
985 {
986 .event_code = {0xA3},
987 .umask = 0x05,
988 .event_name = "cycle_activity.stalls_l2_miss",
989 },
990 {
991 .event_code = {0xA3},
992 .umask = 0x06,
993 .event_name = "cycle_activity.stalls_ldm_pending",
994 },
995 {
996 .event_code = {0xA3},
997 .umask = 0x06,
998 .event_name = "cycle_activity.stalls_mem_any",
999 },
1000 {
1001 .event_code = {0xA3},
1002 .umask = 0x08,
1003 .event_name = "cycle_activity.cycles_l1d_pending",
1004 },
1005 {
1006 .event_code = {0xA3},
1007 .umask = 0x08,
1008 .event_name = "cycle_activity.cycles_l1d_miss",
1009 },
1010 {
1011 .event_code = {0xA3},
1012 .umask = 0x0C,
1013 .event_name = "cycle_activity.stalls_l1d_pending",
1014 },
1015 {
1016 .event_code = {0xA3},
1017 .umask = 0x0C,
1018 .event_name = "cycle_activity.stalls_l1d_miss",
1019 },
1020 {
1021 .event_code = {0xA8},
1022 .umask = 0x01,
1023 .event_name = "lsd.uops",
1024 },
1025 {
1026 .event_code = {0xA8},
1027 .umask = 0x01,
1028 .event_name = "lsd.cycles_4_uops",
1029 },
1030 {
1031 .event_code = {0xA8},
1032 .umask = 0x01,
1033 .event_name = "lsd.cycles_active",
1034 },
1035 {
1036 .event_code = {0xAB},
1037 .umask = 0x02,
1038 .event_name = "dsb2mite_switches.penalty_cycles",
1039 },
1040 {
1041 .event_code = {0xAE},
1042 .umask = 0x01,
1043 .event_name = "itlb.itlb_flush",
1044 },
1045 {
1046 .event_code = {0xB0},
1047 .umask = 0x01,
1048 .event_name = "offcore_requests.demand_data_rd",
1049 },
1050 {
1051 .event_code = {0xB0},
1052 .umask = 0x02,
1053 .event_name = "offcore_requests.demand_code_rd",
1054 },
1055 {
1056 .event_code = {0xB0},
1057 .umask = 0x04,
1058 .event_name = "offcore_requests.demand_rfo",
1059 },
1060 {
1061 .event_code = {0xB0},
1062 .umask = 0x08,
1063 .event_name = "offcore_requests.all_data_rd",
1064 },
1065 {
1066 .event_code = {0xB1},
1067 .umask = 0x01,
1068 .event_name = "uops_executed.thread",
1069 },
1070 {
1071 .event_code = {0xB1},
1072 .umask = 0x01,
1073 .event_name = "uops_executed.stall_cycles",
1074 },
1075 {
1076 .event_code = {0xB1},
1077 .umask = 0x01,
1078 .event_name = "uops_executed.cycles_ge_1_uop_exec",
1079 },
1080 {
1081 .event_code = {0xB1},
1082 .umask = 0x01,
1083 .event_name = "uops_executed.cycles_ge_2_uops_exec",
1084 },
1085 {
1086 .event_code = {0xB1},
1087 .umask = 0x01,
1088 .event_name = "uops_executed.cycles_ge_3_uops_exec",
1089 },
1090 {
1091 .event_code = {0xB1},
1092 .umask = 0x01,
1093 .event_name = "uops_executed.cycles_ge_4_uops_exec",
1094 },
1095 {
1096 .event_code = {0xB1},
1097 .umask = 0x02,
1098 .event_name = "uops_executed.core",
1099 },
1100 {
1101 .event_code = {0xb1},
1102 .umask = 0x02,
1103 .event_name = "uops_executed.core_cycles_ge_1",
1104 },
1105 {
1106 .event_code = {0xb1},
1107 .umask = 0x02,
1108 .event_name = "uops_executed.core_cycles_ge_2",
1109 },
1110 {
1111 .event_code = {0xb1},
1112 .umask = 0x02,
1113 .event_name = "uops_executed.core_cycles_ge_3",
1114 },
1115 {
1116 .event_code = {0xb1},
1117 .umask = 0x02,
1118 .event_name = "uops_executed.core_cycles_ge_4",
1119 },
1120 {
1121 .event_code = {0xb1},
1122 .umask = 0x02,
1123 .event_name = "uops_executed.core_cycles_none",
1124 },
1125 {
1126 .event_code = {0xb2},
1127 .umask = 0x01,
1128 .event_name = "offcore_requests_buffer.sq_full",
1129 },
1130 {
1131 .event_code = {0xBC},
1132 .umask = 0x11,
1133 .event_name = "page_walker_loads.dtlb_l1",
1134 },
1135 {
1136 .event_code = {0xBC},
1137 .umask = 0x12,
1138 .event_name = "page_walker_loads.dtlb_l2",
1139 },
1140 {
1141 .event_code = {0xBC},
1142 .umask = 0x14,
1143 .event_name = "page_walker_loads.dtlb_l3",
1144 },
1145 {
1146 .event_code = {0xBC},
1147 .umask = 0x18,
1148 .event_name = "page_walker_loads.dtlb_memory",
1149 },
1150 {
1151 .event_code = {0xBC},
1152 .umask = 0x21,
1153 .event_name = "page_walker_loads.itlb_l1",
1154 },
1155 {
1156 .event_code = {0xBC},
1157 .umask = 0x22,
1158 .event_name = "page_walker_loads.itlb_l2",
1159 },
1160 {
1161 .event_code = {0xBC},
1162 .umask = 0x24,
1163 .event_name = "page_walker_loads.itlb_l3",
1164 },
1165 {
1166 .event_code = {0xBD},
1167 .umask = 0x01,
1168 .event_name = "tlb_flush.dtlb_thread",
1169 },
1170 {
1171 .event_code = {0xBD},
1172 .umask = 0x20,
1173 .event_name = "tlb_flush.stlb_any",
1174 },
1175 {
1176 .event_code = {0xC0},
1177 .umask = 0x00,
1178 .event_name = "inst_retired.any_p",
1179 },
1180 {
1181 .event_code = {0xC0},
1182 .umask = 0x01,
1183 .event_name = "inst_retired.prec_dist",
1184 },
1185 {
1186 .event_code = {0xC0},
1187 .umask = 0x02,
1188 .event_name = "inst_retired.x87",
1189 },
1190 {
1191 .event_code = {0xC1},
1192 .umask = 0x08,
1193 .event_name = "other_assists.avx_to_sse",
1194 },
1195 {
1196 .event_code = {0xC1},
1197 .umask = 0x10,
1198 .event_name = "other_assists.sse_to_avx",
1199 },
1200 {
1201 .event_code = {0xC1},
1202 .umask = 0x40,
1203 .event_name = "other_assists.any_wb_assist",
1204 },
1205 {
1206 .event_code = {0xC2},
1207 .umask = 0x01,
1208 .event_name = "uops_retired.all",
1209 },
1210 {
1211 .event_code = {0xC2},
1212 .umask = 0x01,
1213 .event_name = "uops_retired.stall_cycles",
1214 },
1215 {
1216 .event_code = {0xC2},
1217 .umask = 0x01,
1218 .event_name = "uops_retired.total_cycles",
1219 },
1220 {
1221 .event_code = {0xC2},
1222 .umask = 0x02,
1223 .event_name = "uops_retired.retire_slots",
1224 },
1225 {
1226 .event_code = {0xC3},
1227 .umask = 0x01,
1228 .event_name = "machine_clears.cycles",
1229 },
1230 {
1231 .event_code = {0xC3},
1232 .umask = 0x01,
1233 .event_name = "machine_clears.count",
1234 },
1235 {
1236 .event_code = {0xC3},
1237 .umask = 0x02,
1238 .event_name = "machine_clears.memory_ordering",
1239 },
1240 {
1241 .event_code = {0xC3},
1242 .umask = 0x04,
1243 .event_name = "machine_clears.smc",
1244 },
1245 {
1246 .event_code = {0xC3},
1247 .umask = 0x20,
1248 .event_name = "machine_clears.maskmov",
1249 },
1250 {
1251 .event_code = {0xC4},
1252 .umask = 0x00,
1253 .event_name = "br_inst_retired.all_branches",
1254 },
1255 {
1256 .event_code = {0xC4},
1257 .umask = 0x01,
1258 .event_name = "br_inst_retired.conditional",
1259 },
1260 {
1261 .event_code = {0xC4},
1262 .umask = 0x02,
1263 .event_name = "br_inst_retired.near_call",
1264 },
1265 {
1266 .event_code = {0xC4},
1267 .umask = 0x02,
1268 .event_name = "br_inst_retired.near_call_r3",
1269 },
1270 {
1271 .event_code = {0xC4},
1272 .umask = 0x04,
1273 .event_name = "br_inst_retired.all_branches_pebs",
1274 },
1275 {
1276 .event_code = {0xC4},
1277 .umask = 0x08,
1278 .event_name = "br_inst_retired.near_return",
1279 },
1280 {
1281 .event_code = {0xC4},
1282 .umask = 0x10,
1283 .event_name = "br_inst_retired.not_taken",
1284 },
1285 {
1286 .event_code = {0xC4},
1287 .umask = 0x20,
1288 .event_name = "br_inst_retired.near_taken",
1289 },
1290 {
1291 .event_code = {0xC4},
1292 .umask = 0x40,
1293 .event_name = "br_inst_retired.far_branch",
1294 },
1295 {
1296 .event_code = {0xC5},
1297 .umask = 0x00,
1298 .event_name = "br_misp_retired.all_branches",
1299 },
1300 {
1301 .event_code = {0xC5},
1302 .umask = 0x01,
1303 .event_name = "br_misp_retired.conditional",
1304 },
1305 {
1306 .event_code = {0xC5},
1307 .umask = 0x04,
1308 .event_name = "br_misp_retired.all_branches_pebs",
1309 },
1310 {
1311 .event_code = {0xC5},
1312 .umask = 0x08,
1313 .event_name = "br_misp_retired.ret",
1314 },
1315 {
1316 .event_code = {0xC5},
1317 .umask = 0x20,
1318 .event_name = "br_misp_retired.near_taken",
1319 },
1320 {
1321 .event_code = {0xC7},
1322 .umask = 0x01,
1323 .event_name = "fp_arith_inst_retired.scalar_double",
1324 },
1325 {
1326 .event_code = {0xC7},
1327 .umask = 0x02,
1328 .event_name = "fp_arith_inst_retired.scalar_single",
1329 },
1330 {
1331 .event_code = {0xC7},
1332 .umask = 0x03,
1333 .event_name = "fp_arith_inst_retired.scalar",
1334 },
1335 {
1336 .event_code = {0xC7},
1337 .umask = 0x04,
1338 .event_name = "fp_arith_inst_retired.128b_packed_double",
1339 },
1340 {
1341 .event_code = {0xC7},
1342 .umask = 0x08,
1343 .event_name = "fp_arith_inst_retired.128b_packed_single",
1344 },
1345 {
1346 .event_code = {0xC7},
1347 .umask = 0x10,
1348 .event_name = "fp_arith_inst_retired.256b_packed_double",
1349 },
1350 {
1351 .event_code = {0xC7},
1352 .umask = 0x15,
1353 .event_name = "fp_arith_inst_retired.double",
1354 },
1355 {
1356 .event_code = {0xc7},
1357 .umask = 0x20,
1358 .event_name = "fp_arith_inst_retired.256b_packed_single",
1359 },
1360 {
1361 .event_code = {0xC7},
1362 .umask = 0x2A,
1363 .event_name = "fp_arith_inst_retired.single",
1364 },
1365 {
1366 .event_code = {0xC7},
1367 .umask = 0x3C,
1368 .event_name = "fp_arith_inst_retired.packed",
1369 },
1370 {
1371 .event_code = {0xc8},
1372 .umask = 0x01,
1373 .event_name = "hle_retired.start",
1374 },
1375 {
1376 .event_code = {0xc8},
1377 .umask = 0x02,
1378 .event_name = "hle_retired.commit",
1379 },
1380 {
1381 .event_code = {0xc8},
1382 .umask = 0x04,
1383 .event_name = "hle_retired.aborted",
1384 },
1385 {
1386 .event_code = {0xc8},
1387 .umask = 0x08,
1388 .event_name = "hle_retired.aborted_misc1",
1389 },
1390 {
1391 .event_code = {0xc8},
1392 .umask = 0x10,
1393 .event_name = "hle_retired.aborted_misc2",
1394 },
1395 {
1396 .event_code = {0xc8},
1397 .umask = 0x20,
1398 .event_name = "hle_retired.aborted_misc3",
1399 },
1400 {
1401 .event_code = {0xc8},
1402 .umask = 0x40,
1403 .event_name = "hle_retired.aborted_misc4",
1404 },
1405 {
1406 .event_code = {0xc8},
1407 .umask = 0x80,
1408 .event_name = "hle_retired.aborted_misc5",
1409 },
1410 {
1411 .event_code = {0xc9},
1412 .umask = 0x01,
1413 .event_name = "rtm_retired.start",
1414 },
1415 {
1416 .event_code = {0xc9},
1417 .umask = 0x02,
1418 .event_name = "rtm_retired.commit",
1419 },
1420 {
1421 .event_code = {0xc9},
1422 .umask = 0x04,
1423 .event_name = "rtm_retired.aborted",
1424 },
1425 {
1426 .event_code = {0xc9},
1427 .umask = 0x08,
1428 .event_name = "rtm_retired.aborted_misc1",
1429 },
1430 {
1431 .event_code = {0xc9},
1432 .umask = 0x10,
1433 .event_name = "rtm_retired.aborted_misc2",
1434 },
1435 {
1436 .event_code = {0xc9},
1437 .umask = 0x20,
1438 .event_name = "rtm_retired.aborted_misc3",
1439 },
1440 {
1441 .event_code = {0xc9},
1442 .umask = 0x40,
1443 .event_name = "rtm_retired.aborted_misc4",
1444 },
1445 {
1446 .event_code = {0xc9},
1447 .umask = 0x80,
1448 .event_name = "rtm_retired.aborted_misc5",
1449 },
1450 {
1451 .event_code = {0xCA},
1452 .umask = 0x02,
1453 .event_name = "fp_assist.x87_output",
1454 },
1455 {
1456 .event_code = {0xCA},
1457 .umask = 0x04,
1458 .event_name = "fp_assist.x87_input",
1459 },
1460 {
1461 .event_code = {0xCA},
1462 .umask = 0x08,
1463 .event_name = "fp_assist.simd_output",
1464 },
1465 {
1466 .event_code = {0xCA},
1467 .umask = 0x10,
1468 .event_name = "fp_assist.simd_input",
1469 },
1470 {
1471 .event_code = {0xCA},
1472 .umask = 0x1E,
1473 .event_name = "fp_assist.any",
1474 },
1475 {
1476 .event_code = {0xCC},
1477 .umask = 0x20,
1478 .event_name = "rob_misc_events.lbr_inserts",
1479 },
1480 {
1481 .event_code = {0xD0},
1482 .umask = 0x11,
1483 .event_name = "mem_uops_retired.stlb_miss_loads",
1484 },
1485 {
1486 .event_code = {0xD0},
1487 .umask = 0x12,
1488 .event_name = "mem_uops_retired.stlb_miss_stores",
1489 },
1490 {
1491 .event_code = {0xD0},
1492 .umask = 0x21,
1493 .event_name = "mem_uops_retired.lock_loads",
1494 },
1495 {
1496 .event_code = {0xD0},
1497 .umask = 0x41,
1498 .event_name = "mem_uops_retired.split_loads",
1499 },
1500 {
1501 .event_code = {0xD0},
1502 .umask = 0x42,
1503 .event_name = "mem_uops_retired.split_stores",
1504 },
1505 {
1506 .event_code = {0xD0},
1507 .umask = 0x81,
1508 .event_name = "mem_uops_retired.all_loads",
1509 },
1510 {
1511 .event_code = {0xD0},
1512 .umask = 0x82,
1513 .event_name = "mem_uops_retired.all_stores",
1514 },
1515 {
1516 .event_code = {0xD1},
1517 .umask = 0x01,
1518 .event_name = "mem_load_uops_retired.l1_hit",
1519 },
1520 {
1521 .event_code = {0xD1},
1522 .umask = 0x02,
1523 .event_name = "mem_load_uops_retired.l2_hit",
1524 },
1525 {
1526 .event_code = {0xD1},
1527 .umask = 0x04,
1528 .event_name = "mem_load_uops_retired.l3_hit",
1529 },
1530 {
1531 .event_code = {0xD1},
1532 .umask = 0x08,
1533 .event_name = "mem_load_uops_retired.l1_miss",
1534 },
1535 {
1536 .event_code = {0xD1},
1537 .umask = 0x10,
1538 .event_name = "mem_load_uops_retired.l2_miss",
1539 },
1540 {
1541 .event_code = {0xD1},
1542 .umask = 0x20,
1543 .event_name = "mem_load_uops_retired.l3_miss",
1544 },
1545 {
1546 .event_code = {0xD1},
1547 .umask = 0x40,
1548 .event_name = "mem_load_uops_retired.hit_lfb",
1549 },
1550 {
1551 .event_code = {0xD2},
1552 .umask = 0x01,
1553 .event_name = "mem_load_uops_l3_hit_retired.xsnp_miss",
1554 },
1555 {
1556 .event_code = {0xD2},
1557 .umask = 0x02,
1558 .event_name = "mem_load_uops_l3_hit_retired.xsnp_hit",
1559 },
1560 {
1561 .event_code = {0xD2},
1562 .umask = 0x04,
1563 .event_name = "mem_load_uops_l3_hit_retired.xsnp_hitm",
1564 },
1565 {
1566 .event_code = {0xD2},
1567 .umask = 0x08,
1568 .event_name = "mem_load_uops_l3_hit_retired.xsnp_none",
1569 },
1570 {
1571 .event_code = {0xD3},
1572 .umask = 0x01,
1573 .event_name = "mem_load_uops_l3_miss_retired.local_dram",
1574 },
1575 {
1576 .event_code = {0xD3},
1577 .umask = 0x04,
1578 .event_name = "mem_load_uops_l3_miss_retired.remote_dram",
1579 },
1580 {
1581 .event_code = {0xD3},
1582 .umask = 0x10,
1583 .event_name = "mem_load_uops_l3_miss_retired.remote_hitm",
1584 },
1585 {
1586 .event_code = {0xD3},
1587 .umask = 0x20,
1588 .event_name = "mem_load_uops_l3_miss_retired.remote_fwd",
1589 },
1590 {
1591 .event_code = {0xe6},
1592 .umask = 0x1f,
1593 .event_name = "baclears.any",
1594 },
1595 {
1596 .event_code = {0xF0},
1597 .umask = 0x01,
1598 .event_name = "l2_trans.demand_data_rd",
1599 },
1600 {
1601 .event_code = {0xF0},
1602 .umask = 0x02,
1603 .event_name = "l2_trans.rfo",
1604 },
1605 {
1606 .event_code = {0xF0},
1607 .umask = 0x04,
1608 .event_name = "l2_trans.code_rd",
1609 },
1610 {
1611 .event_code = {0xF0},
1612 .umask = 0x08,
1613 .event_name = "l2_trans.all_pf",
1614 },
1615 {
1616 .event_code = {0xF0},
1617 .umask = 0x10,
1618 .event_name = "l2_trans.l1d_wb",
1619 },
1620 {
1621 .event_code = {0xF0},
1622 .umask = 0x20,
1623 .event_name = "l2_trans.l2_fill",
1624 },
1625 {
1626 .event_code = {0xF0},
1627 .umask = 0x40,
1628 .event_name = "l2_trans.l2_wb",
1629 },
1630 {
1631 .event_code = {0xF0},
1632 .umask = 0x80,
1633 .event_name = "l2_trans.all_requests",
1634 },
1635 {
1636 .event_code = {0xF1},
1637 .umask = 0x01,
1638 .event_name = "l2_lines_in.i",
1639 },
1640 {
1641 .event_code = {0xF1},
1642 .umask = 0x02,
1643 .event_name = "l2_lines_in.s",
1644 },
1645 {
1646 .event_code = {0xF1},
1647 .umask = 0x04,
1648 .event_name = "l2_lines_in.e",
1649 },
1650 {
1651 .event_code = {0xF1},
1652 .umask = 0x07,
1653 .event_name = "l2_lines_in.all",
1654 },
1655 {
1656 .event_code = {0xF2},
1657 .umask = 0x05,
1658 .event_name = "l2_lines_out.demand_clean",
1659 },
1660 {
1661 .event_code = {0xf4},
1662 .umask = 0x10,
1663 .event_name = "sq_misc.split_lock",
1664 },
1665 {
1666 .event_name = 0,
1667 },
1668};
1669
1670PERFMON_REGISTER_INTEL_PMC (cpu_model_table, event_table);
1671