vmm: Move the vmcall overrides to the VM struct
[akaros.git] / user / perfmon / events / intel_ivbep_unc_r3qpi_events.h
1 /*
2  * Copyright (c) 2014 Google Inc. All rights reserved
3  * Contributed by Stephane Eranian <eranian@gmail.com>
4  *
5  * Permission is hereby granted, free of charge, to any person obtaining a copy
6  * of this software and associated documentation files (the "Software"), to deal
7  * in the Software without restriction, including without limitation the rights
8  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
9  * of the Software, and to permit persons to whom the Software is furnished to do so,
10  * subject to the following conditions:
11  *
12  * The above copyright notice and this permission notice shall be included in all
13  * copies or substantial portions of the Software.
14  *
15  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
16  * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
17  * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
18  * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
19  * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
20  * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21  *
22  * This file is part of libpfm, a performance monitoring support library for
23  * applications on Linux.
24  *
25  * This file has been automatically generated.
26  *
27  * PMU: ivbep_unc_r3qpi (Intel IvyBridge-EP R3QPI uncore)
28  */
29
30 static const intel_x86_umask_t ivbep_unc_r3_iio_credits_acquired[]={
31   { .uname = "DRS",
32     .udesc  = "DRS",
33     .ucode  = 0x800,
34     .uflags = INTEL_X86_NCOMBO,
35   },
36   { .uname = "NCB",
37     .udesc  = "NCB",
38     .ucode  = 0x1000,
39     .uflags = INTEL_X86_NCOMBO,
40   },
41   { .uname = "NCS",
42     .udesc  = "NCS",
43     .ucode  = 0x2000,
44     .uflags = INTEL_X86_NCOMBO,
45   },
46 };
47
48 static const intel_x86_umask_t ivbep_unc_r3_ring_ad_used[]={
49   { .uname = "CCW_VR0_EVEN",
50     .udesc  = "Counter-Clockwise and even ring polarity on virtual ring 0",
51     .ucode  = 0x400,
52   },
53   { .uname = "CCW_VR0_ODD",
54     .udesc  = "Counter-Clockwise and odd ring polarity on virtual ring 0",
55     .ucode  = 0x800,
56   },
57   { .uname = "CW_VR0_EVEN",
58     .udesc  = "Clockwise and even ring polarity on virtual ring 0",
59     .ucode  = 0x100,
60   },
61   { .uname = "CW_VR0_ODD",
62     .udesc  = "Clockwise and odd ring polarity on virtual ring 0",
63     .ucode  = 0x200,
64   },
65   { .uname = "CW",
66     .udesc  = "Clockwise with any polarity on either virtual rings",
67     .ucode  = 0x3300,
68   },
69   { .uname = "CCW",
70     .udesc  = "Counter-clockwise with any polarity on either virtual rings",
71     .ucode  = 0xcc00,
72   },
73 };
74
75 static const intel_x86_umask_t ivbep_unc_r3_ring_iv_used[]={
76   { .uname = "CW",
77     .udesc  = "Clockwise with any polarity on either virtual rings",
78     .ucode  = 0x3300,
79   },
80   { .uname = "CCW",
81     .udesc  = "Counter-clockwise with any polarity on either virtual rings",
82     .ucode  = 0xcc00,
83   },
84   { .uname = "ANY",
85     .udesc  = "Counter-clockwise with any polarity on either virtual rings",
86     .ucode  = 0xff00,
87     .uflags = INTEL_X86_NCOMBO | INTEL_X86_DFL,
88   },
89 };
90
91 static const intel_x86_umask_t ivbep_unc_r3_rxr_cycles_ne[]={
92   { .uname = "HOM",
93     .udesc  = "HOM Ingress queue",
94     .ucode  = 0x100,
95   },
96   { .uname = "SNP",
97     .udesc  = "SNP Ingress queue",
98     .ucode  = 0x200,
99   },
100   { .uname = "NDR",
101     .udesc  = "NDR Ingress queue",
102     .ucode  = 0x400,
103   },
104 };
105
106 static const intel_x86_umask_t ivbep_unc_r3_rxr_inserts[]={
107   { .uname = "DRS",
108     .udesc  = "DRS Ingress queue",
109     .ucode  = 0x800,
110   },
111   { .uname = "HOM",
112     .udesc  = "HOM Ingress queue",
113     .ucode  = 0x100,
114   },
115   { .uname = "NCB",
116     .udesc  = "NCB Ingress queue",
117     .ucode  = 0x1000,
118   },
119   { .uname = "NCS",
120     .udesc  = "NCS Ingress queue",
121     .ucode  = 0x2000,
122   },
123   { .uname = "NDR",
124     .udesc  = "NDR Ingress queue",
125     .ucode  = 0x400,
126   },
127   { .uname = "SNP",
128     .udesc  = "SNP Ingress queue",
129     .ucode  = 0x200,
130   },
131 };
132
133 static const intel_x86_umask_t ivbep_unc_r3_vn0_credits_used[]={
134   { .uname = "HOM",
135     .udesc  = "Filter HOM message class",
136     .ucode  = 0x100,
137   },
138   { .uname = "SNP",
139     .udesc  = "Filter SNP message class",
140     .ucode  = 0x200,
141   },
142   { .uname = "NDR",
143     .udesc  = "Filter NDR message class",
144     .ucode  = 0x400,
145   },
146   { .uname = "DRS",
147     .udesc  = "Filter DRS message class",
148     .ucode  = 0x800,
149   },
150   { .uname = "NCB",
151     .udesc  = "Filter NCB message class",
152     .ucode  = 0x1000,
153   },
154   { .uname = "NCS",
155     .udesc  = "Filter NCS message class",
156     .ucode  = 0x2000,
157   },
158 };
159
160 static const intel_x86_umask_t ivbep_unc_r3_c_hi_ad_credits_empty[]={
161   { .uname = "CBO8",
162     .udesc  = "CBox 8",
163     .ucode  = 0x100,
164   },
165   { .uname = "CBO9",
166     .udesc  = "CBox 9",
167     .ucode  = 0x200,
168   },
169   { .uname = "CBO10",
170     .udesc  = "CBox 10",
171     .ucode  = 0x400,
172   },
173   { .uname = "CBO11",
174     .udesc  = "CBox 11",
175     .ucode  = 0x800,
176   },
177   { .uname = "CBO12",
178     .udesc  = "CBox 12",
179     .ucode  = 0x1000,
180   },
181   { .uname = "CBO13",
182     .udesc  = "CBox 13",
183     .ucode  = 0x2000,
184   },
185   { .uname = "CBO14",
186     .udesc  = "CBox 14 & 16",
187     .ucode  = 0x4000,
188   },
189 };
190
191 static const intel_x86_umask_t ivbep_unc_r3_c_lo_ad_credits_empty[]={
192   { .uname = "CBO0",
193     .udesc  = "CBox 0",
194     .ucode  = 0x100,
195   },
196   { .uname = "CBO1",
197     .udesc  = "CBox 1",
198     .ucode  = 0x200,
199   },
200   { .uname = "CBO2",
201     .udesc  = "CBox 2",
202     .ucode  = 0x400,
203   },
204   { .uname = "CBO3",
205     .udesc  = "CBox 3",
206     .ucode  = 0x800,
207   },
208   { .uname = "CBO4",
209     .udesc  = "CBox 4",
210     .ucode  = 0x1000,
211   },
212   { .uname = "CBO5",
213     .udesc  = "CBox 5",
214     .ucode  = 0x2000,
215   },
216   { .uname = "CBO6",
217     .udesc  = "CBox 6",
218     .ucode  = 0x4000,
219   },
220   { .uname = "CBO7",
221     .udesc  = "CBox 7",
222     .ucode  = 0x8000,
223   }
224 };
225
226 static const intel_x86_umask_t ivbep_unc_r3_ha_r2_bl_credits_empty[]={
227   { .uname = "HA0",
228     .udesc  = "HA0",
229     .ucode  = 0x100,
230   },
231   { .uname = "HA1",
232     .udesc  = "HA1",
233     .ucode  = 0x200,
234   },
235   { .uname = "R2_NCB",
236     .udesc  = "R2 NCB messages",
237     .ucode  = 0x400,
238   },
239   { .uname = "R2_NCS",
240     .udesc  = "R2 NCS messages",
241     .ucode  = 0x800,
242   }
243 };
244
245 static const intel_x86_umask_t ivbep_unc_r3_qpi0_ad_credits_empty[]={
246   { .uname = "VNA",
247     .udesc  = "VNA",
248     .ucode  = 0x100,
249   },
250   { .uname = "VN0_HOM",
251     .udesc  = "VN0 HOM messages",
252     .ucode  = 0x200,
253   },
254   { .uname = "VN0_SNP",
255     .udesc  = "VN0 SNP messages",
256     .ucode  = 0x400,
257   },
258   { .uname = "VN0_NDR",
259     .udesc  = "VN0 NDR messages",
260     .ucode  = 0x800,
261   },
262   { .uname = "VN1_HOM",
263     .udesc  = "VN1 HOM messages",
264     .ucode  = 0x1000,
265   },
266   { .uname = "VN1_SNP",
267     .udesc  = "VN1 SNP messages",
268     .ucode  = 0x2000,
269   },
270   { .uname = "VN1_NDR",
271     .udesc  = "VN1 NDR messages",
272     .ucode  = 0x4000,
273   },
274 };
275
276 static const intel_x86_umask_t ivbep_unc_r3_txr_nack_ccw[]={
277   { .uname = "AD",
278     .udesc  = "BL counter-clockwise Egress queue",
279     .ucode  = 0x100,
280   },
281   { .uname = "AK",
282     .udesc  = "AD clockwise Egress queue",
283     .ucode  = 0x200,
284   },
285   { .uname = "BL",
286     .udesc  = "AD counter-clockwise Egress queue",
287     .ucode  = 0x400,
288   },
289 };
290
291 static const intel_x86_umask_t ivbep_unc_r3_txr_nack_cw[]={
292   { .uname = "AD",
293     .udesc  = "AD clockwise Egress queue",
294     .ucode  = 0x100,
295   },
296   { .uname = "AK",
297     .udesc  = "AD counter-clockwise Egress queue",
298     .ucode  = 0x200,
299   },
300   { .uname = "BL",
301     .udesc  = "BL clockwise Egress queue",
302     .ucode  = 0x400,
303   },
304 };
305
306 static const intel_x86_umask_t ivbep_unc_r3_vna_credits_acquired[]={
307   { .uname = "AD",
308     .udesc  = "For AD ring",
309     .ucode  = 0x100,
310   },
311   { .uname = "BL",
312     .udesc  = "For BL ring",
313     .ucode  = 0x400,
314   },
315 };
316
317 static const intel_x86_entry_t intel_ivbep_unc_r3_pe[]={
318   { .name = "UNC_R3_CLOCKTICKS",
319     .desc = "Number of uclks in domain",
320     .code = 0x1,
321     .cntmsk = 0x7,
322     .modmsk = IVBEP_UNC_R3QPI_ATTRS,
323   },
324   { .name = "UNC_R3_RING_AD_USED",
325     .desc = "R3 AD Ring in Use",
326     .code = 0x7,
327     .cntmsk = 0x7,
328     .ngrp = 1,
329     .modmsk = IVBEP_UNC_R3QPI_ATTRS,
330     .numasks = LIBPFM_ARRAY_SIZE(ivbep_unc_r3_ring_ad_used),
331     .umasks  = ivbep_unc_r3_ring_ad_used
332   },
333   { .name = "UNC_R3_RING_AK_USED",
334     .desc = "R3 AK Ring in Use",
335     .code = 0x8,
336     .cntmsk = 0x7,
337     .ngrp = 1,
338     .modmsk = IVBEP_UNC_R3QPI_ATTRS,
339     .numasks = LIBPFM_ARRAY_SIZE(ivbep_unc_r3_ring_ad_used),
340     .umasks  = ivbep_unc_r3_ring_ad_used /* shared */
341   },
342   { .name = "UNC_R3_RING_BL_USED",
343     .desc = "R3 BL Ring in Use",
344     .code = 0x9,
345     .cntmsk = 0x7,
346     .ngrp = 1,
347     .modmsk = IVBEP_UNC_R3QPI_ATTRS,
348     .numasks = LIBPFM_ARRAY_SIZE(ivbep_unc_r3_ring_ad_used),
349     .umasks  = ivbep_unc_r3_ring_ad_used /* shared */
350   },
351   { .name = "UNC_R3_RING_IV_USED",
352     .desc = "R3 IV Ring in Use",
353     .code = 0xa,
354     .cntmsk = 0x7,
355     .ngrp = 1,
356     .modmsk = IVBEP_UNC_R3QPI_ATTRS,
357     .numasks = LIBPFM_ARRAY_SIZE(ivbep_unc_r3_ring_iv_used),
358     .umasks  = ivbep_unc_r3_ring_iv_used
359   },
360   { .name = "UNC_R3_RXR_AD_BYPASSED",
361     .desc = "Ingress Bypassed",
362     .code = 0x12,
363     .cntmsk = 0x3,
364     .modmsk = IVBEP_UNC_R3QPI_ATTRS,
365   },
366   { .name = "UNC_R3_RXR_CYCLES_NE",
367     .desc = "Ingress Cycles Not Empty",
368     .code = 0x10,
369     .cntmsk = 0x3,
370     .ngrp = 1,
371     .modmsk = IVBEP_UNC_R3QPI_ATTRS,
372     .numasks = LIBPFM_ARRAY_SIZE(ivbep_unc_r3_rxr_cycles_ne),
373     .umasks  = ivbep_unc_r3_rxr_cycles_ne
374   },
375   { .name = "UNC_R3_RXR_INSERTS",
376     .desc = "Ingress Allocations",
377     .code = 0x11,
378     .cntmsk = 0x3,
379     .ngrp = 1,
380     .modmsk = IVBEP_UNC_R3QPI_ATTRS,
381     .numasks = LIBPFM_ARRAY_SIZE(ivbep_unc_r3_rxr_inserts),
382     .umasks  = ivbep_unc_r3_rxr_inserts
383   },
384   { .name = "UNC_R3_RXR_OCCUPANCY",
385     .desc = "Ingress Occupancy Accumulator",
386     .code = 0x13,
387     .cntmsk = 0x1,
388     .ngrp = 1,
389     .modmsk = IVBEP_UNC_R3QPI_ATTRS,
390     .numasks = LIBPFM_ARRAY_SIZE(ivbep_unc_r3_rxr_inserts),
391     .umasks  = ivbep_unc_r3_rxr_inserts/* shared */
392   },
393   { .name = "UNC_R3_TXR_CYCLES_FULL",
394     .desc = "Egress cycles full",
395     .code = 0x25,
396     .cntmsk = 0x3,
397     .modmsk = IVBEP_UNC_R3QPI_ATTRS,
398   },
399   { .name = "UNC_R3_VN0_CREDITS_REJECT",
400     .desc = "VN0 Credit Acquisition Failed",
401     .code = 0x37,
402     .cntmsk = 0x3,
403     .ngrp = 1,
404     .modmsk = IVBEP_UNC_R3QPI_ATTRS,
405     .numasks = LIBPFM_ARRAY_SIZE(ivbep_unc_r3_vn0_credits_used),
406     .umasks  = ivbep_unc_r3_vn0_credits_used
407   },
408   { .name = "UNC_R3_VN0_CREDITS_USED",
409     .desc = "VN0 Credit Used",
410     .code = 0x36,
411     .cntmsk = 0x3,
412     .ngrp = 1,
413     .modmsk = IVBEP_UNC_R3QPI_ATTRS,
414     .numasks = LIBPFM_ARRAY_SIZE(ivbep_unc_r3_vn0_credits_used),
415     .umasks  = ivbep_unc_r3_vn0_credits_used
416   },
417   { .name = "UNC_R3_VNA_CREDITS_ACQUIRED",
418     .desc = "VNA credit Acquisitions",
419     .code = 0x33,
420     .cntmsk = 0x3,
421     .ngrp = 1,
422     .modmsk = IVBEP_UNC_R3QPI_ATTRS,
423     .numasks = LIBPFM_ARRAY_SIZE(ivbep_unc_r3_vna_credits_acquired),
424     .umasks  = ivbep_unc_r3_vna_credits_acquired
425   },
426   { .name = "UNC_R3_VNA_CREDITS_REJECT",
427     .desc = "VNA Credit Reject",
428     .code = 0x34,
429     .cntmsk = 0x3,
430     .ngrp = 1,
431     .modmsk = IVBEP_UNC_R3QPI_ATTRS,
432     .numasks = LIBPFM_ARRAY_SIZE(ivbep_unc_r3_vn0_credits_used),
433     .umasks  = ivbep_unc_r3_vn0_credits_used /* shared */
434   },
435   { .name = "UNC_R3_VNA_CREDIT_CYCLES_OUT",
436     .desc = "Cycles with no VNA credits available",
437     .code = 0x31,
438     .cntmsk = 0x3,
439     .modmsk = IVBEP_UNC_R3QPI_ATTRS,
440   },
441   { .name = "UNC_R3_VNA_CREDIT_CYCLES_USED",
442     .desc = "Cycles with 1 or more VNA credits in use",
443     .code = 0x32,
444     .cntmsk = 0x3,
445     .modmsk = IVBEP_UNC_R3QPI_ATTRS,
446   },
447   { .name = "UNC_R3_C_HI_AD_CREDITS_EMPTY",
448     .desc = "Cbox AD credits empty",
449     .code = 0x2c,
450     .cntmsk = 0x3,
451     .ngrp = 1,
452     .modmsk = IVBEP_UNC_R3QPI_ATTRS,
453     .numasks = LIBPFM_ARRAY_SIZE(ivbep_unc_r3_c_hi_ad_credits_empty),
454     .umasks  = ivbep_unc_r3_c_hi_ad_credits_empty
455   },
456   { .name = "UNC_R3_C_LO_AD_CREDITS_EMPTY",
457     .desc = "Cbox AD credits empty",
458     .code = 0x2b,
459     .cntmsk = 0x3,
460     .ngrp = 1,
461     .modmsk = IVBEP_UNC_R3QPI_ATTRS,
462     .numasks = LIBPFM_ARRAY_SIZE(ivbep_unc_r3_c_lo_ad_credits_empty),
463     .umasks  = ivbep_unc_r3_c_lo_ad_credits_empty
464   },
465   { .name = "UNC_R3_HA_R2_BL_CREDITS_EMPTY",
466     .desc = "HA/R2 AD credits  empty",
467     .code = 0x2f,
468     .cntmsk = 0x3,
469     .ngrp = 1,
470     .modmsk = IVBEP_UNC_R3QPI_ATTRS,
471     .numasks = LIBPFM_ARRAY_SIZE(ivbep_unc_r3_ha_r2_bl_credits_empty),
472     .umasks  = ivbep_unc_r3_ha_r2_bl_credits_empty
473   },
474   { .name = "UNC_R3_QPI0_AD_CREDITS_EMPTY",
475     .desc = "QPI0 AD credits empty",
476     .code = 0x29,
477     .cntmsk = 0x3,
478     .ngrp = 1,
479     .modmsk = IVBEP_UNC_R3QPI_ATTRS,
480     .numasks = LIBPFM_ARRAY_SIZE(ivbep_unc_r3_qpi0_ad_credits_empty),
481     .umasks  = ivbep_unc_r3_qpi0_ad_credits_empty
482   },
483   { .name = "UNC_R3_QPI0_BL_CREDITS_EMPTY",
484     .desc = "QPI0 BL credits empty",
485     .code = 0x2d,
486     .cntmsk = 0x3,
487     .ngrp = 1,
488     .modmsk = IVBEP_UNC_R3QPI_ATTRS,
489     .numasks = LIBPFM_ARRAY_SIZE(ivbep_unc_r3_qpi0_ad_credits_empty), /* shared */
490     .umasks  = ivbep_unc_r3_qpi0_ad_credits_empty
491   },
492   { .name = "UNC_R3_QPI1_AD_CREDITS_EMPTY",
493     .desc = "QPI1 AD credits empty",
494     .code = 0x2a,
495     .cntmsk = 0x3,
496     .ngrp = 1,
497     .modmsk = IVBEP_UNC_R3QPI_ATTRS,
498     .numasks = LIBPFM_ARRAY_SIZE(ivbep_unc_r3_qpi0_ad_credits_empty), /* shared */
499     .umasks  = ivbep_unc_r3_qpi0_ad_credits_empty
500   },
501   { .name = "UNC_R3_QPI1_BL_CREDITS_EMPTY",
502     .desc = "QPI1 BL credits empty",
503     .code = 0x2e,
504     .cntmsk = 0x3,
505     .ngrp = 1,
506     .modmsk = IVBEP_UNC_R3QPI_ATTRS,
507     .numasks = LIBPFM_ARRAY_SIZE(ivbep_unc_r3_qpi0_ad_credits_empty), /* shared */
508     .umasks  = ivbep_unc_r3_qpi0_ad_credits_empty
509   },
510   { .name = "UNC_R3_TXR_CYCLES_NE",
511     .desc = "Egress cycles not empty",
512     .code = 0x23,
513     .cntmsk = 0x3,
514     .modmsk = IVBEP_UNC_R3QPI_ATTRS,
515   },
516   { .name = "UNC_R3_TXR_NACK_CCW",
517     .desc = "Egress NACK counter-clockwise",
518     .code = 0x28,
519     .cntmsk = 0x3,
520     .ngrp = 1,
521     .modmsk = IVBEP_UNC_R3QPI_ATTRS,
522     .numasks = LIBPFM_ARRAY_SIZE(ivbep_unc_r3_txr_nack_ccw),
523     .umasks  = ivbep_unc_r3_txr_nack_ccw
524   },
525   { .name = "UNC_R3_TXR_NACK_CW",
526     .desc = "Egress NACK counter-clockwise",
527     .code = 0x26,
528     .cntmsk = 0x3,
529     .ngrp = 1,
530     .modmsk = IVBEP_UNC_R3QPI_ATTRS,
531     .numasks = LIBPFM_ARRAY_SIZE(ivbep_unc_r3_txr_nack_cw),
532     .umasks  = ivbep_unc_r3_txr_nack_cw
533   },
534   { .name = "UNC_R3_VN1_CREDITS_REJECT",
535     .desc = "VN1 Credit Acquisition Failed",
536     .code = 0x39,
537     .cntmsk = 0x3,
538     .ngrp = 1,
539     .modmsk = IVBEP_UNC_R3QPI_ATTRS,
540     .numasks = LIBPFM_ARRAY_SIZE(ivbep_unc_r3_vn0_credits_used), /* shared */
541     .umasks  = ivbep_unc_r3_vn0_credits_used
542   },
543   { .name = "UNC_R3_VN1_CREDITS_USED",
544     .desc = "VN0 Credit Used",
545     .code = 0x38,
546     .cntmsk = 0x3,
547     .ngrp = 1,
548     .modmsk = IVBEP_UNC_R3QPI_ATTRS,
549     .numasks = LIBPFM_ARRAY_SIZE(ivbep_unc_r3_vn0_credits_used), /* shared */
550     .umasks  = ivbep_unc_r3_vn0_credits_used
551   },
552 };