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