vthread: allow programs to have threads exit on halt.
[akaros.git] / user / perfmon / events / intel_snbep_unc_r3qpi_events.h
1 /*
2  * Copyright (c) 2012 Google, Inc
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: snbep_unc_r3qpi (Intel SandyBridge-EP R3QPI uncore)
28  */
29
30 static const intel_x86_umask_t snbep_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 snbep_unc_r3_ring_ad_used[]={
49   { .uname = "CCW_EVEN",
50     .udesc  = "Counter-Clockwise and even ring polarity",
51     .ucode  = 0x400,
52     .uflags = INTEL_X86_NCOMBO,
53   },
54   { .uname = "CCW_ODD",
55     .udesc  = "Counter-Clockwise and odd ring polarity",
56     .ucode  = 0x800,
57     .uflags = INTEL_X86_NCOMBO,
58   },
59   { .uname = "CW_EVEN",
60     .udesc  = "Clockwise and even ring polarity",
61     .ucode  = 0x100,
62     .uflags = INTEL_X86_NCOMBO,
63   },
64   { .uname = "CW_ODD",
65     .udesc  = "Clockwise and odd ring polarity",
66     .ucode  = 0x200,
67     .uflags = INTEL_X86_NCOMBO,
68   },
69 };
70
71 static const intel_x86_umask_t snbep_unc_r3_ring_iv_used[]={
72   { .uname = "ANY",
73     .udesc  = "Any polarity",
74     .ucode  = 0xf00,
75     .uflags = INTEL_X86_NCOMBO | INTEL_X86_DFL,
76   },
77 };
78
79 static const intel_x86_umask_t snbep_unc_r3_rxr_bypassed[]={
80   { .uname = "AD",
81     .udesc  = "Ingress Bypassed",
82     .ucode  = 0x100,
83     .uflags = INTEL_X86_NCOMBO | INTEL_X86_DFL,
84   },
85 };
86
87 static const intel_x86_umask_t snbep_unc_r3_rxr_cycles_ne[]={
88   { .uname = "DRS",
89     .udesc  = "DRS Ingress queue",
90     .ucode  = 0x800,
91     .uflags = INTEL_X86_NCOMBO,
92   },
93   { .uname = "HOM",
94     .udesc  = "HOM Ingress queue",
95     .ucode  = 0x100,
96     .uflags = INTEL_X86_NCOMBO,
97   },
98   { .uname = "NCB",
99     .udesc  = "NCB Ingress queue",
100     .ucode  = 0x1000,
101     .uflags = INTEL_X86_NCOMBO,
102   },
103   { .uname = "NCS",
104     .udesc  = "NCS Ingress queue",
105     .ucode  = 0x2000,
106     .uflags = INTEL_X86_NCOMBO,
107   },
108   { .uname = "NDR",
109     .udesc  = "NDR Ingress queue",
110     .ucode  = 0x400,
111     .uflags = INTEL_X86_NCOMBO,
112   },
113   { .uname = "SNP",
114     .udesc  = "SNP Ingress queue",
115     .ucode  = 0x200,
116     .uflags = INTEL_X86_NCOMBO,
117   },
118 };
119
120 static const intel_x86_umask_t snbep_unc_r3_vn0_credits_reject[]={
121   { .uname = "DRS",
122     .udesc  = "Filter DRS message class",
123     .ucode  = 0x800,
124     .uflags = INTEL_X86_NCOMBO,
125   },
126   { .uname = "HOM",
127     .udesc  = "Filter HOM message class",
128     .ucode  = 0x100,
129     .uflags = INTEL_X86_NCOMBO,
130   },
131   { .uname = "NCB",
132     .udesc  = "Filter NCB message class",
133     .ucode  = 0x1000,
134     .uflags = INTEL_X86_NCOMBO,
135   },
136   { .uname = "NCS",
137     .udesc  = "Filter NCS message class",
138     .ucode  = 0x2000,
139     .uflags = INTEL_X86_NCOMBO,
140   },
141   { .uname = "NDR",
142     .udesc  = "Filter NDR message class",
143     .ucode  = 0x400,
144     .uflags = INTEL_X86_NCOMBO,
145   },
146   { .uname = "SNP",
147     .udesc  = "Filter SNP message class",
148     .ucode  = 0x200,
149     .uflags = INTEL_X86_NCOMBO,
150   },
151 };
152
153
154 static const intel_x86_entry_t intel_snbep_unc_r3_pe[]={
155   { .name = "UNC_R3_CLOCKTICKS",
156     .desc = "Number of uclks in domain",
157     .code = 0x1,
158     .cntmsk = 0x7,
159     .modmsk = SNBEP_UNC_R3QPI_ATTRS,
160   },
161   { .name = "UNC_R3_IIO_CREDITS_ACQUIRED",
162     .desc = "to IIO BL Credit Acquired",
163     .code = 0x20,
164     .cntmsk = 0x3,
165     .ngrp = 1,
166     .modmsk = SNBEP_UNC_R3QPI_ATTRS,
167     .numasks = LIBPFM_ARRAY_SIZE(snbep_unc_r3_iio_credits_acquired),
168     .umasks  = snbep_unc_r3_iio_credits_acquired
169   },
170   { .name = "UNC_R3_IIO_CREDITS_REJECT",
171     .desc = "to IIO BL Credit Rejected",
172     .code = 0x21,
173     .cntmsk = 0x3,
174     .ngrp = 1,
175     .modmsk = SNBEP_UNC_R3QPI_ATTRS,
176     .numasks = LIBPFM_ARRAY_SIZE(snbep_unc_r3_iio_credits_acquired),
177     .umasks  = snbep_unc_r3_iio_credits_acquired /* shared */
178   },
179   { .name = "UNC_R3_IIO_CREDITS_USED",
180     .desc = "to IIO BL Credit In Use",
181     .code = 0x22,
182     .cntmsk = 0x3,
183     .ngrp = 1,
184     .modmsk = SNBEP_UNC_R3QPI_ATTRS,
185     .numasks = LIBPFM_ARRAY_SIZE(snbep_unc_r3_iio_credits_acquired),
186     .umasks  = snbep_unc_r3_iio_credits_acquired /* shared */
187   },
188   { .name = "UNC_R3_RING_AD_USED",
189     .desc = "R3 AD Ring in Use",
190     .code = 0x7,
191     .cntmsk = 0x7,
192     .ngrp = 1,
193     .modmsk = SNBEP_UNC_R3QPI_ATTRS,
194     .numasks = LIBPFM_ARRAY_SIZE(snbep_unc_r3_ring_ad_used),
195     .umasks  = snbep_unc_r3_ring_ad_used
196   },
197   { .name = "UNC_R3_RING_AK_USED",
198     .desc = "R3 AK Ring in Use",
199     .code = 0x8,
200     .cntmsk = 0x7,
201     .ngrp = 1,
202     .modmsk = SNBEP_UNC_R3QPI_ATTRS,
203     .numasks = LIBPFM_ARRAY_SIZE(snbep_unc_r3_ring_ad_used),
204     .umasks  = snbep_unc_r3_ring_ad_used /* shared */
205   },
206   { .name = "UNC_R3_RING_BL_USED",
207     .desc = "R3 BL Ring in Use",
208     .code = 0x9,
209     .cntmsk = 0x7,
210     .ngrp = 1,
211     .modmsk = SNBEP_UNC_R3QPI_ATTRS,
212     .numasks = LIBPFM_ARRAY_SIZE(snbep_unc_r3_ring_ad_used),
213     .umasks  = snbep_unc_r3_ring_ad_used /* shared */
214   },
215   { .name = "UNC_R3_RING_IV_USED",
216     .desc = "R3 IV Ring in Use",
217     .code = 0xa,
218     .cntmsk = 0x7,
219     .ngrp = 1,
220     .modmsk = SNBEP_UNC_R3QPI_ATTRS,
221     .numasks = LIBPFM_ARRAY_SIZE(snbep_unc_r3_ring_iv_used),
222     .umasks  = snbep_unc_r3_ring_iv_used
223   },
224   { .name = "UNC_R3_RXR_BYPASSED",
225     .desc = "Ingress Bypassed",
226     .code = 0x12,
227     .cntmsk = 0x3,
228     .ngrp = 1,
229     .modmsk = SNBEP_UNC_R3QPI_ATTRS,
230     .numasks = LIBPFM_ARRAY_SIZE(snbep_unc_r3_rxr_bypassed),
231     .umasks  = snbep_unc_r3_rxr_bypassed
232   },
233   { .name = "UNC_R3_RXR_CYCLES_NE",
234     .desc = "Ingress Cycles Not Empty",
235     .code = 0x10,
236     .cntmsk = 0x3,
237     .ngrp = 1,
238     .modmsk = SNBEP_UNC_R3QPI_ATTRS,
239     .numasks = LIBPFM_ARRAY_SIZE(snbep_unc_r3_rxr_cycles_ne),
240     .umasks  = snbep_unc_r3_rxr_cycles_ne
241   },
242   { .name = "UNC_R3_RXR_INSERTS",
243     .desc = "Ingress Allocations",
244     .code = 0x11,
245     .cntmsk = 0x3,
246     .ngrp = 1,
247     .modmsk = SNBEP_UNC_R3QPI_ATTRS,
248     .numasks = LIBPFM_ARRAY_SIZE(snbep_unc_r3_rxr_cycles_ne),
249     .umasks  = snbep_unc_r3_rxr_cycles_ne /* shared */
250   },
251   { .name = "UNC_R3_RXR_OCCUPANCY",
252     .desc = "Ingress Occupancy Accumulator",
253     .code = 0x13,
254     .cntmsk = 0x1,
255     .ngrp = 1,
256     .modmsk = SNBEP_UNC_R3QPI_ATTRS,
257     .numasks = LIBPFM_ARRAY_SIZE(snbep_unc_r3_rxr_cycles_ne),
258     .umasks  = snbep_unc_r3_rxr_cycles_ne /* shared */
259   },
260   { .name = "UNC_R3_TXR_CYCLES_FULL",
261     .desc = "Egress cycles full",
262     .code = 0x25,
263     .cntmsk = 0x3,
264     .modmsk = SNBEP_UNC_R3QPI_ATTRS,
265   },
266   { .name = "UNC_R3_TXR_INSERTS",
267     .desc = "Egress allocations",
268     .code = 0x24,
269     .cntmsk = 0x3,
270     .modmsk = SNBEP_UNC_R3QPI_ATTRS,
271   },
272   { .name = "UNC_R3_TXR_NACK",
273     .desc = "Egress Nack",
274     .code = 0x26,
275     .cntmsk = 0x3,
276     .modmsk = SNBEP_UNC_R3QPI_ATTRS,
277   },
278   { .name = "UNC_R3_VN0_CREDITS_REJECT",
279     .desc = "VN0 Credit Acquisition Failed on DRS",
280     .code = 0x37,
281     .cntmsk = 0x3,
282     .ngrp = 1,
283     .modmsk = SNBEP_UNC_R3QPI_ATTRS,
284     .numasks = LIBPFM_ARRAY_SIZE(snbep_unc_r3_vn0_credits_reject),
285     .umasks  = snbep_unc_r3_vn0_credits_reject
286   },
287   { .name = "UNC_R3_VN0_CREDITS_USED",
288     .desc = "VN0 Credit Used",
289     .code = 0x36,
290     .cntmsk = 0x3,
291     .ngrp = 1,
292     .modmsk = SNBEP_UNC_R3QPI_ATTRS,
293     .numasks = LIBPFM_ARRAY_SIZE(snbep_unc_r3_vn0_credits_reject),
294     .umasks  = snbep_unc_r3_vn0_credits_reject /* shared */
295   },
296   { .name = "UNC_R3_VNA_CREDITS_ACQUIRED",
297     .desc = "VNA credit Acquisitions",
298     .code = 0x33,
299     .cntmsk = 0x3,
300     .modmsk = SNBEP_UNC_R3QPI_ATTRS,
301   },
302   { .name = "UNC_R3_VNA_CREDITS_REJECT",
303     .desc = "VNA Credit Reject",
304     .code = 0x34,
305     .cntmsk = 0x3,
306     .ngrp = 1,
307     .modmsk = SNBEP_UNC_R3QPI_ATTRS,
308     .numasks = LIBPFM_ARRAY_SIZE(snbep_unc_r3_vn0_credits_reject),
309     .umasks  = snbep_unc_r3_vn0_credits_reject /* shared */
310   },
311   { .name = "UNC_R3_VNA_CREDIT_CYCLES_OUT",
312     .desc = "Cycles with no VNA credits available",
313     .code = 0x31,
314     .cntmsk = 0x3,
315     .modmsk = SNBEP_UNC_R3QPI_ATTRS,
316   },
317   { .name = "UNC_R3_VNA_CREDIT_CYCLES_USED",
318     .desc = "Cycles with 1 or more VNA credits in use",
319     .code = 0x32,
320     .cntmsk = 0x3,
321     .modmsk = SNBEP_UNC_R3QPI_ATTRS,
322   },
323 };