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