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