blob: 5d9b424f4dac05075fb00aef3678ecece9fb6266 [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 {0x2A, 0x00, 0},
6
7};
8
9static perfmon_intel_pmc_event_t event_table[] = {
10 {
11 .event_code = {0x00},
12 .umask = 0x03,
13 .event_name = "cpu_clk_unhalted.ref_tsc",
14 },
15 {
16 .event_code = {0x00},
17 .umask = 0x01,
18 .event_name = "inst_retired.any",
19 },
20 {
21 .event_code = {0x00},
22 .umask = 0x02,
23 .event_name = "cpu_clk_unhalted.thread",
24 },
25 {
26 .event_code = {0x00},
27 .umask = 0x02,
28 .event_name = "cpu_clk_unhalted.thread_any",
29 },
30 {
31 .event_code = {0x03},
32 .umask = 0x01,
33 .event_name = "ld_blocks.data_unknown",
34 },
35 {
36 .event_code = {0x03},
37 .umask = 0x02,
38 .event_name = "ld_blocks.store_forward",
39 },
40 {
41 .event_code = {0x03},
42 .umask = 0x08,
43 .event_name = "ld_blocks.no_sr",
44 },
45 {
46 .event_code = {0x03},
47 .umask = 0x10,
48 .event_name = "ld_blocks.all_block",
49 },
50 {
51 .event_code = {0x05},
52 .umask = 0x01,
53 .event_name = "misalign_mem_ref.loads",
54 },
55 {
56 .event_code = {0x05},
57 .umask = 0x02,
58 .event_name = "misalign_mem_ref.stores",
59 },
60 {
61 .event_code = {0x07},
62 .umask = 0x01,
63 .event_name = "ld_blocks_partial.address_alias",
64 },
65 {
66 .event_code = {0x07},
67 .umask = 0x08,
68 .event_name = "ld_blocks_partial.all_sta_block",
69 },
70 {
71 .event_code = {0x08},
72 .umask = 0x01,
73 .event_name = "dtlb_load_misses.miss_causes_a_walk",
74 },
75 {
76 .event_code = {0x08},
77 .umask = 0x02,
78 .event_name = "dtlb_load_misses.walk_completed",
79 },
80 {
81 .event_code = {0x08},
82 .umask = 0x04,
83 .event_name = "dtlb_load_misses.walk_duration",
84 },
85 {
86 .event_code = {0x08},
87 .umask = 0x10,
88 .event_name = "dtlb_load_misses.stlb_hit",
89 },
90 {
91 .event_code = {0x0D},
92 .umask = 0x03,
93 .event_name = "int_misc.recovery_cycles",
94 },
95 {
96 .event_code = {0x0D},
97 .umask = 0x03,
98 .event_name = "int_misc.recovery_stalls_count",
99 },
100 {
101 .event_code = {0x0D},
102 .umask = 0x03,
103 .event_name = "int_misc.recovery_cycles_any",
104 },
105 {
106 .event_code = {0x0D},
107 .umask = 0x40,
108 .event_name = "int_misc.rat_stall_cycles",
109 },
110 {
111 .event_code = {0x0E},
112 .umask = 0x01,
113 .event_name = "uops_issued.any",
114 },
115 {
116 .event_code = {0x0E},
117 .umask = 0x01,
118 .event_name = "uops_issued.stall_cycles",
119 },
120 {
121 .event_code = {0x0E},
122 .umask = 0x01,
123 .event_name = "uops_issued.core_stall_cycles",
124 },
125 {
126 .event_code = {0x10},
127 .umask = 0x01,
128 .event_name = "fp_comp_ops_exe.x87",
129 },
130 {
131 .event_code = {0x10},
132 .umask = 0x10,
133 .event_name = "fp_comp_ops_exe.sse_packed_double",
134 },
135 {
136 .event_code = {0x10},
137 .umask = 0x20,
138 .event_name = "fp_comp_ops_exe.sse_scalar_single",
139 },
140 {
141 .event_code = {0x10},
142 .umask = 0x40,
143 .event_name = "fp_comp_ops_exe.sse_packed_single",
144 },
145 {
146 .event_code = {0x10},
147 .umask = 0x80,
148 .event_name = "fp_comp_ops_exe.sse_scalar_double",
149 },
150 {
151 .event_code = {0x11},
152 .umask = 0x01,
153 .event_name = "simd_fp_256.packed_single",
154 },
155 {
156 .event_code = {0x11},
157 .umask = 0x02,
158 .event_name = "simd_fp_256.packed_double",
159 },
160 {
161 .event_code = {0x14},
162 .umask = 0x01,
163 .event_name = "arith.fpu_div_active",
164 },
165 {
166 .event_code = {0x14},
167 .umask = 0x01,
168 .event_name = "arith.fpu_div",
169 },
170 {
171 .event_code = {0x17},
172 .umask = 0x01,
173 .event_name = "insts_written_to_iq.insts",
174 },
175 {
176 .event_code = {0x24},
177 .umask = 0x01,
178 .event_name = "l2_rqsts.demand_data_rd_hit",
179 },
180 {
181 .event_code = {0x24},
182 .umask = 0x03,
183 .event_name = "l2_rqsts.all_demand_data_rd",
184 },
185 {
186 .event_code = {0x24},
187 .umask = 0x04,
188 .event_name = "l2_rqsts.rfo_hit",
189 },
190 {
191 .event_code = {0x24},
192 .umask = 0x08,
193 .event_name = "l2_rqsts.rfo_miss",
194 },
195 {
196 .event_code = {0x24},
197 .umask = 0x0C,
198 .event_name = "l2_rqsts.all_rfo",
199 },
200 {
201 .event_code = {0x24},
202 .umask = 0x10,
203 .event_name = "l2_rqsts.code_rd_hit",
204 },
205 {
206 .event_code = {0x24},
207 .umask = 0x20,
208 .event_name = "l2_rqsts.code_rd_miss",
209 },
210 {
211 .event_code = {0x24},
212 .umask = 0x30,
213 .event_name = "l2_rqsts.all_code_rd",
214 },
215 {
216 .event_code = {0x24},
217 .umask = 0x40,
218 .event_name = "l2_rqsts.pf_hit",
219 },
220 {
221 .event_code = {0x24},
222 .umask = 0x80,
223 .event_name = "l2_rqsts.pf_miss",
224 },
225 {
226 .event_code = {0x24},
227 .umask = 0xC0,
228 .event_name = "l2_rqsts.all_pf",
229 },
230 {
231 .event_code = {0x27},
232 .umask = 0x01,
233 .event_name = "l2_store_lock_rqsts.miss",
234 },
235 {
236 .event_code = {0x27},
237 .umask = 0x04,
238 .event_name = "l2_store_lock_rqsts.hit_e",
239 },
240 {
241 .event_code = {0x27},
242 .umask = 0x08,
243 .event_name = "l2_store_lock_rqsts.hit_m",
244 },
245 {
246 .event_code = {0x27},
247 .umask = 0x0F,
248 .event_name = "l2_store_lock_rqsts.all",
249 },
250 {
251 .event_code = {0x28},
252 .umask = 0x01,
253 .event_name = "l2_l1d_wb_rqsts.miss",
254 },
255 {
256 .event_code = {0x28},
257 .umask = 0x02,
258 .event_name = "l2_l1d_wb_rqsts.hit_s",
259 },
260 {
261 .event_code = {0x28},
262 .umask = 0x04,
263 .event_name = "l2_l1d_wb_rqsts.hit_e",
264 },
265 {
266 .event_code = {0x28},
267 .umask = 0x08,
268 .event_name = "l2_l1d_wb_rqsts.hit_m",
269 },
270 {
271 .event_code = {0x28},
272 .umask = 0x0F,
273 .event_name = "l2_l1d_wb_rqsts.all",
274 },
275 {
276 .event_code = {0x2E},
277 .umask = 0x41,
278 .event_name = "longest_lat_cache.miss",
279 },
280 {
281 .event_code = {0x2E},
282 .umask = 0x4F,
283 .event_name = "longest_lat_cache.reference",
284 },
285 {
286 .event_code = {0x3C},
287 .umask = 0x00,
288 .event_name = "cpu_clk_unhalted.thread_p",
289 },
290 {
291 .event_code = {0x3C},
292 .umask = 0x00,
293 .event_name = "cpu_clk_unhalted.thread_p_any",
294 },
295 {
296 .event_code = {0x3C},
297 .umask = 0x01,
298 .event_name = "cpu_clk_thread_unhalted.ref_xclk",
299 },
300 {
301 .event_code = {0x3C},
302 .umask = 0x02,
303 .event_name = "cpu_clk_thread_unhalted.one_thread_active",
304 },
305 {
306 .event_code = {0x48},
307 .umask = 0x01,
308 .event_name = "l1d_pend_miss.pending",
309 },
310 {
311 .event_code = {0x48},
312 .umask = 0x01,
313 .event_name = "l1d_pend_miss.pending_cycles",
314 },
315 {
316 .event_code = {0x49},
317 .umask = 0x01,
318 .event_name = "dtlb_store_misses.miss_causes_a_walk",
319 },
320 {
321 .event_code = {0x49},
322 .umask = 0x02,
323 .event_name = "dtlb_store_misses.walk_completed",
324 },
325 {
326 .event_code = {0x49},
327 .umask = 0x04,
328 .event_name = "dtlb_store_misses.walk_duration",
329 },
330 {
331 .event_code = {0x49},
332 .umask = 0x10,
333 .event_name = "dtlb_store_misses.stlb_hit",
334 },
335 {
336 .event_code = {0x4C},
337 .umask = 0x01,
338 .event_name = "load_hit_pre.sw_pf",
339 },
340 {
341 .event_code = {0x4C},
342 .umask = 0x02,
343 .event_name = "load_hit_pre.hw_pf",
344 },
345 {
346 .event_code = {0x4E},
347 .umask = 0x02,
348 .event_name = "hw_pre_req.dl1_miss",
349 },
350 {
351 .event_code = {0x4F},
352 .umask = 0x10,
353 .event_name = "ept.walk_cycles",
354 },
355 {
356 .event_code = {0x51},
357 .umask = 0x01,
358 .event_name = "l1d.replacement",
359 },
360 {
361 .event_code = {0x51},
362 .umask = 0x02,
363 .event_name = "l1d.allocated_in_m",
364 },
365 {
366 .event_code = {0x51},
367 .umask = 0x04,
368 .event_name = "l1d.eviction",
369 },
370 {
371 .event_code = {0x51},
372 .umask = 0x08,
373 .event_name = "l1d.all_m_replacement",
374 },
375 {
376 .event_code = {0x59},
377 .umask = 0x20,
378 .event_name = "partial_rat_stalls.flags_merge_uop",
379 },
380 {
381 .event_code = {0x59},
382 .umask = 0x20,
383 .event_name = "partial_rat_stalls.flags_merge_uop_cycles",
384 },
385 {
386 .event_code = {0x59},
387 .umask = 0x40,
388 .event_name = "partial_rat_stalls.slow_lea_window",
389 },
390 {
391 .event_code = {0x59},
392 .umask = 0x80,
393 .event_name = "partial_rat_stalls.mul_single_uop",
394 },
395 {
396 .event_code = {0x5B},
397 .umask = 0x0C,
398 .event_name = "resource_stalls2.all_fl_empty",
399 },
400 {
401 .event_code = {0x5B},
402 .umask = 0x0F,
403 .event_name = "resource_stalls2.all_prf_control",
404 },
405 {
406 .event_code = {0x5B},
407 .umask = 0x40,
408 .event_name = "resource_stalls2.bob_full",
409 },
410 {
411 .event_code = {0x5B},
412 .umask = 0x4F,
413 .event_name = "resource_stalls2.ooo_rsrc",
414 },
415 {
416 .event_code = {0x5C},
417 .umask = 0x01,
418 .event_name = "cpl_cycles.ring0",
419 },
420 {
421 .event_code = {0x5C},
422 .umask = 0x01,
423 .event_name = "cpl_cycles.ring0_trans",
424 },
425 {
426 .event_code = {0x5C},
427 .umask = 0x02,
428 .event_name = "cpl_cycles.ring123",
429 },
430 {
431 .event_code = {0x5E},
432 .umask = 0x01,
433 .event_name = "rs_events.empty_cycles",
434 },
435 {
436 .event_code = {0x5E},
437 .umask = 0x01,
438 .event_name = "rs_events.empty_end",
439 },
440 {
441 .event_code = {0x60},
442 .umask = 0x01,
443 .event_name = "offcore_requests_outstanding.demand_data_rd",
444 },
445 {
446 .event_code = {0x60},
447 .umask = 0x01,
448 .event_name = "offcore_requests_outstanding.cycles_with_demand_data_rd",
449 },
450 {
451 .event_code = {0x60},
452 .umask = 0x04,
453 .event_name = "offcore_requests_outstanding.demand_rfo",
454 },
455 {
456 .event_code = {0x60},
457 .umask = 0x04,
458 .event_name = "offcore_requests_outstanding.cycles_with_demand_rfo",
459 },
460 {
461 .event_code = {0x60},
462 .umask = 0x08,
463 .event_name = "offcore_requests_outstanding.all_data_rd",
464 },
465 {
466 .event_code = {0x60},
467 .umask = 0x08,
468 .event_name = "offcore_requests_outstanding.cycles_with_data_rd",
469 },
470 {
471 .event_code = {0x63},
472 .umask = 0x01,
473 .event_name = "lock_cycles.split_lock_uc_lock_duration",
474 },
475 {
476 .event_code = {0x63},
477 .umask = 0x02,
478 .event_name = "lock_cycles.cache_lock_duration",
479 },
480 {
481 .event_code = {0x79},
482 .umask = 0x02,
483 .event_name = "idq.empty",
484 },
485 {
486 .event_code = {0x79},
487 .umask = 0x04,
488 .event_name = "idq.mite_uops",
489 },
490 {
491 .event_code = {0x79},
492 .umask = 0x04,
493 .event_name = "idq.mite_cycles",
494 },
495 {
496 .event_code = {0x79},
497 .umask = 0x08,
498 .event_name = "idq.dsb_uops",
499 },
500 {
501 .event_code = {0x79},
502 .umask = 0x08,
503 .event_name = "idq.dsb_cycles",
504 },
505 {
506 .event_code = {0x79},
507 .umask = 0x10,
508 .event_name = "idq.ms_dsb_uops",
509 },
510 {
511 .event_code = {0x79},
512 .umask = 0x10,
513 .event_name = "idq.ms_dsb_cycles",
514 },
515 {
516 .event_code = {0x79},
517 .umask = 0x10,
518 .event_name = "idq.ms_dsb_occur",
519 },
520 {
521 .event_code = {0x79},
522 .umask = 0x18,
523 .event_name = "idq.all_dsb_cycles_4_uops",
524 },
525 {
526 .event_code = {0x79},
527 .umask = 0x18,
528 .event_name = "idq.all_dsb_cycles_any_uops",
529 },
530 {
531 .event_code = {0x79},
532 .umask = 0x20,
533 .event_name = "idq.ms_mite_uops",
534 },
535 {
536 .event_code = {0x79},
537 .umask = 0x24,
538 .event_name = "idq.all_mite_cycles_4_uops",
539 },
540 {
541 .event_code = {0x79},
542 .umask = 0x24,
543 .event_name = "idq.all_mite_cycles_any_uops",
544 },
545 {
546 .event_code = {0x79},
547 .umask = 0x30,
548 .event_name = "idq.ms_uops",
549 },
550 {
551 .event_code = {0x79},
552 .umask = 0x30,
553 .event_name = "idq.ms_cycles",
554 },
555 {
556 .event_code = {0x79},
557 .umask = 0x30,
558 .event_name = "idq.ms_switches",
559 },
560 {
561 .event_code = {0x79},
562 .umask = 0x3c,
563 .event_name = "idq.mite_all_uops",
564 },
565 {
566 .event_code = {0x80},
567 .umask = 0x01,
568 .event_name = "icache.hit",
569 },
570 {
571 .event_code = {0x80},
572 .umask = 0x02,
573 .event_name = "icache.misses",
574 },
575 {
576 .event_code = {0x85},
577 .umask = 0x01,
578 .event_name = "itlb_misses.miss_causes_a_walk",
579 },
580 {
581 .event_code = {0x85},
582 .umask = 0x02,
583 .event_name = "itlb_misses.walk_completed",
584 },
585 {
586 .event_code = {0x85},
587 .umask = 0x04,
588 .event_name = "itlb_misses.walk_duration",
589 },
590 {
591 .event_code = {0x85},
592 .umask = 0x10,
593 .event_name = "itlb_misses.stlb_hit",
594 },
595 {
596 .event_code = {0x87},
597 .umask = 0x01,
598 .event_name = "ild_stall.lcp",
599 },
600 {
601 .event_code = {0x87},
602 .umask = 0x04,
603 .event_name = "ild_stall.iq_full",
604 },
605 {
606 .event_code = {0x88},
607 .umask = 0x41,
608 .event_name = "br_inst_exec.nontaken_conditional",
609 },
610 {
611 .event_code = {0x88},
612 .umask = 0x81,
613 .event_name = "br_inst_exec.taken_conditional",
614 },
615 {
616 .event_code = {0x88},
617 .umask = 0x82,
618 .event_name = "br_inst_exec.taken_direct_jump",
619 },
620 {
621 .event_code = {0x88},
622 .umask = 0x84,
623 .event_name = "br_inst_exec.taken_indirect_jump_non_call_ret",
624 },
625 {
626 .event_code = {0x88},
627 .umask = 0x88,
628 .event_name = "br_inst_exec.taken_indirect_near_return",
629 },
630 {
631 .event_code = {0x88},
632 .umask = 0x90,
633 .event_name = "br_inst_exec.taken_direct_near_call",
634 },
635 {
636 .event_code = {0x88},
637 .umask = 0xA0,
638 .event_name = "br_inst_exec.taken_indirect_near_call",
639 },
640 {
641 .event_code = {0x88},
642 .umask = 0xC1,
643 .event_name = "br_inst_exec.all_conditional",
644 },
645 {
646 .event_code = {0x88},
647 .umask = 0xC2,
648 .event_name = "br_inst_exec.all_direct_jmp",
649 },
650 {
651 .event_code = {0x88},
652 .umask = 0xC4,
653 .event_name = "br_inst_exec.all_indirect_jump_non_call_ret",
654 },
655 {
656 .event_code = {0x88},
657 .umask = 0xC8,
658 .event_name = "br_inst_exec.all_indirect_near_return",
659 },
660 {
661 .event_code = {0x88},
662 .umask = 0xD0,
663 .event_name = "br_inst_exec.all_direct_near_call",
664 },
665 {
666 .event_code = {0x88},
667 .umask = 0xFF,
668 .event_name = "br_inst_exec.all_branches",
669 },
670 {
671 .event_code = {0x89},
672 .umask = 0x41,
673 .event_name = "br_misp_exec.nontaken_conditional",
674 },
675 {
676 .event_code = {0x89},
677 .umask = 0x81,
678 .event_name = "br_misp_exec.taken_conditional",
679 },
680 {
681 .event_code = {0x89},
682 .umask = 0x84,
683 .event_name = "br_misp_exec.taken_indirect_jump_non_call_ret",
684 },
685 {
686 .event_code = {0x89},
687 .umask = 0x88,
688 .event_name = "br_misp_exec.taken_return_near",
689 },
690 {
691 .event_code = {0x89},
692 .umask = 0x90,
693 .event_name = "br_misp_exec.taken_direct_near_call",
694 },
695 {
696 .event_code = {0x89},
697 .umask = 0xA0,
698 .event_name = "br_misp_exec.taken_indirect_near_call",
699 },
700 {
701 .event_code = {0x89},
702 .umask = 0xC1,
703 .event_name = "br_misp_exec.all_conditional",
704 },
705 {
706 .event_code = {0x89},
707 .umask = 0xC4,
708 .event_name = "br_misp_exec.all_indirect_jump_non_call_ret",
709 },
710 {
711 .event_code = {0x89},
712 .umask = 0xD0,
713 .event_name = "br_misp_exec.all_direct_near_call",
714 },
715 {
716 .event_code = {0x89},
717 .umask = 0xFF,
718 .event_name = "br_misp_exec.all_branches",
719 },
720 {
721 .event_code = {0x9C},
722 .umask = 0x01,
723 .event_name = "idq_uops_not_delivered.core",
724 },
725 {
726 .event_code = {0x9C},
727 .umask = 0x01,
728 .event_name = "idq_uops_not_delivered.cycles_0_uops_deliv.core",
729 },
730 {
731 .event_code = {0x9C},
732 .umask = 0x01,
733 .event_name = "idq_uops_not_delivered.cycles_le_1_uop_deliv.core",
734 },
735 {
736 .event_code = {0x9C},
737 .umask = 0x01,
738 .event_name = "idq_uops_not_delivered.cycles_le_2_uop_deliv.core",
739 },
740 {
741 .event_code = {0x9C},
742 .umask = 0x01,
743 .event_name = "idq_uops_not_delivered.cycles_le_3_uop_deliv.core",
744 },
745 {
746 .event_code = {0x9C},
747 .umask = 0x01,
748 .event_name = "idq_uops_not_delivered.cycles_ge_1_uop_deliv.core",
749 },
750 {
751 .event_code = {0x9C},
752 .umask = 0x01,
753 .event_name = "idq_uops_not_delivered.cycles_fe_was_ok",
754 },
755 {
756 .event_code = {0xA1},
757 .umask = 0x01,
758 .event_name = "uops_dispatched_port.port_0",
759 },
760 {
761 .event_code = {0xA1},
762 .umask = 0x01,
763 .event_name = "uops_dispatched_port.port_0_core",
764 },
765 {
766 .event_code = {0xA1},
767 .umask = 0x02,
768 .event_name = "uops_dispatched_port.port_1",
769 },
770 {
771 .event_code = {0xA1},
772 .umask = 0x02,
773 .event_name = "uops_dispatched_port.port_1_core",
774 },
775 {
776 .event_code = {0xA1},
777 .umask = 0x0C,
778 .event_name = "uops_dispatched_port.port_2",
779 },
780 {
781 .event_code = {0xA1},
782 .umask = 0x0C,
783 .event_name = "uops_dispatched_port.port_2_core",
784 },
785 {
786 .event_code = {0xA1},
787 .umask = 0x30,
788 .event_name = "uops_dispatched_port.port_3",
789 },
790 {
791 .event_code = {0xA1},
792 .umask = 0x30,
793 .event_name = "uops_dispatched_port.port_3_core",
794 },
795 {
796 .event_code = {0xA1},
797 .umask = 0x40,
798 .event_name = "uops_dispatched_port.port_4",
799 },
800 {
801 .event_code = {0xA1},
802 .umask = 0x40,
803 .event_name = "uops_dispatched_port.port_4_core",
804 },
805 {
806 .event_code = {0xA1},
807 .umask = 0x80,
808 .event_name = "uops_dispatched_port.port_5",
809 },
810 {
811 .event_code = {0xA1},
812 .umask = 0x80,
813 .event_name = "uops_dispatched_port.port_5_core",
814 },
815 {
816 .event_code = {0xA2},
817 .umask = 0x01,
818 .event_name = "resource_stalls.any",
819 },
820 {
821 .event_code = {0xA2},
822 .umask = 0x02,
823 .event_name = "resource_stalls.lb",
824 },
825 {
826 .event_code = {0xA2},
827 .umask = 0x04,
828 .event_name = "resource_stalls.rs",
829 },
830 {
831 .event_code = {0xA2},
832 .umask = 0x08,
833 .event_name = "resource_stalls.sb",
834 },
835 {
836 .event_code = {0xA2},
837 .umask = 0x0A,
838 .event_name = "resource_stalls.lb_sb",
839 },
840 {
841 .event_code = {0xA2},
842 .umask = 0x0E,
843 .event_name = "resource_stalls.mem_rs",
844 },
845 {
846 .event_code = {0xA2},
847 .umask = 0x10,
848 .event_name = "resource_stalls.rob",
849 },
850 {
851 .event_code = {0xA2},
852 .umask = 0xF0,
853 .event_name = "resource_stalls.ooo_rsrc",
854 },
855 {
856 .event_code = {0xA3},
857 .umask = 0x01,
858 .event_name = "cycle_activity.cycles_l2_pending",
859 },
860 {
861 .event_code = {0xA3},
862 .umask = 0x02,
863 .event_name = "cycle_activity.cycles_l1d_pending",
864 },
865 {
866 .event_code = {0xA3},
867 .umask = 0x04,
868 .event_name = "cycle_activity.cycles_no_dispatch",
869 },
870 {
871 .event_code = {0xA3},
872 .umask = 0x05,
873 .event_name = "cycle_activity.stalls_l2_pending",
874 },
875 {
876 .event_code = {0xA3},
877 .umask = 0x06,
878 .event_name = "cycle_activity.stalls_l1d_pending",
879 },
880 {
881 .event_code = {0xA8},
882 .umask = 0x01,
883 .event_name = "lsd.uops",
884 },
885 {
886 .event_code = {0xA8},
887 .umask = 0x01,
888 .event_name = "lsd.cycles_active",
889 },
890 {
891 .event_code = {0xA8},
892 .umask = 0x01,
893 .event_name = "lsd.cycles_4_uops",
894 },
895 {
896 .event_code = {0xAB},
897 .umask = 0x01,
898 .event_name = "dsb2mite_switches.count",
899 },
900 {
901 .event_code = {0xAB},
902 .umask = 0x02,
903 .event_name = "dsb2mite_switches.penalty_cycles",
904 },
905 {
906 .event_code = {0xAC},
907 .umask = 0x02,
908 .event_name = "dsb_fill.other_cancel",
909 },
910 {
911 .event_code = {0xAC},
912 .umask = 0x08,
913 .event_name = "dsb_fill.exceed_dsb_lines",
914 },
915 {
916 .event_code = {0xAC},
917 .umask = 0x0A,
918 .event_name = "dsb_fill.all_cancel",
919 },
920 {
921 .event_code = {0xAE},
922 .umask = 0x01,
923 .event_name = "itlb.itlb_flush",
924 },
925 {
926 .event_code = {0xB0},
927 .umask = 0x01,
928 .event_name = "offcore_requests.demand_data_rd",
929 },
930 {
931 .event_code = {0xB0},
932 .umask = 0x02,
933 .event_name = "offcore_requests.demand_code_rd",
934 },
935 {
936 .event_code = {0xB0},
937 .umask = 0x04,
938 .event_name = "offcore_requests.demand_rfo",
939 },
940 {
941 .event_code = {0xB0},
942 .umask = 0x08,
943 .event_name = "offcore_requests.all_data_rd",
944 },
945 {
946 .event_code = {0xB1},
947 .umask = 0x01,
948 .event_name = "uops_dispatched.thread",
949 },
950 {
951 .event_code = {0xB1},
952 .umask = 0x02,
953 .event_name = "uops_dispatched.core",
954 },
955 {
956 .event_code = {0xB2},
957 .umask = 0x01,
958 .event_name = "offcore_requests_buffer.sq_full",
959 },
960 {
961 .event_code = {0xB6},
962 .umask = 0x01,
963 .event_name = "agu_bypass_cancel.count",
964 },
965 {
966 .event_code = {0xBD},
967 .umask = 0x01,
968 .event_name = "tlb_flush.dtlb_thread",
969 },
970 {
971 .event_code = {0xBD},
972 .umask = 0x20,
973 .event_name = "tlb_flush.stlb_any",
974 },
975 {
976 .event_code = {0xBE},
977 .umask = 0x01,
978 .event_name = "page_walks.llc_miss",
979 },
980 {
981 .event_code = {0xBF},
982 .umask = 0x05,
983 .event_name = "l1d_blocks.bank_conflict_cycles",
984 },
985 {
986 .event_code = {0xC0},
987 .umask = 0x00,
988 .event_name = "inst_retired.any_p",
989 },
990 {
991 .event_code = {0xC0},
992 .umask = 0x01,
993 .event_name = "inst_retired.prec_dist",
994 },
995 {
996 .event_code = {0xC1},
997 .umask = 0x02,
998 .event_name = "other_assists.itlb_miss_retired",
999 },
1000 {
1001 .event_code = {0xC1},
1002 .umask = 0x08,
1003 .event_name = "other_assists.avx_store",
1004 },
1005 {
1006 .event_code = {0xC1},
1007 .umask = 0x10,
1008 .event_name = "other_assists.avx_to_sse",
1009 },
1010 {
1011 .event_code = {0xC1},
1012 .umask = 0x20,
1013 .event_name = "other_assists.sse_to_avx",
1014 },
1015 {
1016 .event_code = {0xC2},
1017 .umask = 0x01,
1018 .event_name = "uops_retired.all",
1019 },
1020 {
1021 .event_code = {0xC2},
1022 .umask = 0x01,
1023 .event_name = "uops_retired.stall_cycles",
1024 },
1025 {
1026 .event_code = {0xC2},
1027 .umask = 0x01,
1028 .event_name = "uops_retired.total_cycles",
1029 },
1030 {
1031 .event_code = {0xC2},
1032 .umask = 0x01,
1033 .event_name = "uops_retired.core_stall_cycles",
1034 },
1035 {
1036 .event_code = {0xC2},
1037 .umask = 0x02,
1038 .event_name = "uops_retired.retire_slots",
1039 },
1040 {
1041 .event_code = {0xc3},
1042 .umask = 0x01,
1043 .event_name = "machine_clears.count",
1044 },
1045 {
1046 .event_code = {0xC3},
1047 .umask = 0x02,
1048 .event_name = "machine_clears.memory_ordering",
1049 },
1050 {
1051 .event_code = {0xC3},
1052 .umask = 0x04,
1053 .event_name = "machine_clears.smc",
1054 },
1055 {
1056 .event_code = {0xC3},
1057 .umask = 0x20,
1058 .event_name = "machine_clears.maskmov",
1059 },
1060 {
1061 .event_code = {0xC4},
1062 .umask = 0x00,
1063 .event_name = "br_inst_retired.all_branches",
1064 },
1065 {
1066 .event_code = {0xC4},
1067 .umask = 0x01,
1068 .event_name = "br_inst_retired.conditional",
1069 },
1070 {
1071 .event_code = {0xC4},
1072 .umask = 0x02,
1073 .event_name = "br_inst_retired.near_call",
1074 },
1075 {
1076 .event_code = {0xC4},
1077 .umask = 0x02,
1078 .event_name = "br_inst_retired.near_call_r3",
1079 },
1080 {
1081 .event_code = {0xC4},
1082 .umask = 0x04,
1083 .event_name = "br_inst_retired.all_branches_pebs",
1084 },
1085 {
1086 .event_code = {0xC4},
1087 .umask = 0x08,
1088 .event_name = "br_inst_retired.near_return",
1089 },
1090 {
1091 .event_code = {0xC4},
1092 .umask = 0x10,
1093 .event_name = "br_inst_retired.not_taken",
1094 },
1095 {
1096 .event_code = {0xC4},
1097 .umask = 0x20,
1098 .event_name = "br_inst_retired.near_taken",
1099 },
1100 {
1101 .event_code = {0xC4},
1102 .umask = 0x40,
1103 .event_name = "br_inst_retired.far_branch",
1104 },
1105 {
1106 .event_code = {0xC5},
1107 .umask = 0x00,
1108 .event_name = "br_misp_retired.all_branches",
1109 },
1110 {
1111 .event_code = {0xC5},
1112 .umask = 0x01,
1113 .event_name = "br_misp_retired.conditional",
1114 },
1115 {
1116 .event_code = {0xC5},
1117 .umask = 0x02,
1118 .event_name = "br_misp_retired.near_call",
1119 },
1120 {
1121 .event_code = {0xC5},
1122 .umask = 0x04,
1123 .event_name = "br_misp_retired.all_branches_pebs",
1124 },
1125 {
1126 .event_code = {0xC5},
1127 .umask = 0x10,
1128 .event_name = "br_misp_retired.not_taken",
1129 },
1130 {
1131 .event_code = {0xC5},
1132 .umask = 0x20,
1133 .event_name = "br_misp_retired.taken",
1134 },
1135 {
1136 .event_code = {0xCA},
1137 .umask = 0x02,
1138 .event_name = "fp_assist.x87_output",
1139 },
1140 {
1141 .event_code = {0xCA},
1142 .umask = 0x04,
1143 .event_name = "fp_assist.x87_input",
1144 },
1145 {
1146 .event_code = {0xCA},
1147 .umask = 0x08,
1148 .event_name = "fp_assist.simd_output",
1149 },
1150 {
1151 .event_code = {0xCA},
1152 .umask = 0x10,
1153 .event_name = "fp_assist.simd_input",
1154 },
1155 {
1156 .event_code = {0xCA},
1157 .umask = 0x1E,
1158 .event_name = "fp_assist.any",
1159 },
1160 {
1161 .event_code = {0xCC},
1162 .umask = 0x20,
1163 .event_name = "rob_misc_events.lbr_inserts",
1164 },
1165 {
1166 .event_code = {0xCD},
1167 .umask = 0x02,
1168 .event_name = "mem_trans_retired.precise_store",
1169 },
1170 {
1171 .event_code = {0xD0},
1172 .umask = 0x11,
1173 .event_name = "mem_uops_retired.stlb_miss_loads",
1174 },
1175 {
1176 .event_code = {0xD0},
1177 .umask = 0x12,
1178 .event_name = "mem_uops_retired.stlb_miss_stores",
1179 },
1180 {
1181 .event_code = {0xD0},
1182 .umask = 0x21,
1183 .event_name = "mem_uops_retired.lock_loads",
1184 },
1185 {
1186 .event_code = {0xD0},
1187 .umask = 0x41,
1188 .event_name = "mem_uops_retired.split_loads",
1189 },
1190 {
1191 .event_code = {0xD0},
1192 .umask = 0x42,
1193 .event_name = "mem_uops_retired.split_stores",
1194 },
1195 {
1196 .event_code = {0xD0},
1197 .umask = 0x81,
1198 .event_name = "mem_uops_retired.all_loads",
1199 },
1200 {
1201 .event_code = {0xD0},
1202 .umask = 0x82,
1203 .event_name = "mem_uops_retired.all_stores",
1204 },
1205 {
1206 .event_code = {0xD1},
1207 .umask = 0x01,
1208 .event_name = "mem_load_uops_retired.l1_hit",
1209 },
1210 {
1211 .event_code = {0xD1},
1212 .umask = 0x02,
1213 .event_name = "mem_load_uops_retired.l2_hit",
1214 },
1215 {
1216 .event_code = {0xD1},
1217 .umask = 0x04,
1218 .event_name = "mem_load_uops_retired.llc_hit",
1219 },
1220 {
1221 .event_code = {0xD1},
1222 .umask = 0x40,
1223 .event_name = "mem_load_uops_retired.hit_lfb",
1224 },
1225 {
1226 .event_code = {0xD2},
1227 .umask = 0x01,
1228 .event_name = "mem_load_uops_llc_hit_retired.xsnp_miss",
1229 },
1230 {
1231 .event_code = {0xD2},
1232 .umask = 0x02,
1233 .event_name = "mem_load_uops_llc_hit_retired.xsnp_hit",
1234 },
1235 {
1236 .event_code = {0xD2},
1237 .umask = 0x04,
1238 .event_name = "mem_load_uops_llc_hit_retired.xsnp_hitm",
1239 },
1240 {
1241 .event_code = {0xD2},
1242 .umask = 0x08,
1243 .event_name = "mem_load_uops_llc_hit_retired.xsnp_none",
1244 },
1245 {
1246 .event_code = {0xD4},
1247 .umask = 0x02,
1248 .event_name = "mem_load_uops_misc_retired.llc_miss",
1249 },
1250 {
1251 .event_code = {0xE6},
1252 .umask = 0x1F,
1253 .event_name = "baclears.any",
1254 },
1255 {
1256 .event_code = {0xF0},
1257 .umask = 0x01,
1258 .event_name = "l2_trans.demand_data_rd",
1259 },
1260 {
1261 .event_code = {0xF0},
1262 .umask = 0x02,
1263 .event_name = "l2_trans.rfo",
1264 },
1265 {
1266 .event_code = {0xF0},
1267 .umask = 0x04,
1268 .event_name = "l2_trans.code_rd",
1269 },
1270 {
1271 .event_code = {0xF0},
1272 .umask = 0x08,
1273 .event_name = "l2_trans.all_pf",
1274 },
1275 {
1276 .event_code = {0xF0},
1277 .umask = 0x10,
1278 .event_name = "l2_trans.l1d_wb",
1279 },
1280 {
1281 .event_code = {0xF0},
1282 .umask = 0x20,
1283 .event_name = "l2_trans.l2_fill",
1284 },
1285 {
1286 .event_code = {0xF0},
1287 .umask = 0x40,
1288 .event_name = "l2_trans.l2_wb",
1289 },
1290 {
1291 .event_code = {0xF0},
1292 .umask = 0x80,
1293 .event_name = "l2_trans.all_requests",
1294 },
1295 {
1296 .event_code = {0xF1},
1297 .umask = 0x01,
1298 .event_name = "l2_lines_in.i",
1299 },
1300 {
1301 .event_code = {0xF1},
1302 .umask = 0x02,
1303 .event_name = "l2_lines_in.s",
1304 },
1305 {
1306 .event_code = {0xF1},
1307 .umask = 0x04,
1308 .event_name = "l2_lines_in.e",
1309 },
1310 {
1311 .event_code = {0xF1},
1312 .umask = 0x07,
1313 .event_name = "l2_lines_in.all",
1314 },
1315 {
1316 .event_code = {0xF2},
1317 .umask = 0x01,
1318 .event_name = "l2_lines_out.demand_clean",
1319 },
1320 {
1321 .event_code = {0xF2},
1322 .umask = 0x02,
1323 .event_name = "l2_lines_out.demand_dirty",
1324 },
1325 {
1326 .event_code = {0xF2},
1327 .umask = 0x04,
1328 .event_name = "l2_lines_out.pf_clean",
1329 },
1330 {
1331 .event_code = {0xF2},
1332 .umask = 0x08,
1333 .event_name = "l2_lines_out.pf_dirty",
1334 },
1335 {
1336 .event_code = {0xF2},
1337 .umask = 0x0A,
1338 .event_name = "l2_lines_out.dirty_all",
1339 },
1340 {
1341 .event_code = {0xF4},
1342 .umask = 0x10,
1343 .event_name = "sq_misc.split_lock",
1344 },
1345 {
1346 .event_name = 0,
1347 },
1348};
1349
1350PERFMON_REGISTER_INTEL_PMC (cpu_model_table, event_table);
1351