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