ip: Replace Sematics for Interface IP addresses
[vpp.git] / src / plugins / perfmon / perfmon_intel_bnl.c
1
2 #include <perfmon/perfmon_intel.h>
3
4 static perfmon_intel_pmc_cpu_model_t cpu_model_table[] = {
5   {0x1C, 0x00, 0},
6   {0x26, 0x00, 0},
7   {0x27, 0x00, 0},
8   {0x36, 0x00, 0},
9   {0x35, 0x00, 0},
10
11 };
12
13 static perfmon_intel_pmc_event_t event_table[] = {
14   {
15    .event_code = {0x2},
16    .umask = 0x83,
17    .event_name = "store_forwards.any",
18    },
19   {
20    .event_code = {0x2},
21    .umask = 0x81,
22    .event_name = "store_forwards.good",
23    },
24   {
25    .event_code = {0x3},
26    .umask = 0x7F,
27    .event_name = "reissue.any",
28    },
29   {
30    .event_code = {0x3},
31    .umask = 0xFF,
32    .event_name = "reissue.any.ar",
33    },
34   {
35    .event_code = {0x5},
36    .umask = 0xF,
37    .event_name = "misalign_mem_ref.split",
38    },
39   {
40    .event_code = {0x5},
41    .umask = 0x9,
42    .event_name = "misalign_mem_ref.ld_split",
43    },
44   {
45    .event_code = {0x5},
46    .umask = 0xA,
47    .event_name = "misalign_mem_ref.st_split",
48    },
49   {
50    .event_code = {0x5},
51    .umask = 0x8F,
52    .event_name = "misalign_mem_ref.split.ar",
53    },
54   {
55    .event_code = {0x5},
56    .umask = 0x89,
57    .event_name = "misalign_mem_ref.ld_split.ar",
58    },
59   {
60    .event_code = {0x5},
61    .umask = 0x8A,
62    .event_name = "misalign_mem_ref.st_split.ar",
63    },
64   {
65    .event_code = {0x5},
66    .umask = 0x8C,
67    .event_name = "misalign_mem_ref.rmw_split",
68    },
69   {
70    .event_code = {0x5},
71    .umask = 0x97,
72    .event_name = "misalign_mem_ref.bubble",
73    },
74   {
75    .event_code = {0x5},
76    .umask = 0x91,
77    .event_name = "misalign_mem_ref.ld_bubble",
78    },
79   {
80    .event_code = {0x5},
81    .umask = 0x92,
82    .event_name = "misalign_mem_ref.st_bubble",
83    },
84   {
85    .event_code = {0x5},
86    .umask = 0x94,
87    .event_name = "misalign_mem_ref.rmw_bubble",
88    },
89   {
90    .event_code = {0x6},
91    .umask = 0x80,
92    .event_name = "segment_reg_loads.any",
93    },
94   {
95    .event_code = {0x7},
96    .umask = 0x81,
97    .event_name = "prefetch.prefetcht0",
98    },
99   {
100    .event_code = {0x7},
101    .umask = 0x82,
102    .event_name = "prefetch.prefetcht1",
103    },
104   {
105    .event_code = {0x7},
106    .umask = 0x84,
107    .event_name = "prefetch.prefetcht2",
108    },
109   {
110    .event_code = {0x7},
111    .umask = 0x86,
112    .event_name = "prefetch.sw_l2",
113    },
114   {
115    .event_code = {0x7},
116    .umask = 0x88,
117    .event_name = "prefetch.prefetchnta",
118    },
119   {
120    .event_code = {0x7},
121    .umask = 0x10,
122    .event_name = "prefetch.hw_prefetch",
123    },
124   {
125    .event_code = {0x7},
126    .umask = 0xF,
127    .event_name = "prefetch.software_prefetch",
128    },
129   {
130    .event_code = {0x7},
131    .umask = 0x8F,
132    .event_name = "prefetch.software_prefetch.ar",
133    },
134   {
135    .event_code = {0x8},
136    .umask = 0x7,
137    .event_name = "data_tlb_misses.dtlb_miss",
138    },
139   {
140    .event_code = {0x8},
141    .umask = 0x5,
142    .event_name = "data_tlb_misses.dtlb_miss_ld",
143    },
144   {
145    .event_code = {0x8},
146    .umask = 0x9,
147    .event_name = "data_tlb_misses.l0_dtlb_miss_ld",
148    },
149   {
150    .event_code = {0x8},
151    .umask = 0x6,
152    .event_name = "data_tlb_misses.dtlb_miss_st",
153    },
154   {
155    .event_code = {0x8},
156    .umask = 0xA,
157    .event_name = "data_tlb_misses.l0_dtlb_miss_st",
158    },
159   {
160    .event_code = {0x9},
161    .umask = 0x20,
162    .event_name = "dispatch_blocked.any",
163    },
164   {
165    .event_code = {0xC},
166    .umask = 0x3,
167    .event_name = "page_walks.walks",
168    },
169   {
170    .event_code = {0xC},
171    .umask = 0x3,
172    .event_name = "page_walks.cycles",
173    },
174   {
175    .event_code = {0xC},
176    .umask = 0x1,
177    .event_name = "page_walks.d_side_walks",
178    },
179   {
180    .event_code = {0xC},
181    .umask = 0x1,
182    .event_name = "page_walks.d_side_cycles",
183    },
184   {
185    .event_code = {0xC},
186    .umask = 0x2,
187    .event_name = "page_walks.i_side_walks",
188    },
189   {
190    .event_code = {0xC},
191    .umask = 0x2,
192    .event_name = "page_walks.i_side_cycles",
193    },
194   {
195    .event_code = {0x10},
196    .umask = 0x1,
197    .event_name = "x87_comp_ops_exe.any.s",
198    },
199   {
200    .event_code = {0x10},
201    .umask = 0x81,
202    .event_name = "x87_comp_ops_exe.any.ar",
203    },
204   {
205    .event_code = {0x10},
206    .umask = 0x2,
207    .event_name = "x87_comp_ops_exe.fxch.s",
208    },
209   {
210    .event_code = {0x10},
211    .umask = 0x82,
212    .event_name = "x87_comp_ops_exe.fxch.ar",
213    },
214   {
215    .event_code = {0x11},
216    .umask = 0x1,
217    .event_name = "fp_assist.s",
218    },
219   {
220    .event_code = {0x11},
221    .umask = 0x81,
222    .event_name = "fp_assist.ar",
223    },
224   {
225    .event_code = {0x12},
226    .umask = 0x1,
227    .event_name = "mul.s",
228    },
229   {
230    .event_code = {0x12},
231    .umask = 0x81,
232    .event_name = "mul.ar",
233    },
234   {
235    .event_code = {0x13},
236    .umask = 0x1,
237    .event_name = "div.s",
238    },
239   {
240    .event_code = {0x13},
241    .umask = 0x81,
242    .event_name = "div.ar",
243    },
244   {
245    .event_code = {0x14},
246    .umask = 0x1,
247    .event_name = "cycles_div_busy",
248    },
249   {
250    .event_code = {0x21},
251    .umask = 0x40,
252    .event_name = "l2_ads.self",
253    },
254   {
255    .event_code = {0x22},
256    .umask = 0x40,
257    .event_name = "l2_dbus_busy.self",
258    },
259   {
260    .event_code = {0x23},
261    .umask = 0x40,
262    .event_name = "l2_dbus_busy_rd.self",
263    },
264   {
265    .event_code = {0x24},
266    .umask = 0x70,
267    .event_name = "l2_lines_in.self.any",
268    },
269   {
270    .event_code = {0x24},
271    .umask = 0x40,
272    .event_name = "l2_lines_in.self.demand",
273    },
274   {
275    .event_code = {0x24},
276    .umask = 0x50,
277    .event_name = "l2_lines_in.self.prefetch",
278    },
279   {
280    .event_code = {0x25},
281    .umask = 0x40,
282    .event_name = "l2_m_lines_in.self",
283    },
284   {
285    .event_code = {0x26},
286    .umask = 0x70,
287    .event_name = "l2_lines_out.self.any",
288    },
289   {
290    .event_code = {0x26},
291    .umask = 0x40,
292    .event_name = "l2_lines_out.self.demand",
293    },
294   {
295    .event_code = {0x26},
296    .umask = 0x50,
297    .event_name = "l2_lines_out.self.prefetch",
298    },
299   {
300    .event_code = {0x27},
301    .umask = 0x70,
302    .event_name = "l2_m_lines_out.self.any",
303    },
304   {
305    .event_code = {0x27},
306    .umask = 0x40,
307    .event_name = "l2_m_lines_out.self.demand",
308    },
309   {
310    .event_code = {0x27},
311    .umask = 0x50,
312    .event_name = "l2_m_lines_out.self.prefetch",
313    },
314   {
315    .event_code = {0x28},
316    .umask = 0x44,
317    .event_name = "l2_ifetch.self.e_state",
318    },
319   {
320    .event_code = {0x28},
321    .umask = 0x41,
322    .event_name = "l2_ifetch.self.i_state",
323    },
324   {
325    .event_code = {0x28},
326    .umask = 0x48,
327    .event_name = "l2_ifetch.self.m_state",
328    },
329   {
330    .event_code = {0x28},
331    .umask = 0x42,
332    .event_name = "l2_ifetch.self.s_state",
333    },
334   {
335    .event_code = {0x28},
336    .umask = 0x4F,
337    .event_name = "l2_ifetch.self.mesi",
338    },
339   {
340    .event_code = {0x29},
341    .umask = 0x74,
342    .event_name = "l2_ld.self.any.e_state",
343    },
344   {
345    .event_code = {0x29},
346    .umask = 0x71,
347    .event_name = "l2_ld.self.any.i_state",
348    },
349   {
350    .event_code = {0x29},
351    .umask = 0x78,
352    .event_name = "l2_ld.self.any.m_state",
353    },
354   {
355    .event_code = {0x29},
356    .umask = 0x72,
357    .event_name = "l2_ld.self.any.s_state",
358    },
359   {
360    .event_code = {0x29},
361    .umask = 0x7F,
362    .event_name = "l2_ld.self.any.mesi",
363    },
364   {
365    .event_code = {0x29},
366    .umask = 0x44,
367    .event_name = "l2_ld.self.demand.e_state",
368    },
369   {
370    .event_code = {0x29},
371    .umask = 0x41,
372    .event_name = "l2_ld.self.demand.i_state",
373    },
374   {
375    .event_code = {0x29},
376    .umask = 0x48,
377    .event_name = "l2_ld.self.demand.m_state",
378    },
379   {
380    .event_code = {0x29},
381    .umask = 0x42,
382    .event_name = "l2_ld.self.demand.s_state",
383    },
384   {
385    .event_code = {0x29},
386    .umask = 0x4F,
387    .event_name = "l2_ld.self.demand.mesi",
388    },
389   {
390    .event_code = {0x29},
391    .umask = 0x54,
392    .event_name = "l2_ld.self.prefetch.e_state",
393    },
394   {
395    .event_code = {0x29},
396    .umask = 0x51,
397    .event_name = "l2_ld.self.prefetch.i_state",
398    },
399   {
400    .event_code = {0x29},
401    .umask = 0x58,
402    .event_name = "l2_ld.self.prefetch.m_state",
403    },
404   {
405    .event_code = {0x29},
406    .umask = 0x52,
407    .event_name = "l2_ld.self.prefetch.s_state",
408    },
409   {
410    .event_code = {0x29},
411    .umask = 0x5F,
412    .event_name = "l2_ld.self.prefetch.mesi",
413    },
414   {
415    .event_code = {0x2A},
416    .umask = 0x44,
417    .event_name = "l2_st.self.e_state",
418    },
419   {
420    .event_code = {0x2A},
421    .umask = 0x41,
422    .event_name = "l2_st.self.i_state",
423    },
424   {
425    .event_code = {0x2A},
426    .umask = 0x48,
427    .event_name = "l2_st.self.m_state",
428    },
429   {
430    .event_code = {0x2A},
431    .umask = 0x42,
432    .event_name = "l2_st.self.s_state",
433    },
434   {
435    .event_code = {0x2A},
436    .umask = 0x4F,
437    .event_name = "l2_st.self.mesi",
438    },
439   {
440    .event_code = {0x2B},
441    .umask = 0x44,
442    .event_name = "l2_lock.self.e_state",
443    },
444   {
445    .event_code = {0x2B},
446    .umask = 0x41,
447    .event_name = "l2_lock.self.i_state",
448    },
449   {
450    .event_code = {0x2B},
451    .umask = 0x48,
452    .event_name = "l2_lock.self.m_state",
453    },
454   {
455    .event_code = {0x2B},
456    .umask = 0x42,
457    .event_name = "l2_lock.self.s_state",
458    },
459   {
460    .event_code = {0x2B},
461    .umask = 0x4F,
462    .event_name = "l2_lock.self.mesi",
463    },
464   {
465    .event_code = {0x2C},
466    .umask = 0x44,
467    .event_name = "l2_data_rqsts.self.e_state",
468    },
469   {
470    .event_code = {0x2C},
471    .umask = 0x41,
472    .event_name = "l2_data_rqsts.self.i_state",
473    },
474   {
475    .event_code = {0x2C},
476    .umask = 0x48,
477    .event_name = "l2_data_rqsts.self.m_state",
478    },
479   {
480    .event_code = {0x2C},
481    .umask = 0x42,
482    .event_name = "l2_data_rqsts.self.s_state",
483    },
484   {
485    .event_code = {0x2C},
486    .umask = 0x4F,
487    .event_name = "l2_data_rqsts.self.mesi",
488    },
489   {
490    .event_code = {0x2D},
491    .umask = 0x44,
492    .event_name = "l2_ld_ifetch.self.e_state",
493    },
494   {
495    .event_code = {0x2D},
496    .umask = 0x41,
497    .event_name = "l2_ld_ifetch.self.i_state",
498    },
499   {
500    .event_code = {0x2D},
501    .umask = 0x48,
502    .event_name = "l2_ld_ifetch.self.m_state",
503    },
504   {
505    .event_code = {0x2D},
506    .umask = 0x42,
507    .event_name = "l2_ld_ifetch.self.s_state",
508    },
509   {
510    .event_code = {0x2D},
511    .umask = 0x4F,
512    .event_name = "l2_ld_ifetch.self.mesi",
513    },
514   {
515    .event_code = {0x2E},
516    .umask = 0x74,
517    .event_name = "l2_rqsts.self.any.e_state",
518    },
519   {
520    .event_code = {0x2E},
521    .umask = 0x71,
522    .event_name = "l2_rqsts.self.any.i_state",
523    },
524   {
525    .event_code = {0x2E},
526    .umask = 0x78,
527    .event_name = "l2_rqsts.self.any.m_state",
528    },
529   {
530    .event_code = {0x2E},
531    .umask = 0x72,
532    .event_name = "l2_rqsts.self.any.s_state",
533    },
534   {
535    .event_code = {0x2E},
536    .umask = 0x7F,
537    .event_name = "l2_rqsts.self.any.mesi",
538    },
539   {
540    .event_code = {0x2E},
541    .umask = 0x44,
542    .event_name = "l2_rqsts.self.demand.e_state",
543    },
544   {
545    .event_code = {0x2E},
546    .umask = 0x48,
547    .event_name = "l2_rqsts.self.demand.m_state",
548    },
549   {
550    .event_code = {0x2E},
551    .umask = 0x42,
552    .event_name = "l2_rqsts.self.demand.s_state",
553    },
554   {
555    .event_code = {0x2E},
556    .umask = 0x54,
557    .event_name = "l2_rqsts.self.prefetch.e_state",
558    },
559   {
560    .event_code = {0x2E},
561    .umask = 0x51,
562    .event_name = "l2_rqsts.self.prefetch.i_state",
563    },
564   {
565    .event_code = {0x2E},
566    .umask = 0x58,
567    .event_name = "l2_rqsts.self.prefetch.m_state",
568    },
569   {
570    .event_code = {0x2E},
571    .umask = 0x52,
572    .event_name = "l2_rqsts.self.prefetch.s_state",
573    },
574   {
575    .event_code = {0x2E},
576    .umask = 0x5F,
577    .event_name = "l2_rqsts.self.prefetch.mesi",
578    },
579   {
580    .event_code = {0x2E},
581    .umask = 0x41,
582    .event_name = "l2_rqsts.self.demand.i_state",
583    },
584   {
585    .event_code = {0x2E},
586    .umask = 0x4F,
587    .event_name = "l2_rqsts.self.demand.mesi",
588    },
589   {
590    .event_code = {0x30},
591    .umask = 0x74,
592    .event_name = "l2_reject_busq.self.any.e_state",
593    },
594   {
595    .event_code = {0x30},
596    .umask = 0x71,
597    .event_name = "l2_reject_busq.self.any.i_state",
598    },
599   {
600    .event_code = {0x30},
601    .umask = 0x78,
602    .event_name = "l2_reject_busq.self.any.m_state",
603    },
604   {
605    .event_code = {0x30},
606    .umask = 0x72,
607    .event_name = "l2_reject_busq.self.any.s_state",
608    },
609   {
610    .event_code = {0x30},
611    .umask = 0x7F,
612    .event_name = "l2_reject_busq.self.any.mesi",
613    },
614   {
615    .event_code = {0x30},
616    .umask = 0x44,
617    .event_name = "l2_reject_busq.self.demand.e_state",
618    },
619   {
620    .event_code = {0x30},
621    .umask = 0x41,
622    .event_name = "l2_reject_busq.self.demand.i_state",
623    },
624   {
625    .event_code = {0x30},
626    .umask = 0x48,
627    .event_name = "l2_reject_busq.self.demand.m_state",
628    },
629   {
630    .event_code = {0x30},
631    .umask = 0x42,
632    .event_name = "l2_reject_busq.self.demand.s_state",
633    },
634   {
635    .event_code = {0x30},
636    .umask = 0x4F,
637    .event_name = "l2_reject_busq.self.demand.mesi",
638    },
639   {
640    .event_code = {0x30},
641    .umask = 0x54,
642    .event_name = "l2_reject_busq.self.prefetch.e_state",
643    },
644   {
645    .event_code = {0x30},
646    .umask = 0x51,
647    .event_name = "l2_reject_busq.self.prefetch.i_state",
648    },
649   {
650    .event_code = {0x30},
651    .umask = 0x58,
652    .event_name = "l2_reject_busq.self.prefetch.m_state",
653    },
654   {
655    .event_code = {0x30},
656    .umask = 0x52,
657    .event_name = "l2_reject_busq.self.prefetch.s_state",
658    },
659   {
660    .event_code = {0x30},
661    .umask = 0x5F,
662    .event_name = "l2_reject_busq.self.prefetch.mesi",
663    },
664   {
665    .event_code = {0x32},
666    .umask = 0x40,
667    .event_name = "l2_no_req.self",
668    },
669   {
670    .event_code = {0x3A},
671    .umask = 0x0,
672    .event_name = "eist_trans",
673    },
674   {
675    .event_code = {0x3B},
676    .umask = 0xC0,
677    .event_name = "thermal_trip",
678    },
679   {
680    .event_code = {0x3C},
681    .umask = 0x0,
682    .event_name = "cpu_clk_unhalted.core_p",
683    },
684   {
685    .event_code = {0x3C},
686    .umask = 0x1,
687    .event_name = "cpu_clk_unhalted.bus",
688    },
689   {
690    .event_code = {0xA},
691    .umask = 0x0,
692    .event_name = "cpu_clk_unhalted.core",
693    },
694   {
695    .event_code = {0xA},
696    .umask = 0x0,
697    .event_name = "cpu_clk_unhalted.ref",
698    },
699   {
700    .event_code = {0x40},
701    .umask = 0xA1,
702    .event_name = "l1d_cache.ld",
703    },
704   {
705    .event_code = {0x40},
706    .umask = 0xA2,
707    .event_name = "l1d_cache.st",
708    },
709   {
710    .event_code = {0x40},
711    .umask = 0x83,
712    .event_name = "l1d_cache.all_ref",
713    },
714   {
715    .event_code = {0x40},
716    .umask = 0xA3,
717    .event_name = "l1d_cache.all_cache_ref",
718    },
719   {
720    .event_code = {0x40},
721    .umask = 0x8,
722    .event_name = "l1d_cache.repl",
723    },
724   {
725    .event_code = {0x40},
726    .umask = 0x48,
727    .event_name = "l1d_cache.replm",
728    },
729   {
730    .event_code = {0x40},
731    .umask = 0x10,
732    .event_name = "l1d_cache.evict",
733    },
734   {
735    .event_code = {0x60},
736    .umask = 0xE0,
737    .event_name = "bus_request_outstanding.all_agents",
738    },
739   {
740    .event_code = {0x60},
741    .umask = 0x40,
742    .event_name = "bus_request_outstanding.self",
743    },
744   {
745    .event_code = {0x61},
746    .umask = 0x20,
747    .event_name = "bus_bnr_drv.all_agents",
748    },
749   {
750    .event_code = {0x61},
751    .umask = 0x0,
752    .event_name = "bus_bnr_drv.this_agent",
753    },
754   {
755    .event_code = {0x62},
756    .umask = 0x20,
757    .event_name = "bus_drdy_clocks.all_agents",
758    },
759   {
760    .event_code = {0x62},
761    .umask = 0x0,
762    .event_name = "bus_drdy_clocks.this_agent",
763    },
764   {
765    .event_code = {0x63},
766    .umask = 0xE0,
767    .event_name = "bus_lock_clocks.all_agents",
768    },
769   {
770    .event_code = {0x63},
771    .umask = 0x40,
772    .event_name = "bus_lock_clocks.self",
773    },
774   {
775    .event_code = {0x64},
776    .umask = 0x40,
777    .event_name = "bus_data_rcv.self",
778    },
779   {
780    .event_code = {0x65},
781    .umask = 0xE0,
782    .event_name = "bus_trans_brd.all_agents",
783    },
784   {
785    .event_code = {0x65},
786    .umask = 0x40,
787    .event_name = "bus_trans_brd.self",
788    },
789   {
790    .event_code = {0x66},
791    .umask = 0xE0,
792    .event_name = "bus_trans_rfo.all_agents",
793    },
794   {
795    .event_code = {0x66},
796    .umask = 0x40,
797    .event_name = "bus_trans_rfo.self",
798    },
799   {
800    .event_code = {0x67},
801    .umask = 0xE0,
802    .event_name = "bus_trans_wb.all_agents",
803    },
804   {
805    .event_code = {0x67},
806    .umask = 0x40,
807    .event_name = "bus_trans_wb.self",
808    },
809   {
810    .event_code = {0x68},
811    .umask = 0xE0,
812    .event_name = "bus_trans_ifetch.all_agents",
813    },
814   {
815    .event_code = {0x68},
816    .umask = 0x40,
817    .event_name = "bus_trans_ifetch.self",
818    },
819   {
820    .event_code = {0x69},
821    .umask = 0xE0,
822    .event_name = "bus_trans_inval.all_agents",
823    },
824   {
825    .event_code = {0x69},
826    .umask = 0x40,
827    .event_name = "bus_trans_inval.self",
828    },
829   {
830    .event_code = {0x6A},
831    .umask = 0xE0,
832    .event_name = "bus_trans_pwr.all_agents",
833    },
834   {
835    .event_code = {0x6A},
836    .umask = 0x40,
837    .event_name = "bus_trans_pwr.self",
838    },
839   {
840    .event_code = {0x6B},
841    .umask = 0xE0,
842    .event_name = "bus_trans_p.all_agents",
843    },
844   {
845    .event_code = {0x6B},
846    .umask = 0x40,
847    .event_name = "bus_trans_p.self",
848    },
849   {
850    .event_code = {0x6C},
851    .umask = 0xE0,
852    .event_name = "bus_trans_io.all_agents",
853    },
854   {
855    .event_code = {0x6C},
856    .umask = 0x40,
857    .event_name = "bus_trans_io.self",
858    },
859   {
860    .event_code = {0x6D},
861    .umask = 0xE0,
862    .event_name = "bus_trans_def.all_agents",
863    },
864   {
865    .event_code = {0x6D},
866    .umask = 0x40,
867    .event_name = "bus_trans_def.self",
868    },
869   {
870    .event_code = {0x6E},
871    .umask = 0xE0,
872    .event_name = "bus_trans_burst.all_agents",
873    },
874   {
875    .event_code = {0x6E},
876    .umask = 0x40,
877    .event_name = "bus_trans_burst.self",
878    },
879   {
880    .event_code = {0x6F},
881    .umask = 0xE0,
882    .event_name = "bus_trans_mem.all_agents",
883    },
884   {
885    .event_code = {0x6F},
886    .umask = 0x40,
887    .event_name = "bus_trans_mem.self",
888    },
889   {
890    .event_code = {0x70},
891    .umask = 0xE0,
892    .event_name = "bus_trans_any.all_agents",
893    },
894   {
895    .event_code = {0x70},
896    .umask = 0x40,
897    .event_name = "bus_trans_any.self",
898    },
899   {
900    .event_code = {0x77},
901    .umask = 0xB,
902    .event_name = "ext_snoop.this_agent.any",
903    },
904   {
905    .event_code = {0x77},
906    .umask = 0x1,
907    .event_name = "ext_snoop.this_agent.clean",
908    },
909   {
910    .event_code = {0x77},
911    .umask = 0x2,
912    .event_name = "ext_snoop.this_agent.hit",
913    },
914   {
915    .event_code = {0x77},
916    .umask = 0x8,
917    .event_name = "ext_snoop.this_agent.hitm",
918    },
919   {
920    .event_code = {0x77},
921    .umask = 0x2B,
922    .event_name = "ext_snoop.all_agents.any",
923    },
924   {
925    .event_code = {0x77},
926    .umask = 0x21,
927    .event_name = "ext_snoop.all_agents.clean",
928    },
929   {
930    .event_code = {0x77},
931    .umask = 0x22,
932    .event_name = "ext_snoop.all_agents.hit",
933    },
934   {
935    .event_code = {0x77},
936    .umask = 0x28,
937    .event_name = "ext_snoop.all_agents.hitm",
938    },
939   {
940    .event_code = {0x7A},
941    .umask = 0x20,
942    .event_name = "bus_hit_drv.all_agents",
943    },
944   {
945    .event_code = {0x7A},
946    .umask = 0x0,
947    .event_name = "bus_hit_drv.this_agent",
948    },
949   {
950    .event_code = {0x7B},
951    .umask = 0x20,
952    .event_name = "bus_hitm_drv.all_agents",
953    },
954   {
955    .event_code = {0x7B},
956    .umask = 0x0,
957    .event_name = "bus_hitm_drv.this_agent",
958    },
959   {
960    .event_code = {0x7D},
961    .umask = 0x40,
962    .event_name = "busq_empty.self",
963    },
964   {
965    .event_code = {0x7E},
966    .umask = 0xE0,
967    .event_name = "snoop_stall_drv.all_agents",
968    },
969   {
970    .event_code = {0x7E},
971    .umask = 0x40,
972    .event_name = "snoop_stall_drv.self",
973    },
974   {
975    .event_code = {0x7F},
976    .umask = 0x40,
977    .event_name = "bus_io_wait.self",
978    },
979   {
980    .event_code = {0x80},
981    .umask = 0x3,
982    .event_name = "icache.accesses",
983    },
984   {
985    .event_code = {0x80},
986    .umask = 0x1,
987    .event_name = "icache.hit",
988    },
989   {
990    .event_code = {0x80},
991    .umask = 0x2,
992    .event_name = "icache.misses",
993    },
994   {
995    .event_code = {0x82},
996    .umask = 0x1,
997    .event_name = "itlb.hit",
998    },
999   {
1000    .event_code = {0x82},
1001    .umask = 0x4,
1002    .event_name = "itlb.flush",
1003    },
1004   {
1005    .event_code = {0x82},
1006    .umask = 0x2,
1007    .event_name = "itlb.misses",
1008    },
1009   {
1010    .event_code = {0x86},
1011    .umask = 0x1,
1012    .event_name = "cycles_icache_mem_stalled.icache_mem_stalled",
1013    },
1014   {
1015    .event_code = {0x87},
1016    .umask = 0x1,
1017    .event_name = "decode_stall.pfb_empty",
1018    },
1019   {
1020    .event_code = {0x87},
1021    .umask = 0x2,
1022    .event_name = "decode_stall.iq_full",
1023    },
1024   {
1025    .event_code = {0x88},
1026    .umask = 0x1,
1027    .event_name = "br_inst_type_retired.cond",
1028    },
1029   {
1030    .event_code = {0x88},
1031    .umask = 0x2,
1032    .event_name = "br_inst_type_retired.uncond",
1033    },
1034   {
1035    .event_code = {0x88},
1036    .umask = 0x4,
1037    .event_name = "br_inst_type_retired.ind",
1038    },
1039   {
1040    .event_code = {0x88},
1041    .umask = 0x8,
1042    .event_name = "br_inst_type_retired.ret",
1043    },
1044   {
1045    .event_code = {0x88},
1046    .umask = 0x10,
1047    .event_name = "br_inst_type_retired.dir_call",
1048    },
1049   {
1050    .event_code = {0x88},
1051    .umask = 0x20,
1052    .event_name = "br_inst_type_retired.ind_call",
1053    },
1054   {
1055    .event_code = {0x88},
1056    .umask = 0x41,
1057    .event_name = "br_inst_type_retired.cond_taken",
1058    },
1059   {
1060    .event_code = {0x89},
1061    .umask = 0x1,
1062    .event_name = "br_missp_type_retired.cond",
1063    },
1064   {
1065    .event_code = {0x89},
1066    .umask = 0x2,
1067    .event_name = "br_missp_type_retired.ind",
1068    },
1069   {
1070    .event_code = {0x89},
1071    .umask = 0x4,
1072    .event_name = "br_missp_type_retired.return",
1073    },
1074   {
1075    .event_code = {0x89},
1076    .umask = 0x8,
1077    .event_name = "br_missp_type_retired.ind_call",
1078    },
1079   {
1080    .event_code = {0x89},
1081    .umask = 0x11,
1082    .event_name = "br_missp_type_retired.cond_taken",
1083    },
1084   {
1085    .event_code = {0xAA},
1086    .umask = 0x1,
1087    .event_name = "macro_insts.non_cisc_decoded",
1088    },
1089   {
1090    .event_code = {0xAA},
1091    .umask = 0x2,
1092    .event_name = "macro_insts.cisc_decoded",
1093    },
1094   {
1095    .event_code = {0xAA},
1096    .umask = 0x3,
1097    .event_name = "macro_insts.all_decoded",
1098    },
1099   {
1100    .event_code = {0xB0},
1101    .umask = 0x0,
1102    .event_name = "simd_uops_exec.s",
1103    },
1104   {
1105    .event_code = {0xB0},
1106    .umask = 0x80,
1107    .event_name = "simd_uops_exec.ar",
1108    },
1109   {
1110    .event_code = {0xB1},
1111    .umask = 0x0,
1112    .event_name = "simd_sat_uop_exec.s",
1113    },
1114   {
1115    .event_code = {0xB1},
1116    .umask = 0x80,
1117    .event_name = "simd_sat_uop_exec.ar",
1118    },
1119   {
1120    .event_code = {0xB3},
1121    .umask = 0x1,
1122    .event_name = "simd_uop_type_exec.mul.s",
1123    },
1124   {
1125    .event_code = {0xB3},
1126    .umask = 0x81,
1127    .event_name = "simd_uop_type_exec.mul.ar",
1128    },
1129   {
1130    .event_code = {0xB3},
1131    .umask = 0x2,
1132    .event_name = "simd_uop_type_exec.shift.s",
1133    },
1134   {
1135    .event_code = {0xB3},
1136    .umask = 0x82,
1137    .event_name = "simd_uop_type_exec.shift.ar",
1138    },
1139   {
1140    .event_code = {0xB3},
1141    .umask = 0x4,
1142    .event_name = "simd_uop_type_exec.pack.s",
1143    },
1144   {
1145    .event_code = {0xB3},
1146    .umask = 0x84,
1147    .event_name = "simd_uop_type_exec.pack.ar",
1148    },
1149   {
1150    .event_code = {0xB3},
1151    .umask = 0x8,
1152    .event_name = "simd_uop_type_exec.unpack.s",
1153    },
1154   {
1155    .event_code = {0xB3},
1156    .umask = 0x88,
1157    .event_name = "simd_uop_type_exec.unpack.ar",
1158    },
1159   {
1160    .event_code = {0xB3},
1161    .umask = 0x10,
1162    .event_name = "simd_uop_type_exec.logical.s",
1163    },
1164   {
1165    .event_code = {0xB3},
1166    .umask = 0x90,
1167    .event_name = "simd_uop_type_exec.logical.ar",
1168    },
1169   {
1170    .event_code = {0xB3},
1171    .umask = 0x20,
1172    .event_name = "simd_uop_type_exec.arithmetic.s",
1173    },
1174   {
1175    .event_code = {0xB3},
1176    .umask = 0xA0,
1177    .event_name = "simd_uop_type_exec.arithmetic.ar",
1178    },
1179   {
1180    .event_code = {0xC0},
1181    .umask = 0x0,
1182    .event_name = "inst_retired.any_p",
1183    },
1184   {
1185    .event_code = {0xA},
1186    .umask = 0x0,
1187    .event_name = "inst_retired.any",
1188    },
1189   {
1190    .event_code = {0xC2},
1191    .umask = 0x10,
1192    .event_name = "uops_retired.any",
1193    },
1194   {
1195    .event_code = {0xC2},
1196    .umask = 0x10,
1197    .event_name = "uops_retired.stalled_cycles",
1198    },
1199   {
1200    .event_code = {0xC2},
1201    .umask = 0x10,
1202    .event_name = "uops_retired.stalls",
1203    },
1204   {
1205    .event_code = {0xA9},
1206    .umask = 0x1,
1207    .event_name = "uops.ms_cycles",
1208    },
1209   {
1210    .event_code = {0xC3},
1211    .umask = 0x1,
1212    .event_name = "machine_clears.smc",
1213    },
1214   {
1215    .event_code = {0xC4},
1216    .umask = 0x0,
1217    .event_name = "br_inst_retired.any",
1218    },
1219   {
1220    .event_code = {0xC4},
1221    .umask = 0x1,
1222    .event_name = "br_inst_retired.pred_not_taken",
1223    },
1224   {
1225    .event_code = {0xC4},
1226    .umask = 0x2,
1227    .event_name = "br_inst_retired.mispred_not_taken",
1228    },
1229   {
1230    .event_code = {0xC4},
1231    .umask = 0x4,
1232    .event_name = "br_inst_retired.pred_taken",
1233    },
1234   {
1235    .event_code = {0xC4},
1236    .umask = 0x8,
1237    .event_name = "br_inst_retired.mispred_taken",
1238    },
1239   {
1240    .event_code = {0xC4},
1241    .umask = 0xC,
1242    .event_name = "br_inst_retired.taken",
1243    },
1244   {
1245    .event_code = {0xC4},
1246    .umask = 0xF,
1247    .event_name = "br_inst_retired.any1",
1248    },
1249   {
1250    .event_code = {0xC5},
1251    .umask = 0x0,
1252    .event_name = "br_inst_retired.mispred",
1253    },
1254   {
1255    .event_code = {0xC6},
1256    .umask = 0x1,
1257    .event_name = "cycles_int_masked.cycles_int_masked",
1258    },
1259   {
1260    .event_code = {0xC6},
1261    .umask = 0x2,
1262    .event_name = "cycles_int_masked.cycles_int_pending_and_masked",
1263    },
1264   {
1265    .event_code = {0xC7},
1266    .umask = 0x1,
1267    .event_name = "simd_inst_retired.packed_single",
1268    },
1269   {
1270    .event_code = {0xC7},
1271    .umask = 0x2,
1272    .event_name = "simd_inst_retired.scalar_single",
1273    },
1274   {
1275    .event_code = {0xC7},
1276    .umask = 0x8,
1277    .event_name = "simd_inst_retired.scalar_double",
1278    },
1279   {
1280    .event_code = {0xC7},
1281    .umask = 0x10,
1282    .event_name = "simd_inst_retired.vector",
1283    },
1284   {
1285    .event_code = {0xC8},
1286    .umask = 0x0,
1287    .event_name = "hw_int_rcv",
1288    },
1289   {
1290    .event_code = {0xCA},
1291    .umask = 0x1,
1292    .event_name = "simd_comp_inst_retired.packed_single",
1293    },
1294   {
1295    .event_code = {0xCA},
1296    .umask = 0x2,
1297    .event_name = "simd_comp_inst_retired.scalar_single",
1298    },
1299   {
1300    .event_code = {0xCA},
1301    .umask = 0x8,
1302    .event_name = "simd_comp_inst_retired.scalar_double",
1303    },
1304   {
1305    .event_code = {0xCB},
1306    .umask = 0x1,
1307    .event_name = "mem_load_retired.l2_hit",
1308    },
1309   {
1310    .event_code = {0xCB},
1311    .umask = 0x2,
1312    .event_name = "mem_load_retired.l2_miss",
1313    },
1314   {
1315    .event_code = {0xCB},
1316    .umask = 0x4,
1317    .event_name = "mem_load_retired.dtlb_miss",
1318    },
1319   {
1320    .event_code = {0xCD},
1321    .umask = 0x0,
1322    .event_name = "simd_assist",
1323    },
1324   {
1325    .event_code = {0xCE},
1326    .umask = 0x0,
1327    .event_name = "simd_instr_retired",
1328    },
1329   {
1330    .event_code = {0xCF},
1331    .umask = 0x0,
1332    .event_name = "simd_sat_instr_retired",
1333    },
1334   {
1335    .event_code = {0xDC},
1336    .umask = 0x2,
1337    .event_name = "resource_stalls.div_busy",
1338    },
1339   {
1340    .event_code = {0xE0},
1341    .umask = 0x1,
1342    .event_name = "br_inst_decoded",
1343    },
1344   {
1345    .event_code = {0xE4},
1346    .umask = 0x1,
1347    .event_name = "bogus_br",
1348    },
1349   {
1350    .event_code = {0xE6},
1351    .umask = 0x1,
1352    .event_name = "baclears.any",
1353    },
1354   {
1355    .event_code = {0x3},
1356    .umask = 0x1,
1357    .event_name = "reissue.overlap_store",
1358    },
1359   {
1360    .event_code = {0x3},
1361    .umask = 0x81,
1362    .event_name = "reissue.overlap_store.ar",
1363    },
1364   {
1365    .event_name = 0,
1366    },
1367 };
1368
1369 PERFMON_REGISTER_INTEL_PMC (cpu_model_table, event_table);
1370