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