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