vmm: Fix use-after-free in load_elf()
[akaros.git] / user / perfmon / events / intel_ivbep_unc_irp_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_irp (Intel IvyBridge-EP IRP uncore)
28  */
29
30 static const intel_x86_umask_t ivbep_unc_i_address_match[]={
31   { .uname = "STALL_COUNT",
32     .udesc  = "Number of time when it is not possible to merge two conflicting requests, a stall event occurs",
33     .ucode  = 0x100,
34   },
35   { .uname = "MERGE_COUNT",
36     .udesc  = "Number of times when two requests to the same address from the same source are received back to back, it is possible to merge them",
37     .ucode  = 0x200,
38   },
39 };
40
41 static const intel_x86_umask_t ivbep_unc_i_cache_ack_pending_occupancy[]={
42   { .uname = "ANY",
43     .udesc  = "Any source",
44     .ucode  = 0x100,
45     .uflags = INTEL_X86_NCOMBO | INTEL_X86_DFL,
46   },
47   { .uname = "SOURCE",
48     .udesc  = "Track all requests from any source port",
49     .ucode  = 0x200,
50   },
51 };
52
53 static const intel_x86_umask_t ivbep_unc_i_tickles[]={
54   { .uname = "LOST_OWNERSHIP",
55     .udesc  = "Number of request that lost ownership as a result of a tickle",
56     .ucode  = 0x100,
57   },
58   { .uname = "TOP_OF_QUEUE",
59     .udesc  = "Number of cases when a tickle was received but the request was at the head of the queue in the switch. In this case data is returned rather than releasing ownership",
60     .ucode  = 0x200,
61   },
62 };
63
64
65 static const intel_x86_umask_t ivbep_unc_i_transactions[]={
66   { .uname = "READS",
67     .udesc  = "Number of read requests (not including read prefetches)",
68     .ucode  = 0x100,
69   },
70   { .uname = "WRITES",
71     .udesc  = "Number of write requests. Each write should have a prefetch, so there is no need to explicitly track these requests",
72     .ucode  = 0x200,
73   },
74   { .uname = "RD_PREFETCHES",
75     .udesc  = "Number of read prefetches",
76     .ucode  = 0x400,
77   },
78 };
79
80 static const intel_x86_entry_t intel_ivbep_unc_i_pe[]={
81   { .name = "UNC_I_CLOCKTICKS",
82     .desc = "Number of uclks in domain",
83     .code = 0x0,
84     .cntmsk = 0x3,
85     .modmsk = SNBEP_UNC_IRP_ATTRS,
86   },
87   { .name = "UNC_I_ADDRESS_MATCH",
88     .desc = "Address match conflict count",
89     .code = 0x17,
90     .cntmsk = 0x3,
91     .ngrp = 1,
92     .modmsk = SNBEP_UNC_IRP_ATTRS,
93     .numasks = LIBPFM_ARRAY_SIZE(ivbep_unc_i_address_match),
94     .umasks  = ivbep_unc_i_address_match
95   },
96   { .name = "UNC_I_CACHE_ACK_PENDING_OCCUPANCY",
97     .desc = "Write ACK pending occupancy",
98     .code = 0x14,
99     .cntmsk = 0x3,
100     .ngrp = 1,
101     .modmsk = SNBEP_UNC_IRP_ATTRS,
102     .numasks = LIBPFM_ARRAY_SIZE(ivbep_unc_i_cache_ack_pending_occupancy),
103     .umasks  = ivbep_unc_i_cache_ack_pending_occupancy
104   },
105   { .name = "UNC_I_CACHE_OWN_OCCUPANCY",
106     .desc = "Outstanding write ownership occupancy",
107     .code = 0x13,
108     .cntmsk = 0x3,
109     .ngrp = 1,
110     .modmsk = SNBEP_UNC_IRP_ATTRS,
111     .numasks = LIBPFM_ARRAY_SIZE(ivbep_unc_i_cache_ack_pending_occupancy),
112     .umasks  = ivbep_unc_i_cache_ack_pending_occupancy /* shared */
113   },
114   { .name = "UNC_I_CACHE_READ_OCCUPANCY",
115     .desc = "Outstanding read occupancy",
116     .code = 0x10,
117     .cntmsk = 0x3,
118     .ngrp = 1,
119     .modmsk = SNBEP_UNC_IRP_ATTRS,
120     .numasks = LIBPFM_ARRAY_SIZE(ivbep_unc_i_cache_ack_pending_occupancy),
121     .umasks  = ivbep_unc_i_cache_ack_pending_occupancy /* shared */
122   },
123   { .name = "UNC_I_CACHE_TOTAL_OCCUPANCY",
124     .desc = "Total write cache occupancy",
125     .code = 0x12,
126     .cntmsk = 0x3,
127     .ngrp = 1,
128     .modmsk = SNBEP_UNC_IRP_ATTRS,
129     .numasks = LIBPFM_ARRAY_SIZE(ivbep_unc_i_cache_ack_pending_occupancy),
130     .umasks  = ivbep_unc_i_cache_ack_pending_occupancy /* shared */
131   },
132   { .name = "UNC_I_CACHE_WRITE_OCCUPANCY",
133     .desc = "Outstanding write occupancy",
134     .code = 0x11,
135     .cntmsk = 0x3,
136     .ngrp = 1,
137     .modmsk = SNBEP_UNC_IRP_ATTRS,
138     .numasks = LIBPFM_ARRAY_SIZE(ivbep_unc_i_cache_ack_pending_occupancy),
139     .umasks  = ivbep_unc_i_cache_ack_pending_occupancy /* shared */
140   },
141   { .name = "UNC_I_RXR_AK_CYCLES_FULL",
142     .desc = "TBD",
143     .code = 0xb,
144     .cntmsk = 0x3,
145     .modmsk = SNBEP_UNC_IRP_ATTRS,
146   },
147   { .name = "UNC_I_RXR_AK_INSERTS",
148     .desc = "Egress cycles full",
149     .code = 0xa,
150     .cntmsk = 0x3,
151     .modmsk = SNBEP_UNC_IRP_ATTRS,
152   },
153   { .name = "UNC_I_RXR_AK_OCCUPANCY",
154     .desc = "TBD",
155     .code = 0x0c,
156     .cntmsk = 0x3,
157     .modmsk = SNBEP_UNC_IRP_ATTRS,
158   },
159   { .name = "UNC_I_RXR_BL_DRS_CYCLES_FULL",
160     .desc = "TBD",
161     .code = 0x4,
162     .cntmsk = 0x3,
163     .modmsk = SNBEP_UNC_IRP_ATTRS,
164   },
165   { .name = "UNC_I_RXR_BL_DRS_INSERTS",
166     .desc = "BL Ingress occupancy DRS",
167     .code = 0x1,
168     .cntmsk = 0x3,
169     .modmsk = SNBEP_UNC_IRP_ATTRS,
170   },
171   { .name = "UNC_I_RXR_BL_DRS_OCCUPANCY",
172     .desc = "TBD",
173     .code = 0x7,
174     .cntmsk = 0x3,
175     .modmsk = SNBEP_UNC_IRP_ATTRS,
176   },
177   { .name = "UNC_I_RXR_BL_NCB_CYCLES_FULL",
178     .desc = "TBD",
179     .code = 0x5,
180     .cntmsk = 0x3,
181     .modmsk = SNBEP_UNC_IRP_ATTRS,
182   },
183   { .name = "UNC_I_RXR_BL_NCB_INSERTS",
184     .desc = "BL Ingress occupancy NCB",
185     .code = 0x2,
186     .cntmsk = 0x3,
187     .modmsk = SNBEP_UNC_IRP_ATTRS,
188   },
189   { .name = "UNC_I_RXR_BL_NCB_OCCUPANCY",
190     .desc = "TBD",
191     .code = 0x8,
192     .cntmsk = 0x3,
193     .modmsk = SNBEP_UNC_IRP_ATTRS,
194   },
195   { .name = "UNC_I_RXR_BL_NCS_CYCLES_FULL",
196     .desc = "TBD",
197     .code = 0x6,
198     .cntmsk = 0x3,
199     .modmsk = SNBEP_UNC_IRP_ATTRS,
200   },
201   { .name = "UNC_I_RXR_BL_NCS_INSERTS",
202     .desc = "BL Ingress Occupancy NCS",
203     .code = 0x3,
204     .cntmsk = 0x3,
205     .modmsk = SNBEP_UNC_IRP_ATTRS,
206   },
207   { .name = "UNC_I_RXR_BL_NCS_OCCUPANCY",
208     .desc = "TBD",
209     .code = 0x9,
210     .cntmsk = 0x3,
211     .modmsk = SNBEP_UNC_IRP_ATTRS,
212   },
213   { .name = "UNC_I_TICKLES",
214     .desc = "Tickle count",
215     .code = 0x16,
216     .cntmsk = 0x3,
217     .ngrp = 1,
218     .modmsk = SNBEP_UNC_IRP_ATTRS,
219     .numasks = LIBPFM_ARRAY_SIZE(ivbep_unc_i_tickles),
220     .umasks  = ivbep_unc_i_tickles
221   },
222   { .name = "UNC_I_TRANSACTIONS",
223     .desc = "Inbound transaction count",
224     .code = 0x15,
225     .cntmsk = 0x3,
226     .ngrp = 1,
227     .modmsk = SNBEP_UNC_IRP_ATTRS,
228     .numasks = LIBPFM_ARRAY_SIZE(ivbep_unc_i_transactions),
229     .umasks  = ivbep_unc_i_transactions
230   },
231   { .name = "UNC_I_TXR_AD_STALL_CREDIT_CYCLES",
232     .desc = "No AD Egress credit stalls",
233     .code = 0x18,
234     .cntmsk = 0x3,
235     .modmsk = SNBEP_UNC_IRP_ATTRS,
236   },
237   { .name = "UNC_I_TXR_BL_STALL_CREDIT_CYCLES",
238     .desc = "No BL Egress credit stalls",
239     .code = 0x19,
240     .cntmsk = 0x3,
241     .modmsk = SNBEP_UNC_IRP_ATTRS,
242   },
243   { .name = "UNC_I_TXR_DATA_INSERTS_NCB",
244     .desc = "Outbound read requests",
245     .code = 0xe,
246     .cntmsk = 0x3,
247     .modmsk = SNBEP_UNC_IRP_ATTRS,
248   },
249   { .name = "UNC_I_TXR_DATA_INSERTS_NCS",
250     .desc = "Outbound read requests",
251     .code = 0xf,
252     .cntmsk = 0x3,
253     .modmsk = SNBEP_UNC_IRP_ATTRS,
254   },
255   { .name = "UNC_I_TXR_REQUEST_OCCUPANCY",
256     .desc = "Outbound request queue occupancy",
257     .code = 0xd,
258     .cntmsk = 0x3,
259     .modmsk = SNBEP_UNC_IRP_ATTRS,
260   },
261   { .name = "UNC_I_WRITE_ORDERING_STALL_CYCLES",
262     .desc = "Write ordering stalls",
263     .code = 0x1a,
264     .cntmsk = 0x3,
265     .modmsk = SNBEP_UNC_IRP_ATTRS,
266   },
267 };