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