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