14e411ee4SZhengjun Xing[
24e411ee4SZhengjun Xing    {
3*54f5de6fSIan Rogers        "BriefDescription": "Cycles - at UCLK",
4*54f5de6fSIan Rogers        "EventCode": "0x01",
5*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_CLOCKTICKS",
6*54f5de6fSIan Rogers        "PerPkg": "1",
7*54f5de6fSIan Rogers        "Unit": "M2HBM"
8*54f5de6fSIan Rogers    },
9*54f5de6fSIan Rogers    {
10*54f5de6fSIan Rogers        "BriefDescription": "CMS Clockticks",
11*54f5de6fSIan Rogers        "EventCode": "0xc0",
12*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_CMS_CLOCKTICKS",
13*54f5de6fSIan Rogers        "PerPkg": "1",
14*54f5de6fSIan Rogers        "Unit": "M2HBM"
15*54f5de6fSIan Rogers    },
16*54f5de6fSIan Rogers    {
17*54f5de6fSIan Rogers        "BriefDescription": "Cycles when direct to core mode (which bypasses the CHA) was disabled",
18*54f5de6fSIan Rogers        "EventCode": "0x17",
19*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_DIRECT2CORE_NOT_TAKEN_DIRSTATE",
20*54f5de6fSIan Rogers        "PerPkg": "1",
21*54f5de6fSIan Rogers        "UMask": "0x7",
22*54f5de6fSIan Rogers        "Unit": "M2HBM"
23*54f5de6fSIan Rogers    },
24*54f5de6fSIan Rogers    {
25*54f5de6fSIan Rogers        "BriefDescription": "Cycles when direct to core mode, which bypasses the CHA, was disabled : Non Cisgress",
26*54f5de6fSIan Rogers        "EventCode": "0x17",
27*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_DIRECT2CORE_NOT_TAKEN_DIRSTATE.NON_CISGRESS",
28*54f5de6fSIan Rogers        "PerPkg": "1",
29*54f5de6fSIan Rogers        "PublicDescription": "Counts the number of time non cisgress D2C was not honoured by egress due to directory state constraints",
30*54f5de6fSIan Rogers        "UMask": "0x2",
31*54f5de6fSIan Rogers        "Unit": "M2HBM"
32*54f5de6fSIan Rogers    },
33*54f5de6fSIan Rogers    {
34*54f5de6fSIan Rogers        "BriefDescription": "Counts the time when FM didn't do d2c for fill reads (cross tile case)",
35*54f5de6fSIan Rogers        "EventCode": "0x4a",
36*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_DIRECT2CORE_NOT_TAKEN_NOTFORKED",
37*54f5de6fSIan Rogers        "PerPkg": "1",
38*54f5de6fSIan Rogers        "Unit": "M2HBM"
39*54f5de6fSIan Rogers    },
40*54f5de6fSIan Rogers    {
41*54f5de6fSIan Rogers        "BriefDescription": "Number of reads in which direct to core transaction were overridden",
42*54f5de6fSIan Rogers        "EventCode": "0x18",
43*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_DIRECT2CORE_TXN_OVERRIDE",
44*54f5de6fSIan Rogers        "PerPkg": "1",
45*54f5de6fSIan Rogers        "UMask": "0x3",
46*54f5de6fSIan Rogers        "Unit": "M2HBM"
47*54f5de6fSIan Rogers    },
48*54f5de6fSIan Rogers    {
49*54f5de6fSIan Rogers        "BriefDescription": "Number of reads in which direct to core transaction was overridden : Cisgress",
50*54f5de6fSIan Rogers        "EventCode": "0x18",
51*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_DIRECT2CORE_TXN_OVERRIDE.CISGRESS",
52*54f5de6fSIan Rogers        "PerPkg": "1",
53*54f5de6fSIan Rogers        "UMask": "0x2",
54*54f5de6fSIan Rogers        "Unit": "M2HBM"
55*54f5de6fSIan Rogers    },
56*54f5de6fSIan Rogers    {
57*54f5de6fSIan Rogers        "BriefDescription": "Number of reads in which direct to Intel UPI transactions were overridden",
58*54f5de6fSIan Rogers        "EventCode": "0x1b",
59*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_DIRECT2UPI_NOT_TAKEN_CREDITS",
60*54f5de6fSIan Rogers        "PerPkg": "1",
61*54f5de6fSIan Rogers        "UMask": "0x7",
62*54f5de6fSIan Rogers        "Unit": "M2HBM"
63*54f5de6fSIan Rogers    },
64*54f5de6fSIan Rogers    {
65*54f5de6fSIan Rogers        "BriefDescription": "Cycles when direct to Intel UPI was disabled",
66*54f5de6fSIan Rogers        "EventCode": "0x1a",
67*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_DIRECT2UPI_NOT_TAKEN_DIRSTATE",
68*54f5de6fSIan Rogers        "PerPkg": "1",
69*54f5de6fSIan Rogers        "UMask": "0x7",
70*54f5de6fSIan Rogers        "Unit": "M2HBM"
71*54f5de6fSIan Rogers    },
72*54f5de6fSIan Rogers    {
73*54f5de6fSIan Rogers        "BriefDescription": "Cycles when Direct2UPI was Disabled : Cisgress D2U Ignored",
74*54f5de6fSIan Rogers        "EventCode": "0x1A",
75*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_DIRECT2UPI_NOT_TAKEN_DIRSTATE.CISGRESS",
76*54f5de6fSIan Rogers        "FCMask": "0x00000000",
77*54f5de6fSIan Rogers        "PerPkg": "1",
78*54f5de6fSIan Rogers        "PortMask": "0x00000000",
79*54f5de6fSIan Rogers        "PublicDescription": "Counts cisgress d2K that was not honored due to directory constraints",
80*54f5de6fSIan Rogers        "UMask": "0x4",
81*54f5de6fSIan Rogers        "Unit": "M2HBM"
82*54f5de6fSIan Rogers    },
83*54f5de6fSIan Rogers    {
84*54f5de6fSIan Rogers        "BriefDescription": "Cycles when Direct2UPI was Disabled : Egress Ignored D2U",
85*54f5de6fSIan Rogers        "EventCode": "0x1A",
86*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_DIRECT2UPI_NOT_TAKEN_DIRSTATE.EGRESS",
87*54f5de6fSIan Rogers        "FCMask": "0x00000000",
88*54f5de6fSIan Rogers        "PerPkg": "1",
89*54f5de6fSIan Rogers        "PortMask": "0x00000000",
90*54f5de6fSIan Rogers        "PublicDescription": "Counts the number of time D2K was not honoured by egress due to directory state constraints",
91*54f5de6fSIan Rogers        "UMask": "0x1",
92*54f5de6fSIan Rogers        "Unit": "M2HBM"
93*54f5de6fSIan Rogers    },
94*54f5de6fSIan Rogers    {
95*54f5de6fSIan Rogers        "BriefDescription": "Cycles when Direct2UPI was Disabled : Non Cisgress D2U Ignored",
96*54f5de6fSIan Rogers        "EventCode": "0x1A",
97*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_DIRECT2UPI_NOT_TAKEN_DIRSTATE.NON_CISGRESS",
98*54f5de6fSIan Rogers        "FCMask": "0x00000000",
99*54f5de6fSIan Rogers        "PerPkg": "1",
100*54f5de6fSIan Rogers        "PortMask": "0x00000000",
101*54f5de6fSIan Rogers        "PublicDescription": "Counts non cisgress d2K that was not honored due to directory constraints",
102*54f5de6fSIan Rogers        "UMask": "0x2",
103*54f5de6fSIan Rogers        "Unit": "M2HBM"
104*54f5de6fSIan Rogers    },
105*54f5de6fSIan Rogers    {
106*54f5de6fSIan Rogers        "BriefDescription": "Number of reads that a message sent direct2 Intel UPI was overridden",
107*54f5de6fSIan Rogers        "EventCode": "0x1c",
108*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_DIRECT2UPI_TXN_OVERRIDE",
109*54f5de6fSIan Rogers        "PerPkg": "1",
110*54f5de6fSIan Rogers        "UMask": "0x3",
111*54f5de6fSIan Rogers        "Unit": "M2HBM"
112*54f5de6fSIan Rogers    },
113*54f5de6fSIan Rogers    {
114*54f5de6fSIan Rogers        "BriefDescription": "Number of times a direct to UPI transaction was overridden.",
115*54f5de6fSIan Rogers        "EventCode": "0x1c",
116*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_DIRECT2UPI_TXN_OVERRIDE.CISGRESS",
117*54f5de6fSIan Rogers        "PerPkg": "1",
118*54f5de6fSIan Rogers        "UMask": "0x2",
119*54f5de6fSIan Rogers        "Unit": "M2HBM"
120*54f5de6fSIan Rogers    },
121*54f5de6fSIan Rogers    {
122*54f5de6fSIan Rogers        "BriefDescription": "Directory Hit : On NonDirty Line in A State",
123*54f5de6fSIan Rogers        "EventCode": "0x1d",
124*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_DIRECTORY_HIT.CLEAN_A",
125*54f5de6fSIan Rogers        "PerPkg": "1",
126*54f5de6fSIan Rogers        "UMask": "0x80",
127*54f5de6fSIan Rogers        "Unit": "M2HBM"
128*54f5de6fSIan Rogers    },
129*54f5de6fSIan Rogers    {
130*54f5de6fSIan Rogers        "BriefDescription": "Directory Hit : On NonDirty Line in I State",
131*54f5de6fSIan Rogers        "EventCode": "0x1d",
132*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_DIRECTORY_HIT.CLEAN_I",
133*54f5de6fSIan Rogers        "PerPkg": "1",
134*54f5de6fSIan Rogers        "UMask": "0x10",
135*54f5de6fSIan Rogers        "Unit": "M2HBM"
136*54f5de6fSIan Rogers    },
137*54f5de6fSIan Rogers    {
138*54f5de6fSIan Rogers        "BriefDescription": "Directory Hit : On NonDirty Line in L State",
139*54f5de6fSIan Rogers        "EventCode": "0x1d",
140*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_DIRECTORY_HIT.CLEAN_P",
141*54f5de6fSIan Rogers        "PerPkg": "1",
142*54f5de6fSIan Rogers        "UMask": "0x40",
143*54f5de6fSIan Rogers        "Unit": "M2HBM"
144*54f5de6fSIan Rogers    },
145*54f5de6fSIan Rogers    {
146*54f5de6fSIan Rogers        "BriefDescription": "Directory Hit : On NonDirty Line in S State",
147*54f5de6fSIan Rogers        "EventCode": "0x1d",
148*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_DIRECTORY_HIT.CLEAN_S",
149*54f5de6fSIan Rogers        "PerPkg": "1",
150*54f5de6fSIan Rogers        "UMask": "0x20",
151*54f5de6fSIan Rogers        "Unit": "M2HBM"
152*54f5de6fSIan Rogers    },
153*54f5de6fSIan Rogers    {
154*54f5de6fSIan Rogers        "BriefDescription": "Directory Hit : On Dirty Line in A State",
155*54f5de6fSIan Rogers        "EventCode": "0x1d",
156*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_DIRECTORY_HIT.DIRTY_A",
157*54f5de6fSIan Rogers        "PerPkg": "1",
158*54f5de6fSIan Rogers        "UMask": "0x8",
159*54f5de6fSIan Rogers        "Unit": "M2HBM"
160*54f5de6fSIan Rogers    },
161*54f5de6fSIan Rogers    {
162*54f5de6fSIan Rogers        "BriefDescription": "Directory Hit : On Dirty Line in I State",
163*54f5de6fSIan Rogers        "EventCode": "0x1d",
164*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_DIRECTORY_HIT.DIRTY_I",
165*54f5de6fSIan Rogers        "PerPkg": "1",
166*54f5de6fSIan Rogers        "UMask": "0x1",
167*54f5de6fSIan Rogers        "Unit": "M2HBM"
168*54f5de6fSIan Rogers    },
169*54f5de6fSIan Rogers    {
170*54f5de6fSIan Rogers        "BriefDescription": "Directory Hit : On Dirty Line in L State",
171*54f5de6fSIan Rogers        "EventCode": "0x1d",
172*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_DIRECTORY_HIT.DIRTY_P",
173*54f5de6fSIan Rogers        "PerPkg": "1",
174*54f5de6fSIan Rogers        "UMask": "0x4",
175*54f5de6fSIan Rogers        "Unit": "M2HBM"
176*54f5de6fSIan Rogers    },
177*54f5de6fSIan Rogers    {
178*54f5de6fSIan Rogers        "BriefDescription": "Directory Hit : On Dirty Line in S State",
179*54f5de6fSIan Rogers        "EventCode": "0x1d",
180*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_DIRECTORY_HIT.DIRTY_S",
181*54f5de6fSIan Rogers        "PerPkg": "1",
182*54f5de6fSIan Rogers        "UMask": "0x2",
183*54f5de6fSIan Rogers        "Unit": "M2HBM"
184*54f5de6fSIan Rogers    },
185*54f5de6fSIan Rogers    {
186*54f5de6fSIan Rogers        "BriefDescription": "Multi-socket cacheline Directory lookups (any state found)",
187*54f5de6fSIan Rogers        "EventCode": "0x20",
188*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_DIRECTORY_LOOKUP.ANY",
189*54f5de6fSIan Rogers        "PerPkg": "1",
190*54f5de6fSIan Rogers        "PublicDescription": "Counts the number of hit data returns to egress with any directory to non persistent memory",
191*54f5de6fSIan Rogers        "UMask": "0x1",
192*54f5de6fSIan Rogers        "Unit": "M2HBM"
193*54f5de6fSIan Rogers    },
194*54f5de6fSIan Rogers    {
195*54f5de6fSIan Rogers        "BriefDescription": "Multi-socket cacheline Directory lookups (cacheline found in A state)",
196*54f5de6fSIan Rogers        "EventCode": "0x20",
197*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_DIRECTORY_LOOKUP.STATE_A",
198*54f5de6fSIan Rogers        "PerPkg": "1",
199*54f5de6fSIan Rogers        "PublicDescription": "Counts the number of hit data returns to egress with directory A to non persistent memory",
200*54f5de6fSIan Rogers        "UMask": "0x8",
201*54f5de6fSIan Rogers        "Unit": "M2HBM"
202*54f5de6fSIan Rogers    },
203*54f5de6fSIan Rogers    {
204*54f5de6fSIan Rogers        "BriefDescription": "Multi-socket cacheline Directory lookup (cacheline found in I state)",
205*54f5de6fSIan Rogers        "EventCode": "0x20",
206*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_DIRECTORY_LOOKUP.STATE_I",
207*54f5de6fSIan Rogers        "PerPkg": "1",
208*54f5de6fSIan Rogers        "PublicDescription": "Counts the number of hit data returns to egress with directory I to non persistent memory",
209*54f5de6fSIan Rogers        "UMask": "0x2",
210*54f5de6fSIan Rogers        "Unit": "M2HBM"
211*54f5de6fSIan Rogers    },
212*54f5de6fSIan Rogers    {
213*54f5de6fSIan Rogers        "BriefDescription": "Multi-socket cacheline Directory lookup (cacheline found in S state)",
214*54f5de6fSIan Rogers        "EventCode": "0x20",
215*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_DIRECTORY_LOOKUP.STATE_S",
216*54f5de6fSIan Rogers        "PerPkg": "1",
217*54f5de6fSIan Rogers        "PublicDescription": "Counts the number of hit data returns to egress with directory S to non persistent memory",
218*54f5de6fSIan Rogers        "UMask": "0x4",
219*54f5de6fSIan Rogers        "Unit": "M2HBM"
220*54f5de6fSIan Rogers    },
221*54f5de6fSIan Rogers    {
222*54f5de6fSIan Rogers        "BriefDescription": "Directory Miss : On NonDirty Line in A State",
223*54f5de6fSIan Rogers        "EventCode": "0x1e",
224*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_DIRECTORY_MISS.CLEAN_A",
225*54f5de6fSIan Rogers        "PerPkg": "1",
226*54f5de6fSIan Rogers        "UMask": "0x80",
227*54f5de6fSIan Rogers        "Unit": "M2HBM"
228*54f5de6fSIan Rogers    },
229*54f5de6fSIan Rogers    {
230*54f5de6fSIan Rogers        "BriefDescription": "Directory Miss : On NonDirty Line in I State",
231*54f5de6fSIan Rogers        "EventCode": "0x1e",
232*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_DIRECTORY_MISS.CLEAN_I",
233*54f5de6fSIan Rogers        "PerPkg": "1",
234*54f5de6fSIan Rogers        "UMask": "0x10",
235*54f5de6fSIan Rogers        "Unit": "M2HBM"
236*54f5de6fSIan Rogers    },
237*54f5de6fSIan Rogers    {
238*54f5de6fSIan Rogers        "BriefDescription": "Directory Miss : On NonDirty Line in L State",
239*54f5de6fSIan Rogers        "EventCode": "0x1e",
240*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_DIRECTORY_MISS.CLEAN_P",
241*54f5de6fSIan Rogers        "PerPkg": "1",
242*54f5de6fSIan Rogers        "UMask": "0x40",
243*54f5de6fSIan Rogers        "Unit": "M2HBM"
244*54f5de6fSIan Rogers    },
245*54f5de6fSIan Rogers    {
246*54f5de6fSIan Rogers        "BriefDescription": "Directory Miss : On NonDirty Line in S State",
247*54f5de6fSIan Rogers        "EventCode": "0x1e",
248*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_DIRECTORY_MISS.CLEAN_S",
249*54f5de6fSIan Rogers        "PerPkg": "1",
250*54f5de6fSIan Rogers        "UMask": "0x20",
251*54f5de6fSIan Rogers        "Unit": "M2HBM"
252*54f5de6fSIan Rogers    },
253*54f5de6fSIan Rogers    {
254*54f5de6fSIan Rogers        "BriefDescription": "Directory Miss : On Dirty Line in A State",
255*54f5de6fSIan Rogers        "EventCode": "0x1e",
256*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_DIRECTORY_MISS.DIRTY_A",
257*54f5de6fSIan Rogers        "PerPkg": "1",
258*54f5de6fSIan Rogers        "UMask": "0x8",
259*54f5de6fSIan Rogers        "Unit": "M2HBM"
260*54f5de6fSIan Rogers    },
261*54f5de6fSIan Rogers    {
262*54f5de6fSIan Rogers        "BriefDescription": "Directory Miss : On Dirty Line in I State",
263*54f5de6fSIan Rogers        "EventCode": "0x1e",
264*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_DIRECTORY_MISS.DIRTY_I",
265*54f5de6fSIan Rogers        "PerPkg": "1",
266*54f5de6fSIan Rogers        "UMask": "0x1",
267*54f5de6fSIan Rogers        "Unit": "M2HBM"
268*54f5de6fSIan Rogers    },
269*54f5de6fSIan Rogers    {
270*54f5de6fSIan Rogers        "BriefDescription": "Directory Miss : On Dirty Line in L State",
271*54f5de6fSIan Rogers        "EventCode": "0x1e",
272*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_DIRECTORY_MISS.DIRTY_P",
273*54f5de6fSIan Rogers        "PerPkg": "1",
274*54f5de6fSIan Rogers        "UMask": "0x4",
275*54f5de6fSIan Rogers        "Unit": "M2HBM"
276*54f5de6fSIan Rogers    },
277*54f5de6fSIan Rogers    {
278*54f5de6fSIan Rogers        "BriefDescription": "Directory Miss : On Dirty Line in S State",
279*54f5de6fSIan Rogers        "EventCode": "0x1e",
280*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_DIRECTORY_MISS.DIRTY_S",
281*54f5de6fSIan Rogers        "PerPkg": "1",
282*54f5de6fSIan Rogers        "UMask": "0x2",
283*54f5de6fSIan Rogers        "Unit": "M2HBM"
284*54f5de6fSIan Rogers    },
285*54f5de6fSIan Rogers    {
286*54f5de6fSIan Rogers        "BriefDescription": "Multi-socket cacheline Directory update from A to I",
287*54f5de6fSIan Rogers        "EventCode": "0x21",
288*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_DIRECTORY_UPDATE.A2I",
289*54f5de6fSIan Rogers        "PerPkg": "1",
290*54f5de6fSIan Rogers        "UMask": "0x320",
291*54f5de6fSIan Rogers        "Unit": "M2HBM"
292*54f5de6fSIan Rogers    },
293*54f5de6fSIan Rogers    {
294*54f5de6fSIan Rogers        "BriefDescription": "Multi-socket cacheline Directory update from A to S",
295*54f5de6fSIan Rogers        "EventCode": "0x21",
296*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_DIRECTORY_UPDATE.A2S",
297*54f5de6fSIan Rogers        "PerPkg": "1",
298*54f5de6fSIan Rogers        "UMask": "0x340",
299*54f5de6fSIan Rogers        "Unit": "M2HBM"
300*54f5de6fSIan Rogers    },
301*54f5de6fSIan Rogers    {
302*54f5de6fSIan Rogers        "BriefDescription": "Multi-socket cacheline Directory update from/to Any state",
303*54f5de6fSIan Rogers        "EventCode": "0x21",
304*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_DIRECTORY_UPDATE.ANY",
305*54f5de6fSIan Rogers        "PerPkg": "1",
306*54f5de6fSIan Rogers        "UMask": "0x301",
307*54f5de6fSIan Rogers        "Unit": "M2HBM"
308*54f5de6fSIan Rogers    },
309*54f5de6fSIan Rogers    {
310*54f5de6fSIan Rogers        "BriefDescription": "Multi-socket cacheline Directory Updates",
311*54f5de6fSIan Rogers        "EventCode": "0x21",
312*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_DIRECTORY_UPDATE.A_TO_I_HIT_NON_PMM",
313*54f5de6fSIan Rogers        "FCMask": "0x00000000",
314*54f5de6fSIan Rogers        "PerPkg": "1",
315*54f5de6fSIan Rogers        "PortMask": "0x00000000",
316*54f5de6fSIan Rogers        "PublicDescription": "Counts 1lm or 2lm hit  data returns that would result in directory update from A to I to non persistent memory",
317*54f5de6fSIan Rogers        "UMask": "0x120",
318*54f5de6fSIan Rogers        "Unit": "M2HBM"
319*54f5de6fSIan Rogers    },
320*54f5de6fSIan Rogers    {
321*54f5de6fSIan Rogers        "BriefDescription": "Multi-socket cacheline Directory Updates",
322*54f5de6fSIan Rogers        "EventCode": "0x21",
323*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_DIRECTORY_UPDATE.A_TO_I_MISS_NON_PMM",
324*54f5de6fSIan Rogers        "FCMask": "0x00000000",
325*54f5de6fSIan Rogers        "PerPkg": "1",
326*54f5de6fSIan Rogers        "PortMask": "0x00000000",
327*54f5de6fSIan Rogers        "PublicDescription": "Counts 2lm miss  data returns that would result in directory update from A to I to non persistent memory",
328*54f5de6fSIan Rogers        "UMask": "0x220",
329*54f5de6fSIan Rogers        "Unit": "M2HBM"
330*54f5de6fSIan Rogers    },
331*54f5de6fSIan Rogers    {
332*54f5de6fSIan Rogers        "BriefDescription": "Multi-socket cacheline Directory Updates",
333*54f5de6fSIan Rogers        "EventCode": "0x21",
334*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_DIRECTORY_UPDATE.A_TO_S_HIT_NON_PMM",
335*54f5de6fSIan Rogers        "FCMask": "0x00000000",
336*54f5de6fSIan Rogers        "PerPkg": "1",
337*54f5de6fSIan Rogers        "PortMask": "0x00000000",
338*54f5de6fSIan Rogers        "PublicDescription": "Counts 1lm or 2lm hit  data returns that would result in directory update from A to S to non persistent memory",
339*54f5de6fSIan Rogers        "UMask": "0x140",
340*54f5de6fSIan Rogers        "Unit": "M2HBM"
341*54f5de6fSIan Rogers    },
342*54f5de6fSIan Rogers    {
343*54f5de6fSIan Rogers        "BriefDescription": "Multi-socket cacheline Directory Updates",
344*54f5de6fSIan Rogers        "EventCode": "0x21",
345*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_DIRECTORY_UPDATE.A_TO_S_MISS_NON_PMM",
346*54f5de6fSIan Rogers        "FCMask": "0x00000000",
347*54f5de6fSIan Rogers        "PerPkg": "1",
348*54f5de6fSIan Rogers        "PortMask": "0x00000000",
349*54f5de6fSIan Rogers        "PublicDescription": "Counts 2lm miss  data returns that would result in directory update from A to S to non persistent memory",
350*54f5de6fSIan Rogers        "UMask": "0x240",
351*54f5de6fSIan Rogers        "Unit": "M2HBM"
352*54f5de6fSIan Rogers    },
353*54f5de6fSIan Rogers    {
354*54f5de6fSIan Rogers        "BriefDescription": "Multi-socket cacheline Directory Updates",
355*54f5de6fSIan Rogers        "EventCode": "0x21",
356*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_DIRECTORY_UPDATE.HIT_NON_PMM",
357*54f5de6fSIan Rogers        "FCMask": "0x00000000",
358*54f5de6fSIan Rogers        "PerPkg": "1",
359*54f5de6fSIan Rogers        "PortMask": "0x00000000",
360*54f5de6fSIan Rogers        "PublicDescription": "Counts any 1lm or 2lm hit data return that would result in directory update to non persistent memory",
361*54f5de6fSIan Rogers        "UMask": "0x101",
362*54f5de6fSIan Rogers        "Unit": "M2HBM"
363*54f5de6fSIan Rogers    },
364*54f5de6fSIan Rogers    {
365*54f5de6fSIan Rogers        "BriefDescription": "Multi-socket cacheline Directory update from I to A",
366*54f5de6fSIan Rogers        "EventCode": "0x21",
367*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_DIRECTORY_UPDATE.I2A",
368*54f5de6fSIan Rogers        "PerPkg": "1",
369*54f5de6fSIan Rogers        "UMask": "0x304",
370*54f5de6fSIan Rogers        "Unit": "M2HBM"
371*54f5de6fSIan Rogers    },
372*54f5de6fSIan Rogers    {
373*54f5de6fSIan Rogers        "BriefDescription": "Multi-socket cacheline Directory update from I to S",
374*54f5de6fSIan Rogers        "EventCode": "0x21",
375*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_DIRECTORY_UPDATE.I2S",
376*54f5de6fSIan Rogers        "PerPkg": "1",
377*54f5de6fSIan Rogers        "UMask": "0x302",
378*54f5de6fSIan Rogers        "Unit": "M2HBM"
379*54f5de6fSIan Rogers    },
380*54f5de6fSIan Rogers    {
381*54f5de6fSIan Rogers        "BriefDescription": "Multi-socket cacheline Directory Updates",
382*54f5de6fSIan Rogers        "EventCode": "0x21",
383*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_DIRECTORY_UPDATE.I_TO_A_HIT_NON_PMM",
384*54f5de6fSIan Rogers        "FCMask": "0x00000000",
385*54f5de6fSIan Rogers        "PerPkg": "1",
386*54f5de6fSIan Rogers        "PortMask": "0x00000000",
387*54f5de6fSIan Rogers        "PublicDescription": "Counts 1lm or 2lm hit  data returns that would result in directory update from I to A to non persistent memory",
388*54f5de6fSIan Rogers        "UMask": "0x104",
389*54f5de6fSIan Rogers        "Unit": "M2HBM"
390*54f5de6fSIan Rogers    },
391*54f5de6fSIan Rogers    {
392*54f5de6fSIan Rogers        "BriefDescription": "Multi-socket cacheline Directory Updates",
393*54f5de6fSIan Rogers        "EventCode": "0x21",
394*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_DIRECTORY_UPDATE.I_TO_A_MISS_NON_PMM",
395*54f5de6fSIan Rogers        "FCMask": "0x00000000",
396*54f5de6fSIan Rogers        "PerPkg": "1",
397*54f5de6fSIan Rogers        "PortMask": "0x00000000",
398*54f5de6fSIan Rogers        "PublicDescription": "Counts 2lm miss  data returns that would result in directory update from I to A to non persistent memory",
399*54f5de6fSIan Rogers        "UMask": "0x204",
400*54f5de6fSIan Rogers        "Unit": "M2HBM"
401*54f5de6fSIan Rogers    },
402*54f5de6fSIan Rogers    {
403*54f5de6fSIan Rogers        "BriefDescription": "Multi-socket cacheline Directory Updates",
404*54f5de6fSIan Rogers        "EventCode": "0x21",
405*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_DIRECTORY_UPDATE.I_TO_S_HIT_NON_PMM",
406*54f5de6fSIan Rogers        "FCMask": "0x00000000",
407*54f5de6fSIan Rogers        "PerPkg": "1",
408*54f5de6fSIan Rogers        "PortMask": "0x00000000",
409*54f5de6fSIan Rogers        "PublicDescription": "Counts 1lm or 2lm hit  data returns that would result in directory update from I to S to non persistent memory",
410*54f5de6fSIan Rogers        "UMask": "0x102",
411*54f5de6fSIan Rogers        "Unit": "M2HBM"
412*54f5de6fSIan Rogers    },
413*54f5de6fSIan Rogers    {
414*54f5de6fSIan Rogers        "BriefDescription": "Multi-socket cacheline Directory Updates",
415*54f5de6fSIan Rogers        "EventCode": "0x21",
416*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_DIRECTORY_UPDATE.I_TO_S_MISS_NON_PMM",
417*54f5de6fSIan Rogers        "FCMask": "0x00000000",
418*54f5de6fSIan Rogers        "PerPkg": "1",
419*54f5de6fSIan Rogers        "PortMask": "0x00000000",
420*54f5de6fSIan Rogers        "PublicDescription": "Counts  2lm miss  data returns that would result in directory update from I to S to non persistent memory",
421*54f5de6fSIan Rogers        "UMask": "0x202",
422*54f5de6fSIan Rogers        "Unit": "M2HBM"
423*54f5de6fSIan Rogers    },
424*54f5de6fSIan Rogers    {
425*54f5de6fSIan Rogers        "BriefDescription": "Multi-socket cacheline Directory Updates",
426*54f5de6fSIan Rogers        "EventCode": "0x21",
427*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_DIRECTORY_UPDATE.MISS_NON_PMM",
428*54f5de6fSIan Rogers        "FCMask": "0x00000000",
429*54f5de6fSIan Rogers        "PerPkg": "1",
430*54f5de6fSIan Rogers        "PortMask": "0x00000000",
431*54f5de6fSIan Rogers        "PublicDescription": "Counts any 2lm miss data return that would result in directory update to non persistent memory",
432*54f5de6fSIan Rogers        "UMask": "0x201",
433*54f5de6fSIan Rogers        "Unit": "M2HBM"
434*54f5de6fSIan Rogers    },
435*54f5de6fSIan Rogers    {
436*54f5de6fSIan Rogers        "BriefDescription": "Multi-socket cacheline Directory update from S to A",
437*54f5de6fSIan Rogers        "EventCode": "0x21",
438*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_DIRECTORY_UPDATE.S2A",
439*54f5de6fSIan Rogers        "PerPkg": "1",
440*54f5de6fSIan Rogers        "UMask": "0x310",
441*54f5de6fSIan Rogers        "Unit": "M2HBM"
442*54f5de6fSIan Rogers    },
443*54f5de6fSIan Rogers    {
444*54f5de6fSIan Rogers        "BriefDescription": "Multi-socket cacheline Directory update from S to I",
445*54f5de6fSIan Rogers        "EventCode": "0x21",
446*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_DIRECTORY_UPDATE.S2I",
447*54f5de6fSIan Rogers        "PerPkg": "1",
448*54f5de6fSIan Rogers        "UMask": "0x308",
449*54f5de6fSIan Rogers        "Unit": "M2HBM"
450*54f5de6fSIan Rogers    },
451*54f5de6fSIan Rogers    {
452*54f5de6fSIan Rogers        "BriefDescription": "Multi-socket cacheline Directory Updates",
453*54f5de6fSIan Rogers        "EventCode": "0x21",
454*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_DIRECTORY_UPDATE.S_TO_A_HIT_NON_PMM",
455*54f5de6fSIan Rogers        "FCMask": "0x00000000",
456*54f5de6fSIan Rogers        "PerPkg": "1",
457*54f5de6fSIan Rogers        "PortMask": "0x00000000",
458*54f5de6fSIan Rogers        "PublicDescription": "Counts 1lm or 2lm hit  data returns that would result in directory update from S to A to non persistent memory",
459*54f5de6fSIan Rogers        "UMask": "0x110",
460*54f5de6fSIan Rogers        "Unit": "M2HBM"
461*54f5de6fSIan Rogers    },
462*54f5de6fSIan Rogers    {
463*54f5de6fSIan Rogers        "BriefDescription": "Multi-socket cacheline Directory Updates",
464*54f5de6fSIan Rogers        "EventCode": "0x21",
465*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_DIRECTORY_UPDATE.S_TO_A_MISS_NON_PMM",
466*54f5de6fSIan Rogers        "FCMask": "0x00000000",
467*54f5de6fSIan Rogers        "PerPkg": "1",
468*54f5de6fSIan Rogers        "PortMask": "0x00000000",
469*54f5de6fSIan Rogers        "PublicDescription": "Counts 2lm miss  data returns that would result in directory update from S to A to non persistent memory",
470*54f5de6fSIan Rogers        "UMask": "0x210",
471*54f5de6fSIan Rogers        "Unit": "M2HBM"
472*54f5de6fSIan Rogers    },
473*54f5de6fSIan Rogers    {
474*54f5de6fSIan Rogers        "BriefDescription": "Multi-socket cacheline Directory Updates",
475*54f5de6fSIan Rogers        "EventCode": "0x21",
476*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_DIRECTORY_UPDATE.S_TO_I_HIT_NON_PMM",
477*54f5de6fSIan Rogers        "FCMask": "0x00000000",
478*54f5de6fSIan Rogers        "PerPkg": "1",
479*54f5de6fSIan Rogers        "PortMask": "0x00000000",
480*54f5de6fSIan Rogers        "PublicDescription": "Counts 1lm or 2lm hit  data returns that would result in directory update from S to I to non persistent memory",
481*54f5de6fSIan Rogers        "UMask": "0x108",
482*54f5de6fSIan Rogers        "Unit": "M2HBM"
483*54f5de6fSIan Rogers    },
484*54f5de6fSIan Rogers    {
485*54f5de6fSIan Rogers        "BriefDescription": "Multi-socket cacheline Directory Updates",
486*54f5de6fSIan Rogers        "EventCode": "0x21",
487*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_DIRECTORY_UPDATE.S_TO_I_MISS_NON_PMM",
488*54f5de6fSIan Rogers        "FCMask": "0x00000000",
489*54f5de6fSIan Rogers        "PerPkg": "1",
490*54f5de6fSIan Rogers        "PortMask": "0x00000000",
491*54f5de6fSIan Rogers        "PublicDescription": "Counts 2lm miss  data returns that would result in directory update from S to I to non persistent memory",
492*54f5de6fSIan Rogers        "UMask": "0x208",
493*54f5de6fSIan Rogers        "Unit": "M2HBM"
494*54f5de6fSIan Rogers    },
495*54f5de6fSIan Rogers    {
496*54f5de6fSIan Rogers        "BriefDescription": "Count distress signalled on AkAd cmp message",
497*54f5de6fSIan Rogers        "EventCode": "0x67",
498*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_DISTRESS.AD",
499*54f5de6fSIan Rogers        "PerPkg": "1",
500*54f5de6fSIan Rogers        "UMask": "0x20",
501*54f5de6fSIan Rogers        "Unit": "M2HBM"
502*54f5de6fSIan Rogers    },
503*54f5de6fSIan Rogers    {
504*54f5de6fSIan Rogers        "BriefDescription": "Count distress signalled on any packet type",
505*54f5de6fSIan Rogers        "EventCode": "0x67",
506*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_DISTRESS.ALL",
507*54f5de6fSIan Rogers        "PerPkg": "1",
508*54f5de6fSIan Rogers        "UMask": "0x1",
509*54f5de6fSIan Rogers        "Unit": "M2HBM"
510*54f5de6fSIan Rogers    },
511*54f5de6fSIan Rogers    {
512*54f5de6fSIan Rogers        "BriefDescription": "Count distress signalled on Bl Cmp message",
513*54f5de6fSIan Rogers        "EventCode": "0x67",
514*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_DISTRESS.BL_CMP",
515*54f5de6fSIan Rogers        "PerPkg": "1",
516*54f5de6fSIan Rogers        "UMask": "0x40",
517*54f5de6fSIan Rogers        "Unit": "M2HBM"
518*54f5de6fSIan Rogers    },
519*54f5de6fSIan Rogers    {
520*54f5de6fSIan Rogers        "BriefDescription": "Count distress signalled on NM fill write message",
521*54f5de6fSIan Rogers        "EventCode": "0x67",
522*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_DISTRESS.CROSSTILE_NMWR",
523*54f5de6fSIan Rogers        "PerPkg": "1",
524*54f5de6fSIan Rogers        "UMask": "0x10",
525*54f5de6fSIan Rogers        "Unit": "M2HBM"
526*54f5de6fSIan Rogers    },
527*54f5de6fSIan Rogers    {
528*54f5de6fSIan Rogers        "BriefDescription": "Count distress signalled on D2Cha message",
529*54f5de6fSIan Rogers        "EventCode": "0x67",
530*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_DISTRESS.D2CHA",
531*54f5de6fSIan Rogers        "PerPkg": "1",
532*54f5de6fSIan Rogers        "UMask": "0x8",
533*54f5de6fSIan Rogers        "Unit": "M2HBM"
534*54f5de6fSIan Rogers    },
535*54f5de6fSIan Rogers    {
536*54f5de6fSIan Rogers        "BriefDescription": "Count distress signalled on D2c message",
537*54f5de6fSIan Rogers        "EventCode": "0x67",
538*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_DISTRESS.D2CORE",
539*54f5de6fSIan Rogers        "PerPkg": "1",
540*54f5de6fSIan Rogers        "UMask": "0x2",
541*54f5de6fSIan Rogers        "Unit": "M2HBM"
542*54f5de6fSIan Rogers    },
543*54f5de6fSIan Rogers    {
544*54f5de6fSIan Rogers        "BriefDescription": "Count distress signalled on D2k message",
545*54f5de6fSIan Rogers        "EventCode": "0x67",
546*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_DISTRESS.D2UPI",
547*54f5de6fSIan Rogers        "PerPkg": "1",
548*54f5de6fSIan Rogers        "UMask": "0x4",
549*54f5de6fSIan Rogers        "Unit": "M2HBM"
550*54f5de6fSIan Rogers    },
551*54f5de6fSIan Rogers    {
552*54f5de6fSIan Rogers        "BriefDescription": "Egress Blocking due to Ordering requirements : Down",
553*54f5de6fSIan Rogers        "EventCode": "0xba",
554*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_EGRESS_ORDERING.IV_SNOOPGO_DN",
555*54f5de6fSIan Rogers        "PerPkg": "1",
556*54f5de6fSIan Rogers        "PublicDescription": "Egress Blocking due to Ordering requirements : Down : Counts number of cycles IV was blocked in the TGR Egress due to SNP/GO Ordering requirements",
557*54f5de6fSIan Rogers        "UMask": "0x80000004",
558*54f5de6fSIan Rogers        "Unit": "M2HBM"
559*54f5de6fSIan Rogers    },
560*54f5de6fSIan Rogers    {
561*54f5de6fSIan Rogers        "BriefDescription": "Egress Blocking due to Ordering requirements : Up",
562*54f5de6fSIan Rogers        "EventCode": "0xba",
563*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_EGRESS_ORDERING.IV_SNOOPGO_UP",
564*54f5de6fSIan Rogers        "PerPkg": "1",
565*54f5de6fSIan Rogers        "PublicDescription": "Egress Blocking due to Ordering requirements : Up : Counts number of cycles IV was blocked in the TGR Egress due to SNP/GO Ordering requirements",
566*54f5de6fSIan Rogers        "UMask": "0x80000001",
567*54f5de6fSIan Rogers        "Unit": "M2HBM"
568*54f5de6fSIan Rogers    },
569*54f5de6fSIan Rogers    {
570*54f5de6fSIan Rogers        "BriefDescription": "Count when Starve Glocab counter is at 7",
571*54f5de6fSIan Rogers        "EventCode": "0x44",
572*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_IGR_STARVE_WINNER.MASK7",
573*54f5de6fSIan Rogers        "FCMask": "0x00000000",
574*54f5de6fSIan Rogers        "PerPkg": "1",
575*54f5de6fSIan Rogers        "PortMask": "0x00000000",
576*54f5de6fSIan Rogers        "UMask": "0x80",
577*54f5de6fSIan Rogers        "Unit": "M2HBM"
578*54f5de6fSIan Rogers    },
579*54f5de6fSIan Rogers    {
580*54f5de6fSIan Rogers        "BriefDescription": "Reads to iMC issued",
581*54f5de6fSIan Rogers        "EventCode": "0x24",
582*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_IMC_READS.ALL",
583*54f5de6fSIan Rogers        "PerPkg": "1",
584*54f5de6fSIan Rogers        "UMask": "0x304",
585*54f5de6fSIan Rogers        "Unit": "M2HBM"
586*54f5de6fSIan Rogers    },
587*54f5de6fSIan Rogers    {
588*54f5de6fSIan Rogers        "BriefDescription": "UNC_M2HBM_IMC_READS.CH0.ALL",
589*54f5de6fSIan Rogers        "EventCode": "0x24",
590*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_IMC_READS.CH0.ALL",
591*54f5de6fSIan Rogers        "PerPkg": "1",
592*54f5de6fSIan Rogers        "UMask": "0x104",
593*54f5de6fSIan Rogers        "Unit": "M2HBM"
594*54f5de6fSIan Rogers    },
595*54f5de6fSIan Rogers    {
596*54f5de6fSIan Rogers        "BriefDescription": "UNC_M2HBM_IMC_READS.CH0.NORMAL",
597*54f5de6fSIan Rogers        "EventCode": "0x24",
598*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_IMC_READS.CH0.NORMAL",
599*54f5de6fSIan Rogers        "PerPkg": "1",
600*54f5de6fSIan Rogers        "UMask": "0x101",
601*54f5de6fSIan Rogers        "Unit": "M2HBM"
602*54f5de6fSIan Rogers    },
603*54f5de6fSIan Rogers    {
604*54f5de6fSIan Rogers        "BriefDescription": "UNC_M2HBM_IMC_READS.CH0_ALL",
605*54f5de6fSIan Rogers        "EventCode": "0x24",
606*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_IMC_READS.CH0_ALL",
607*54f5de6fSIan Rogers        "FCMask": "0x00000000",
608*54f5de6fSIan Rogers        "PerPkg": "1",
609*54f5de6fSIan Rogers        "PortMask": "0x00000000",
610*54f5de6fSIan Rogers        "UMask": "0x104",
611*54f5de6fSIan Rogers        "Unit": "M2HBM"
612*54f5de6fSIan Rogers    },
613*54f5de6fSIan Rogers    {
614*54f5de6fSIan Rogers        "BriefDescription": "UNC_M2HBM_IMC_READS.CH0_FROM_TGR",
615*54f5de6fSIan Rogers        "EventCode": "0x24",
616*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_IMC_READS.CH0_FROM_TGR",
617*54f5de6fSIan Rogers        "PerPkg": "1",
618*54f5de6fSIan Rogers        "UMask": "0x140",
619*54f5de6fSIan Rogers        "Unit": "M2HBM"
620*54f5de6fSIan Rogers    },
621*54f5de6fSIan Rogers    {
622*54f5de6fSIan Rogers        "BriefDescription": "Critical Priority - Ch0",
623*54f5de6fSIan Rogers        "EventCode": "0x24",
624*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_IMC_READS.CH0_ISOCH",
625*54f5de6fSIan Rogers        "PerPkg": "1",
626*54f5de6fSIan Rogers        "UMask": "0x102",
627*54f5de6fSIan Rogers        "Unit": "M2HBM"
628*54f5de6fSIan Rogers    },
629*54f5de6fSIan Rogers    {
630*54f5de6fSIan Rogers        "BriefDescription": "UNC_M2HBM_IMC_READS.CH0_NORMAL",
631*54f5de6fSIan Rogers        "EventCode": "0x24",
632*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_IMC_READS.CH0_NORMAL",
633*54f5de6fSIan Rogers        "FCMask": "0x00000000",
634*54f5de6fSIan Rogers        "PerPkg": "1",
635*54f5de6fSIan Rogers        "PortMask": "0x00000000",
636*54f5de6fSIan Rogers        "UMask": "0x101",
637*54f5de6fSIan Rogers        "Unit": "M2HBM"
638*54f5de6fSIan Rogers    },
639*54f5de6fSIan Rogers    {
640*54f5de6fSIan Rogers        "BriefDescription": "UNC_M2HBM_IMC_READS.CH1.ALL",
641*54f5de6fSIan Rogers        "EventCode": "0x24",
642*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_IMC_READS.CH1.ALL",
643*54f5de6fSIan Rogers        "PerPkg": "1",
644*54f5de6fSIan Rogers        "UMask": "0x204",
645*54f5de6fSIan Rogers        "Unit": "M2HBM"
646*54f5de6fSIan Rogers    },
647*54f5de6fSIan Rogers    {
648*54f5de6fSIan Rogers        "BriefDescription": "UNC_M2HBM_IMC_READS.CH1.NORMAL",
649*54f5de6fSIan Rogers        "EventCode": "0x24",
650*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_IMC_READS.CH1.NORMAL",
651*54f5de6fSIan Rogers        "PerPkg": "1",
652*54f5de6fSIan Rogers        "UMask": "0x201",
653*54f5de6fSIan Rogers        "Unit": "M2HBM"
654*54f5de6fSIan Rogers    },
655*54f5de6fSIan Rogers    {
656*54f5de6fSIan Rogers        "BriefDescription": "UNC_M2HBM_IMC_READS.CH1_ALL",
657*54f5de6fSIan Rogers        "EventCode": "0x24",
658*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_IMC_READS.CH1_ALL",
659*54f5de6fSIan Rogers        "FCMask": "0x00000000",
660*54f5de6fSIan Rogers        "PerPkg": "1",
661*54f5de6fSIan Rogers        "PortMask": "0x00000000",
662*54f5de6fSIan Rogers        "UMask": "0x204",
663*54f5de6fSIan Rogers        "Unit": "M2HBM"
664*54f5de6fSIan Rogers    },
665*54f5de6fSIan Rogers    {
666*54f5de6fSIan Rogers        "BriefDescription": "From TGR - Ch1",
667*54f5de6fSIan Rogers        "EventCode": "0x24",
668*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_IMC_READS.CH1_FROM_TGR",
669*54f5de6fSIan Rogers        "PerPkg": "1",
670*54f5de6fSIan Rogers        "UMask": "0x240",
671*54f5de6fSIan Rogers        "Unit": "M2HBM"
672*54f5de6fSIan Rogers    },
673*54f5de6fSIan Rogers    {
674*54f5de6fSIan Rogers        "BriefDescription": "Critical Priority - Ch1",
675*54f5de6fSIan Rogers        "EventCode": "0x24",
676*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_IMC_READS.CH1_ISOCH",
677*54f5de6fSIan Rogers        "PerPkg": "1",
678*54f5de6fSIan Rogers        "UMask": "0x202",
679*54f5de6fSIan Rogers        "Unit": "M2HBM"
680*54f5de6fSIan Rogers    },
681*54f5de6fSIan Rogers    {
682*54f5de6fSIan Rogers        "BriefDescription": "UNC_M2HBM_IMC_READS.CH1_NORMAL",
683*54f5de6fSIan Rogers        "EventCode": "0x24",
684*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_IMC_READS.CH1_NORMAL",
685*54f5de6fSIan Rogers        "FCMask": "0x00000000",
686*54f5de6fSIan Rogers        "PerPkg": "1",
687*54f5de6fSIan Rogers        "PortMask": "0x00000000",
688*54f5de6fSIan Rogers        "UMask": "0x201",
689*54f5de6fSIan Rogers        "Unit": "M2HBM"
690*54f5de6fSIan Rogers    },
691*54f5de6fSIan Rogers    {
692*54f5de6fSIan Rogers        "BriefDescription": "From TGR - All Channels",
693*54f5de6fSIan Rogers        "EventCode": "0x24",
694*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_IMC_READS.FROM_TGR",
695*54f5de6fSIan Rogers        "PerPkg": "1",
696*54f5de6fSIan Rogers        "UMask": "0x340",
697*54f5de6fSIan Rogers        "Unit": "M2HBM"
698*54f5de6fSIan Rogers    },
699*54f5de6fSIan Rogers    {
700*54f5de6fSIan Rogers        "BriefDescription": "Critical Priority - All Channels",
701*54f5de6fSIan Rogers        "EventCode": "0x24",
702*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_IMC_READS.ISOCH",
703*54f5de6fSIan Rogers        "PerPkg": "1",
704*54f5de6fSIan Rogers        "UMask": "0x302",
705*54f5de6fSIan Rogers        "Unit": "M2HBM"
706*54f5de6fSIan Rogers    },
707*54f5de6fSIan Rogers    {
708*54f5de6fSIan Rogers        "BriefDescription": "UNC_M2HBM_IMC_READS.NORMAL",
709*54f5de6fSIan Rogers        "EventCode": "0x24",
710*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_IMC_READS.NORMAL",
711*54f5de6fSIan Rogers        "PerPkg": "1",
712*54f5de6fSIan Rogers        "UMask": "0x301",
713*54f5de6fSIan Rogers        "Unit": "M2HBM"
714*54f5de6fSIan Rogers    },
715*54f5de6fSIan Rogers    {
716*54f5de6fSIan Rogers        "BriefDescription": "All Writes - All Channels",
717*54f5de6fSIan Rogers        "EventCode": "0x25",
718*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_IMC_WRITES.ALL",
719*54f5de6fSIan Rogers        "PerPkg": "1",
720*54f5de6fSIan Rogers        "UMask": "0x1810",
721*54f5de6fSIan Rogers        "Unit": "M2HBM"
722*54f5de6fSIan Rogers    },
723*54f5de6fSIan Rogers    {
724*54f5de6fSIan Rogers        "BriefDescription": "UNC_M2HBM_IMC_WRITES.CH0.ALL",
725*54f5de6fSIan Rogers        "EventCode": "0x25",
726*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_IMC_WRITES.CH0.ALL",
727*54f5de6fSIan Rogers        "PerPkg": "1",
728*54f5de6fSIan Rogers        "UMask": "0x810",
729*54f5de6fSIan Rogers        "Unit": "M2HBM"
730*54f5de6fSIan Rogers    },
731*54f5de6fSIan Rogers    {
732*54f5de6fSIan Rogers        "BriefDescription": "UNC_M2HBM_IMC_WRITES.CH0.FULL",
733*54f5de6fSIan Rogers        "EventCode": "0x25",
734*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_IMC_WRITES.CH0.FULL",
735*54f5de6fSIan Rogers        "PerPkg": "1",
736*54f5de6fSIan Rogers        "UMask": "0x801",
737*54f5de6fSIan Rogers        "Unit": "M2HBM"
738*54f5de6fSIan Rogers    },
739*54f5de6fSIan Rogers    {
740*54f5de6fSIan Rogers        "BriefDescription": "UNC_M2HBM_IMC_WRITES.CH0.PARTIAL",
741*54f5de6fSIan Rogers        "EventCode": "0x25",
742*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_IMC_WRITES.CH0.PARTIAL",
743*54f5de6fSIan Rogers        "PerPkg": "1",
744*54f5de6fSIan Rogers        "UMask": "0x802",
745*54f5de6fSIan Rogers        "Unit": "M2HBM"
746*54f5de6fSIan Rogers    },
747*54f5de6fSIan Rogers    {
748*54f5de6fSIan Rogers        "BriefDescription": "UNC_M2HBM_IMC_WRITES.CH0_ALL",
749*54f5de6fSIan Rogers        "EventCode": "0x25",
750*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_IMC_WRITES.CH0_ALL",
751*54f5de6fSIan Rogers        "FCMask": "0x00000000",
752*54f5de6fSIan Rogers        "PerPkg": "1",
753*54f5de6fSIan Rogers        "PortMask": "0x00000000",
754*54f5de6fSIan Rogers        "UMask": "0x810",
755*54f5de6fSIan Rogers        "Unit": "M2HBM"
756*54f5de6fSIan Rogers    },
757*54f5de6fSIan Rogers    {
758*54f5de6fSIan Rogers        "BriefDescription": "From TGR - Ch0",
759*54f5de6fSIan Rogers        "EventCode": "0x25",
760*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_IMC_WRITES.CH0_FROM_TGR",
761*54f5de6fSIan Rogers        "PerPkg": "1",
762*54f5de6fSIan Rogers        "Unit": "M2HBM"
763*54f5de6fSIan Rogers    },
764*54f5de6fSIan Rogers    {
765*54f5de6fSIan Rogers        "BriefDescription": "UNC_M2HBM_IMC_WRITES.CH0_FULL",
766*54f5de6fSIan Rogers        "EventCode": "0x25",
767*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_IMC_WRITES.CH0_FULL",
768*54f5de6fSIan Rogers        "FCMask": "0x00000000",
769*54f5de6fSIan Rogers        "PerPkg": "1",
770*54f5de6fSIan Rogers        "PortMask": "0x00000000",
771*54f5de6fSIan Rogers        "UMask": "0x801",
772*54f5de6fSIan Rogers        "Unit": "M2HBM"
773*54f5de6fSIan Rogers    },
774*54f5de6fSIan Rogers    {
775*54f5de6fSIan Rogers        "BriefDescription": "ISOCH Full Line - Ch0",
776*54f5de6fSIan Rogers        "EventCode": "0x25",
777*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_IMC_WRITES.CH0_FULL_ISOCH",
778*54f5de6fSIan Rogers        "PerPkg": "1",
779*54f5de6fSIan Rogers        "UMask": "0x804",
780*54f5de6fSIan Rogers        "Unit": "M2HBM"
781*54f5de6fSIan Rogers    },
782*54f5de6fSIan Rogers    {
783*54f5de6fSIan Rogers        "BriefDescription": "Non-Inclusive - Ch0",
784*54f5de6fSIan Rogers        "EventCode": "0x25",
785*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_IMC_WRITES.CH0_NI",
786*54f5de6fSIan Rogers        "FCMask": "0x00000000",
787*54f5de6fSIan Rogers        "PerPkg": "1",
788*54f5de6fSIan Rogers        "PortMask": "0x00000000",
789*54f5de6fSIan Rogers        "Unit": "M2HBM"
790*54f5de6fSIan Rogers    },
791*54f5de6fSIan Rogers    {
792*54f5de6fSIan Rogers        "BriefDescription": "Non-Inclusive Miss - Ch0",
793*54f5de6fSIan Rogers        "EventCode": "0x25",
794*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_IMC_WRITES.CH0_NI_MISS",
795*54f5de6fSIan Rogers        "FCMask": "0x00000000",
796*54f5de6fSIan Rogers        "PerPkg": "1",
797*54f5de6fSIan Rogers        "PortMask": "0x00000000",
798*54f5de6fSIan Rogers        "Unit": "M2HBM"
799*54f5de6fSIan Rogers    },
800*54f5de6fSIan Rogers    {
801*54f5de6fSIan Rogers        "BriefDescription": "UNC_M2HBM_IMC_WRITES.CH0_PARTIAL",
802*54f5de6fSIan Rogers        "EventCode": "0x25",
803*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_IMC_WRITES.CH0_PARTIAL",
804*54f5de6fSIan Rogers        "FCMask": "0x00000000",
805*54f5de6fSIan Rogers        "PerPkg": "1",
806*54f5de6fSIan Rogers        "PortMask": "0x00000000",
807*54f5de6fSIan Rogers        "UMask": "0x802",
808*54f5de6fSIan Rogers        "Unit": "M2HBM"
809*54f5de6fSIan Rogers    },
810*54f5de6fSIan Rogers    {
811*54f5de6fSIan Rogers        "BriefDescription": "ISOCH Partial - Ch0",
812*54f5de6fSIan Rogers        "EventCode": "0x25",
813*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_IMC_WRITES.CH0_PARTIAL_ISOCH",
814*54f5de6fSIan Rogers        "PerPkg": "1",
815*54f5de6fSIan Rogers        "UMask": "0x808",
816*54f5de6fSIan Rogers        "Unit": "M2HBM"
817*54f5de6fSIan Rogers    },
818*54f5de6fSIan Rogers    {
819*54f5de6fSIan Rogers        "BriefDescription": "All Writes - Ch1",
820*54f5de6fSIan Rogers        "EventCode": "0x25",
821*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_IMC_WRITES.CH1.ALL",
822*54f5de6fSIan Rogers        "PerPkg": "1",
823*54f5de6fSIan Rogers        "UMask": "0x1010",
824*54f5de6fSIan Rogers        "Unit": "M2HBM"
825*54f5de6fSIan Rogers    },
826*54f5de6fSIan Rogers    {
827*54f5de6fSIan Rogers        "BriefDescription": "Full Line Non-ISOCH - Ch1",
828*54f5de6fSIan Rogers        "EventCode": "0x25",
829*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_IMC_WRITES.CH1.FULL",
830*54f5de6fSIan Rogers        "PerPkg": "1",
831*54f5de6fSIan Rogers        "UMask": "0x1001",
832*54f5de6fSIan Rogers        "Unit": "M2HBM"
833*54f5de6fSIan Rogers    },
834*54f5de6fSIan Rogers    {
835*54f5de6fSIan Rogers        "BriefDescription": "Partial Non-ISOCH - Ch1",
836*54f5de6fSIan Rogers        "EventCode": "0x25",
837*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_IMC_WRITES.CH1.PARTIAL",
838*54f5de6fSIan Rogers        "PerPkg": "1",
839*54f5de6fSIan Rogers        "UMask": "0x1002",
840*54f5de6fSIan Rogers        "Unit": "M2HBM"
841*54f5de6fSIan Rogers    },
842*54f5de6fSIan Rogers    {
843*54f5de6fSIan Rogers        "BriefDescription": "All Writes - Ch1",
844*54f5de6fSIan Rogers        "EventCode": "0x25",
845*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_IMC_WRITES.CH1_ALL",
846*54f5de6fSIan Rogers        "FCMask": "0x00000000",
847*54f5de6fSIan Rogers        "PerPkg": "1",
848*54f5de6fSIan Rogers        "PortMask": "0x00000000",
849*54f5de6fSIan Rogers        "UMask": "0x1010",
850*54f5de6fSIan Rogers        "Unit": "M2HBM"
851*54f5de6fSIan Rogers    },
852*54f5de6fSIan Rogers    {
853*54f5de6fSIan Rogers        "BriefDescription": "From TGR - Ch1",
854*54f5de6fSIan Rogers        "EventCode": "0x25",
855*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_IMC_WRITES.CH1_FROM_TGR",
856*54f5de6fSIan Rogers        "PerPkg": "1",
857*54f5de6fSIan Rogers        "Unit": "M2HBM"
858*54f5de6fSIan Rogers    },
859*54f5de6fSIan Rogers    {
860*54f5de6fSIan Rogers        "BriefDescription": "Full Line Non-ISOCH - Ch1",
861*54f5de6fSIan Rogers        "EventCode": "0x25",
862*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_IMC_WRITES.CH1_FULL",
863*54f5de6fSIan Rogers        "FCMask": "0x00000000",
864*54f5de6fSIan Rogers        "PerPkg": "1",
865*54f5de6fSIan Rogers        "PortMask": "0x00000000",
866*54f5de6fSIan Rogers        "UMask": "0x1001",
867*54f5de6fSIan Rogers        "Unit": "M2HBM"
868*54f5de6fSIan Rogers    },
869*54f5de6fSIan Rogers    {
870*54f5de6fSIan Rogers        "BriefDescription": "ISOCH Full Line - Ch1",
871*54f5de6fSIan Rogers        "EventCode": "0x25",
872*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_IMC_WRITES.CH1_FULL_ISOCH",
873*54f5de6fSIan Rogers        "PerPkg": "1",
874*54f5de6fSIan Rogers        "UMask": "0x1004",
875*54f5de6fSIan Rogers        "Unit": "M2HBM"
876*54f5de6fSIan Rogers    },
877*54f5de6fSIan Rogers    {
878*54f5de6fSIan Rogers        "BriefDescription": "Non-Inclusive - Ch1",
879*54f5de6fSIan Rogers        "EventCode": "0x25",
880*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_IMC_WRITES.CH1_NI",
881*54f5de6fSIan Rogers        "FCMask": "0x00000000",
882*54f5de6fSIan Rogers        "PerPkg": "1",
883*54f5de6fSIan Rogers        "PortMask": "0x00000000",
884*54f5de6fSIan Rogers        "Unit": "M2HBM"
885*54f5de6fSIan Rogers    },
886*54f5de6fSIan Rogers    {
887*54f5de6fSIan Rogers        "BriefDescription": "Non-Inclusive Miss - Ch1",
888*54f5de6fSIan Rogers        "EventCode": "0x25",
889*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_IMC_WRITES.CH1_NI_MISS",
890*54f5de6fSIan Rogers        "FCMask": "0x00000000",
891*54f5de6fSIan Rogers        "PerPkg": "1",
892*54f5de6fSIan Rogers        "PortMask": "0x00000000",
893*54f5de6fSIan Rogers        "Unit": "M2HBM"
894*54f5de6fSIan Rogers    },
895*54f5de6fSIan Rogers    {
896*54f5de6fSIan Rogers        "BriefDescription": "Partial Non-ISOCH - Ch1",
897*54f5de6fSIan Rogers        "EventCode": "0x25",
898*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_IMC_WRITES.CH1_PARTIAL",
899*54f5de6fSIan Rogers        "FCMask": "0x00000000",
900*54f5de6fSIan Rogers        "PerPkg": "1",
901*54f5de6fSIan Rogers        "PortMask": "0x00000000",
902*54f5de6fSIan Rogers        "UMask": "0x1002",
903*54f5de6fSIan Rogers        "Unit": "M2HBM"
904*54f5de6fSIan Rogers    },
905*54f5de6fSIan Rogers    {
906*54f5de6fSIan Rogers        "BriefDescription": "ISOCH Partial - Ch1",
907*54f5de6fSIan Rogers        "EventCode": "0x25",
908*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_IMC_WRITES.CH1_PARTIAL_ISOCH",
909*54f5de6fSIan Rogers        "PerPkg": "1",
910*54f5de6fSIan Rogers        "UMask": "0x1008",
911*54f5de6fSIan Rogers        "Unit": "M2HBM"
912*54f5de6fSIan Rogers    },
913*54f5de6fSIan Rogers    {
914*54f5de6fSIan Rogers        "BriefDescription": "From TGR - All Channels",
915*54f5de6fSIan Rogers        "EventCode": "0x25",
916*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_IMC_WRITES.FROM_TGR",
917*54f5de6fSIan Rogers        "PerPkg": "1",
918*54f5de6fSIan Rogers        "Unit": "M2HBM"
919*54f5de6fSIan Rogers    },
920*54f5de6fSIan Rogers    {
921*54f5de6fSIan Rogers        "BriefDescription": "Full Non-ISOCH - All Channels",
922*54f5de6fSIan Rogers        "EventCode": "0x25",
923*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_IMC_WRITES.FULL",
924*54f5de6fSIan Rogers        "PerPkg": "1",
925*54f5de6fSIan Rogers        "UMask": "0x1801",
926*54f5de6fSIan Rogers        "Unit": "M2HBM"
927*54f5de6fSIan Rogers    },
928*54f5de6fSIan Rogers    {
929*54f5de6fSIan Rogers        "BriefDescription": "ISOCH Full Line - All Channels",
930*54f5de6fSIan Rogers        "EventCode": "0x25",
931*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_IMC_WRITES.FULL_ISOCH",
932*54f5de6fSIan Rogers        "PerPkg": "1",
933*54f5de6fSIan Rogers        "UMask": "0x1804",
934*54f5de6fSIan Rogers        "Unit": "M2HBM"
935*54f5de6fSIan Rogers    },
936*54f5de6fSIan Rogers    {
937*54f5de6fSIan Rogers        "BriefDescription": "Non-Inclusive - All Channels",
938*54f5de6fSIan Rogers        "EventCode": "0x25",
939*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_IMC_WRITES.NI",
940*54f5de6fSIan Rogers        "FCMask": "0x00000000",
941*54f5de6fSIan Rogers        "PerPkg": "1",
942*54f5de6fSIan Rogers        "PortMask": "0x00000000",
943*54f5de6fSIan Rogers        "Unit": "M2HBM"
944*54f5de6fSIan Rogers    },
945*54f5de6fSIan Rogers    {
946*54f5de6fSIan Rogers        "BriefDescription": "Non-Inclusive Miss - All Channels",
947*54f5de6fSIan Rogers        "EventCode": "0x25",
948*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_IMC_WRITES.NI_MISS",
949*54f5de6fSIan Rogers        "FCMask": "0x00000000",
950*54f5de6fSIan Rogers        "PerPkg": "1",
951*54f5de6fSIan Rogers        "PortMask": "0x00000000",
952*54f5de6fSIan Rogers        "Unit": "M2HBM"
953*54f5de6fSIan Rogers    },
954*54f5de6fSIan Rogers    {
955*54f5de6fSIan Rogers        "BriefDescription": "Partial Non-ISOCH - All Channels",
956*54f5de6fSIan Rogers        "EventCode": "0x25",
957*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_IMC_WRITES.PARTIAL",
958*54f5de6fSIan Rogers        "PerPkg": "1",
959*54f5de6fSIan Rogers        "UMask": "0x1802",
960*54f5de6fSIan Rogers        "Unit": "M2HBM"
961*54f5de6fSIan Rogers    },
962*54f5de6fSIan Rogers    {
963*54f5de6fSIan Rogers        "BriefDescription": "ISOCH Partial - All Channels",
964*54f5de6fSIan Rogers        "EventCode": "0x25",
965*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_IMC_WRITES.PARTIAL_ISOCH",
966*54f5de6fSIan Rogers        "PerPkg": "1",
967*54f5de6fSIan Rogers        "UMask": "0x1808",
968*54f5de6fSIan Rogers        "Unit": "M2HBM"
969*54f5de6fSIan Rogers    },
970*54f5de6fSIan Rogers    {
971*54f5de6fSIan Rogers        "BriefDescription": "UNC_M2HBM_PREFCAM_CIS_DROPS",
972*54f5de6fSIan Rogers        "EventCode": "0x5c",
973*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_PREFCAM_CIS_DROPS",
974*54f5de6fSIan Rogers        "PerPkg": "1",
975*54f5de6fSIan Rogers        "Unit": "M2HBM"
976*54f5de6fSIan Rogers    },
977*54f5de6fSIan Rogers    {
978*54f5de6fSIan Rogers        "BriefDescription": "Data Prefetches Dropped",
979*54f5de6fSIan Rogers        "EventCode": "0x58",
980*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_PREFCAM_DEMAND_DROPS.CH0_UPI",
981*54f5de6fSIan Rogers        "PerPkg": "1",
982*54f5de6fSIan Rogers        "UMask": "0x2",
983*54f5de6fSIan Rogers        "Unit": "M2HBM"
984*54f5de6fSIan Rogers    },
985*54f5de6fSIan Rogers    {
986*54f5de6fSIan Rogers        "BriefDescription": "Data Prefetches Dropped",
987*54f5de6fSIan Rogers        "EventCode": "0x58",
988*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_PREFCAM_DEMAND_DROPS.CH0_XPT",
989*54f5de6fSIan Rogers        "PerPkg": "1",
990*54f5de6fSIan Rogers        "UMask": "0x1",
991*54f5de6fSIan Rogers        "Unit": "M2HBM"
992*54f5de6fSIan Rogers    },
993*54f5de6fSIan Rogers    {
994*54f5de6fSIan Rogers        "BriefDescription": "Data Prefetches Dropped",
995*54f5de6fSIan Rogers        "EventCode": "0x58",
996*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_PREFCAM_DEMAND_DROPS.CH1_UPI",
997*54f5de6fSIan Rogers        "PerPkg": "1",
998*54f5de6fSIan Rogers        "UMask": "0x8",
999*54f5de6fSIan Rogers        "Unit": "M2HBM"
1000*54f5de6fSIan Rogers    },
1001*54f5de6fSIan Rogers    {
1002*54f5de6fSIan Rogers        "BriefDescription": "Data Prefetches Dropped",
1003*54f5de6fSIan Rogers        "EventCode": "0x58",
1004*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_PREFCAM_DEMAND_DROPS.CH1_XPT",
1005*54f5de6fSIan Rogers        "PerPkg": "1",
1006*54f5de6fSIan Rogers        "UMask": "0x4",
1007*54f5de6fSIan Rogers        "Unit": "M2HBM"
1008*54f5de6fSIan Rogers    },
1009*54f5de6fSIan Rogers    {
1010*54f5de6fSIan Rogers        "BriefDescription": "Data Prefetches Dropped : UPI - All Channels",
1011*54f5de6fSIan Rogers        "EventCode": "0x58",
1012*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_PREFCAM_DEMAND_DROPS.UPI_ALLCH",
1013*54f5de6fSIan Rogers        "PerPkg": "1",
1014*54f5de6fSIan Rogers        "UMask": "0xa",
1015*54f5de6fSIan Rogers        "Unit": "M2HBM"
1016*54f5de6fSIan Rogers    },
1017*54f5de6fSIan Rogers    {
1018*54f5de6fSIan Rogers        "BriefDescription": "Data Prefetches Dropped",
1019*54f5de6fSIan Rogers        "EventCode": "0x58",
1020*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_PREFCAM_DEMAND_DROPS.XPT_ALLCH",
1021*54f5de6fSIan Rogers        "PerPkg": "1",
1022*54f5de6fSIan Rogers        "UMask": "0x5",
1023*54f5de6fSIan Rogers        "Unit": "M2HBM"
1024*54f5de6fSIan Rogers    },
1025*54f5de6fSIan Rogers    {
1026*54f5de6fSIan Rogers        "BriefDescription": ": UPI - All Channels",
1027*54f5de6fSIan Rogers        "EventCode": "0x5d",
1028*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_PREFCAM_DEMAND_MERGE.UPI_ALLCH",
1029*54f5de6fSIan Rogers        "PerPkg": "1",
1030*54f5de6fSIan Rogers        "UMask": "0xa",
1031*54f5de6fSIan Rogers        "Unit": "M2HBM"
1032*54f5de6fSIan Rogers    },
1033*54f5de6fSIan Rogers    {
1034*54f5de6fSIan Rogers        "BriefDescription": ": XPT - All Channels",
1035*54f5de6fSIan Rogers        "EventCode": "0x5d",
1036*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_PREFCAM_DEMAND_MERGE.XPT_ALLCH",
1037*54f5de6fSIan Rogers        "PerPkg": "1",
1038*54f5de6fSIan Rogers        "UMask": "0x5",
1039*54f5de6fSIan Rogers        "Unit": "M2HBM"
1040*54f5de6fSIan Rogers    },
1041*54f5de6fSIan Rogers    {
1042*54f5de6fSIan Rogers        "BriefDescription": "Demands Not Merged with CAMed Prefetches",
1043*54f5de6fSIan Rogers        "EventCode": "0x5e",
1044*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_PREFCAM_DEMAND_NO_MERGE.RD_MERGED",
1045*54f5de6fSIan Rogers        "PerPkg": "1",
1046*54f5de6fSIan Rogers        "UMask": "0x40",
1047*54f5de6fSIan Rogers        "Unit": "M2HBM"
1048*54f5de6fSIan Rogers    },
1049*54f5de6fSIan Rogers    {
1050*54f5de6fSIan Rogers        "BriefDescription": "Demands Not Merged with CAMed Prefetches",
1051*54f5de6fSIan Rogers        "EventCode": "0x5e",
1052*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_PREFCAM_DEMAND_NO_MERGE.WR_MERGED",
1053*54f5de6fSIan Rogers        "PerPkg": "1",
1054*54f5de6fSIan Rogers        "UMask": "0x20",
1055*54f5de6fSIan Rogers        "Unit": "M2HBM"
1056*54f5de6fSIan Rogers    },
1057*54f5de6fSIan Rogers    {
1058*54f5de6fSIan Rogers        "BriefDescription": "Demands Not Merged with CAMed Prefetches",
1059*54f5de6fSIan Rogers        "EventCode": "0x5e",
1060*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_PREFCAM_DEMAND_NO_MERGE.WR_SQUASHED",
1061*54f5de6fSIan Rogers        "PerPkg": "1",
1062*54f5de6fSIan Rogers        "UMask": "0x10",
1063*54f5de6fSIan Rogers        "Unit": "M2HBM"
1064*54f5de6fSIan Rogers    },
1065*54f5de6fSIan Rogers    {
1066*54f5de6fSIan Rogers        "BriefDescription": "Prefetch CAM Inserts : UPI - Ch 0",
1067*54f5de6fSIan Rogers        "EventCode": "0x56",
1068*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_PREFCAM_INSERTS.CH0_UPI",
1069*54f5de6fSIan Rogers        "PerPkg": "1",
1070*54f5de6fSIan Rogers        "UMask": "0x2",
1071*54f5de6fSIan Rogers        "Unit": "M2HBM"
1072*54f5de6fSIan Rogers    },
1073*54f5de6fSIan Rogers    {
1074*54f5de6fSIan Rogers        "BriefDescription": "Prefetch CAM Inserts : XPT - Ch 0",
1075*54f5de6fSIan Rogers        "EventCode": "0x56",
1076*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_PREFCAM_INSERTS.CH0_XPT",
1077*54f5de6fSIan Rogers        "PerPkg": "1",
1078*54f5de6fSIan Rogers        "UMask": "0x1",
1079*54f5de6fSIan Rogers        "Unit": "M2HBM"
1080*54f5de6fSIan Rogers    },
1081*54f5de6fSIan Rogers    {
1082*54f5de6fSIan Rogers        "BriefDescription": "Prefetch CAM Inserts : UPI - Ch 1",
1083*54f5de6fSIan Rogers        "EventCode": "0x56",
1084*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_PREFCAM_INSERTS.CH1_UPI",
1085*54f5de6fSIan Rogers        "PerPkg": "1",
1086*54f5de6fSIan Rogers        "UMask": "0x8",
1087*54f5de6fSIan Rogers        "Unit": "M2HBM"
1088*54f5de6fSIan Rogers    },
1089*54f5de6fSIan Rogers    {
1090*54f5de6fSIan Rogers        "BriefDescription": "Prefetch CAM Inserts : XPT - Ch 1",
1091*54f5de6fSIan Rogers        "EventCode": "0x56",
1092*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_PREFCAM_INSERTS.CH1_XPT",
1093*54f5de6fSIan Rogers        "PerPkg": "1",
1094*54f5de6fSIan Rogers        "UMask": "0x4",
1095*54f5de6fSIan Rogers        "Unit": "M2HBM"
1096*54f5de6fSIan Rogers    },
1097*54f5de6fSIan Rogers    {
1098*54f5de6fSIan Rogers        "BriefDescription": "Prefetch CAM Inserts : UPI - All Channels",
1099*54f5de6fSIan Rogers        "EventCode": "0x56",
1100*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_PREFCAM_INSERTS.UPI_ALLCH",
1101*54f5de6fSIan Rogers        "PerPkg": "1",
1102*54f5de6fSIan Rogers        "UMask": "0xa",
1103*54f5de6fSIan Rogers        "Unit": "M2HBM"
1104*54f5de6fSIan Rogers    },
1105*54f5de6fSIan Rogers    {
1106*54f5de6fSIan Rogers        "BriefDescription": "Prefetch CAM Inserts : XPT - All Channels",
1107*54f5de6fSIan Rogers        "EventCode": "0x56",
1108*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_PREFCAM_INSERTS.XPT_ALLCH",
1109*54f5de6fSIan Rogers        "PerPkg": "1",
1110*54f5de6fSIan Rogers        "PublicDescription": "Prefetch CAM Inserts : XPT -All Channels",
1111*54f5de6fSIan Rogers        "UMask": "0x5",
1112*54f5de6fSIan Rogers        "Unit": "M2HBM"
1113*54f5de6fSIan Rogers    },
1114*54f5de6fSIan Rogers    {
1115*54f5de6fSIan Rogers        "BriefDescription": "Prefetch CAM Occupancy : All Channels",
1116*54f5de6fSIan Rogers        "EventCode": "0x54",
1117*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_PREFCAM_OCCUPANCY.ALLCH",
1118*54f5de6fSIan Rogers        "PerPkg": "1",
1119*54f5de6fSIan Rogers        "UMask": "0x3",
1120*54f5de6fSIan Rogers        "Unit": "M2HBM"
1121*54f5de6fSIan Rogers    },
1122*54f5de6fSIan Rogers    {
1123*54f5de6fSIan Rogers        "BriefDescription": "Prefetch CAM Occupancy : Channel 0",
1124*54f5de6fSIan Rogers        "EventCode": "0x54",
1125*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_PREFCAM_OCCUPANCY.CH0",
1126*54f5de6fSIan Rogers        "PerPkg": "1",
1127*54f5de6fSIan Rogers        "UMask": "0x1",
1128*54f5de6fSIan Rogers        "Unit": "M2HBM"
1129*54f5de6fSIan Rogers    },
1130*54f5de6fSIan Rogers    {
1131*54f5de6fSIan Rogers        "BriefDescription": "Prefetch CAM Occupancy : Channel 1",
1132*54f5de6fSIan Rogers        "EventCode": "0x54",
1133*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_PREFCAM_OCCUPANCY.CH1",
1134*54f5de6fSIan Rogers        "PerPkg": "1",
1135*54f5de6fSIan Rogers        "UMask": "0x2",
1136*54f5de6fSIan Rogers        "Unit": "M2HBM"
1137*54f5de6fSIan Rogers    },
1138*54f5de6fSIan Rogers    {
1139*54f5de6fSIan Rogers        "BriefDescription": "All Channels",
1140*54f5de6fSIan Rogers        "EventCode": "0x5f",
1141*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_PREFCAM_RESP_MISS.ALLCH",
1142*54f5de6fSIan Rogers        "PerPkg": "1",
1143*54f5de6fSIan Rogers        "UMask": "0x3",
1144*54f5de6fSIan Rogers        "Unit": "M2HBM"
1145*54f5de6fSIan Rogers    },
1146*54f5de6fSIan Rogers    {
1147*54f5de6fSIan Rogers        "BriefDescription": ": Channel 0",
1148*54f5de6fSIan Rogers        "EventCode": "0x5f",
1149*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_PREFCAM_RESP_MISS.CH0",
1150*54f5de6fSIan Rogers        "PerPkg": "1",
1151*54f5de6fSIan Rogers        "UMask": "0x1",
1152*54f5de6fSIan Rogers        "Unit": "M2HBM"
1153*54f5de6fSIan Rogers    },
1154*54f5de6fSIan Rogers    {
1155*54f5de6fSIan Rogers        "BriefDescription": ": Channel 1",
1156*54f5de6fSIan Rogers        "EventCode": "0x5f",
1157*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_PREFCAM_RESP_MISS.CH1",
1158*54f5de6fSIan Rogers        "PerPkg": "1",
1159*54f5de6fSIan Rogers        "UMask": "0x2",
1160*54f5de6fSIan Rogers        "Unit": "M2HBM"
1161*54f5de6fSIan Rogers    },
1162*54f5de6fSIan Rogers    {
1163*54f5de6fSIan Rogers        "BriefDescription": "UNC_M2HBM_PREFCAM_RxC_DEALLOCS.1LM_POSTED",
1164*54f5de6fSIan Rogers        "EventCode": "0x62",
1165*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_PREFCAM_RxC_DEALLOCS.1LM_POSTED",
1166*54f5de6fSIan Rogers        "PerPkg": "1",
1167*54f5de6fSIan Rogers        "UMask": "0x2",
1168*54f5de6fSIan Rogers        "Unit": "M2HBM"
1169*54f5de6fSIan Rogers    },
1170*54f5de6fSIan Rogers    {
1171*54f5de6fSIan Rogers        "BriefDescription": "UNC_M2HBM_PREFCAM_RxC_DEALLOCS.CIS",
1172*54f5de6fSIan Rogers        "EventCode": "0x62",
1173*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_PREFCAM_RxC_DEALLOCS.CIS",
1174*54f5de6fSIan Rogers        "PerPkg": "1",
1175*54f5de6fSIan Rogers        "UMask": "0x8",
1176*54f5de6fSIan Rogers        "Unit": "M2HBM"
1177*54f5de6fSIan Rogers    },
1178*54f5de6fSIan Rogers    {
1179*54f5de6fSIan Rogers        "BriefDescription": "UNC_M2HBM_PREFCAM_RxC_DEALLOCS.SQUASHED",
1180*54f5de6fSIan Rogers        "EventCode": "0x62",
1181*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_PREFCAM_RxC_DEALLOCS.SQUASHED",
1182*54f5de6fSIan Rogers        "PerPkg": "1",
1183*54f5de6fSIan Rogers        "UMask": "0x1",
1184*54f5de6fSIan Rogers        "Unit": "M2HBM"
1185*54f5de6fSIan Rogers    },
1186*54f5de6fSIan Rogers    {
1187*54f5de6fSIan Rogers        "BriefDescription": "UNC_M2HBM_PREFCAM_RxC_OCCUPANCY",
1188*54f5de6fSIan Rogers        "EventCode": "0x60",
1189*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_PREFCAM_RxC_OCCUPANCY",
1190*54f5de6fSIan Rogers        "FCMask": "0x00000000",
1191*54f5de6fSIan Rogers        "PerPkg": "1",
1192*54f5de6fSIan Rogers        "PortMask": "0x00000000",
1193*54f5de6fSIan Rogers        "Unit": "M2HBM"
1194*54f5de6fSIan Rogers    },
1195*54f5de6fSIan Rogers    {
1196*54f5de6fSIan Rogers        "BriefDescription": "AD Ingress (from CMS) : AD Ingress (from CMS) Allocations",
1197*54f5de6fSIan Rogers        "EventCode": "0x02",
1198*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_RxC_AD.INSERTS",
1199*54f5de6fSIan Rogers        "FCMask": "0x00000000",
1200*54f5de6fSIan Rogers        "PerPkg": "1",
1201*54f5de6fSIan Rogers        "PortMask": "0x00000000",
1202*54f5de6fSIan Rogers        "UMask": "0x1",
1203*54f5de6fSIan Rogers        "Unit": "M2HBM"
1204*54f5de6fSIan Rogers    },
1205*54f5de6fSIan Rogers    {
1206*54f5de6fSIan Rogers        "BriefDescription": "AD Ingress (from CMS) : AD Ingress (from CMS) Allocations",
1207*54f5de6fSIan Rogers        "EventCode": "0x02",
1208*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_RxC_AD_INSERTS",
1209*54f5de6fSIan Rogers        "PerPkg": "1",
1210*54f5de6fSIan Rogers        "UMask": "0x1",
1211*54f5de6fSIan Rogers        "Unit": "M2HBM"
1212*54f5de6fSIan Rogers    },
1213*54f5de6fSIan Rogers    {
1214*54f5de6fSIan Rogers        "BriefDescription": "AD Ingress (from CMS) Occupancy",
1215*54f5de6fSIan Rogers        "EventCode": "0x03",
1216*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_RxC_AD_OCCUPANCY",
1217*54f5de6fSIan Rogers        "PerPkg": "1",
1218*54f5de6fSIan Rogers        "Unit": "M2HBM"
1219*54f5de6fSIan Rogers    },
1220*54f5de6fSIan Rogers    {
1221*54f5de6fSIan Rogers        "BriefDescription": "BL Ingress (from CMS) : BL Ingress (from CMS) Allocations",
1222*54f5de6fSIan Rogers        "EventCode": "0x04",
1223*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_RxC_BL.INSERTS",
1224*54f5de6fSIan Rogers        "FCMask": "0x00000000",
1225*54f5de6fSIan Rogers        "PerPkg": "1",
1226*54f5de6fSIan Rogers        "PortMask": "0x00000000",
1227*54f5de6fSIan Rogers        "PublicDescription": "Counts anytime a BL packet is added to Ingress",
1228*54f5de6fSIan Rogers        "UMask": "0x1",
1229*54f5de6fSIan Rogers        "Unit": "M2HBM"
1230*54f5de6fSIan Rogers    },
1231*54f5de6fSIan Rogers    {
1232*54f5de6fSIan Rogers        "BriefDescription": "BL Ingress (from CMS) : BL Ingress (from CMS) Allocations",
1233*54f5de6fSIan Rogers        "EventCode": "0x04",
1234*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_RxC_BL_INSERTS",
1235*54f5de6fSIan Rogers        "PerPkg": "1",
1236*54f5de6fSIan Rogers        "PublicDescription": "Counts anytime a BL packet is added to Ingress",
1237*54f5de6fSIan Rogers        "UMask": "0x1",
1238*54f5de6fSIan Rogers        "Unit": "M2HBM"
1239*54f5de6fSIan Rogers    },
1240*54f5de6fSIan Rogers    {
1241*54f5de6fSIan Rogers        "BriefDescription": "BL Ingress (from CMS) Occupancy",
1242*54f5de6fSIan Rogers        "EventCode": "0x05",
1243*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_RxC_BL_OCCUPANCY",
1244*54f5de6fSIan Rogers        "PerPkg": "1",
1245*54f5de6fSIan Rogers        "Unit": "M2HBM"
1246*54f5de6fSIan Rogers    },
1247*54f5de6fSIan Rogers    {
1248*54f5de6fSIan Rogers        "BriefDescription": "Number AD Ingress Credits",
1249*54f5de6fSIan Rogers        "EventCode": "0x2e",
1250*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_TGR_AD_CREDITS",
1251*54f5de6fSIan Rogers        "PerPkg": "1",
1252*54f5de6fSIan Rogers        "Unit": "M2HBM"
1253*54f5de6fSIan Rogers    },
1254*54f5de6fSIan Rogers    {
1255*54f5de6fSIan Rogers        "BriefDescription": "Number BL Ingress Credits",
1256*54f5de6fSIan Rogers        "EventCode": "0x2f",
1257*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_TGR_BL_CREDITS",
1258*54f5de6fSIan Rogers        "PerPkg": "1",
1259*54f5de6fSIan Rogers        "Unit": "M2HBM"
1260*54f5de6fSIan Rogers    },
1261*54f5de6fSIan Rogers    {
1262*54f5de6fSIan Rogers        "BriefDescription": "Tracker Inserts : Channel 0",
1263*54f5de6fSIan Rogers        "EventCode": "0x32",
1264*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_TRACKER_INSERTS.CH0",
1265*54f5de6fSIan Rogers        "PerPkg": "1",
1266*54f5de6fSIan Rogers        "UMask": "0x104",
1267*54f5de6fSIan Rogers        "Unit": "M2HBM"
1268*54f5de6fSIan Rogers    },
1269*54f5de6fSIan Rogers    {
1270*54f5de6fSIan Rogers        "BriefDescription": "Tracker Inserts : Channel 1",
1271*54f5de6fSIan Rogers        "EventCode": "0x32",
1272*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_TRACKER_INSERTS.CH1",
1273*54f5de6fSIan Rogers        "PerPkg": "1",
1274*54f5de6fSIan Rogers        "UMask": "0x204",
1275*54f5de6fSIan Rogers        "Unit": "M2HBM"
1276*54f5de6fSIan Rogers    },
1277*54f5de6fSIan Rogers    {
1278*54f5de6fSIan Rogers        "BriefDescription": "Tracker Occupancy : Channel 0",
1279*54f5de6fSIan Rogers        "EventCode": "0x33",
1280*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_TRACKER_OCCUPANCY.CH0",
1281*54f5de6fSIan Rogers        "PerPkg": "1",
1282*54f5de6fSIan Rogers        "UMask": "0x1",
1283*54f5de6fSIan Rogers        "Unit": "M2HBM"
1284*54f5de6fSIan Rogers    },
1285*54f5de6fSIan Rogers    {
1286*54f5de6fSIan Rogers        "BriefDescription": "Tracker Occupancy : Channel 1",
1287*54f5de6fSIan Rogers        "EventCode": "0x33",
1288*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_TRACKER_OCCUPANCY.CH1",
1289*54f5de6fSIan Rogers        "PerPkg": "1",
1290*54f5de6fSIan Rogers        "UMask": "0x2",
1291*54f5de6fSIan Rogers        "Unit": "M2HBM"
1292*54f5de6fSIan Rogers    },
1293*54f5de6fSIan Rogers    {
1294*54f5de6fSIan Rogers        "BriefDescription": "AD Egress (to CMS) : AD Egress (to CMS) Allocations",
1295*54f5de6fSIan Rogers        "EventCode": "0x06",
1296*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_TxC_AD.INSERTS",
1297*54f5de6fSIan Rogers        "FCMask": "0x00000000",
1298*54f5de6fSIan Rogers        "PerPkg": "1",
1299*54f5de6fSIan Rogers        "PortMask": "0x00000000",
1300*54f5de6fSIan Rogers        "PublicDescription": "Counts anytime a AD packet is added to Egress",
1301*54f5de6fSIan Rogers        "UMask": "0x1",
1302*54f5de6fSIan Rogers        "Unit": "M2HBM"
1303*54f5de6fSIan Rogers    },
1304*54f5de6fSIan Rogers    {
1305*54f5de6fSIan Rogers        "BriefDescription": "AD Egress (to CMS) : AD Egress (to CMS) Allocations",
1306*54f5de6fSIan Rogers        "EventCode": "0x06",
1307*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_TxC_AD_INSERTS",
1308*54f5de6fSIan Rogers        "PerPkg": "1",
1309*54f5de6fSIan Rogers        "PublicDescription": "Counts anytime a AD packet is added to Egress",
1310*54f5de6fSIan Rogers        "UMask": "0x1",
1311*54f5de6fSIan Rogers        "Unit": "M2HBM"
1312*54f5de6fSIan Rogers    },
1313*54f5de6fSIan Rogers    {
1314*54f5de6fSIan Rogers        "BriefDescription": "AD Egress (to CMS) Occupancy",
1315*54f5de6fSIan Rogers        "EventCode": "0x07",
1316*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_TxC_AD_OCCUPANCY",
1317*54f5de6fSIan Rogers        "PerPkg": "1",
1318*54f5de6fSIan Rogers        "Unit": "M2HBM"
1319*54f5de6fSIan Rogers    },
1320*54f5de6fSIan Rogers    {
1321*54f5de6fSIan Rogers        "BriefDescription": "BL Egress (to CMS) : Inserts - CMS0 - Near Side",
1322*54f5de6fSIan Rogers        "EventCode": "0x0E",
1323*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_TxC_BL.INSERTS_CMS0",
1324*54f5de6fSIan Rogers        "FCMask": "0x00000000",
1325*54f5de6fSIan Rogers        "PerPkg": "1",
1326*54f5de6fSIan Rogers        "PortMask": "0x00000000",
1327*54f5de6fSIan Rogers        "PublicDescription": "Counts the number of BL transactions to CMS add port 0",
1328*54f5de6fSIan Rogers        "UMask": "0x101",
1329*54f5de6fSIan Rogers        "Unit": "M2HBM"
1330*54f5de6fSIan Rogers    },
1331*54f5de6fSIan Rogers    {
1332*54f5de6fSIan Rogers        "BriefDescription": "BL Egress (to CMS) : Inserts - CMS1 - Far Side",
1333*54f5de6fSIan Rogers        "EventCode": "0x0E",
1334*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_TxC_BL.INSERTS_CMS1",
1335*54f5de6fSIan Rogers        "FCMask": "0x00000000",
1336*54f5de6fSIan Rogers        "PerPkg": "1",
1337*54f5de6fSIan Rogers        "PortMask": "0x00000000",
1338*54f5de6fSIan Rogers        "PublicDescription": "Counts the number of BL transactions to CMS add port 1",
1339*54f5de6fSIan Rogers        "UMask": "0x201",
1340*54f5de6fSIan Rogers        "Unit": "M2HBM"
1341*54f5de6fSIan Rogers    },
1342*54f5de6fSIan Rogers    {
1343*54f5de6fSIan Rogers        "BriefDescription": "BL Egress (to CMS) Occupancy : All",
1344*54f5de6fSIan Rogers        "EventCode": "0x0f",
1345*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_TxC_BL_OCCUPANCY.ALL",
1346*54f5de6fSIan Rogers        "PerPkg": "1",
1347*54f5de6fSIan Rogers        "UMask": "0x3",
1348*54f5de6fSIan Rogers        "Unit": "M2HBM"
1349*54f5de6fSIan Rogers    },
1350*54f5de6fSIan Rogers    {
1351*54f5de6fSIan Rogers        "BriefDescription": "BL Egress (to CMS) Occupancy : Common Mesh Stop - Near Side",
1352*54f5de6fSIan Rogers        "EventCode": "0x0f",
1353*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_TxC_BL_OCCUPANCY.CMS0",
1354*54f5de6fSIan Rogers        "PerPkg": "1",
1355*54f5de6fSIan Rogers        "UMask": "0x1",
1356*54f5de6fSIan Rogers        "Unit": "M2HBM"
1357*54f5de6fSIan Rogers    },
1358*54f5de6fSIan Rogers    {
1359*54f5de6fSIan Rogers        "BriefDescription": "BL Egress (to CMS) Occupancy : Common Mesh Stop - Far Side",
1360*54f5de6fSIan Rogers        "EventCode": "0x0f",
1361*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_TxC_BL_OCCUPANCY.CMS1",
1362*54f5de6fSIan Rogers        "PerPkg": "1",
1363*54f5de6fSIan Rogers        "UMask": "0x2",
1364*54f5de6fSIan Rogers        "Unit": "M2HBM"
1365*54f5de6fSIan Rogers    },
1366*54f5de6fSIan Rogers    {
1367*54f5de6fSIan Rogers        "BriefDescription": "WPQ Flush : Channel 0",
1368*54f5de6fSIan Rogers        "EventCode": "0x42",
1369*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_WPQ_FLUSH.CH0",
1370*54f5de6fSIan Rogers        "PerPkg": "1",
1371*54f5de6fSIan Rogers        "UMask": "0x1",
1372*54f5de6fSIan Rogers        "Unit": "M2HBM"
1373*54f5de6fSIan Rogers    },
1374*54f5de6fSIan Rogers    {
1375*54f5de6fSIan Rogers        "BriefDescription": "WPQ Flush : Channel 1",
1376*54f5de6fSIan Rogers        "EventCode": "0x42",
1377*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_WPQ_FLUSH.CH1",
1378*54f5de6fSIan Rogers        "PerPkg": "1",
1379*54f5de6fSIan Rogers        "UMask": "0x2",
1380*54f5de6fSIan Rogers        "Unit": "M2HBM"
1381*54f5de6fSIan Rogers    },
1382*54f5de6fSIan Rogers    {
1383*54f5de6fSIan Rogers        "BriefDescription": "M2M and iMC WPQ Cycles w/Credits - Regular : Channel 0",
1384*54f5de6fSIan Rogers        "EventCode": "0x37",
1385*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_WPQ_NO_REG_CRD.CHN0",
1386*54f5de6fSIan Rogers        "PerPkg": "1",
1387*54f5de6fSIan Rogers        "UMask": "0x1",
1388*54f5de6fSIan Rogers        "Unit": "M2HBM"
1389*54f5de6fSIan Rogers    },
1390*54f5de6fSIan Rogers    {
1391*54f5de6fSIan Rogers        "BriefDescription": "M2M and iMC WPQ Cycles w/Credits - Regular : Channel 1",
1392*54f5de6fSIan Rogers        "EventCode": "0x37",
1393*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_WPQ_NO_REG_CRD.CHN1",
1394*54f5de6fSIan Rogers        "PerPkg": "1",
1395*54f5de6fSIan Rogers        "UMask": "0x2",
1396*54f5de6fSIan Rogers        "Unit": "M2HBM"
1397*54f5de6fSIan Rogers    },
1398*54f5de6fSIan Rogers    {
1399*54f5de6fSIan Rogers        "BriefDescription": "M2M and iMC WPQ Cycles w/Credits - Special : Channel 0",
1400*54f5de6fSIan Rogers        "EventCode": "0x38",
1401*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_WPQ_NO_SPEC_CRD.CHN0",
1402*54f5de6fSIan Rogers        "PerPkg": "1",
1403*54f5de6fSIan Rogers        "UMask": "0x1",
1404*54f5de6fSIan Rogers        "Unit": "M2HBM"
1405*54f5de6fSIan Rogers    },
1406*54f5de6fSIan Rogers    {
1407*54f5de6fSIan Rogers        "BriefDescription": "M2M and iMC WPQ Cycles w/Credits - Special : Channel 1",
1408*54f5de6fSIan Rogers        "EventCode": "0x38",
1409*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_WPQ_NO_SPEC_CRD.CHN1",
1410*54f5de6fSIan Rogers        "PerPkg": "1",
1411*54f5de6fSIan Rogers        "UMask": "0x2",
1412*54f5de6fSIan Rogers        "Unit": "M2HBM"
1413*54f5de6fSIan Rogers    },
1414*54f5de6fSIan Rogers    {
1415*54f5de6fSIan Rogers        "BriefDescription": "Write Tracker Inserts : Channel 0",
1416*54f5de6fSIan Rogers        "EventCode": "0x40",
1417*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_WR_TRACKER_INSERTS.CH0",
1418*54f5de6fSIan Rogers        "PerPkg": "1",
1419*54f5de6fSIan Rogers        "UMask": "0x1",
1420*54f5de6fSIan Rogers        "Unit": "M2HBM"
1421*54f5de6fSIan Rogers    },
1422*54f5de6fSIan Rogers    {
1423*54f5de6fSIan Rogers        "BriefDescription": "Write Tracker Inserts : Channel 1",
1424*54f5de6fSIan Rogers        "EventCode": "0x40",
1425*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_WR_TRACKER_INSERTS.CH1",
1426*54f5de6fSIan Rogers        "PerPkg": "1",
1427*54f5de6fSIan Rogers        "UMask": "0x2",
1428*54f5de6fSIan Rogers        "Unit": "M2HBM"
1429*54f5de6fSIan Rogers    },
1430*54f5de6fSIan Rogers    {
1431*54f5de6fSIan Rogers        "BriefDescription": "Write Tracker Non-Posted Inserts : Channel 0",
1432*54f5de6fSIan Rogers        "EventCode": "0x4d",
1433*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_WR_TRACKER_NONPOSTED_INSERTS.CH0",
1434*54f5de6fSIan Rogers        "PerPkg": "1",
1435*54f5de6fSIan Rogers        "UMask": "0x1",
1436*54f5de6fSIan Rogers        "Unit": "M2HBM"
1437*54f5de6fSIan Rogers    },
1438*54f5de6fSIan Rogers    {
1439*54f5de6fSIan Rogers        "BriefDescription": "Write Tracker Non-Posted Inserts : Channel 1",
1440*54f5de6fSIan Rogers        "EventCode": "0x4d",
1441*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_WR_TRACKER_NONPOSTED_INSERTS.CH1",
1442*54f5de6fSIan Rogers        "PerPkg": "1",
1443*54f5de6fSIan Rogers        "UMask": "0x2",
1444*54f5de6fSIan Rogers        "Unit": "M2HBM"
1445*54f5de6fSIan Rogers    },
1446*54f5de6fSIan Rogers    {
1447*54f5de6fSIan Rogers        "BriefDescription": "Write Tracker Non-Posted Occupancy : Channel 0",
1448*54f5de6fSIan Rogers        "EventCode": "0x4c",
1449*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_WR_TRACKER_NONPOSTED_OCCUPANCY.CH0",
1450*54f5de6fSIan Rogers        "PerPkg": "1",
1451*54f5de6fSIan Rogers        "UMask": "0x1",
1452*54f5de6fSIan Rogers        "Unit": "M2HBM"
1453*54f5de6fSIan Rogers    },
1454*54f5de6fSIan Rogers    {
1455*54f5de6fSIan Rogers        "BriefDescription": "Write Tracker Non-Posted Occupancy : Channel 1",
1456*54f5de6fSIan Rogers        "EventCode": "0x4c",
1457*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_WR_TRACKER_NONPOSTED_OCCUPANCY.CH1",
1458*54f5de6fSIan Rogers        "PerPkg": "1",
1459*54f5de6fSIan Rogers        "UMask": "0x2",
1460*54f5de6fSIan Rogers        "Unit": "M2HBM"
1461*54f5de6fSIan Rogers    },
1462*54f5de6fSIan Rogers    {
1463*54f5de6fSIan Rogers        "BriefDescription": "Write Tracker Posted Inserts : Channel 0",
1464*54f5de6fSIan Rogers        "EventCode": "0x48",
1465*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_WR_TRACKER_POSTED_INSERTS.CH0",
1466*54f5de6fSIan Rogers        "PerPkg": "1",
1467*54f5de6fSIan Rogers        "UMask": "0x1",
1468*54f5de6fSIan Rogers        "Unit": "M2HBM"
1469*54f5de6fSIan Rogers    },
1470*54f5de6fSIan Rogers    {
1471*54f5de6fSIan Rogers        "BriefDescription": "Write Tracker Posted Inserts : Channel 1",
1472*54f5de6fSIan Rogers        "EventCode": "0x48",
1473*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_WR_TRACKER_POSTED_INSERTS.CH1",
1474*54f5de6fSIan Rogers        "PerPkg": "1",
1475*54f5de6fSIan Rogers        "UMask": "0x2",
1476*54f5de6fSIan Rogers        "Unit": "M2HBM"
1477*54f5de6fSIan Rogers    },
1478*54f5de6fSIan Rogers    {
1479*54f5de6fSIan Rogers        "BriefDescription": "Write Tracker Posted Occupancy : Channel 0",
1480*54f5de6fSIan Rogers        "EventCode": "0x47",
1481*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_WR_TRACKER_POSTED_OCCUPANCY.CH0",
1482*54f5de6fSIan Rogers        "PerPkg": "1",
1483*54f5de6fSIan Rogers        "UMask": "0x1",
1484*54f5de6fSIan Rogers        "Unit": "M2HBM"
1485*54f5de6fSIan Rogers    },
1486*54f5de6fSIan Rogers    {
1487*54f5de6fSIan Rogers        "BriefDescription": "Write Tracker Posted Occupancy : Channel 1",
1488*54f5de6fSIan Rogers        "EventCode": "0x47",
1489*54f5de6fSIan Rogers        "EventName": "UNC_M2HBM_WR_TRACKER_POSTED_OCCUPANCY.CH1",
1490*54f5de6fSIan Rogers        "PerPkg": "1",
1491*54f5de6fSIan Rogers        "UMask": "0x2",
1492*54f5de6fSIan Rogers        "Unit": "M2HBM"
1493*54f5de6fSIan Rogers    },
1494*54f5de6fSIan Rogers    {
1495*54f5de6fSIan Rogers        "BriefDescription": "Activate due to read, write, underfill, or bypass",
1496*54f5de6fSIan Rogers        "EventCode": "0x02",
1497*54f5de6fSIan Rogers        "EventName": "UNC_MCHBM_ACT_COUNT.ALL",
1498*54f5de6fSIan Rogers        "PerPkg": "1",
1499*54f5de6fSIan Rogers        "PublicDescription": "Counts the number of HBM Activate commands sent on this channel.  Activate commands are issued to open up a page on the HBM devices so that it can be read or written to with a CAS.  One can calculate the number of Page Misses by subtracting the number of Page Miss precharges from the number of Activates.",
1500*54f5de6fSIan Rogers        "UMask": "0xff",
1501*54f5de6fSIan Rogers        "Unit": "MCHBM"
1502*54f5de6fSIan Rogers    },
1503*54f5de6fSIan Rogers    {
1504*54f5de6fSIan Rogers        "BriefDescription": "Activate due to read",
1505*54f5de6fSIan Rogers        "EventCode": "0x02",
1506*54f5de6fSIan Rogers        "EventName": "UNC_MCHBM_ACT_COUNT.RD",
1507*54f5de6fSIan Rogers        "PerPkg": "1",
1508*54f5de6fSIan Rogers        "PublicDescription": "Counts the number of HBM Activate commands sent on this channel.  Activate commands are issued to open up a page on the HBM devices so that it can be read or written to with a CAS.  One can calculate the number of Page Misses by subtracting the number of Page Miss precharges from the number of Activates.",
1509*54f5de6fSIan Rogers        "UMask": "0x11",
1510*54f5de6fSIan Rogers        "Unit": "MCHBM"
1511*54f5de6fSIan Rogers    },
1512*54f5de6fSIan Rogers    {
1513*54f5de6fSIan Rogers        "BriefDescription": "HBM Activate Count : Activate due to Read in PCH0",
1514*54f5de6fSIan Rogers        "EventCode": "0x02",
1515*54f5de6fSIan Rogers        "EventName": "UNC_MCHBM_ACT_COUNT.RD_PCH0",
1516*54f5de6fSIan Rogers        "PerPkg": "1",
1517*54f5de6fSIan Rogers        "PublicDescription": "Counts the number of HBM Activate commands sent on this channel.  Activate commands are issued to open up a page on the HBM devices so that it can be read or written to with a CAS.  One can calculate the number of Page Misses by subtracting the number of Page Miss precharges from the number of Activates.",
1518*54f5de6fSIan Rogers        "UMask": "0x1",
1519*54f5de6fSIan Rogers        "Unit": "MCHBM"
1520*54f5de6fSIan Rogers    },
1521*54f5de6fSIan Rogers    {
1522*54f5de6fSIan Rogers        "BriefDescription": "HBM Activate Count : Activate due to Read in PCH1",
1523*54f5de6fSIan Rogers        "EventCode": "0x02",
1524*54f5de6fSIan Rogers        "EventName": "UNC_MCHBM_ACT_COUNT.RD_PCH1",
1525*54f5de6fSIan Rogers        "PerPkg": "1",
1526*54f5de6fSIan Rogers        "PublicDescription": "Counts the number of HBM Activate commands sent on this channel.  Activate commands are issued to open up a page on the HBM devices so that it can be read or written to with a CAS.  One can calculate the number of Page Misses by subtracting the number of Page Miss precharges from the number of Activates.",
1527*54f5de6fSIan Rogers        "UMask": "0x10",
1528*54f5de6fSIan Rogers        "Unit": "MCHBM"
1529*54f5de6fSIan Rogers    },
1530*54f5de6fSIan Rogers    {
1531*54f5de6fSIan Rogers        "BriefDescription": "HBM Activate Count : Underfill Read transaction on Page Empty or Page Miss",
1532*54f5de6fSIan Rogers        "EventCode": "0x02",
1533*54f5de6fSIan Rogers        "EventName": "UNC_MCHBM_ACT_COUNT.UFILL",
1534*54f5de6fSIan Rogers        "PerPkg": "1",
1535*54f5de6fSIan Rogers        "PublicDescription": "Counts the number of HBM Activate commands sent on this channel.  Activate commands are issued to open up a page on the HBM devices so that it can be read or written to with a CAS.  One can calculate the number of Page Misses by subtracting the number of Page Miss precharges from the number of Activates.",
1536*54f5de6fSIan Rogers        "UMask": "0x44",
1537*54f5de6fSIan Rogers        "Unit": "MCHBM"
1538*54f5de6fSIan Rogers    },
1539*54f5de6fSIan Rogers    {
1540*54f5de6fSIan Rogers        "BriefDescription": "HBM Activate Count",
1541*54f5de6fSIan Rogers        "EventCode": "0x02",
1542*54f5de6fSIan Rogers        "EventName": "UNC_MCHBM_ACT_COUNT.UFILL_PCH0",
1543*54f5de6fSIan Rogers        "PerPkg": "1",
1544*54f5de6fSIan Rogers        "PublicDescription": "Counts the number of HBM Activate commands sent on this channel.  Activate commands are issued to open up a page on the HBM devices so that it can be read or written to with a CAS.  One can calculate the number of Page Misses by subtracting the number of Page Miss precharges from the number of Activates.",
1545*54f5de6fSIan Rogers        "UMask": "0x4",
1546*54f5de6fSIan Rogers        "Unit": "MCHBM"
1547*54f5de6fSIan Rogers    },
1548*54f5de6fSIan Rogers    {
1549*54f5de6fSIan Rogers        "BriefDescription": "HBM Activate Count",
1550*54f5de6fSIan Rogers        "EventCode": "0x02",
1551*54f5de6fSIan Rogers        "EventName": "UNC_MCHBM_ACT_COUNT.UFILL_PCH1",
1552*54f5de6fSIan Rogers        "PerPkg": "1",
1553*54f5de6fSIan Rogers        "PublicDescription": "Counts the number of HBM Activate commands sent on this channel.  Activate commands are issued to open up a page on the HBM devices so that it can be read or written to with a CAS.  One can calculate the number of Page Misses by subtracting the number of Page Miss precharges from the number of Activates.",
1554*54f5de6fSIan Rogers        "UMask": "0x40",
1555*54f5de6fSIan Rogers        "Unit": "MCHBM"
1556*54f5de6fSIan Rogers    },
1557*54f5de6fSIan Rogers    {
1558*54f5de6fSIan Rogers        "BriefDescription": "Activate due to write",
1559*54f5de6fSIan Rogers        "EventCode": "0x02",
1560*54f5de6fSIan Rogers        "EventName": "UNC_MCHBM_ACT_COUNT.WR",
1561*54f5de6fSIan Rogers        "PerPkg": "1",
1562*54f5de6fSIan Rogers        "PublicDescription": "Counts the number of HBM Activate commands sent on this channel.  Activate commands are issued to open up a page on the HBM devices so that it can be read or written to with a CAS.  One can calculate the number of Page Misses by subtracting the number of Page Miss precharges from the number of Activates.",
1563*54f5de6fSIan Rogers        "UMask": "0x22",
1564*54f5de6fSIan Rogers        "Unit": "MCHBM"
1565*54f5de6fSIan Rogers    },
1566*54f5de6fSIan Rogers    {
1567*54f5de6fSIan Rogers        "BriefDescription": "HBM Activate Count : Activate due to Write in PCH0",
1568*54f5de6fSIan Rogers        "EventCode": "0x02",
1569*54f5de6fSIan Rogers        "EventName": "UNC_MCHBM_ACT_COUNT.WR_PCH0",
1570*54f5de6fSIan Rogers        "PerPkg": "1",
1571*54f5de6fSIan Rogers        "PublicDescription": "Counts the number of HBM Activate commands sent on this channel.  Activate commands are issued to open up a page on the HBM devices so that it can be read or written to with a CAS.  One can calculate the number of Page Misses by subtracting the number of Page Miss precharges from the number of Activates.",
1572*54f5de6fSIan Rogers        "UMask": "0x2",
1573*54f5de6fSIan Rogers        "Unit": "MCHBM"
1574*54f5de6fSIan Rogers    },
1575*54f5de6fSIan Rogers    {
1576*54f5de6fSIan Rogers        "BriefDescription": "HBM Activate Count : Activate due to Write in PCH1",
1577*54f5de6fSIan Rogers        "EventCode": "0x02",
1578*54f5de6fSIan Rogers        "EventName": "UNC_MCHBM_ACT_COUNT.WR_PCH1",
1579*54f5de6fSIan Rogers        "PerPkg": "1",
1580*54f5de6fSIan Rogers        "PublicDescription": "Counts the number of HBM Activate commands sent on this channel.  Activate commands are issued to open up a page on the HBM devices so that it can be read or written to with a CAS.  One can calculate the number of Page Misses by subtracting the number of Page Miss precharges from the number of Activates.",
1581*54f5de6fSIan Rogers        "UMask": "0x20",
1582*54f5de6fSIan Rogers        "Unit": "MCHBM"
1583*54f5de6fSIan Rogers    },
1584*54f5de6fSIan Rogers    {
1585*54f5de6fSIan Rogers        "BriefDescription": "All CAS commands issued",
1586*54f5de6fSIan Rogers        "EventCode": "0x05",
1587*54f5de6fSIan Rogers        "EventName": "UNC_MCHBM_CAS_COUNT.ALL",
1588*54f5de6fSIan Rogers        "PerPkg": "1",
1589*54f5de6fSIan Rogers        "UMask": "0xff",
1590*54f5de6fSIan Rogers        "Unit": "MCHBM"
1591*54f5de6fSIan Rogers    },
1592*54f5de6fSIan Rogers    {
1593*54f5de6fSIan Rogers        "BriefDescription": "Pseudo Channel 0",
1594*54f5de6fSIan Rogers        "EventCode": "0x05",
1595*54f5de6fSIan Rogers        "EventName": "UNC_MCHBM_CAS_COUNT.PCH0",
1596*54f5de6fSIan Rogers        "PerPkg": "1",
1597*54f5de6fSIan Rogers        "PublicDescription": "HBM RD_CAS and WR_CAS Commands",
1598*54f5de6fSIan Rogers        "UMask": "0x40",
1599*54f5de6fSIan Rogers        "Unit": "MCHBM"
1600*54f5de6fSIan Rogers    },
1601*54f5de6fSIan Rogers    {
1602*54f5de6fSIan Rogers        "BriefDescription": "Pseudo Channel 1",
1603*54f5de6fSIan Rogers        "EventCode": "0x05",
1604*54f5de6fSIan Rogers        "EventName": "UNC_MCHBM_CAS_COUNT.PCH1",
1605*54f5de6fSIan Rogers        "PerPkg": "1",
1606*54f5de6fSIan Rogers        "PublicDescription": "HBM RD_CAS and WR_CAS Commands",
1607*54f5de6fSIan Rogers        "UMask": "0x80",
1608*54f5de6fSIan Rogers        "Unit": "MCHBM"
1609*54f5de6fSIan Rogers    },
1610*54f5de6fSIan Rogers    {
1611*54f5de6fSIan Rogers        "BriefDescription": "Read CAS commands issued (regular and underfill)",
1612*54f5de6fSIan Rogers        "EventCode": "0x05",
1613*54f5de6fSIan Rogers        "EventName": "UNC_MCHBM_CAS_COUNT.RD",
1614*54f5de6fSIan Rogers        "PerPkg": "1",
1615*54f5de6fSIan Rogers        "UMask": "0xcf",
1616*54f5de6fSIan Rogers        "Unit": "MCHBM"
1617*54f5de6fSIan Rogers    },
1618*54f5de6fSIan Rogers    {
1619*54f5de6fSIan Rogers        "BriefDescription": "Regular read CAS commands with precharge",
1620*54f5de6fSIan Rogers        "EventCode": "0x05",
1621*54f5de6fSIan Rogers        "EventName": "UNC_MCHBM_CAS_COUNT.RD_PRE_REG",
1622*54f5de6fSIan Rogers        "PerPkg": "1",
1623*54f5de6fSIan Rogers        "UMask": "0xc2",
1624*54f5de6fSIan Rogers        "Unit": "MCHBM"
1625*54f5de6fSIan Rogers    },
1626*54f5de6fSIan Rogers    {
1627*54f5de6fSIan Rogers        "BriefDescription": "Underfill read CAS commands with precharge",
1628*54f5de6fSIan Rogers        "EventCode": "0x05",
1629*54f5de6fSIan Rogers        "EventName": "UNC_MCHBM_CAS_COUNT.RD_PRE_UNDERFILL",
1630*54f5de6fSIan Rogers        "PerPkg": "1",
1631*54f5de6fSIan Rogers        "UMask": "0xc8",
1632*54f5de6fSIan Rogers        "Unit": "MCHBM"
1633*54f5de6fSIan Rogers    },
1634*54f5de6fSIan Rogers    {
1635*54f5de6fSIan Rogers        "BriefDescription": "Regular read CAS commands issued (does not include underfills)",
1636*54f5de6fSIan Rogers        "EventCode": "0x05",
1637*54f5de6fSIan Rogers        "EventName": "UNC_MCHBM_CAS_COUNT.RD_REG",
1638*54f5de6fSIan Rogers        "PerPkg": "1",
1639*54f5de6fSIan Rogers        "UMask": "0xc1",
1640*54f5de6fSIan Rogers        "Unit": "MCHBM"
1641*54f5de6fSIan Rogers    },
1642*54f5de6fSIan Rogers    {
1643*54f5de6fSIan Rogers        "BriefDescription": "Underfill read CAS commands issued",
1644*54f5de6fSIan Rogers        "EventCode": "0x05",
1645*54f5de6fSIan Rogers        "EventName": "UNC_MCHBM_CAS_COUNT.RD_UNDERFILL",
1646*54f5de6fSIan Rogers        "PerPkg": "1",
1647*54f5de6fSIan Rogers        "UMask": "0xc4",
1648*54f5de6fSIan Rogers        "Unit": "MCHBM"
1649*54f5de6fSIan Rogers    },
1650*54f5de6fSIan Rogers    {
1651*54f5de6fSIan Rogers        "BriefDescription": "Write CAS commands issued",
1652*54f5de6fSIan Rogers        "EventCode": "0x05",
1653*54f5de6fSIan Rogers        "EventName": "UNC_MCHBM_CAS_COUNT.WR",
1654*54f5de6fSIan Rogers        "PerPkg": "1",
1655*54f5de6fSIan Rogers        "UMask": "0xf0",
1656*54f5de6fSIan Rogers        "Unit": "MCHBM"
1657*54f5de6fSIan Rogers    },
1658*54f5de6fSIan Rogers    {
1659*54f5de6fSIan Rogers        "BriefDescription": "HBM RD_CAS and WR_CAS Commands. : HBM WR_CAS commands w/o auto-pre",
1660*54f5de6fSIan Rogers        "EventCode": "0x05",
1661*54f5de6fSIan Rogers        "EventName": "UNC_MCHBM_CAS_COUNT.WR_NONPRE",
1662*54f5de6fSIan Rogers        "PerPkg": "1",
1663*54f5de6fSIan Rogers        "UMask": "0xd0",
1664*54f5de6fSIan Rogers        "Unit": "MCHBM"
1665*54f5de6fSIan Rogers    },
1666*54f5de6fSIan Rogers    {
1667*54f5de6fSIan Rogers        "BriefDescription": "Write CAS commands with precharge",
1668*54f5de6fSIan Rogers        "EventCode": "0x05",
1669*54f5de6fSIan Rogers        "EventName": "UNC_MCHBM_CAS_COUNT.WR_PRE",
1670*54f5de6fSIan Rogers        "PerPkg": "1",
1671*54f5de6fSIan Rogers        "UMask": "0xe0",
1672*54f5de6fSIan Rogers        "Unit": "MCHBM"
1673*54f5de6fSIan Rogers    },
1674*54f5de6fSIan Rogers    {
1675*54f5de6fSIan Rogers        "BriefDescription": "Pseudo Channel 0",
1676*54f5de6fSIan Rogers        "EventCode": "0x06",
1677*54f5de6fSIan Rogers        "EventName": "UNC_MCHBM_CAS_ISSUED_REQ_LEN.PCH0",
1678*54f5de6fSIan Rogers        "PerPkg": "1",
1679*54f5de6fSIan Rogers        "UMask": "0x40",
1680*54f5de6fSIan Rogers        "Unit": "MCHBM"
1681*54f5de6fSIan Rogers    },
1682*54f5de6fSIan Rogers    {
1683*54f5de6fSIan Rogers        "BriefDescription": "Pseudo Channel 1",
1684*54f5de6fSIan Rogers        "EventCode": "0x06",
1685*54f5de6fSIan Rogers        "EventName": "UNC_MCHBM_CAS_ISSUED_REQ_LEN.PCH1",
1686*54f5de6fSIan Rogers        "PerPkg": "1",
1687*54f5de6fSIan Rogers        "UMask": "0x80",
1688*54f5de6fSIan Rogers        "Unit": "MCHBM"
1689*54f5de6fSIan Rogers    },
1690*54f5de6fSIan Rogers    {
1691*54f5de6fSIan Rogers        "BriefDescription": "Read CAS Command in Interleaved Mode (32B)",
1692*54f5de6fSIan Rogers        "EventCode": "0x06",
1693*54f5de6fSIan Rogers        "EventName": "UNC_MCHBM_CAS_ISSUED_REQ_LEN.RD_32B",
1694*54f5de6fSIan Rogers        "PerPkg": "1",
1695*54f5de6fSIan Rogers        "UMask": "0xc8",
1696*54f5de6fSIan Rogers        "Unit": "MCHBM"
1697*54f5de6fSIan Rogers    },
1698*54f5de6fSIan Rogers    {
1699*54f5de6fSIan Rogers        "BriefDescription": "Read CAS Command in Regular Mode (64B) in Pseudochannel 0",
1700*54f5de6fSIan Rogers        "EventCode": "0x06",
1701*54f5de6fSIan Rogers        "EventName": "UNC_MCHBM_CAS_ISSUED_REQ_LEN.RD_64B",
1702*54f5de6fSIan Rogers        "PerPkg": "1",
1703*54f5de6fSIan Rogers        "UMask": "0xc1",
1704*54f5de6fSIan Rogers        "Unit": "MCHBM"
1705*54f5de6fSIan Rogers    },
1706*54f5de6fSIan Rogers    {
1707*54f5de6fSIan Rogers        "BriefDescription": "Underfill Read CAS Command in Interleaved Mode (32B)",
1708*54f5de6fSIan Rogers        "EventCode": "0x06",
1709*54f5de6fSIan Rogers        "EventName": "UNC_MCHBM_CAS_ISSUED_REQ_LEN.RD_UFILL_32B",
1710*54f5de6fSIan Rogers        "PerPkg": "1",
1711*54f5de6fSIan Rogers        "UMask": "0xd0",
1712*54f5de6fSIan Rogers        "Unit": "MCHBM"
1713*54f5de6fSIan Rogers    },
1714*54f5de6fSIan Rogers    {
1715*54f5de6fSIan Rogers        "BriefDescription": "Underfill Read CAS Command in Regular Mode (64B) in Pseudochannel 1",
1716*54f5de6fSIan Rogers        "EventCode": "0x06",
1717*54f5de6fSIan Rogers        "EventName": "UNC_MCHBM_CAS_ISSUED_REQ_LEN.RD_UFILL_64B",
1718*54f5de6fSIan Rogers        "PerPkg": "1",
1719*54f5de6fSIan Rogers        "UMask": "0xc2",
1720*54f5de6fSIan Rogers        "Unit": "MCHBM"
1721*54f5de6fSIan Rogers    },
1722*54f5de6fSIan Rogers    {
1723*54f5de6fSIan Rogers        "BriefDescription": "Write CAS Command in Interleaved Mode (32B)",
1724*54f5de6fSIan Rogers        "EventCode": "0x06",
1725*54f5de6fSIan Rogers        "EventName": "UNC_MCHBM_CAS_ISSUED_REQ_LEN.WR_32B",
1726*54f5de6fSIan Rogers        "PerPkg": "1",
1727*54f5de6fSIan Rogers        "UMask": "0xe0",
1728*54f5de6fSIan Rogers        "Unit": "MCHBM"
1729*54f5de6fSIan Rogers    },
1730*54f5de6fSIan Rogers    {
1731*54f5de6fSIan Rogers        "BriefDescription": "Write CAS Command in Regular Mode (64B) in Pseudochannel 0",
1732*54f5de6fSIan Rogers        "EventCode": "0x06",
1733*54f5de6fSIan Rogers        "EventName": "UNC_MCHBM_CAS_ISSUED_REQ_LEN.WR_64B",
1734*54f5de6fSIan Rogers        "PerPkg": "1",
1735*54f5de6fSIan Rogers        "UMask": "0xc4",
1736*54f5de6fSIan Rogers        "Unit": "MCHBM"
1737*54f5de6fSIan Rogers    },
1738*54f5de6fSIan Rogers    {
1739*54f5de6fSIan Rogers        "BriefDescription": "IMC Clockticks at DCLK frequency",
1740*54f5de6fSIan Rogers        "EventCode": "0x01",
1741*54f5de6fSIan Rogers        "EventName": "UNC_MCHBM_CLOCKTICKS",
1742*54f5de6fSIan Rogers        "PerPkg": "1",
1743*54f5de6fSIan Rogers        "UMask": "0x1",
1744*54f5de6fSIan Rogers        "Unit": "MCHBM"
1745*54f5de6fSIan Rogers    },
1746*54f5de6fSIan Rogers    {
1747*54f5de6fSIan Rogers        "BriefDescription": "HBM Precharge All Commands",
1748*54f5de6fSIan Rogers        "EventCode": "0x44",
1749*54f5de6fSIan Rogers        "EventName": "UNC_MCHBM_HBM_PREALL.PCH0",
1750*54f5de6fSIan Rogers        "PerPkg": "1",
1751*54f5de6fSIan Rogers        "PublicDescription": "Counts the number of times that the precharge all command was sent.",
1752*54f5de6fSIan Rogers        "UMask": "0x1",
1753*54f5de6fSIan Rogers        "Unit": "MCHBM"
1754*54f5de6fSIan Rogers    },
1755*54f5de6fSIan Rogers    {
1756*54f5de6fSIan Rogers        "BriefDescription": "HBM Precharge All Commands",
1757*54f5de6fSIan Rogers        "EventCode": "0x44",
1758*54f5de6fSIan Rogers        "EventName": "UNC_MCHBM_HBM_PREALL.PCH1",
1759*54f5de6fSIan Rogers        "PerPkg": "1",
1760*54f5de6fSIan Rogers        "PublicDescription": "Counts the number of times that the precharge all command was sent.",
1761*54f5de6fSIan Rogers        "UMask": "0x2",
1762*54f5de6fSIan Rogers        "Unit": "MCHBM"
1763*54f5de6fSIan Rogers    },
1764*54f5de6fSIan Rogers    {
1765*54f5de6fSIan Rogers        "BriefDescription": "All Precharge Commands",
1766*54f5de6fSIan Rogers        "EventCode": "0x44",
1767*54f5de6fSIan Rogers        "EventName": "UNC_MCHBM_HBM_PRE_ALL",
1768*54f5de6fSIan Rogers        "PerPkg": "1",
1769*54f5de6fSIan Rogers        "PublicDescription": "Precharge All Commands: Counts the number of times that the precharge all command was sent.",
1770*54f5de6fSIan Rogers        "UMask": "0x3",
1771*54f5de6fSIan Rogers        "Unit": "MCHBM"
1772*54f5de6fSIan Rogers    },
1773*54f5de6fSIan Rogers    {
1774*54f5de6fSIan Rogers        "BriefDescription": "IMC Clockticks at HCLK frequency",
1775*54f5de6fSIan Rogers        "EventCode": "0x01",
1776*54f5de6fSIan Rogers        "EventName": "UNC_MCHBM_HCLOCKTICKS",
1777*54f5de6fSIan Rogers        "PerPkg": "1",
1778*54f5de6fSIan Rogers        "Unit": "MCHBM"
1779*54f5de6fSIan Rogers    },
1780*54f5de6fSIan Rogers    {
1781*54f5de6fSIan Rogers        "BriefDescription": "All precharge events",
1782*54f5de6fSIan Rogers        "EventCode": "0x03",
1783*54f5de6fSIan Rogers        "EventName": "UNC_MCHBM_PRE_COUNT.ALL",
1784*54f5de6fSIan Rogers        "PerPkg": "1",
1785*54f5de6fSIan Rogers        "PublicDescription": "Counts the number of HBM Precharge commands sent on this channel.",
1786*54f5de6fSIan Rogers        "UMask": "0xff",
1787*54f5de6fSIan Rogers        "Unit": "MCHBM"
1788*54f5de6fSIan Rogers    },
1789*54f5de6fSIan Rogers    {
1790*54f5de6fSIan Rogers        "BriefDescription": "Precharge from MC page table",
1791*54f5de6fSIan Rogers        "EventCode": "0x03",
1792*54f5de6fSIan Rogers        "EventName": "UNC_MCHBM_PRE_COUNT.PGT",
1793*54f5de6fSIan Rogers        "PerPkg": "1",
1794*54f5de6fSIan Rogers        "PublicDescription": "Counts the number of HBM Precharge commands sent on this channel.",
1795*54f5de6fSIan Rogers        "UMask": "0x88",
1796*54f5de6fSIan Rogers        "Unit": "MCHBM"
1797*54f5de6fSIan Rogers    },
1798*54f5de6fSIan Rogers    {
1799*54f5de6fSIan Rogers        "BriefDescription": "HBM Precharge commands. : Precharges from Page Table",
1800*54f5de6fSIan Rogers        "EventCode": "0x03",
1801*54f5de6fSIan Rogers        "EventName": "UNC_MCHBM_PRE_COUNT.PGT_PCH0",
1802*54f5de6fSIan Rogers        "PerPkg": "1",
1803*54f5de6fSIan Rogers        "PublicDescription": "Counts the number of HBM Precharge commands sent on this channel. : Equivalent to PAGE_EMPTY",
1804*54f5de6fSIan Rogers        "UMask": "0x8",
1805*54f5de6fSIan Rogers        "Unit": "MCHBM"
1806*54f5de6fSIan Rogers    },
1807*54f5de6fSIan Rogers    {
1808*54f5de6fSIan Rogers        "BriefDescription": "HBM Precharge commands.",
1809*54f5de6fSIan Rogers        "EventCode": "0x03",
1810*54f5de6fSIan Rogers        "EventName": "UNC_MCHBM_PRE_COUNT.PGT_PCH1",
1811*54f5de6fSIan Rogers        "PerPkg": "1",
1812*54f5de6fSIan Rogers        "PublicDescription": "Counts the number of HBM Precharge commands sent on this channel.",
1813*54f5de6fSIan Rogers        "UMask": "0x80",
1814*54f5de6fSIan Rogers        "Unit": "MCHBM"
1815*54f5de6fSIan Rogers    },
1816*54f5de6fSIan Rogers    {
1817*54f5de6fSIan Rogers        "BriefDescription": "Precharge due to read on page miss",
1818*54f5de6fSIan Rogers        "EventCode": "0x03",
1819*54f5de6fSIan Rogers        "EventName": "UNC_MCHBM_PRE_COUNT.RD",
1820*54f5de6fSIan Rogers        "PerPkg": "1",
1821*54f5de6fSIan Rogers        "PublicDescription": "Counts the number of HBM Precharge commands sent on this channel.",
1822*54f5de6fSIan Rogers        "UMask": "0x11",
1823*54f5de6fSIan Rogers        "Unit": "MCHBM"
1824*54f5de6fSIan Rogers    },
1825*54f5de6fSIan Rogers    {
1826*54f5de6fSIan Rogers        "BriefDescription": "HBM Precharge commands. : Precharge due to read",
1827*54f5de6fSIan Rogers        "EventCode": "0x03",
1828*54f5de6fSIan Rogers        "EventName": "UNC_MCHBM_PRE_COUNT.RD_PCH0",
1829*54f5de6fSIan Rogers        "PerPkg": "1",
1830*54f5de6fSIan Rogers        "PublicDescription": "Counts the number of HBM Precharge commands sent on this channel. : Precharge from read bank scheduler",
1831*54f5de6fSIan Rogers        "UMask": "0x1",
1832*54f5de6fSIan Rogers        "Unit": "MCHBM"
1833*54f5de6fSIan Rogers    },
1834*54f5de6fSIan Rogers    {
1835*54f5de6fSIan Rogers        "BriefDescription": "HBM Precharge commands.",
1836*54f5de6fSIan Rogers        "EventCode": "0x03",
1837*54f5de6fSIan Rogers        "EventName": "UNC_MCHBM_PRE_COUNT.RD_PCH1",
1838*54f5de6fSIan Rogers        "PerPkg": "1",
1839*54f5de6fSIan Rogers        "PublicDescription": "Counts the number of HBM Precharge commands sent on this channel.",
1840*54f5de6fSIan Rogers        "UMask": "0x10",
1841*54f5de6fSIan Rogers        "Unit": "MCHBM"
1842*54f5de6fSIan Rogers    },
1843*54f5de6fSIan Rogers    {
1844*54f5de6fSIan Rogers        "BriefDescription": "HBM Precharge commands.",
1845*54f5de6fSIan Rogers        "EventCode": "0x03",
1846*54f5de6fSIan Rogers        "EventName": "UNC_MCHBM_PRE_COUNT.UFILL",
1847*54f5de6fSIan Rogers        "PerPkg": "1",
1848*54f5de6fSIan Rogers        "PublicDescription": "Counts the number of HBM Precharge commands sent on this channel.",
1849*54f5de6fSIan Rogers        "UMask": "0x44",
1850*54f5de6fSIan Rogers        "Unit": "MCHBM"
1851*54f5de6fSIan Rogers    },
1852*54f5de6fSIan Rogers    {
1853*54f5de6fSIan Rogers        "BriefDescription": "HBM Precharge commands.",
1854*54f5de6fSIan Rogers        "EventCode": "0x03",
1855*54f5de6fSIan Rogers        "EventName": "UNC_MCHBM_PRE_COUNT.UFILL_PCH0",
1856*54f5de6fSIan Rogers        "PerPkg": "1",
1857*54f5de6fSIan Rogers        "PublicDescription": "Counts the number of HBM Precharge commands sent on this channel.",
1858*54f5de6fSIan Rogers        "UMask": "0x4",
1859*54f5de6fSIan Rogers        "Unit": "MCHBM"
1860*54f5de6fSIan Rogers    },
1861*54f5de6fSIan Rogers    {
1862*54f5de6fSIan Rogers        "BriefDescription": "HBM Precharge commands.",
1863*54f5de6fSIan Rogers        "EventCode": "0x03",
1864*54f5de6fSIan Rogers        "EventName": "UNC_MCHBM_PRE_COUNT.UFILL_PCH1",
1865*54f5de6fSIan Rogers        "PerPkg": "1",
1866*54f5de6fSIan Rogers        "PublicDescription": "Counts the number of HBM Precharge commands sent on this channel.",
1867*54f5de6fSIan Rogers        "UMask": "0x40",
1868*54f5de6fSIan Rogers        "Unit": "MCHBM"
1869*54f5de6fSIan Rogers    },
1870*54f5de6fSIan Rogers    {
1871*54f5de6fSIan Rogers        "BriefDescription": "Precharge due to write on page miss",
1872*54f5de6fSIan Rogers        "EventCode": "0x03",
1873*54f5de6fSIan Rogers        "EventName": "UNC_MCHBM_PRE_COUNT.WR",
1874*54f5de6fSIan Rogers        "PerPkg": "1",
1875*54f5de6fSIan Rogers        "PublicDescription": "Counts the number of HBM Precharge commands sent on this channel.",
1876*54f5de6fSIan Rogers        "UMask": "0x22",
1877*54f5de6fSIan Rogers        "Unit": "MCHBM"
1878*54f5de6fSIan Rogers    },
1879*54f5de6fSIan Rogers    {
1880*54f5de6fSIan Rogers        "BriefDescription": "HBM Precharge commands. : Precharge due to write",
1881*54f5de6fSIan Rogers        "EventCode": "0x03",
1882*54f5de6fSIan Rogers        "EventName": "UNC_MCHBM_PRE_COUNT.WR_PCH0",
1883*54f5de6fSIan Rogers        "PerPkg": "1",
1884*54f5de6fSIan Rogers        "PublicDescription": "Counts the number of HBM Precharge commands sent on this channel. : Precharge from write bank scheduler",
1885*54f5de6fSIan Rogers        "UMask": "0x2",
1886*54f5de6fSIan Rogers        "Unit": "MCHBM"
1887*54f5de6fSIan Rogers    },
1888*54f5de6fSIan Rogers    {
1889*54f5de6fSIan Rogers        "BriefDescription": "HBM Precharge commands.",
1890*54f5de6fSIan Rogers        "EventCode": "0x03",
1891*54f5de6fSIan Rogers        "EventName": "UNC_MCHBM_PRE_COUNT.WR_PCH1",
1892*54f5de6fSIan Rogers        "PerPkg": "1",
1893*54f5de6fSIan Rogers        "PublicDescription": "Counts the number of HBM Precharge commands sent on this channel.",
1894*54f5de6fSIan Rogers        "UMask": "0x20",
1895*54f5de6fSIan Rogers        "Unit": "MCHBM"
1896*54f5de6fSIan Rogers    },
1897*54f5de6fSIan Rogers    {
1898*54f5de6fSIan Rogers        "BriefDescription": "Counts the number of cycles where the read buffer has greater than UMASK elements.  NOTE: Umask must be set to the maximum number of elements in the queue (24 entries for SPR).",
1899*54f5de6fSIan Rogers        "EventCode": "0x19",
1900*54f5de6fSIan Rogers        "EventName": "UNC_MCHBM_RDB_FULL",
1901*54f5de6fSIan Rogers        "PerPkg": "1",
1902*54f5de6fSIan Rogers        "Unit": "MCHBM"
1903*54f5de6fSIan Rogers    },
1904*54f5de6fSIan Rogers    {
1905*54f5de6fSIan Rogers        "BriefDescription": "Counts the number of inserts into the read buffer.",
1906*54f5de6fSIan Rogers        "EventCode": "0x17",
1907*54f5de6fSIan Rogers        "EventName": "UNC_MCHBM_RDB_INSERTS",
1908*54f5de6fSIan Rogers        "PerPkg": "1",
1909*54f5de6fSIan Rogers        "UMask": "0x3",
1910*54f5de6fSIan Rogers        "Unit": "MCHBM"
1911*54f5de6fSIan Rogers    },
1912*54f5de6fSIan Rogers    {
1913*54f5de6fSIan Rogers        "BriefDescription": "Read Data Buffer Inserts",
1914*54f5de6fSIan Rogers        "EventCode": "0x17",
1915*54f5de6fSIan Rogers        "EventName": "UNC_MCHBM_RDB_INSERTS.PCH0",
1916*54f5de6fSIan Rogers        "PerPkg": "1",
1917*54f5de6fSIan Rogers        "UMask": "0x1",
1918*54f5de6fSIan Rogers        "Unit": "MCHBM"
1919*54f5de6fSIan Rogers    },
1920*54f5de6fSIan Rogers    {
1921*54f5de6fSIan Rogers        "BriefDescription": "Read Data Buffer Inserts",
1922*54f5de6fSIan Rogers        "EventCode": "0x17",
1923*54f5de6fSIan Rogers        "EventName": "UNC_MCHBM_RDB_INSERTS.PCH1",
1924*54f5de6fSIan Rogers        "PerPkg": "1",
1925*54f5de6fSIan Rogers        "UMask": "0x2",
1926*54f5de6fSIan Rogers        "Unit": "MCHBM"
1927*54f5de6fSIan Rogers    },
1928*54f5de6fSIan Rogers    {
1929*54f5de6fSIan Rogers        "BriefDescription": "Counts the number of elements in the read buffer per cycle.",
1930*54f5de6fSIan Rogers        "EventCode": "0x1a",
1931*54f5de6fSIan Rogers        "EventName": "UNC_MCHBM_RDB_OCCUPANCY",
1932*54f5de6fSIan Rogers        "PerPkg": "1",
1933*54f5de6fSIan Rogers        "Unit": "MCHBM"
1934*54f5de6fSIan Rogers    },
1935*54f5de6fSIan Rogers    {
1936*54f5de6fSIan Rogers        "BriefDescription": "Read Pending Queue Allocations",
1937*54f5de6fSIan Rogers        "EventCode": "0x10",
1938*54f5de6fSIan Rogers        "EventName": "UNC_MCHBM_RPQ_INSERTS.PCH0",
1939*54f5de6fSIan Rogers        "PerPkg": "1",
1940*54f5de6fSIan Rogers        "PublicDescription": "Read Pending Queue Allocations: Counts the number of allocations into the Read Pending Queue.  This queue is used to schedule reads out to the memory controller and to track the requests.  Requests allocate into the RPQ soon after they enter the memory controller, and need credits for an entry in this buffer before being sent from the HA to the iMC.  They deallocate after the CAS command has been issued to memory.  This includes both ISOCH and non-ISOCH requests.",
1941*54f5de6fSIan Rogers        "UMask": "0x1",
1942*54f5de6fSIan Rogers        "Unit": "MCHBM"
1943*54f5de6fSIan Rogers    },
1944*54f5de6fSIan Rogers    {
1945*54f5de6fSIan Rogers        "BriefDescription": "Read Pending Queue Allocations",
1946*54f5de6fSIan Rogers        "EventCode": "0x10",
1947*54f5de6fSIan Rogers        "EventName": "UNC_MCHBM_RPQ_INSERTS.PCH1",
1948*54f5de6fSIan Rogers        "PerPkg": "1",
1949*54f5de6fSIan Rogers        "PublicDescription": "Read Pending Queue Allocations: Counts the number of allocations into the Read Pending Queue.  This queue is used to schedule reads out to the memory controller and to track the requests.  Requests allocate into the RPQ soon after they enter the memory controller, and need credits for an entry in this buffer before being sent from the HA to the iMC.  They deallocate after the CAS command has been issued to memory.  This includes both ISOCH and non-ISOCH requests.",
1950*54f5de6fSIan Rogers        "UMask": "0x2",
1951*54f5de6fSIan Rogers        "Unit": "MCHBM"
1952*54f5de6fSIan Rogers    },
1953*54f5de6fSIan Rogers    {
1954*54f5de6fSIan Rogers        "BriefDescription": "Read Pending Queue Occupancy",
1955*54f5de6fSIan Rogers        "EventCode": "0x80",
1956*54f5de6fSIan Rogers        "EventName": "UNC_MCHBM_RPQ_OCCUPANCY_PCH0",
1957*54f5de6fSIan Rogers        "PerPkg": "1",
1958*54f5de6fSIan Rogers        "PublicDescription": "Read Pending Queue Occupancy: Accumulates the occupancies of the Read Pending Queue each cycle.  This can then be used to calculate both the average occupancy (in conjunction with the number of cycles not empty) and the average latency (in conjunction with the number of allocations).  The RPQ is used to schedule reads out to the memory controller and to track the requests.  Requests allocate into the RPQ soon after they enter the memory controller, and need credits for an entry in this buffer before being sent from the HA to the iMC. They deallocate after the CAS command has been issued to memory.",
1959*54f5de6fSIan Rogers        "Unit": "MCHBM"
1960*54f5de6fSIan Rogers    },
1961*54f5de6fSIan Rogers    {
1962*54f5de6fSIan Rogers        "BriefDescription": "Read Pending Queue Occupancy",
1963*54f5de6fSIan Rogers        "EventCode": "0x81",
1964*54f5de6fSIan Rogers        "EventName": "UNC_MCHBM_RPQ_OCCUPANCY_PCH1",
1965*54f5de6fSIan Rogers        "PerPkg": "1",
1966*54f5de6fSIan Rogers        "PublicDescription": "Read Pending Queue Occupancy: Accumulates the occupancies of the Read Pending Queue each cycle.  This can then be used to calculate both the average occupancy (in conjunction with the number of cycles not empty) and the average latency (in conjunction with the number of allocations).  The RPQ is used to schedule reads out to the memory controller and to track the requests.  Requests allocate into the RPQ soon after they enter the memory controller, and need credits for an entry in this buffer before being sent from the HA to the iMC. They deallocate after the CAS command has been issued to memory.",
1967*54f5de6fSIan Rogers        "Unit": "MCHBM"
1968*54f5de6fSIan Rogers    },
1969*54f5de6fSIan Rogers    {
1970*54f5de6fSIan Rogers        "BriefDescription": "Write Pending Queue Allocations",
1971*54f5de6fSIan Rogers        "EventCode": "0x20",
1972*54f5de6fSIan Rogers        "EventName": "UNC_MCHBM_WPQ_INSERTS.PCH0",
1973*54f5de6fSIan Rogers        "PerPkg": "1",
1974*54f5de6fSIan Rogers        "PublicDescription": "Write Pending Queue Allocations: Counts the number of allocations into the Write Pending Queue.  This can then be used to calculate the average queuing latency (in conjunction with the WPQ occupancy count).  The WPQ is used to schedule write out to the memory controller and to track the writes.  Requests allocate into the WPQ soon after they enter the memory controller, and need credits for an entry in this buffer before being sent from the CHA to the iMC.  They deallocate after being issued.  Write requests themselves are able to complete (from the perspective of the rest of the system) as soon they have posted to the iMC.",
1975*54f5de6fSIan Rogers        "UMask": "0x1",
1976*54f5de6fSIan Rogers        "Unit": "MCHBM"
1977*54f5de6fSIan Rogers    },
1978*54f5de6fSIan Rogers    {
1979*54f5de6fSIan Rogers        "BriefDescription": "Write Pending Queue Allocations",
1980*54f5de6fSIan Rogers        "EventCode": "0x20",
1981*54f5de6fSIan Rogers        "EventName": "UNC_MCHBM_WPQ_INSERTS.PCH1",
1982*54f5de6fSIan Rogers        "PerPkg": "1",
1983*54f5de6fSIan Rogers        "PublicDescription": "Write Pending Queue Allocations: Counts the number of allocations into the Write Pending Queue.  This can then be used to calculate the average queuing latency (in conjunction with the WPQ occupancy count).  The WPQ is used to schedule write out to the memory controller and to track the writes.  Requests allocate into the WPQ soon after they enter the memory controller, and need credits for an entry in this buffer before being sent from the CHA to the iMC.  They deallocate after being issued.  Write requests themselves are able to complete (from the perspective of the rest of the system) as soon they have posted to the iMC.",
1984*54f5de6fSIan Rogers        "UMask": "0x2",
1985*54f5de6fSIan Rogers        "Unit": "MCHBM"
1986*54f5de6fSIan Rogers    },
1987*54f5de6fSIan Rogers    {
1988*54f5de6fSIan Rogers        "BriefDescription": "Write Pending Queue Occupancy",
1989*54f5de6fSIan Rogers        "EventCode": "0x82",
1990*54f5de6fSIan Rogers        "EventName": "UNC_MCHBM_WPQ_OCCUPANCY_PCH0",
1991*54f5de6fSIan Rogers        "PerPkg": "1",
1992*54f5de6fSIan Rogers        "PublicDescription": "Write Pending Queue Occupancy: Accumulates the occupancies of the Write Pending Queue each cycle.  This can then be used to calculate both the average queue occupancy (in conjunction with the number of cycles not empty) and the average latency (in conjunction with the number of allocations).  The WPQ is used to schedule write out to the memory controller and to track the writes.  Requests allocate into the WPQ soon after they enter the memory controller, and need credits for an entry in this buffer before being sent from the HA to the iMC.  They deallocate after being issued to memory.  Write requests themselves are able to complete (from the perspective of the rest of the system) as soon they have posted to the iMC.  This is not to be confused with actually performing the write.  Therefore, the average latency for this queue is actually not useful for deconstruction intermediate write latencies.  So, we provide filtering based on if the request has posted or not.  By using the not posted filter, we can track how long writes spent in the iMC before completions were sent to the HA.  The posted filter, on the other hand, provides information about how much queueing is actually happening in the iMC for writes before they are actually issued to memory.  High average occupancies will generally coincide with high write major mode counts.",
1993*54f5de6fSIan Rogers        "Unit": "MCHBM"
1994*54f5de6fSIan Rogers    },
1995*54f5de6fSIan Rogers    {
1996*54f5de6fSIan Rogers        "BriefDescription": "Write Pending Queue Occupancy",
1997*54f5de6fSIan Rogers        "EventCode": "0x83",
1998*54f5de6fSIan Rogers        "EventName": "UNC_MCHBM_WPQ_OCCUPANCY_PCH1",
1999*54f5de6fSIan Rogers        "PerPkg": "1",
2000*54f5de6fSIan Rogers        "PublicDescription": "Write Pending Queue Occupancy: Accumulates the occupancies of the Write Pending Queue each cycle.  This can then be used to calculate both the average queue occupancy (in conjunction with the number of cycles not empty) and the average latency (in conjunction with the number of allocations).  The WPQ is used to schedule write out to the memory controller and to track the writes.  Requests allocate into the WPQ soon after they enter the memory controller, and need credits for an entry in this buffer before being sent from the HA to the iMC.  They deallocate after being issued to memory.  Write requests themselves are able to complete (from the perspective of the rest of the system) as soon they have posted to the iMC.  This is not to be confused with actually performing the write.  Therefore, the average latency for this queue is actually not useful for deconstruction intermediate write latencies.  So, we provide filtering based on if the request has posted or not.  By using the not posted filter, we can track how long writes spent in the iMC before completions were sent to the HA.  The posted filter, on the other hand, provides information about how much queueing is actually happening in the iMC for writes before they are actually issued to memory.  High average occupancies will generally coincide with high write major mode counts.",
2001*54f5de6fSIan Rogers        "Unit": "MCHBM"
2002*54f5de6fSIan Rogers    },
2003*54f5de6fSIan Rogers    {
2004*54f5de6fSIan Rogers        "BriefDescription": "Write Pending Queue CAM Match",
2005*54f5de6fSIan Rogers        "EventCode": "0x23",
2006*54f5de6fSIan Rogers        "EventName": "UNC_MCHBM_WPQ_READ_HIT",
2007*54f5de6fSIan Rogers        "FCMask": "0x00000000",
2008*54f5de6fSIan Rogers        "PerPkg": "1",
2009*54f5de6fSIan Rogers        "PortMask": "0x00000000",
2010*54f5de6fSIan Rogers        "PublicDescription": "Counts the number of times a request hits in the WPQ (write-pending queue).  The iMC allows writes and reads to pass up other writes to different addresses.  Before a read or a write is issued, it will first CAM the WPQ to see if there is a write pending to that address.  When reads hit, they are able to directly pull their data from the WPQ instead of going to memory.  Writes that hit will overwrite the existing data.  Partial writes that hit will not need to do underfill reads and will simply update their relevant sections.",
2011*54f5de6fSIan Rogers        "Unit": "MCHBM"
2012*54f5de6fSIan Rogers    },
2013*54f5de6fSIan Rogers    {
2014*54f5de6fSIan Rogers        "BriefDescription": "Write Pending Queue CAM Match",
2015*54f5de6fSIan Rogers        "EventCode": "0x23",
2016*54f5de6fSIan Rogers        "EventName": "UNC_MCHBM_WPQ_READ_HIT.PCH0",
2017*54f5de6fSIan Rogers        "PerPkg": "1",
2018*54f5de6fSIan Rogers        "PublicDescription": "Write Pending Queue CAM Match: Counts the number of times a request hits in the WPQ (write-pending queue).  The iMC allows writes and reads to pass up other writes to different addresses.  Before a read or a write is issued, it will first CAM the WPQ to see if there is a write pending to that address.  When reads hit, they are able to directly pull their data from the WPQ instead of going to memory.  Writes that hit will overwrite the existing data.  Partial writes that hit will not need to do underfill reads and will simply update their relevant sections.",
2019*54f5de6fSIan Rogers        "UMask": "0x1",
2020*54f5de6fSIan Rogers        "Unit": "MCHBM"
2021*54f5de6fSIan Rogers    },
2022*54f5de6fSIan Rogers    {
2023*54f5de6fSIan Rogers        "BriefDescription": "Write Pending Queue CAM Match",
2024*54f5de6fSIan Rogers        "EventCode": "0x23",
2025*54f5de6fSIan Rogers        "EventName": "UNC_MCHBM_WPQ_READ_HIT.PCH1",
2026*54f5de6fSIan Rogers        "PerPkg": "1",
2027*54f5de6fSIan Rogers        "PublicDescription": "Write Pending Queue CAM Match: Counts the number of times a request hits in the WPQ (write-pending queue).  The iMC allows writes and reads to pass up other writes to different addresses.  Before a read or a write is issued, it will first CAM the WPQ to see if there is a write pending to that address.  When reads hit, they are able to directly pull their data from the WPQ instead of going to memory.  Writes that hit will overwrite the existing data.  Partial writes that hit will not need to do underfill reads and will simply update their relevant sections.",
2028*54f5de6fSIan Rogers        "UMask": "0x2",
2029*54f5de6fSIan Rogers        "Unit": "MCHBM"
2030*54f5de6fSIan Rogers    },
2031*54f5de6fSIan Rogers    {
2032*54f5de6fSIan Rogers        "BriefDescription": "Write Pending Queue CAM Match",
2033*54f5de6fSIan Rogers        "EventCode": "0x24",
2034*54f5de6fSIan Rogers        "EventName": "UNC_MCHBM_WPQ_WRITE_HIT",
2035*54f5de6fSIan Rogers        "FCMask": "0x00000000",
2036*54f5de6fSIan Rogers        "PerPkg": "1",
2037*54f5de6fSIan Rogers        "PortMask": "0x00000000",
2038*54f5de6fSIan Rogers        "PublicDescription": "Counts the number of times a request hits in the WPQ (write-pending queue).  The iMC allows writes and reads to pass up other writes to different addresses.  Before a read or a write is issued, it will first CAM the WPQ to see if there is a write pending to that address.  When reads hit, they are able to directly pull their data from the WPQ instead of going to memory.  Writes that hit will overwrite the existing data.  Partial writes that hit will not need to do underfill reads and will simply update their relevant sections.",
2039*54f5de6fSIan Rogers        "Unit": "MCHBM"
2040*54f5de6fSIan Rogers    },
2041*54f5de6fSIan Rogers    {
2042*54f5de6fSIan Rogers        "BriefDescription": "Write Pending Queue CAM Match",
2043*54f5de6fSIan Rogers        "EventCode": "0x24",
2044*54f5de6fSIan Rogers        "EventName": "UNC_MCHBM_WPQ_WRITE_HIT.PCH0",
2045*54f5de6fSIan Rogers        "PerPkg": "1",
2046*54f5de6fSIan Rogers        "PublicDescription": "Write Pending Queue CAM Match: Counts the number of times a request hits in the WPQ (write-pending queue).  The iMC allows writes and reads to pass up other writes to different addresses.  Before a read or a write is issued, it will first CAM the WPQ to see if there is a write pending to that address.  When reads hit, they are able to directly pull their data from the WPQ instead of going to memory.  Writes that hit will overwrite the existing data.  Partial writes that hit will not need to do underfill reads and will simply update their relevant sections.",
2047*54f5de6fSIan Rogers        "UMask": "0x1",
2048*54f5de6fSIan Rogers        "Unit": "MCHBM"
2049*54f5de6fSIan Rogers    },
2050*54f5de6fSIan Rogers    {
2051*54f5de6fSIan Rogers        "BriefDescription": "Write Pending Queue CAM Match",
2052*54f5de6fSIan Rogers        "EventCode": "0x24",
2053*54f5de6fSIan Rogers        "EventName": "UNC_MCHBM_WPQ_WRITE_HIT.PCH1",
2054*54f5de6fSIan Rogers        "PerPkg": "1",
2055*54f5de6fSIan Rogers        "PublicDescription": "Write Pending Queue CAM Match: Counts the number of times a request hits in the WPQ (write-pending queue).  The iMC allows writes and reads to pass up other writes to different addresses.  Before a read or a write is issued, it will first CAM the WPQ to see if there is a write pending to that address.  When reads hit, they are able to directly pull their data from the WPQ instead of going to memory.  Writes that hit will overwrite the existing data.  Partial writes that hit will not need to do underfill reads and will simply update their relevant sections.",
2056*54f5de6fSIan Rogers        "UMask": "0x2",
2057*54f5de6fSIan Rogers        "Unit": "MCHBM"
2058*54f5de6fSIan Rogers    },
2059*54f5de6fSIan Rogers    {
20604e411ee4SZhengjun Xing        "BriefDescription": "Activate due to read, write, underfill, or bypass",
20614e411ee4SZhengjun Xing        "EventCode": "0x02",
20624e411ee4SZhengjun Xing        "EventName": "UNC_M_ACT_COUNT.ALL",
20634e411ee4SZhengjun Xing        "PerPkg": "1",
2064400dd489SIan Rogers        "PublicDescription": "DRAM Activate Count : Counts the number of DRAM Activate commands sent on this channel.  Activate commands are issued to open up a page on the DRAM devices so that it can be read or written to with a CAS.  One can calculate the number of Page Misses by subtracting the number of Page Miss precharges from the number of Activates.",
2065400dd489SIan Rogers        "UMask": "0xff",
20664e411ee4SZhengjun Xing        "Unit": "iMC"
20674e411ee4SZhengjun Xing    },
20684e411ee4SZhengjun Xing    {
20694e411ee4SZhengjun Xing        "BriefDescription": "All DRAM CAS commands issued",
20704e411ee4SZhengjun Xing        "EventCode": "0x05",
20714e411ee4SZhengjun Xing        "EventName": "UNC_M_CAS_COUNT.ALL",
20724e411ee4SZhengjun Xing        "PerPkg": "1",
2073400dd489SIan Rogers        "PublicDescription": "DRAM RD_CAS and WR_CAS Commands. : All DRAM Read and Write actions : DRAM RD_CAS and WR_CAS Commands : Counts the total number of DRAM CAS commands issued on this channel.",
2074400dd489SIan Rogers        "UMask": "0xff",
20754e411ee4SZhengjun Xing        "Unit": "iMC"
20764e411ee4SZhengjun Xing    },
20774e411ee4SZhengjun Xing    {
20784e411ee4SZhengjun Xing        "BriefDescription": "DRAM RD_CAS and WR_CAS Commands. : Pseudo Channel 0",
20794e411ee4SZhengjun Xing        "EventCode": "0x05",
20804e411ee4SZhengjun Xing        "EventName": "UNC_M_CAS_COUNT.PCH0",
20814e411ee4SZhengjun Xing        "PerPkg": "1",
2082400dd489SIan Rogers        "PublicDescription": "DRAM RD_CAS and WR_CAS Commands. : Pseudo Channel 0 : DRAM RD_CAS and WR_CAS Commands",
2083400dd489SIan Rogers        "UMask": "0x40",
20844e411ee4SZhengjun Xing        "Unit": "iMC"
20854e411ee4SZhengjun Xing    },
20864e411ee4SZhengjun Xing    {
20874e411ee4SZhengjun Xing        "BriefDescription": "DRAM RD_CAS and WR_CAS Commands. : Pseudo Channel 1",
20884e411ee4SZhengjun Xing        "EventCode": "0x05",
20894e411ee4SZhengjun Xing        "EventName": "UNC_M_CAS_COUNT.PCH1",
20904e411ee4SZhengjun Xing        "PerPkg": "1",
2091400dd489SIan Rogers        "PublicDescription": "DRAM RD_CAS and WR_CAS Commands. : Pseudo Channel 1 : DRAM RD_CAS and WR_CAS Commands",
2092400dd489SIan Rogers        "UMask": "0x80",
2093400dd489SIan Rogers        "Unit": "iMC"
2094400dd489SIan Rogers    },
2095400dd489SIan Rogers    {
2096400dd489SIan Rogers        "BriefDescription": "All DRAM read CAS commands issued (including underfills)",
2097400dd489SIan Rogers        "EventCode": "0x05",
2098400dd489SIan Rogers        "EventName": "UNC_M_CAS_COUNT.RD",
2099400dd489SIan Rogers        "PerPkg": "1",
2100400dd489SIan Rogers        "PublicDescription": "DRAM RD_CAS and WR_CAS Commands : Counts the total number of DRAM Read CAS commands issued on this channel.  This includes underfills.",
2101400dd489SIan Rogers        "UMask": "0xcf",
2102400dd489SIan Rogers        "Unit": "iMC"
2103400dd489SIan Rogers    },
2104400dd489SIan Rogers    {
2105400dd489SIan Rogers        "BriefDescription": "DRAM RD_CAS and WR_CAS Commands.",
2106400dd489SIan Rogers        "EventCode": "0x05",
2107400dd489SIan Rogers        "EventName": "UNC_M_CAS_COUNT.RD_PRE_REG",
2108400dd489SIan Rogers        "PerPkg": "1",
2109400dd489SIan Rogers        "PublicDescription": "DRAM RD_CAS and WR_CAS Commands. : DRAM RD_CAS and WR_CAS Commands",
2110400dd489SIan Rogers        "UMask": "0xc2",
2111400dd489SIan Rogers        "Unit": "iMC"
2112400dd489SIan Rogers    },
2113400dd489SIan Rogers    {
2114400dd489SIan Rogers        "BriefDescription": "DRAM RD_CAS and WR_CAS Commands.",
2115400dd489SIan Rogers        "EventCode": "0x05",
2116400dd489SIan Rogers        "EventName": "UNC_M_CAS_COUNT.RD_PRE_UNDERFILL",
2117400dd489SIan Rogers        "PerPkg": "1",
2118400dd489SIan Rogers        "PublicDescription": "DRAM RD_CAS and WR_CAS Commands. : DRAM RD_CAS and WR_CAS Commands",
2119400dd489SIan Rogers        "UMask": "0xc8",
2120400dd489SIan Rogers        "Unit": "iMC"
2121400dd489SIan Rogers    },
2122400dd489SIan Rogers    {
2123400dd489SIan Rogers        "BriefDescription": "All DRAM read CAS commands issued (does not include underfills)",
2124400dd489SIan Rogers        "EventCode": "0x05",
2125400dd489SIan Rogers        "EventName": "UNC_M_CAS_COUNT.RD_REG",
2126400dd489SIan Rogers        "PerPkg": "1",
2127400dd489SIan Rogers        "PublicDescription": "DRAM RD_CAS and WR_CAS Commands. : DRAM RD_CAS commands w/out auto-pre : DRAM RD_CAS and WR_CAS Commands : Counts the total number or DRAM Read CAS commands issued on this channel.  This includes both regular RD CAS commands as well as those with implicit Precharge.   We do not filter based on major mode, as RD_CAS is not issued during WMM (with the exception of underfills).",
2128400dd489SIan Rogers        "UMask": "0xc1",
2129400dd489SIan Rogers        "Unit": "iMC"
2130400dd489SIan Rogers    },
2131400dd489SIan Rogers    {
2132400dd489SIan Rogers        "BriefDescription": "DRAM underfill read CAS commands issued",
2133400dd489SIan Rogers        "EventCode": "0x05",
2134400dd489SIan Rogers        "EventName": "UNC_M_CAS_COUNT.RD_UNDERFILL",
2135400dd489SIan Rogers        "PerPkg": "1",
2136400dd489SIan Rogers        "PublicDescription": "DRAM RD_CAS and WR_CAS Commands. : Underfill Read Issued : DRAM RD_CAS and WR_CAS Commands",
2137400dd489SIan Rogers        "UMask": "0xc4",
2138400dd489SIan Rogers        "Unit": "iMC"
2139400dd489SIan Rogers    },
2140400dd489SIan Rogers    {
2141400dd489SIan Rogers        "BriefDescription": "All DRAM write CAS commands issued",
2142400dd489SIan Rogers        "EventCode": "0x05",
2143400dd489SIan Rogers        "EventName": "UNC_M_CAS_COUNT.WR",
2144400dd489SIan Rogers        "PerPkg": "1",
2145400dd489SIan Rogers        "PublicDescription": "DRAM RD_CAS and WR_CAS Commands : Counts the total number of DRAM Write CAS commands issued on this channel.",
2146400dd489SIan Rogers        "UMask": "0xf0",
2147400dd489SIan Rogers        "Unit": "iMC"
2148400dd489SIan Rogers    },
2149400dd489SIan Rogers    {
2150400dd489SIan Rogers        "BriefDescription": "DRAM RD_CAS and WR_CAS Commands. : DRAM WR_CAS commands w/o auto-pre",
2151400dd489SIan Rogers        "EventCode": "0x05",
2152400dd489SIan Rogers        "EventName": "UNC_M_CAS_COUNT.WR_NONPRE",
2153400dd489SIan Rogers        "PerPkg": "1",
2154400dd489SIan Rogers        "PublicDescription": "DRAM RD_CAS and WR_CAS Commands. : DRAM WR_CAS commands w/o auto-pre : DRAM RD_CAS and WR_CAS Commands",
2155400dd489SIan Rogers        "UMask": "0xd0",
2156400dd489SIan Rogers        "Unit": "iMC"
2157400dd489SIan Rogers    },
2158400dd489SIan Rogers    {
2159400dd489SIan Rogers        "BriefDescription": "DRAM RD_CAS and WR_CAS Commands.",
2160400dd489SIan Rogers        "EventCode": "0x05",
2161400dd489SIan Rogers        "EventName": "UNC_M_CAS_COUNT.WR_PRE",
2162400dd489SIan Rogers        "PerPkg": "1",
2163400dd489SIan Rogers        "PublicDescription": "DRAM RD_CAS and WR_CAS Commands. : DRAM RD_CAS and WR_CAS Commands",
2164400dd489SIan Rogers        "UMask": "0xe0",
2165400dd489SIan Rogers        "Unit": "iMC"
2166400dd489SIan Rogers    },
2167400dd489SIan Rogers    {
2168*54f5de6fSIan Rogers        "BriefDescription": "Pseudo Channel 0",
2169*54f5de6fSIan Rogers        "EventCode": "0x06",
2170*54f5de6fSIan Rogers        "EventName": "UNC_M_CAS_ISSUED_REQ_LEN.PCH0",
2171*54f5de6fSIan Rogers        "PerPkg": "1",
2172*54f5de6fSIan Rogers        "UMask": "0x40",
2173*54f5de6fSIan Rogers        "Unit": "iMC"
2174*54f5de6fSIan Rogers    },
2175*54f5de6fSIan Rogers    {
2176*54f5de6fSIan Rogers        "BriefDescription": "Pseudo Channel 1",
2177*54f5de6fSIan Rogers        "EventCode": "0x06",
2178*54f5de6fSIan Rogers        "EventName": "UNC_M_CAS_ISSUED_REQ_LEN.PCH1",
2179*54f5de6fSIan Rogers        "PerPkg": "1",
2180*54f5de6fSIan Rogers        "UMask": "0x80",
2181*54f5de6fSIan Rogers        "Unit": "iMC"
2182*54f5de6fSIan Rogers    },
2183*54f5de6fSIan Rogers    {
2184*54f5de6fSIan Rogers        "BriefDescription": "Read CAS Command in Interleaved Mode (32B)",
2185*54f5de6fSIan Rogers        "EventCode": "0x06",
2186*54f5de6fSIan Rogers        "EventName": "UNC_M_CAS_ISSUED_REQ_LEN.RD_32B",
2187*54f5de6fSIan Rogers        "PerPkg": "1",
2188*54f5de6fSIan Rogers        "UMask": "0xc8",
2189*54f5de6fSIan Rogers        "Unit": "iMC"
2190*54f5de6fSIan Rogers    },
2191*54f5de6fSIan Rogers    {
2192*54f5de6fSIan Rogers        "BriefDescription": "Read CAS Command in Regular Mode (64B) in Pseudochannel 0",
2193*54f5de6fSIan Rogers        "EventCode": "0x06",
2194*54f5de6fSIan Rogers        "EventName": "UNC_M_CAS_ISSUED_REQ_LEN.RD_64B",
2195*54f5de6fSIan Rogers        "PerPkg": "1",
2196*54f5de6fSIan Rogers        "UMask": "0xc1",
2197*54f5de6fSIan Rogers        "Unit": "iMC"
2198*54f5de6fSIan Rogers    },
2199*54f5de6fSIan Rogers    {
2200*54f5de6fSIan Rogers        "BriefDescription": "Underfill Read CAS Command in Interleaved Mode (32B)",
2201*54f5de6fSIan Rogers        "EventCode": "0x06",
2202*54f5de6fSIan Rogers        "EventName": "UNC_M_CAS_ISSUED_REQ_LEN.RD_UFILL_32B",
2203*54f5de6fSIan Rogers        "PerPkg": "1",
2204*54f5de6fSIan Rogers        "UMask": "0xd0",
2205*54f5de6fSIan Rogers        "Unit": "iMC"
2206*54f5de6fSIan Rogers    },
2207*54f5de6fSIan Rogers    {
2208*54f5de6fSIan Rogers        "BriefDescription": "Underfill Read CAS Command in Regular Mode (64B) in Pseudochannel 1",
2209*54f5de6fSIan Rogers        "EventCode": "0x06",
2210*54f5de6fSIan Rogers        "EventName": "UNC_M_CAS_ISSUED_REQ_LEN.RD_UFILL_64B",
2211*54f5de6fSIan Rogers        "PerPkg": "1",
2212*54f5de6fSIan Rogers        "UMask": "0xc2",
2213*54f5de6fSIan Rogers        "Unit": "iMC"
2214*54f5de6fSIan Rogers    },
2215*54f5de6fSIan Rogers    {
2216*54f5de6fSIan Rogers        "BriefDescription": "Write CAS Command in Interleaved Mode (32B)",
2217*54f5de6fSIan Rogers        "EventCode": "0x06",
2218*54f5de6fSIan Rogers        "EventName": "UNC_M_CAS_ISSUED_REQ_LEN.WR_32B",
2219*54f5de6fSIan Rogers        "PerPkg": "1",
2220*54f5de6fSIan Rogers        "UMask": "0xe0",
2221*54f5de6fSIan Rogers        "Unit": "iMC"
2222*54f5de6fSIan Rogers    },
2223*54f5de6fSIan Rogers    {
2224*54f5de6fSIan Rogers        "BriefDescription": "Write CAS Command in Regular Mode (64B) in Pseudochannel 0",
2225*54f5de6fSIan Rogers        "EventCode": "0x06",
2226*54f5de6fSIan Rogers        "EventName": "UNC_M_CAS_ISSUED_REQ_LEN.WR_64B",
2227*54f5de6fSIan Rogers        "PerPkg": "1",
2228*54f5de6fSIan Rogers        "UMask": "0xc4",
2229*54f5de6fSIan Rogers        "Unit": "iMC"
2230*54f5de6fSIan Rogers    },
2231*54f5de6fSIan Rogers    {
2232400dd489SIan Rogers        "BriefDescription": "IMC Clockticks at DCLK frequency",
2233400dd489SIan Rogers        "EventCode": "0x01",
2234400dd489SIan Rogers        "EventName": "UNC_M_CLOCKTICKS",
2235400dd489SIan Rogers        "PerPkg": "1",
2236400dd489SIan Rogers        "PublicDescription": "Number of DRAM DCLK clock cycles while the event is enabled",
2237400dd489SIan Rogers        "UMask": "0x1",
2238400dd489SIan Rogers        "Unit": "iMC"
2239400dd489SIan Rogers    },
2240400dd489SIan Rogers    {
2241*54f5de6fSIan Rogers        "BriefDescription": "DRAM Precharge All Commands",
2242*54f5de6fSIan Rogers        "EventCode": "0x44",
2243*54f5de6fSIan Rogers        "EventName": "UNC_M_DRAM_PRE_ALL",
2244*54f5de6fSIan Rogers        "PerPkg": "1",
2245*54f5de6fSIan Rogers        "PublicDescription": "DRAM Precharge All Commands : Counts the number of times that the precharge all command was sent.",
2246*54f5de6fSIan Rogers        "UMask": "0x3",
2247*54f5de6fSIan Rogers        "Unit": "iMC"
2248*54f5de6fSIan Rogers    },
2249*54f5de6fSIan Rogers    {
2250400dd489SIan Rogers        "BriefDescription": "IMC Clockticks at HCLK frequency",
2251400dd489SIan Rogers        "EventCode": "0x01",
2252400dd489SIan Rogers        "EventName": "UNC_M_HCLOCKTICKS",
2253400dd489SIan Rogers        "PerPkg": "1",
2254400dd489SIan Rogers        "PublicDescription": "Number of DRAM HCLK clock cycles while the event is enabled",
2255400dd489SIan Rogers        "Unit": "iMC"
2256400dd489SIan Rogers    },
2257400dd489SIan Rogers    {
2258*54f5de6fSIan Rogers        "BriefDescription": "UNC_M_PCLS.RD",
2259*54f5de6fSIan Rogers        "EventCode": "0xa0",
2260*54f5de6fSIan Rogers        "EventName": "UNC_M_PCLS.RD",
2261*54f5de6fSIan Rogers        "PerPkg": "1",
2262*54f5de6fSIan Rogers        "UMask": "0x5",
2263*54f5de6fSIan Rogers        "Unit": "iMC"
2264*54f5de6fSIan Rogers    },
2265*54f5de6fSIan Rogers    {
2266*54f5de6fSIan Rogers        "BriefDescription": "UNC_M_PCLS.TOTAL",
2267*54f5de6fSIan Rogers        "EventCode": "0xa0",
2268*54f5de6fSIan Rogers        "EventName": "UNC_M_PCLS.TOTAL",
2269*54f5de6fSIan Rogers        "PerPkg": "1",
2270*54f5de6fSIan Rogers        "UMask": "0xf",
2271*54f5de6fSIan Rogers        "Unit": "iMC"
2272*54f5de6fSIan Rogers    },
2273*54f5de6fSIan Rogers    {
2274*54f5de6fSIan Rogers        "BriefDescription": "UNC_M_PCLS.WR",
2275*54f5de6fSIan Rogers        "EventCode": "0xa0",
2276*54f5de6fSIan Rogers        "EventName": "UNC_M_PCLS.WR",
2277*54f5de6fSIan Rogers        "PerPkg": "1",
2278*54f5de6fSIan Rogers        "UMask": "0xa",
2279*54f5de6fSIan Rogers        "Unit": "iMC"
2280*54f5de6fSIan Rogers    },
2281*54f5de6fSIan Rogers    {
2282400dd489SIan Rogers        "BriefDescription": "PMM Read Pending Queue inserts",
2283400dd489SIan Rogers        "EventCode": "0xe3",
2284400dd489SIan Rogers        "EventName": "UNC_M_PMM_RPQ_INSERTS",
2285400dd489SIan Rogers        "PerPkg": "1",
2286400dd489SIan Rogers        "PublicDescription": "Counts number of read requests allocated in the PMM Read Pending Queue.",
2287400dd489SIan Rogers        "Unit": "iMC"
2288400dd489SIan Rogers    },
2289400dd489SIan Rogers    {
2290400dd489SIan Rogers        "BriefDescription": "PMM Read Pending Queue occupancy",
2291400dd489SIan Rogers        "EventCode": "0xe0",
2292400dd489SIan Rogers        "EventName": "UNC_M_PMM_RPQ_OCCUPANCY.ALL_SCH0",
2293400dd489SIan Rogers        "PerPkg": "1",
2294400dd489SIan Rogers        "PublicDescription": "Accumulates the per cycle occupancy of the PMM Read Pending Queue.",
2295400dd489SIan Rogers        "UMask": "0x1",
2296400dd489SIan Rogers        "Unit": "iMC"
2297400dd489SIan Rogers    },
2298400dd489SIan Rogers    {
2299400dd489SIan Rogers        "BriefDescription": "PMM Read Pending Queue occupancy",
2300400dd489SIan Rogers        "EventCode": "0xe0",
2301400dd489SIan Rogers        "EventName": "UNC_M_PMM_RPQ_OCCUPANCY.ALL_SCH1",
2302400dd489SIan Rogers        "PerPkg": "1",
2303400dd489SIan Rogers        "PublicDescription": "Accumulates the per cycle occupancy of the PMM Read Pending Queue.",
2304400dd489SIan Rogers        "UMask": "0x2",
23054e411ee4SZhengjun Xing        "Unit": "iMC"
23064e411ee4SZhengjun Xing    },
23074e411ee4SZhengjun Xing    {
23084e411ee4SZhengjun Xing        "BriefDescription": "PMM Read Pending Queue Occupancy",
23094e411ee4SZhengjun Xing        "EventCode": "0xE0",
23104e411ee4SZhengjun Xing        "EventName": "UNC_M_PMM_RPQ_OCCUPANCY.GNT_WAIT_SCH0",
23114e411ee4SZhengjun Xing        "PerPkg": "1",
2312400dd489SIan Rogers        "PublicDescription": "PMM Read Pending Queue Occupancy : Accumulates the per cycle occupancy of the PMM Read Pending Queue.",
2313400dd489SIan Rogers        "UMask": "0x10",
23144e411ee4SZhengjun Xing        "Unit": "iMC"
23154e411ee4SZhengjun Xing    },
23164e411ee4SZhengjun Xing    {
23174e411ee4SZhengjun Xing        "BriefDescription": "PMM Read Pending Queue Occupancy",
23184e411ee4SZhengjun Xing        "EventCode": "0xE0",
23194e411ee4SZhengjun Xing        "EventName": "UNC_M_PMM_RPQ_OCCUPANCY.GNT_WAIT_SCH1",
23204e411ee4SZhengjun Xing        "PerPkg": "1",
2321400dd489SIan Rogers        "PublicDescription": "PMM Read Pending Queue Occupancy : Accumulates the per cycle occupancy of the PMM Read Pending Queue.",
2322400dd489SIan Rogers        "UMask": "0x20",
2323400dd489SIan Rogers        "Unit": "iMC"
2324400dd489SIan Rogers    },
2325400dd489SIan Rogers    {
2326400dd489SIan Rogers        "BriefDescription": "PMM Read Pending Queue Occupancy",
2327400dd489SIan Rogers        "EventCode": "0xe0",
2328400dd489SIan Rogers        "EventName": "UNC_M_PMM_RPQ_OCCUPANCY.NO_GNT_SCH0",
2329400dd489SIan Rogers        "PerPkg": "1",
2330400dd489SIan Rogers        "PublicDescription": "Accumulates the per cycle occupancy of the PMM Read Pending Queue.",
2331400dd489SIan Rogers        "UMask": "0x4",
2332400dd489SIan Rogers        "Unit": "iMC"
2333400dd489SIan Rogers    },
2334400dd489SIan Rogers    {
2335400dd489SIan Rogers        "BriefDescription": "PMM Read Pending Queue Occupancy",
2336400dd489SIan Rogers        "EventCode": "0xe0",
2337400dd489SIan Rogers        "EventName": "UNC_M_PMM_RPQ_OCCUPANCY.NO_GNT_SCH1",
2338400dd489SIan Rogers        "PerPkg": "1",
2339400dd489SIan Rogers        "PublicDescription": "Accumulates the per cycle occupancy of the PMM Read Pending Queue.",
2340400dd489SIan Rogers        "UMask": "0x8",
2341400dd489SIan Rogers        "Unit": "iMC"
2342400dd489SIan Rogers    },
2343400dd489SIan Rogers    {
2344*54f5de6fSIan Rogers        "BriefDescription": "PMM (for IXP) Write Queue Cycles Not Empty",
2345*54f5de6fSIan Rogers        "EventCode": "0xe5",
2346*54f5de6fSIan Rogers        "EventName": "UNC_M_PMM_WPQ_CYCLES_NE",
2347*54f5de6fSIan Rogers        "PerPkg": "1",
2348*54f5de6fSIan Rogers        "Unit": "iMC"
2349*54f5de6fSIan Rogers    },
2350*54f5de6fSIan Rogers    {
2351400dd489SIan Rogers        "BriefDescription": "PMM Write Pending Queue inserts",
2352400dd489SIan Rogers        "EventCode": "0xe7",
2353400dd489SIan Rogers        "EventName": "UNC_M_PMM_WPQ_INSERTS",
2354400dd489SIan Rogers        "PerPkg": "1",
2355400dd489SIan Rogers        "PublicDescription": "Counts number of  write requests allocated in the PMM Write Pending Queue.",
2356400dd489SIan Rogers        "Unit": "iMC"
2357400dd489SIan Rogers    },
2358400dd489SIan Rogers    {
2359400dd489SIan Rogers        "BriefDescription": "PMM Write Pending Queue Occupancy",
2360400dd489SIan Rogers        "EventCode": "0xe4",
2361400dd489SIan Rogers        "EventName": "UNC_M_PMM_WPQ_OCCUPANCY.ALL",
2362400dd489SIan Rogers        "PerPkg": "1",
2363400dd489SIan Rogers        "PublicDescription": "PMM Write Pending Queue Occupancy : Accumulates the per cycle occupancy of the Write Pending Queue to the PMM DIMM.",
2364400dd489SIan Rogers        "UMask": "0x3",
2365400dd489SIan Rogers        "Unit": "iMC"
2366400dd489SIan Rogers    },
2367400dd489SIan Rogers    {
2368400dd489SIan Rogers        "BriefDescription": "PMM Write Pending Queue Occupancy",
2369400dd489SIan Rogers        "EventCode": "0xE4",
2370400dd489SIan Rogers        "EventName": "UNC_M_PMM_WPQ_OCCUPANCY.ALL_SCH0",
2371400dd489SIan Rogers        "PerPkg": "1",
2372400dd489SIan Rogers        "PublicDescription": "PMM Write Pending Queue Occupancy : Accumulates the per cycle occupancy of the PMM Write Pending Queue.",
2373400dd489SIan Rogers        "UMask": "0x1",
2374400dd489SIan Rogers        "Unit": "iMC"
2375400dd489SIan Rogers    },
2376400dd489SIan Rogers    {
2377400dd489SIan Rogers        "BriefDescription": "PMM Write Pending Queue Occupancy",
2378400dd489SIan Rogers        "EventCode": "0xE4",
2379400dd489SIan Rogers        "EventName": "UNC_M_PMM_WPQ_OCCUPANCY.ALL_SCH1",
2380400dd489SIan Rogers        "PerPkg": "1",
2381400dd489SIan Rogers        "PublicDescription": "PMM Write Pending Queue Occupancy : Accumulates the per cycle occupancy of the PMM Write Pending Queue.",
2382400dd489SIan Rogers        "UMask": "0x2",
2383400dd489SIan Rogers        "Unit": "iMC"
2384400dd489SIan Rogers    },
2385400dd489SIan Rogers    {
2386*54f5de6fSIan Rogers        "BriefDescription": "PMM (for IXP) Write Pending Queue Occupancy",
2387*54f5de6fSIan Rogers        "EventCode": "0xe4",
2388*54f5de6fSIan Rogers        "EventName": "UNC_M_PMM_WPQ_OCCUPANCY.CAS",
2389*54f5de6fSIan Rogers        "PerPkg": "1",
2390*54f5de6fSIan Rogers        "PublicDescription": "PMM (for IXP) Write Pending Queue Occupancy : Accumulates the per cycle occupancy of the Write Pending Queue to the IXP DIMM.",
2391*54f5de6fSIan Rogers        "UMask": "0xc",
2392*54f5de6fSIan Rogers        "Unit": "iMC"
2393*54f5de6fSIan Rogers    },
2394*54f5de6fSIan Rogers    {
2395*54f5de6fSIan Rogers        "BriefDescription": "PMM (for IXP) Write Pending Queue Occupancy",
2396*54f5de6fSIan Rogers        "EventCode": "0xe4",
2397*54f5de6fSIan Rogers        "EventName": "UNC_M_PMM_WPQ_OCCUPANCY.PWR",
2398*54f5de6fSIan Rogers        "PerPkg": "1",
2399*54f5de6fSIan Rogers        "PublicDescription": "PMM (for IXP) Write Pending Queue Occupancy : Accumulates the per cycle occupancy of the Write Pending Queue to the IXP DIMM.",
2400*54f5de6fSIan Rogers        "UMask": "0x30",
2401*54f5de6fSIan Rogers        "Unit": "iMC"
2402*54f5de6fSIan Rogers    },
2403*54f5de6fSIan Rogers    {
2404400dd489SIan Rogers        "BriefDescription": "Channel PPD Cycles",
2405400dd489SIan Rogers        "EventCode": "0x85",
2406400dd489SIan Rogers        "EventName": "UNC_M_POWER_CHANNEL_PPD",
2407400dd489SIan Rogers        "PerPkg": "1",
2408400dd489SIan Rogers        "PublicDescription": "Channel PPD Cycles : Number of cycles when all the ranks in the channel are in PPD mode.  If IBT=off is enabled, then this can be used to count those cycles.  If it is not enabled, then this can count the number of cycles when that could have been taken advantage of.",
2409400dd489SIan Rogers        "Unit": "iMC"
2410400dd489SIan Rogers    },
2411400dd489SIan Rogers    {
2412400dd489SIan Rogers        "BriefDescription": "CKE_ON_CYCLES by Rank : DIMM ID",
2413400dd489SIan Rogers        "EventCode": "0x47",
2414400dd489SIan Rogers        "EventName": "UNC_M_POWER_CKE_CYCLES.LOW_0",
2415400dd489SIan Rogers        "PerPkg": "1",
2416400dd489SIan Rogers        "PublicDescription": "CKE_ON_CYCLES by Rank : DIMM ID : Number of cycles spent in CKE ON mode.  The filter allows you to select a rank to monitor.  If multiple ranks are in CKE ON mode at one time, the counter will ONLY increment by one rather than doing accumulation.  Multiple counters will need to be used to track multiple ranks simultaneously.  There is no distinction between the different CKE modes (APD, PPDS, PPDF).  This can be determined based on the system programming.  These events should commonly be used with Invert to get the number of cycles in power saving mode.  Edge Detect is also useful here.  Make sure that you do NOT use Invert with Edge Detect (this just confuses the system and is not necessary).",
2417400dd489SIan Rogers        "UMask": "0x1",
2418400dd489SIan Rogers        "Unit": "iMC"
2419400dd489SIan Rogers    },
2420400dd489SIan Rogers    {
2421400dd489SIan Rogers        "BriefDescription": "CKE_ON_CYCLES by Rank : DIMM ID",
2422400dd489SIan Rogers        "EventCode": "0x47",
2423400dd489SIan Rogers        "EventName": "UNC_M_POWER_CKE_CYCLES.LOW_1",
2424400dd489SIan Rogers        "PerPkg": "1",
2425400dd489SIan Rogers        "PublicDescription": "CKE_ON_CYCLES by Rank : DIMM ID : Number of cycles spent in CKE ON mode.  The filter allows you to select a rank to monitor.  If multiple ranks are in CKE ON mode at one time, the counter will ONLY increment by one rather than doing accumulation.  Multiple counters will need to be used to track multiple ranks simultaneously.  There is no distinction between the different CKE modes (APD, PPDS, PPDF).  This can be determined based on the system programming.  These events should commonly be used with Invert to get the number of cycles in power saving mode.  Edge Detect is also useful here.  Make sure that you do NOT use Invert with Edge Detect (this just confuses the system and is not necessary).",
2426400dd489SIan Rogers        "UMask": "0x2",
2427400dd489SIan Rogers        "Unit": "iMC"
2428400dd489SIan Rogers    },
2429400dd489SIan Rogers    {
2430400dd489SIan Rogers        "BriefDescription": "CKE_ON_CYCLES by Rank : DIMM ID",
2431400dd489SIan Rogers        "EventCode": "0x47",
2432400dd489SIan Rogers        "EventName": "UNC_M_POWER_CKE_CYCLES.LOW_2",
2433400dd489SIan Rogers        "PerPkg": "1",
2434400dd489SIan Rogers        "PublicDescription": "CKE_ON_CYCLES by Rank : DIMM ID : Number of cycles spent in CKE ON mode.  The filter allows you to select a rank to monitor.  If multiple ranks are in CKE ON mode at one time, the counter will ONLY increment by one rather than doing accumulation.  Multiple counters will need to be used to track multiple ranks simultaneously.  There is no distinction between the different CKE modes (APD, PPDS, PPDF).  This can be determined based on the system programming.  These events should commonly be used with Invert to get the number of cycles in power saving mode.  Edge Detect is also useful here.  Make sure that you do NOT use Invert with Edge Detect (this just confuses the system and is not necessary).",
2435400dd489SIan Rogers        "UMask": "0x4",
2436400dd489SIan Rogers        "Unit": "iMC"
2437400dd489SIan Rogers    },
2438400dd489SIan Rogers    {
2439400dd489SIan Rogers        "BriefDescription": "CKE_ON_CYCLES by Rank : DIMM ID",
2440400dd489SIan Rogers        "EventCode": "0x47",
2441400dd489SIan Rogers        "EventName": "UNC_M_POWER_CKE_CYCLES.LOW_3",
2442400dd489SIan Rogers        "PerPkg": "1",
2443400dd489SIan Rogers        "PublicDescription": "CKE_ON_CYCLES by Rank : DIMM ID : Number of cycles spent in CKE ON mode.  The filter allows you to select a rank to monitor.  If multiple ranks are in CKE ON mode at one time, the counter will ONLY increment by one rather than doing accumulation.  Multiple counters will need to be used to track multiple ranks simultaneously.  There is no distinction between the different CKE modes (APD, PPDS, PPDF).  This can be determined based on the system programming.  These events should commonly be used with Invert to get the number of cycles in power saving mode.  Edge Detect is also useful here.  Make sure that you do NOT use Invert with Edge Detect (this just confuses the system and is not necessary).",
2444400dd489SIan Rogers        "UMask": "0x8",
2445400dd489SIan Rogers        "Unit": "iMC"
2446400dd489SIan Rogers    },
2447400dd489SIan Rogers    {
2448*54f5de6fSIan Rogers        "BriefDescription": "Throttle Cycles for Rank 0",
2449*54f5de6fSIan Rogers        "EventCode": "0x86",
2450*54f5de6fSIan Rogers        "EventName": "UNC_M_POWER_CRIT_THROTTLE_CYCLES.SLOT0",
2451*54f5de6fSIan Rogers        "PerPkg": "1",
2452*54f5de6fSIan Rogers        "PublicDescription": "Throttle Cycles for Rank 0 : Counts the number of cycles while the iMC is being throttled by either thermal constraints or by the PCU throttling.  It is not possible to distinguish between the two.  This can be filtered by rank.  If multiple ranks are selected and are being throttled at the same time, the counter will only increment by 1. : Thermal throttling is performed per DIMM.  We support 3 DIMMs per channel.  This ID allows us to filter by ID.",
2453*54f5de6fSIan Rogers        "UMask": "0x1",
2454*54f5de6fSIan Rogers        "Unit": "iMC"
2455*54f5de6fSIan Rogers    },
2456*54f5de6fSIan Rogers    {
2457*54f5de6fSIan Rogers        "BriefDescription": "Throttle Cycles for Rank 0",
2458*54f5de6fSIan Rogers        "EventCode": "0x86",
2459*54f5de6fSIan Rogers        "EventName": "UNC_M_POWER_CRIT_THROTTLE_CYCLES.SLOT1",
2460*54f5de6fSIan Rogers        "PerPkg": "1",
2461*54f5de6fSIan Rogers        "PublicDescription": "Throttle Cycles for Rank 0 : Counts the number of cycles while the iMC is being throttled by either thermal constraints or by the PCU throttling.  It is not possible to distinguish between the two.  This can be filtered by rank.  If multiple ranks are selected and are being throttled at the same time, the counter will only increment by 1.",
2462*54f5de6fSIan Rogers        "UMask": "0x2",
2463*54f5de6fSIan Rogers        "Unit": "iMC"
2464*54f5de6fSIan Rogers    },
2465*54f5de6fSIan Rogers    {
2466400dd489SIan Rogers        "BriefDescription": "Clock-Enabled Self-Refresh",
2467400dd489SIan Rogers        "EventCode": "0x43",
2468400dd489SIan Rogers        "EventName": "UNC_M_POWER_SELF_REFRESH",
2469400dd489SIan Rogers        "PerPkg": "1",
2470400dd489SIan Rogers        "PublicDescription": "Clock-Enabled Self-Refresh : Counts the number of cycles when the iMC is in self-refresh and the iMC still has a clock.  This happens in some package C-states.  For example, the PCU may ask the iMC to enter self-refresh even though some of the cores are still processing.  One use of this is for Monroe technology.  Self-refresh is required during package C3 and C6, but there is no clock in the iMC at this time, so it is not possible to count these cases.",
2471400dd489SIan Rogers        "Unit": "iMC"
2472400dd489SIan Rogers    },
2473400dd489SIan Rogers    {
2474400dd489SIan Rogers        "BriefDescription": "Precharge due to read, write, underfill, or PGT.",
2475400dd489SIan Rogers        "EventCode": "0x03",
2476400dd489SIan Rogers        "EventName": "UNC_M_PRE_COUNT.ALL",
2477400dd489SIan Rogers        "PerPkg": "1",
2478400dd489SIan Rogers        "PublicDescription": "DRAM Precharge commands. : Counts the number of DRAM Precharge commands sent on this channel.",
2479400dd489SIan Rogers        "UMask": "0xff",
2480400dd489SIan Rogers        "Unit": "iMC"
2481400dd489SIan Rogers    },
2482400dd489SIan Rogers    {
2483400dd489SIan Rogers        "BriefDescription": "DRAM Precharge commands. : Precharge due to (?)",
2484400dd489SIan Rogers        "EventCode": "0x03",
2485400dd489SIan Rogers        "EventName": "UNC_M_PRE_COUNT.PGT",
2486400dd489SIan Rogers        "PerPkg": "1",
2487400dd489SIan Rogers        "PublicDescription": "DRAM Precharge commands. : Precharge due to (?) : Counts the number of DRAM Precharge commands sent on this channel.",
2488400dd489SIan Rogers        "UMask": "0x88",
2489400dd489SIan Rogers        "Unit": "iMC"
2490400dd489SIan Rogers    },
2491400dd489SIan Rogers    {
2492*54f5de6fSIan Rogers        "BriefDescription": "DRAM Precharge commands. : Precharges from Page Table",
2493400dd489SIan Rogers        "EventCode": "0x03",
2494400dd489SIan Rogers        "EventName": "UNC_M_PRE_COUNT.PGT_PCH0",
2495400dd489SIan Rogers        "PerPkg": "1",
2496*54f5de6fSIan Rogers        "PublicDescription": "DRAM Precharge commands. : Precharges from Page Table : Counts the number of DRAM Precharge commands sent on this channel. : Equivalent to PAGE_EMPTY",
2497400dd489SIan Rogers        "UMask": "0x8",
2498400dd489SIan Rogers        "Unit": "iMC"
2499400dd489SIan Rogers    },
2500400dd489SIan Rogers    {
2501400dd489SIan Rogers        "BriefDescription": "DRAM Precharge commands.",
2502400dd489SIan Rogers        "EventCode": "0x03",
2503400dd489SIan Rogers        "EventName": "UNC_M_PRE_COUNT.PGT_PCH1",
2504400dd489SIan Rogers        "PerPkg": "1",
2505400dd489SIan Rogers        "PublicDescription": "DRAM Precharge commands. : Counts the number of DRAM Precharge commands sent on this channel.",
2506400dd489SIan Rogers        "UMask": "0x80",
2507400dd489SIan Rogers        "Unit": "iMC"
2508400dd489SIan Rogers    },
2509400dd489SIan Rogers    {
2510400dd489SIan Rogers        "BriefDescription": "Precharge due to read on page miss",
2511400dd489SIan Rogers        "EventCode": "0x03",
2512400dd489SIan Rogers        "EventName": "UNC_M_PRE_COUNT.RD",
2513400dd489SIan Rogers        "PerPkg": "1",
2514400dd489SIan Rogers        "PublicDescription": "DRAM Precharge commands. : Counts the number of DRAM Precharge commands sent on this channel.",
2515400dd489SIan Rogers        "UMask": "0x11",
2516400dd489SIan Rogers        "Unit": "iMC"
2517400dd489SIan Rogers    },
2518400dd489SIan Rogers    {
2519400dd489SIan Rogers        "BriefDescription": "DRAM Precharge commands. : Precharge due to read",
2520400dd489SIan Rogers        "EventCode": "0x03",
2521400dd489SIan Rogers        "EventName": "UNC_M_PRE_COUNT.RD_PCH0",
2522400dd489SIan Rogers        "PerPkg": "1",
2523400dd489SIan Rogers        "PublicDescription": "DRAM Precharge commands. : Precharge due to read : Counts the number of DRAM Precharge commands sent on this channel. : Precharge from read bank scheduler",
2524400dd489SIan Rogers        "UMask": "0x1",
2525400dd489SIan Rogers        "Unit": "iMC"
2526400dd489SIan Rogers    },
2527400dd489SIan Rogers    {
2528400dd489SIan Rogers        "BriefDescription": "DRAM Precharge commands.",
2529400dd489SIan Rogers        "EventCode": "0x03",
2530400dd489SIan Rogers        "EventName": "UNC_M_PRE_COUNT.RD_PCH1",
2531400dd489SIan Rogers        "PerPkg": "1",
2532400dd489SIan Rogers        "PublicDescription": "DRAM Precharge commands. : Counts the number of DRAM Precharge commands sent on this channel.",
2533400dd489SIan Rogers        "UMask": "0x10",
2534400dd489SIan Rogers        "Unit": "iMC"
2535400dd489SIan Rogers    },
2536400dd489SIan Rogers    {
2537400dd489SIan Rogers        "BriefDescription": "DRAM Precharge commands.",
2538400dd489SIan Rogers        "EventCode": "0x03",
2539400dd489SIan Rogers        "EventName": "UNC_M_PRE_COUNT.UFILL",
2540400dd489SIan Rogers        "PerPkg": "1",
2541400dd489SIan Rogers        "PublicDescription": "DRAM Precharge commands. : Counts the number of DRAM Precharge commands sent on this channel.",
2542400dd489SIan Rogers        "UMask": "0x44",
2543400dd489SIan Rogers        "Unit": "iMC"
2544400dd489SIan Rogers    },
2545400dd489SIan Rogers    {
2546400dd489SIan Rogers        "BriefDescription": "DRAM Precharge commands.",
2547400dd489SIan Rogers        "EventCode": "0x03",
2548400dd489SIan Rogers        "EventName": "UNC_M_PRE_COUNT.UFILL_PCH0",
2549400dd489SIan Rogers        "PerPkg": "1",
2550400dd489SIan Rogers        "PublicDescription": "DRAM Precharge commands. : Counts the number of DRAM Precharge commands sent on this channel.",
2551400dd489SIan Rogers        "UMask": "0x4",
2552400dd489SIan Rogers        "Unit": "iMC"
2553400dd489SIan Rogers    },
2554400dd489SIan Rogers    {
2555400dd489SIan Rogers        "BriefDescription": "DRAM Precharge commands.",
2556400dd489SIan Rogers        "EventCode": "0x03",
2557400dd489SIan Rogers        "EventName": "UNC_M_PRE_COUNT.UFILL_PCH1",
2558400dd489SIan Rogers        "PerPkg": "1",
2559400dd489SIan Rogers        "PublicDescription": "DRAM Precharge commands. : Counts the number of DRAM Precharge commands sent on this channel.",
2560400dd489SIan Rogers        "UMask": "0x40",
2561400dd489SIan Rogers        "Unit": "iMC"
2562400dd489SIan Rogers    },
2563400dd489SIan Rogers    {
2564400dd489SIan Rogers        "BriefDescription": "Precharge due to write on page miss",
2565400dd489SIan Rogers        "EventCode": "0x03",
2566400dd489SIan Rogers        "EventName": "UNC_M_PRE_COUNT.WR",
2567400dd489SIan Rogers        "PerPkg": "1",
2568400dd489SIan Rogers        "PublicDescription": "DRAM Precharge commands. : Counts the number of DRAM Precharge commands sent on this channel.",
2569400dd489SIan Rogers        "UMask": "0x22",
2570400dd489SIan Rogers        "Unit": "iMC"
2571400dd489SIan Rogers    },
2572400dd489SIan Rogers    {
2573400dd489SIan Rogers        "BriefDescription": "DRAM Precharge commands. : Precharge due to write",
2574400dd489SIan Rogers        "EventCode": "0x03",
2575400dd489SIan Rogers        "EventName": "UNC_M_PRE_COUNT.WR_PCH0",
2576400dd489SIan Rogers        "PerPkg": "1",
2577400dd489SIan Rogers        "PublicDescription": "DRAM Precharge commands. : Precharge due to write : Counts the number of DRAM Precharge commands sent on this channel. : Precharge from write bank scheduler",
2578400dd489SIan Rogers        "UMask": "0x2",
2579400dd489SIan Rogers        "Unit": "iMC"
2580400dd489SIan Rogers    },
2581400dd489SIan Rogers    {
2582400dd489SIan Rogers        "BriefDescription": "DRAM Precharge commands.",
2583400dd489SIan Rogers        "EventCode": "0x03",
2584400dd489SIan Rogers        "EventName": "UNC_M_PRE_COUNT.WR_PCH1",
2585400dd489SIan Rogers        "PerPkg": "1",
2586400dd489SIan Rogers        "PublicDescription": "DRAM Precharge commands. : Counts the number of DRAM Precharge commands sent on this channel.",
2587400dd489SIan Rogers        "UMask": "0x20",
2588400dd489SIan Rogers        "Unit": "iMC"
2589400dd489SIan Rogers    },
2590400dd489SIan Rogers    {
2591*54f5de6fSIan Rogers        "BriefDescription": "Counts the number of cycles where the read buffer has greater than UMASK elements.  This includes reads to both DDR and PMEM.  NOTE: Umask must be set to the maximum number of elements in the queue (24 entries for SPR).",
2592*54f5de6fSIan Rogers        "EventCode": "0x19",
2593*54f5de6fSIan Rogers        "EventName": "UNC_M_RDB_FULL",
2594*54f5de6fSIan Rogers        "PerPkg": "1",
2595*54f5de6fSIan Rogers        "Unit": "iMC"
2596*54f5de6fSIan Rogers    },
2597*54f5de6fSIan Rogers    {
2598*54f5de6fSIan Rogers        "BriefDescription": "Counts the number of inserts into the read buffer destined for DDR.  Does not count reads destined for PMEM.",
2599*54f5de6fSIan Rogers        "EventCode": "0x17",
2600*54f5de6fSIan Rogers        "EventName": "UNC_M_RDB_INSERTS",
2601*54f5de6fSIan Rogers        "PerPkg": "1",
2602*54f5de6fSIan Rogers        "UMask": "0x3",
2603*54f5de6fSIan Rogers        "Unit": "iMC"
2604*54f5de6fSIan Rogers    },
2605*54f5de6fSIan Rogers    {
2606*54f5de6fSIan Rogers        "BriefDescription": "Read Data Buffer Inserts",
2607*54f5de6fSIan Rogers        "EventCode": "0x17",
2608*54f5de6fSIan Rogers        "EventName": "UNC_M_RDB_INSERTS.PCH0",
2609*54f5de6fSIan Rogers        "PerPkg": "1",
2610*54f5de6fSIan Rogers        "UMask": "0x1",
2611*54f5de6fSIan Rogers        "Unit": "iMC"
2612*54f5de6fSIan Rogers    },
2613*54f5de6fSIan Rogers    {
2614*54f5de6fSIan Rogers        "BriefDescription": "Read Data Buffer Inserts",
2615*54f5de6fSIan Rogers        "EventCode": "0x17",
2616*54f5de6fSIan Rogers        "EventName": "UNC_M_RDB_INSERTS.PCH1",
2617*54f5de6fSIan Rogers        "PerPkg": "1",
2618*54f5de6fSIan Rogers        "UMask": "0x2",
2619*54f5de6fSIan Rogers        "Unit": "iMC"
2620*54f5de6fSIan Rogers    },
2621*54f5de6fSIan Rogers    {
2622*54f5de6fSIan Rogers        "BriefDescription": "Counts the number of cycles where there's at least one element in the read buffer.  This includes reads to both DDR and PMEM.",
2623*54f5de6fSIan Rogers        "EventCode": "0x18",
2624*54f5de6fSIan Rogers        "EventName": "UNC_M_RDB_NE",
2625*54f5de6fSIan Rogers        "PerPkg": "1",
2626*54f5de6fSIan Rogers        "UMask": "0x3",
2627*54f5de6fSIan Rogers        "Unit": "iMC"
2628*54f5de6fSIan Rogers    },
2629*54f5de6fSIan Rogers    {
2630*54f5de6fSIan Rogers        "BriefDescription": "Read Data Buffer Not Empty",
2631*54f5de6fSIan Rogers        "EventCode": "0x18",
2632*54f5de6fSIan Rogers        "EventName": "UNC_M_RDB_NE.PCH0",
2633*54f5de6fSIan Rogers        "PerPkg": "1",
2634*54f5de6fSIan Rogers        "UMask": "0x1",
2635*54f5de6fSIan Rogers        "Unit": "iMC"
2636*54f5de6fSIan Rogers    },
2637*54f5de6fSIan Rogers    {
2638*54f5de6fSIan Rogers        "BriefDescription": "Read Data Buffer Not Empty",
2639*54f5de6fSIan Rogers        "EventCode": "0x18",
2640*54f5de6fSIan Rogers        "EventName": "UNC_M_RDB_NE.PCH1",
2641*54f5de6fSIan Rogers        "PerPkg": "1",
2642*54f5de6fSIan Rogers        "UMask": "0x2",
2643*54f5de6fSIan Rogers        "Unit": "iMC"
2644*54f5de6fSIan Rogers    },
2645*54f5de6fSIan Rogers    {
2646*54f5de6fSIan Rogers        "BriefDescription": "Counts the number of cycles where there's at least one element in the read buffer.  This includes reads to both DDR and PMEM.",
2647*54f5de6fSIan Rogers        "EventCode": "0x18",
2648*54f5de6fSIan Rogers        "EventName": "UNC_M_RDB_NOT_EMPTY",
2649*54f5de6fSIan Rogers        "PerPkg": "1",
2650*54f5de6fSIan Rogers        "UMask": "0x3",
2651*54f5de6fSIan Rogers        "Unit": "iMC"
2652*54f5de6fSIan Rogers    },
2653*54f5de6fSIan Rogers    {
2654*54f5de6fSIan Rogers        "BriefDescription": "Counts the number of elements in the read buffer, including reads to both DDR and PMEM.",
2655*54f5de6fSIan Rogers        "EventCode": "0x1a",
2656*54f5de6fSIan Rogers        "EventName": "UNC_M_RDB_OCCUPANCY",
2657*54f5de6fSIan Rogers        "PerPkg": "1",
2658*54f5de6fSIan Rogers        "Unit": "iMC"
2659*54f5de6fSIan Rogers    },
2660*54f5de6fSIan Rogers    {
2661400dd489SIan Rogers        "BriefDescription": "Read Pending Queue Allocations",
2662400dd489SIan Rogers        "EventCode": "0x10",
2663400dd489SIan Rogers        "EventName": "UNC_M_RPQ_INSERTS.PCH0",
2664400dd489SIan Rogers        "PerPkg": "1",
2665400dd489SIan Rogers        "PublicDescription": "Read Pending Queue Allocations : Counts the number of allocations into the Read Pending Queue.  This queue is used to schedule reads out to the memory controller and to track the requests.  Requests allocate into the RPQ soon after they enter the memory controller, and need credits for an entry in this buffer before being sent from the HA to the iMC.  They deallocate after the CAS command has been issued to memory.  This includes both ISOCH and non-ISOCH requests.",
2666400dd489SIan Rogers        "UMask": "0x1",
2667400dd489SIan Rogers        "Unit": "iMC"
2668400dd489SIan Rogers    },
2669400dd489SIan Rogers    {
2670400dd489SIan Rogers        "BriefDescription": "Read Pending Queue Allocations",
2671400dd489SIan Rogers        "EventCode": "0x10",
2672400dd489SIan Rogers        "EventName": "UNC_M_RPQ_INSERTS.PCH1",
2673400dd489SIan Rogers        "PerPkg": "1",
2674400dd489SIan Rogers        "PublicDescription": "Read Pending Queue Allocations : Counts the number of allocations into the Read Pending Queue.  This queue is used to schedule reads out to the memory controller and to track the requests.  Requests allocate into the RPQ soon after they enter the memory controller, and need credits for an entry in this buffer before being sent from the HA to the iMC.  They deallocate after the CAS command has been issued to memory.  This includes both ISOCH and non-ISOCH requests.",
2675400dd489SIan Rogers        "UMask": "0x2",
2676400dd489SIan Rogers        "Unit": "iMC"
2677400dd489SIan Rogers    },
2678400dd489SIan Rogers    {
2679400dd489SIan Rogers        "BriefDescription": "Read Pending Queue Occupancy",
2680400dd489SIan Rogers        "EventCode": "0x80",
2681400dd489SIan Rogers        "EventName": "UNC_M_RPQ_OCCUPANCY_PCH0",
2682400dd489SIan Rogers        "PerPkg": "1",
2683400dd489SIan Rogers        "PublicDescription": "Read Pending Queue Occupancy : Accumulates the occupancies of the Read Pending Queue each cycle.  This can then be used to calculate both the average occupancy (in conjunction with the number of cycles not empty) and the average latency (in conjunction with the number of allocations).  The RPQ is used to schedule reads out to the memory controller and to track the requests.  Requests allocate into the RPQ soon after they enter the memory controller, and need credits for an entry in this buffer before being sent from the HA to the iMC. They deallocate after the CAS command has been issued to memory.",
2684400dd489SIan Rogers        "Unit": "iMC"
2685400dd489SIan Rogers    },
2686400dd489SIan Rogers    {
2687400dd489SIan Rogers        "BriefDescription": "Read Pending Queue Occupancy",
2688400dd489SIan Rogers        "EventCode": "0x81",
2689400dd489SIan Rogers        "EventName": "UNC_M_RPQ_OCCUPANCY_PCH1",
2690400dd489SIan Rogers        "PerPkg": "1",
2691400dd489SIan Rogers        "PublicDescription": "Read Pending Queue Occupancy : Accumulates the occupancies of the Read Pending Queue each cycle.  This can then be used to calculate both the average occupancy (in conjunction with the number of cycles not empty) and the average latency (in conjunction with the number of allocations).  The RPQ is used to schedule reads out to the memory controller and to track the requests.  Requests allocate into the RPQ soon after they enter the memory controller, and need credits for an entry in this buffer before being sent from the HA to the iMC. They deallocate after the CAS command has been issued to memory.",
2692400dd489SIan Rogers        "Unit": "iMC"
2693400dd489SIan Rogers    },
2694400dd489SIan Rogers    {
2695*54f5de6fSIan Rogers        "BriefDescription": "Scoreboard accepts",
2696*54f5de6fSIan Rogers        "EventCode": "0xd2",
2697*54f5de6fSIan Rogers        "EventName": "UNC_M_SB_ACCESSES.ACCEPTS",
2698*54f5de6fSIan Rogers        "PerPkg": "1",
2699*54f5de6fSIan Rogers        "UMask": "0x5",
2700*54f5de6fSIan Rogers        "Unit": "iMC"
2701*54f5de6fSIan Rogers    },
2702*54f5de6fSIan Rogers    {
2703*54f5de6fSIan Rogers        "BriefDescription": "Scoreboard Accesses : Write Accepts",
2704*54f5de6fSIan Rogers        "EventCode": "0xd2",
2705*54f5de6fSIan Rogers        "EventName": "UNC_M_SB_ACCESSES.FM_RD_CMPS",
2706*54f5de6fSIan Rogers        "PerPkg": "1",
2707*54f5de6fSIan Rogers        "UMask": "0x40",
2708*54f5de6fSIan Rogers        "Unit": "iMC"
2709*54f5de6fSIan Rogers    },
2710*54f5de6fSIan Rogers    {
2711*54f5de6fSIan Rogers        "BriefDescription": "Scoreboard Accesses : Write Rejects",
2712*54f5de6fSIan Rogers        "EventCode": "0xd2",
2713*54f5de6fSIan Rogers        "EventName": "UNC_M_SB_ACCESSES.FM_WR_CMPS",
2714*54f5de6fSIan Rogers        "PerPkg": "1",
2715*54f5de6fSIan Rogers        "UMask": "0x80",
2716*54f5de6fSIan Rogers        "Unit": "iMC"
2717*54f5de6fSIan Rogers    },
2718*54f5de6fSIan Rogers    {
2719*54f5de6fSIan Rogers        "BriefDescription": "Scoreboard Accesses : FM read completions",
2720*54f5de6fSIan Rogers        "EventCode": "0xd2",
2721*54f5de6fSIan Rogers        "EventName": "UNC_M_SB_ACCESSES.NM_RD_CMPS",
2722*54f5de6fSIan Rogers        "PerPkg": "1",
2723*54f5de6fSIan Rogers        "UMask": "0x10",
2724*54f5de6fSIan Rogers        "Unit": "iMC"
2725*54f5de6fSIan Rogers    },
2726*54f5de6fSIan Rogers    {
2727*54f5de6fSIan Rogers        "BriefDescription": "Scoreboard Accesses : FM write completions",
2728*54f5de6fSIan Rogers        "EventCode": "0xd2",
2729*54f5de6fSIan Rogers        "EventName": "UNC_M_SB_ACCESSES.NM_WR_CMPS",
2730*54f5de6fSIan Rogers        "PerPkg": "1",
2731*54f5de6fSIan Rogers        "UMask": "0x20",
2732*54f5de6fSIan Rogers        "Unit": "iMC"
2733*54f5de6fSIan Rogers    },
2734*54f5de6fSIan Rogers    {
2735*54f5de6fSIan Rogers        "BriefDescription": "Scoreboard Accesses : Read Accepts",
2736*54f5de6fSIan Rogers        "EventCode": "0xd2",
2737*54f5de6fSIan Rogers        "EventName": "UNC_M_SB_ACCESSES.RD_ACCEPTS",
2738*54f5de6fSIan Rogers        "PerPkg": "1",
2739*54f5de6fSIan Rogers        "UMask": "0x1",
2740*54f5de6fSIan Rogers        "Unit": "iMC"
2741*54f5de6fSIan Rogers    },
2742*54f5de6fSIan Rogers    {
2743*54f5de6fSIan Rogers        "BriefDescription": "Scoreboard Accesses : Read Rejects",
2744*54f5de6fSIan Rogers        "EventCode": "0xd2",
2745*54f5de6fSIan Rogers        "EventName": "UNC_M_SB_ACCESSES.RD_REJECTS",
2746*54f5de6fSIan Rogers        "PerPkg": "1",
2747*54f5de6fSIan Rogers        "UMask": "0x2",
2748*54f5de6fSIan Rogers        "Unit": "iMC"
2749*54f5de6fSIan Rogers    },
2750*54f5de6fSIan Rogers    {
2751*54f5de6fSIan Rogers        "BriefDescription": "Scoreboard rejects",
2752*54f5de6fSIan Rogers        "EventCode": "0xd2",
2753*54f5de6fSIan Rogers        "EventName": "UNC_M_SB_ACCESSES.REJECTS",
2754*54f5de6fSIan Rogers        "PerPkg": "1",
2755*54f5de6fSIan Rogers        "UMask": "0xa",
2756*54f5de6fSIan Rogers        "Unit": "iMC"
2757*54f5de6fSIan Rogers    },
2758*54f5de6fSIan Rogers    {
2759*54f5de6fSIan Rogers        "BriefDescription": "Scoreboard Accesses : NM read completions",
2760*54f5de6fSIan Rogers        "EventCode": "0xd2",
2761*54f5de6fSIan Rogers        "EventName": "UNC_M_SB_ACCESSES.WR_ACCEPTS",
2762*54f5de6fSIan Rogers        "PerPkg": "1",
2763*54f5de6fSIan Rogers        "UMask": "0x4",
2764*54f5de6fSIan Rogers        "Unit": "iMC"
2765*54f5de6fSIan Rogers    },
2766*54f5de6fSIan Rogers    {
2767*54f5de6fSIan Rogers        "BriefDescription": "Scoreboard Accesses : NM write completions",
2768*54f5de6fSIan Rogers        "EventCode": "0xd2",
2769*54f5de6fSIan Rogers        "EventName": "UNC_M_SB_ACCESSES.WR_REJECTS",
2770*54f5de6fSIan Rogers        "PerPkg": "1",
2771*54f5de6fSIan Rogers        "UMask": "0x8",
2772*54f5de6fSIan Rogers        "Unit": "iMC"
2773*54f5de6fSIan Rogers    },
2774*54f5de6fSIan Rogers    {
2775*54f5de6fSIan Rogers        "BriefDescription": ": Alloc",
2776*54f5de6fSIan Rogers        "EventCode": "0xd9",
2777*54f5de6fSIan Rogers        "EventName": "UNC_M_SB_CANARY.ALLOC",
2778*54f5de6fSIan Rogers        "PerPkg": "1",
2779*54f5de6fSIan Rogers        "UMask": "0x1",
2780*54f5de6fSIan Rogers        "Unit": "iMC"
2781*54f5de6fSIan Rogers    },
2782*54f5de6fSIan Rogers    {
2783*54f5de6fSIan Rogers        "BriefDescription": ": Dealloc",
2784*54f5de6fSIan Rogers        "EventCode": "0xd9",
2785*54f5de6fSIan Rogers        "EventName": "UNC_M_SB_CANARY.DEALLOC",
2786*54f5de6fSIan Rogers        "PerPkg": "1",
2787*54f5de6fSIan Rogers        "UMask": "0x2",
2788*54f5de6fSIan Rogers        "Unit": "iMC"
2789*54f5de6fSIan Rogers    },
2790*54f5de6fSIan Rogers    {
2791*54f5de6fSIan Rogers        "BriefDescription": ": Near Mem Write Starved",
2792*54f5de6fSIan Rogers        "EventCode": "0xd9",
2793*54f5de6fSIan Rogers        "EventName": "UNC_M_SB_CANARY.FM_RD_STARVED",
2794*54f5de6fSIan Rogers        "PerPkg": "1",
2795*54f5de6fSIan Rogers        "UMask": "0x20",
2796*54f5de6fSIan Rogers        "Unit": "iMC"
2797*54f5de6fSIan Rogers    },
2798*54f5de6fSIan Rogers    {
2799*54f5de6fSIan Rogers        "BriefDescription": ": Far Mem Write Starved",
2800*54f5de6fSIan Rogers        "EventCode": "0xd9",
2801*54f5de6fSIan Rogers        "EventName": "UNC_M_SB_CANARY.FM_TGR_WR_STARVED",
2802*54f5de6fSIan Rogers        "PerPkg": "1",
2803*54f5de6fSIan Rogers        "UMask": "0x80",
2804*54f5de6fSIan Rogers        "Unit": "iMC"
2805*54f5de6fSIan Rogers    },
2806*54f5de6fSIan Rogers    {
2807*54f5de6fSIan Rogers        "BriefDescription": ": Far Mem Read Starved",
2808*54f5de6fSIan Rogers        "EventCode": "0xd9",
2809*54f5de6fSIan Rogers        "EventName": "UNC_M_SB_CANARY.FM_WR_STARVED",
2810*54f5de6fSIan Rogers        "PerPkg": "1",
2811*54f5de6fSIan Rogers        "UMask": "0x40",
2812*54f5de6fSIan Rogers        "Unit": "iMC"
2813*54f5de6fSIan Rogers    },
2814*54f5de6fSIan Rogers    {
2815*54f5de6fSIan Rogers        "BriefDescription": ": Valid",
2816*54f5de6fSIan Rogers        "EventCode": "0xd9",
2817*54f5de6fSIan Rogers        "EventName": "UNC_M_SB_CANARY.NM_RD_STARVED",
2818*54f5de6fSIan Rogers        "PerPkg": "1",
2819*54f5de6fSIan Rogers        "UMask": "0x8",
2820*54f5de6fSIan Rogers        "Unit": "iMC"
2821*54f5de6fSIan Rogers    },
2822*54f5de6fSIan Rogers    {
2823*54f5de6fSIan Rogers        "BriefDescription": ": Near Mem Read Starved",
2824*54f5de6fSIan Rogers        "EventCode": "0xd9",
2825*54f5de6fSIan Rogers        "EventName": "UNC_M_SB_CANARY.NM_WR_STARVED",
2826*54f5de6fSIan Rogers        "PerPkg": "1",
2827*54f5de6fSIan Rogers        "UMask": "0x10",
2828*54f5de6fSIan Rogers        "Unit": "iMC"
2829*54f5de6fSIan Rogers    },
2830*54f5de6fSIan Rogers    {
2831*54f5de6fSIan Rogers        "BriefDescription": ": Reject",
2832*54f5de6fSIan Rogers        "EventCode": "0xd9",
2833*54f5de6fSIan Rogers        "EventName": "UNC_M_SB_CANARY.VLD",
2834*54f5de6fSIan Rogers        "PerPkg": "1",
2835*54f5de6fSIan Rogers        "UMask": "0x4",
2836*54f5de6fSIan Rogers        "Unit": "iMC"
2837*54f5de6fSIan Rogers    },
2838*54f5de6fSIan Rogers    {
2839*54f5de6fSIan Rogers        "BriefDescription": "Scoreboard Cycles Full",
2840*54f5de6fSIan Rogers        "EventCode": "0xd1",
2841*54f5de6fSIan Rogers        "EventName": "UNC_M_SB_CYCLES_FULL",
2842*54f5de6fSIan Rogers        "PerPkg": "1",
2843*54f5de6fSIan Rogers        "Unit": "iMC"
2844*54f5de6fSIan Rogers    },
2845*54f5de6fSIan Rogers    {
2846*54f5de6fSIan Rogers        "BriefDescription": "Scoreboard Cycles Not-Empty",
2847*54f5de6fSIan Rogers        "EventCode": "0xd0",
2848*54f5de6fSIan Rogers        "EventName": "UNC_M_SB_CYCLES_NE",
2849*54f5de6fSIan Rogers        "PerPkg": "1",
2850*54f5de6fSIan Rogers        "Unit": "iMC"
2851*54f5de6fSIan Rogers    },
2852*54f5de6fSIan Rogers    {
2853*54f5de6fSIan Rogers        "BriefDescription": "Scoreboard Inserts : Block region reads",
2854*54f5de6fSIan Rogers        "EventCode": "0xd6",
2855*54f5de6fSIan Rogers        "EventName": "UNC_M_SB_INSERTS.BLOCK_RDS",
2856*54f5de6fSIan Rogers        "PerPkg": "1",
2857*54f5de6fSIan Rogers        "UMask": "0x10",
2858*54f5de6fSIan Rogers        "Unit": "iMC"
2859*54f5de6fSIan Rogers    },
2860*54f5de6fSIan Rogers    {
2861*54f5de6fSIan Rogers        "BriefDescription": "Scoreboard Inserts : Block region writes",
2862*54f5de6fSIan Rogers        "EventCode": "0xd6",
2863*54f5de6fSIan Rogers        "EventName": "UNC_M_SB_INSERTS.BLOCK_WRS",
2864*54f5de6fSIan Rogers        "PerPkg": "1",
2865*54f5de6fSIan Rogers        "UMask": "0x20",
2866*54f5de6fSIan Rogers        "Unit": "iMC"
2867*54f5de6fSIan Rogers    },
2868*54f5de6fSIan Rogers    {
2869*54f5de6fSIan Rogers        "BriefDescription": "Scoreboard Inserts : Persistent Mem reads",
2870*54f5de6fSIan Rogers        "EventCode": "0xd6",
2871*54f5de6fSIan Rogers        "EventName": "UNC_M_SB_INSERTS.PMM_RDS",
2872*54f5de6fSIan Rogers        "PerPkg": "1",
2873*54f5de6fSIan Rogers        "UMask": "0x4",
2874*54f5de6fSIan Rogers        "Unit": "iMC"
2875*54f5de6fSIan Rogers    },
2876*54f5de6fSIan Rogers    {
2877*54f5de6fSIan Rogers        "BriefDescription": "Scoreboard Inserts : Persistent Mem writes",
2878*54f5de6fSIan Rogers        "EventCode": "0xd6",
2879*54f5de6fSIan Rogers        "EventName": "UNC_M_SB_INSERTS.PMM_WRS",
2880*54f5de6fSIan Rogers        "PerPkg": "1",
2881*54f5de6fSIan Rogers        "UMask": "0x8",
2882*54f5de6fSIan Rogers        "Unit": "iMC"
2883*54f5de6fSIan Rogers    },
2884*54f5de6fSIan Rogers    {
2885*54f5de6fSIan Rogers        "BriefDescription": "Scoreboard Inserts : Reads",
2886*54f5de6fSIan Rogers        "EventCode": "0xd6",
2887*54f5de6fSIan Rogers        "EventName": "UNC_M_SB_INSERTS.RDS",
2888*54f5de6fSIan Rogers        "PerPkg": "1",
2889*54f5de6fSIan Rogers        "UMask": "0x1",
2890*54f5de6fSIan Rogers        "Unit": "iMC"
2891*54f5de6fSIan Rogers    },
2892*54f5de6fSIan Rogers    {
2893*54f5de6fSIan Rogers        "BriefDescription": "Scoreboard Inserts : Writes",
2894*54f5de6fSIan Rogers        "EventCode": "0xd6",
2895*54f5de6fSIan Rogers        "EventName": "UNC_M_SB_INSERTS.WRS",
2896*54f5de6fSIan Rogers        "PerPkg": "1",
2897*54f5de6fSIan Rogers        "UMask": "0x2",
2898*54f5de6fSIan Rogers        "Unit": "iMC"
2899*54f5de6fSIan Rogers    },
2900*54f5de6fSIan Rogers    {
2901*54f5de6fSIan Rogers        "BriefDescription": "Scoreboard Occupancy : Block region reads",
2902*54f5de6fSIan Rogers        "EventCode": "0xd5",
2903*54f5de6fSIan Rogers        "EventName": "UNC_M_SB_OCCUPANCY.BLOCK_RDS",
2904*54f5de6fSIan Rogers        "PerPkg": "1",
2905*54f5de6fSIan Rogers        "UMask": "0x20",
2906*54f5de6fSIan Rogers        "Unit": "iMC"
2907*54f5de6fSIan Rogers    },
2908*54f5de6fSIan Rogers    {
2909*54f5de6fSIan Rogers        "BriefDescription": "Scoreboard Occupancy : Block region writes",
2910*54f5de6fSIan Rogers        "EventCode": "0xd5",
2911*54f5de6fSIan Rogers        "EventName": "UNC_M_SB_OCCUPANCY.BLOCK_WRS",
2912*54f5de6fSIan Rogers        "PerPkg": "1",
2913*54f5de6fSIan Rogers        "UMask": "0x40",
2914*54f5de6fSIan Rogers        "Unit": "iMC"
2915*54f5de6fSIan Rogers    },
2916*54f5de6fSIan Rogers    {
2917*54f5de6fSIan Rogers        "BriefDescription": "Scoreboard Occupancy : Persistent Mem reads",
2918*54f5de6fSIan Rogers        "EventCode": "0xd5",
2919*54f5de6fSIan Rogers        "EventName": "UNC_M_SB_OCCUPANCY.PMM_RDS",
2920*54f5de6fSIan Rogers        "PerPkg": "1",
2921*54f5de6fSIan Rogers        "UMask": "0x4",
2922*54f5de6fSIan Rogers        "Unit": "iMC"
2923*54f5de6fSIan Rogers    },
2924*54f5de6fSIan Rogers    {
2925*54f5de6fSIan Rogers        "BriefDescription": "Scoreboard Occupancy : Persistent Mem writes",
2926*54f5de6fSIan Rogers        "EventCode": "0xd5",
2927*54f5de6fSIan Rogers        "EventName": "UNC_M_SB_OCCUPANCY.PMM_WRS",
2928*54f5de6fSIan Rogers        "PerPkg": "1",
2929*54f5de6fSIan Rogers        "UMask": "0x8",
2930*54f5de6fSIan Rogers        "Unit": "iMC"
2931*54f5de6fSIan Rogers    },
2932*54f5de6fSIan Rogers    {
2933*54f5de6fSIan Rogers        "BriefDescription": "Scoreboard Occupancy : Reads",
2934*54f5de6fSIan Rogers        "EventCode": "0xd5",
2935*54f5de6fSIan Rogers        "EventName": "UNC_M_SB_OCCUPANCY.RDS",
2936*54f5de6fSIan Rogers        "PerPkg": "1",
2937*54f5de6fSIan Rogers        "UMask": "0x1",
2938*54f5de6fSIan Rogers        "Unit": "iMC"
2939*54f5de6fSIan Rogers    },
2940*54f5de6fSIan Rogers    {
2941*54f5de6fSIan Rogers        "BriefDescription": "Scoreboard Prefetch Inserts : All",
2942*54f5de6fSIan Rogers        "EventCode": "0xda",
2943*54f5de6fSIan Rogers        "EventName": "UNC_M_SB_PREF_INSERTS.ALL",
2944*54f5de6fSIan Rogers        "PerPkg": "1",
2945*54f5de6fSIan Rogers        "UMask": "0x1",
2946*54f5de6fSIan Rogers        "Unit": "iMC"
2947*54f5de6fSIan Rogers    },
2948*54f5de6fSIan Rogers    {
2949*54f5de6fSIan Rogers        "BriefDescription": "Scoreboard Prefetch Inserts : DDR4",
2950*54f5de6fSIan Rogers        "EventCode": "0xda",
2951*54f5de6fSIan Rogers        "EventName": "UNC_M_SB_PREF_INSERTS.DDR",
2952*54f5de6fSIan Rogers        "PerPkg": "1",
2953*54f5de6fSIan Rogers        "UMask": "0x2",
2954*54f5de6fSIan Rogers        "Unit": "iMC"
2955*54f5de6fSIan Rogers    },
2956*54f5de6fSIan Rogers    {
2957*54f5de6fSIan Rogers        "BriefDescription": "Scoreboard Prefetch Inserts : PMM",
2958*54f5de6fSIan Rogers        "EventCode": "0xda",
2959*54f5de6fSIan Rogers        "EventName": "UNC_M_SB_PREF_INSERTS.PMM",
2960*54f5de6fSIan Rogers        "PerPkg": "1",
2961*54f5de6fSIan Rogers        "UMask": "0x4",
2962*54f5de6fSIan Rogers        "Unit": "iMC"
2963*54f5de6fSIan Rogers    },
2964*54f5de6fSIan Rogers    {
2965*54f5de6fSIan Rogers        "BriefDescription": "Scoreboard Prefetch Occupancy : All",
2966*54f5de6fSIan Rogers        "EventCode": "0xdb",
2967*54f5de6fSIan Rogers        "EventName": "UNC_M_SB_PREF_OCCUPANCY.ALL",
2968*54f5de6fSIan Rogers        "PerPkg": "1",
2969*54f5de6fSIan Rogers        "UMask": "0x1",
2970*54f5de6fSIan Rogers        "Unit": "iMC"
2971*54f5de6fSIan Rogers    },
2972*54f5de6fSIan Rogers    {
2973*54f5de6fSIan Rogers        "BriefDescription": "Scoreboard Prefetch Occupancy : DDR4",
2974*54f5de6fSIan Rogers        "EventCode": "0xdb",
2975*54f5de6fSIan Rogers        "EventName": "UNC_M_SB_PREF_OCCUPANCY.DDR",
2976*54f5de6fSIan Rogers        "PerPkg": "1",
2977*54f5de6fSIan Rogers        "UMask": "0x2",
2978*54f5de6fSIan Rogers        "Unit": "iMC"
2979*54f5de6fSIan Rogers    },
2980*54f5de6fSIan Rogers    {
2981*54f5de6fSIan Rogers        "BriefDescription": "Scoreboard Prefetch Occupancy : Persistent Mem",
2982*54f5de6fSIan Rogers        "EventCode": "0xDB",
2983*54f5de6fSIan Rogers        "EventName": "UNC_M_SB_PREF_OCCUPANCY.PMM",
2984*54f5de6fSIan Rogers        "FCMask": "0x00000000",
2985*54f5de6fSIan Rogers        "PerPkg": "1",
2986*54f5de6fSIan Rogers        "PortMask": "0x00000000",
2987*54f5de6fSIan Rogers        "UMask": "0x4",
2988*54f5de6fSIan Rogers        "Unit": "iMC"
2989*54f5de6fSIan Rogers    },
2990*54f5de6fSIan Rogers    {
2991*54f5de6fSIan Rogers        "BriefDescription": "Number of Scoreboard Requests Rejected",
2992*54f5de6fSIan Rogers        "EventCode": "0xd4",
2993*54f5de6fSIan Rogers        "EventName": "UNC_M_SB_REJECT.CANARY",
2994*54f5de6fSIan Rogers        "PerPkg": "1",
2995*54f5de6fSIan Rogers        "UMask": "0x8",
2996*54f5de6fSIan Rogers        "Unit": "iMC"
2997*54f5de6fSIan Rogers    },
2998*54f5de6fSIan Rogers    {
2999*54f5de6fSIan Rogers        "BriefDescription": "Number of Scoreboard Requests Rejected",
3000*54f5de6fSIan Rogers        "EventCode": "0xd4",
3001*54f5de6fSIan Rogers        "EventName": "UNC_M_SB_REJECT.DDR_EARLY_CMP",
3002*54f5de6fSIan Rogers        "PerPkg": "1",
3003*54f5de6fSIan Rogers        "UMask": "0x20",
3004*54f5de6fSIan Rogers        "Unit": "iMC"
3005*54f5de6fSIan Rogers    },
3006*54f5de6fSIan Rogers    {
3007*54f5de6fSIan Rogers        "BriefDescription": "Number of Scoreboard Requests Rejected : FM requests rejected due to full address conflict",
3008*54f5de6fSIan Rogers        "EventCode": "0xd4",
3009*54f5de6fSIan Rogers        "EventName": "UNC_M_SB_REJECT.FM_ADDR_CNFLT",
3010*54f5de6fSIan Rogers        "PerPkg": "1",
3011*54f5de6fSIan Rogers        "UMask": "0x2",
3012*54f5de6fSIan Rogers        "Unit": "iMC"
3013*54f5de6fSIan Rogers    },
3014*54f5de6fSIan Rogers    {
3015*54f5de6fSIan Rogers        "BriefDescription": "Number of Scoreboard Requests Rejected : NM requests rejected due to set conflict",
3016*54f5de6fSIan Rogers        "EventCode": "0xd4",
3017*54f5de6fSIan Rogers        "EventName": "UNC_M_SB_REJECT.NM_SET_CNFLT",
3018*54f5de6fSIan Rogers        "PerPkg": "1",
3019*54f5de6fSIan Rogers        "UMask": "0x1",
3020*54f5de6fSIan Rogers        "Unit": "iMC"
3021*54f5de6fSIan Rogers    },
3022*54f5de6fSIan Rogers    {
3023*54f5de6fSIan Rogers        "BriefDescription": "Number of Scoreboard Requests Rejected : Patrol requests rejected due to set conflict",
3024*54f5de6fSIan Rogers        "EventCode": "0xd4",
3025*54f5de6fSIan Rogers        "EventName": "UNC_M_SB_REJECT.PATROL_SET_CNFLT",
3026*54f5de6fSIan Rogers        "PerPkg": "1",
3027*54f5de6fSIan Rogers        "UMask": "0x4",
3028*54f5de6fSIan Rogers        "Unit": "iMC"
3029*54f5de6fSIan Rogers    },
3030*54f5de6fSIan Rogers    {
3031*54f5de6fSIan Rogers        "BriefDescription": ": Far Mem Read - Set",
3032*54f5de6fSIan Rogers        "EventCode": "0xd7",
3033*54f5de6fSIan Rogers        "EventName": "UNC_M_SB_STRV_ALLOC.FM_RD",
3034*54f5de6fSIan Rogers        "PerPkg": "1",
3035*54f5de6fSIan Rogers        "UMask": "0x2",
3036*54f5de6fSIan Rogers        "Unit": "iMC"
3037*54f5de6fSIan Rogers    },
3038*54f5de6fSIan Rogers    {
3039*54f5de6fSIan Rogers        "BriefDescription": ": Near Mem Read - Clear",
3040*54f5de6fSIan Rogers        "EventCode": "0xd7",
3041*54f5de6fSIan Rogers        "EventName": "UNC_M_SB_STRV_ALLOC.FM_TGR",
3042*54f5de6fSIan Rogers        "PerPkg": "1",
3043*54f5de6fSIan Rogers        "UMask": "0x10",
3044*54f5de6fSIan Rogers        "Unit": "iMC"
3045*54f5de6fSIan Rogers    },
3046*54f5de6fSIan Rogers    {
3047*54f5de6fSIan Rogers        "BriefDescription": ": Far Mem Write - Set",
3048*54f5de6fSIan Rogers        "EventCode": "0xd7",
3049*54f5de6fSIan Rogers        "EventName": "UNC_M_SB_STRV_ALLOC.FM_WR",
3050*54f5de6fSIan Rogers        "PerPkg": "1",
3051*54f5de6fSIan Rogers        "UMask": "0x8",
3052*54f5de6fSIan Rogers        "Unit": "iMC"
3053*54f5de6fSIan Rogers    },
3054*54f5de6fSIan Rogers    {
3055*54f5de6fSIan Rogers        "BriefDescription": ": Near Mem Read - Set",
3056*54f5de6fSIan Rogers        "EventCode": "0xd7",
3057*54f5de6fSIan Rogers        "EventName": "UNC_M_SB_STRV_ALLOC.NM_RD",
3058*54f5de6fSIan Rogers        "PerPkg": "1",
3059*54f5de6fSIan Rogers        "UMask": "0x1",
3060*54f5de6fSIan Rogers        "Unit": "iMC"
3061*54f5de6fSIan Rogers    },
3062*54f5de6fSIan Rogers    {
3063*54f5de6fSIan Rogers        "BriefDescription": ": Near Mem Write - Set",
3064*54f5de6fSIan Rogers        "EventCode": "0xd7",
3065*54f5de6fSIan Rogers        "EventName": "UNC_M_SB_STRV_ALLOC.NM_WR",
3066*54f5de6fSIan Rogers        "PerPkg": "1",
3067*54f5de6fSIan Rogers        "UMask": "0x4",
3068*54f5de6fSIan Rogers        "Unit": "iMC"
3069*54f5de6fSIan Rogers    },
3070*54f5de6fSIan Rogers    {
3071*54f5de6fSIan Rogers        "BriefDescription": ": Far Mem Read - Set",
3072*54f5de6fSIan Rogers        "EventCode": "0xde",
3073*54f5de6fSIan Rogers        "EventName": "UNC_M_SB_STRV_DEALLOC.FM_RD",
3074*54f5de6fSIan Rogers        "PerPkg": "1",
3075*54f5de6fSIan Rogers        "UMask": "0x2",
3076*54f5de6fSIan Rogers        "Unit": "iMC"
3077*54f5de6fSIan Rogers    },
3078*54f5de6fSIan Rogers    {
3079*54f5de6fSIan Rogers        "BriefDescription": ": Near Mem Read - Clear",
3080*54f5de6fSIan Rogers        "EventCode": "0xde",
3081*54f5de6fSIan Rogers        "EventName": "UNC_M_SB_STRV_DEALLOC.FM_TGR",
3082*54f5de6fSIan Rogers        "PerPkg": "1",
3083*54f5de6fSIan Rogers        "UMask": "0x10",
3084*54f5de6fSIan Rogers        "Unit": "iMC"
3085*54f5de6fSIan Rogers    },
3086*54f5de6fSIan Rogers    {
3087*54f5de6fSIan Rogers        "BriefDescription": ": Far Mem Write - Set",
3088*54f5de6fSIan Rogers        "EventCode": "0xde",
3089*54f5de6fSIan Rogers        "EventName": "UNC_M_SB_STRV_DEALLOC.FM_WR",
3090*54f5de6fSIan Rogers        "PerPkg": "1",
3091*54f5de6fSIan Rogers        "UMask": "0x8",
3092*54f5de6fSIan Rogers        "Unit": "iMC"
3093*54f5de6fSIan Rogers    },
3094*54f5de6fSIan Rogers    {
3095*54f5de6fSIan Rogers        "BriefDescription": ": Near Mem Read - Set",
3096*54f5de6fSIan Rogers        "EventCode": "0xde",
3097*54f5de6fSIan Rogers        "EventName": "UNC_M_SB_STRV_DEALLOC.NM_RD",
3098*54f5de6fSIan Rogers        "PerPkg": "1",
3099*54f5de6fSIan Rogers        "UMask": "0x1",
3100*54f5de6fSIan Rogers        "Unit": "iMC"
3101*54f5de6fSIan Rogers    },
3102*54f5de6fSIan Rogers    {
3103*54f5de6fSIan Rogers        "BriefDescription": ": Near Mem Write - Set",
3104*54f5de6fSIan Rogers        "EventCode": "0xde",
3105*54f5de6fSIan Rogers        "EventName": "UNC_M_SB_STRV_DEALLOC.NM_WR",
3106*54f5de6fSIan Rogers        "PerPkg": "1",
3107*54f5de6fSIan Rogers        "UMask": "0x4",
3108*54f5de6fSIan Rogers        "Unit": "iMC"
3109*54f5de6fSIan Rogers    },
3110*54f5de6fSIan Rogers    {
3111*54f5de6fSIan Rogers        "BriefDescription": ": Far Mem Read",
3112*54f5de6fSIan Rogers        "EventCode": "0xd8",
3113*54f5de6fSIan Rogers        "EventName": "UNC_M_SB_STRV_OCC.FM_RD",
3114*54f5de6fSIan Rogers        "PerPkg": "1",
3115*54f5de6fSIan Rogers        "UMask": "0x2",
3116*54f5de6fSIan Rogers        "Unit": "iMC"
3117*54f5de6fSIan Rogers    },
3118*54f5de6fSIan Rogers    {
3119*54f5de6fSIan Rogers        "BriefDescription": ": Near Mem Read - Clear",
3120*54f5de6fSIan Rogers        "EventCode": "0xd8",
3121*54f5de6fSIan Rogers        "EventName": "UNC_M_SB_STRV_OCC.FM_TGR",
3122*54f5de6fSIan Rogers        "PerPkg": "1",
3123*54f5de6fSIan Rogers        "UMask": "0x10",
3124*54f5de6fSIan Rogers        "Unit": "iMC"
3125*54f5de6fSIan Rogers    },
3126*54f5de6fSIan Rogers    {
3127*54f5de6fSIan Rogers        "BriefDescription": ": Far Mem Write",
3128*54f5de6fSIan Rogers        "EventCode": "0xd8",
3129*54f5de6fSIan Rogers        "EventName": "UNC_M_SB_STRV_OCC.FM_WR",
3130*54f5de6fSIan Rogers        "PerPkg": "1",
3131*54f5de6fSIan Rogers        "UMask": "0x8",
3132*54f5de6fSIan Rogers        "Unit": "iMC"
3133*54f5de6fSIan Rogers    },
3134*54f5de6fSIan Rogers    {
3135*54f5de6fSIan Rogers        "BriefDescription": ": Near Mem Read",
3136*54f5de6fSIan Rogers        "EventCode": "0xd8",
3137*54f5de6fSIan Rogers        "EventName": "UNC_M_SB_STRV_OCC.NM_RD",
3138*54f5de6fSIan Rogers        "PerPkg": "1",
3139*54f5de6fSIan Rogers        "UMask": "0x1",
3140*54f5de6fSIan Rogers        "Unit": "iMC"
3141*54f5de6fSIan Rogers    },
3142*54f5de6fSIan Rogers    {
3143*54f5de6fSIan Rogers        "BriefDescription": ": Near Mem Write",
3144*54f5de6fSIan Rogers        "EventCode": "0xd8",
3145*54f5de6fSIan Rogers        "EventName": "UNC_M_SB_STRV_OCC.NM_WR",
3146*54f5de6fSIan Rogers        "PerPkg": "1",
3147*54f5de6fSIan Rogers        "UMask": "0x4",
3148*54f5de6fSIan Rogers        "Unit": "iMC"
3149*54f5de6fSIan Rogers    },
3150*54f5de6fSIan Rogers    {
3151*54f5de6fSIan Rogers        "BriefDescription": "UNC_M_SB_TAGGED.DDR4_CMP",
3152*54f5de6fSIan Rogers        "EventCode": "0xdd",
3153*54f5de6fSIan Rogers        "EventName": "UNC_M_SB_TAGGED.DDR4_CMP",
3154*54f5de6fSIan Rogers        "PerPkg": "1",
3155*54f5de6fSIan Rogers        "UMask": "0x8",
3156*54f5de6fSIan Rogers        "Unit": "iMC"
3157*54f5de6fSIan Rogers    },
3158*54f5de6fSIan Rogers    {
3159*54f5de6fSIan Rogers        "BriefDescription": "UNC_M_SB_TAGGED.NEW",
3160*54f5de6fSIan Rogers        "EventCode": "0xdd",
3161*54f5de6fSIan Rogers        "EventName": "UNC_M_SB_TAGGED.NEW",
3162*54f5de6fSIan Rogers        "PerPkg": "1",
3163*54f5de6fSIan Rogers        "UMask": "0x1",
3164*54f5de6fSIan Rogers        "Unit": "iMC"
3165*54f5de6fSIan Rogers    },
3166*54f5de6fSIan Rogers    {
3167*54f5de6fSIan Rogers        "BriefDescription": "UNC_M_SB_TAGGED.OCC",
3168*54f5de6fSIan Rogers        "EventCode": "0xdd",
3169*54f5de6fSIan Rogers        "EventName": "UNC_M_SB_TAGGED.OCC",
3170*54f5de6fSIan Rogers        "PerPkg": "1",
3171*54f5de6fSIan Rogers        "UMask": "0x80",
3172*54f5de6fSIan Rogers        "Unit": "iMC"
3173*54f5de6fSIan Rogers    },
3174*54f5de6fSIan Rogers    {
3175*54f5de6fSIan Rogers        "BriefDescription": "UNC_M_SB_TAGGED.PMM0_CMP",
3176*54f5de6fSIan Rogers        "EventCode": "0xdd",
3177*54f5de6fSIan Rogers        "EventName": "UNC_M_SB_TAGGED.PMM0_CMP",
3178*54f5de6fSIan Rogers        "PerPkg": "1",
3179*54f5de6fSIan Rogers        "UMask": "0x10",
3180*54f5de6fSIan Rogers        "Unit": "iMC"
3181*54f5de6fSIan Rogers    },
3182*54f5de6fSIan Rogers    {
3183*54f5de6fSIan Rogers        "BriefDescription": "UNC_M_SB_TAGGED.PMM1_CMP",
3184*54f5de6fSIan Rogers        "EventCode": "0xdd",
3185*54f5de6fSIan Rogers        "EventName": "UNC_M_SB_TAGGED.PMM1_CMP",
3186*54f5de6fSIan Rogers        "PerPkg": "1",
3187*54f5de6fSIan Rogers        "UMask": "0x20",
3188*54f5de6fSIan Rogers        "Unit": "iMC"
3189*54f5de6fSIan Rogers    },
3190*54f5de6fSIan Rogers    {
3191*54f5de6fSIan Rogers        "BriefDescription": "UNC_M_SB_TAGGED.PMM2_CMP",
3192*54f5de6fSIan Rogers        "EventCode": "0xdd",
3193*54f5de6fSIan Rogers        "EventName": "UNC_M_SB_TAGGED.PMM2_CMP",
3194*54f5de6fSIan Rogers        "PerPkg": "1",
3195*54f5de6fSIan Rogers        "UMask": "0x40",
3196*54f5de6fSIan Rogers        "Unit": "iMC"
3197*54f5de6fSIan Rogers    },
3198*54f5de6fSIan Rogers    {
3199*54f5de6fSIan Rogers        "BriefDescription": "UNC_M_SB_TAGGED.RD_HIT",
3200*54f5de6fSIan Rogers        "EventCode": "0xdd",
3201*54f5de6fSIan Rogers        "EventName": "UNC_M_SB_TAGGED.RD_HIT",
3202*54f5de6fSIan Rogers        "PerPkg": "1",
3203*54f5de6fSIan Rogers        "UMask": "0x2",
3204*54f5de6fSIan Rogers        "Unit": "iMC"
3205*54f5de6fSIan Rogers    },
3206*54f5de6fSIan Rogers    {
3207*54f5de6fSIan Rogers        "BriefDescription": "UNC_M_SB_TAGGED.RD_MISS",
3208*54f5de6fSIan Rogers        "EventCode": "0xdd",
3209*54f5de6fSIan Rogers        "EventName": "UNC_M_SB_TAGGED.RD_MISS",
3210*54f5de6fSIan Rogers        "PerPkg": "1",
3211*54f5de6fSIan Rogers        "UMask": "0x4",
3212*54f5de6fSIan Rogers        "Unit": "iMC"
3213*54f5de6fSIan Rogers    },
3214*54f5de6fSIan Rogers    {
3215*54f5de6fSIan Rogers        "BriefDescription": "2LM Tag check hit in near memory cache (DDR4)",
3216*54f5de6fSIan Rogers        "EventCode": "0xd3",
3217*54f5de6fSIan Rogers        "EventName": "UNC_M_TAGCHK.HIT",
3218*54f5de6fSIan Rogers        "PerPkg": "1",
3219*54f5de6fSIan Rogers        "UMask": "0x1",
3220*54f5de6fSIan Rogers        "Unit": "iMC"
3221*54f5de6fSIan Rogers    },
3222*54f5de6fSIan Rogers    {
3223*54f5de6fSIan Rogers        "BriefDescription": "2LM Tag check miss, no data at this line",
3224*54f5de6fSIan Rogers        "EventCode": "0xd3",
3225*54f5de6fSIan Rogers        "EventName": "UNC_M_TAGCHK.MISS_CLEAN",
3226*54f5de6fSIan Rogers        "PerPkg": "1",
3227*54f5de6fSIan Rogers        "UMask": "0x2",
3228*54f5de6fSIan Rogers        "Unit": "iMC"
3229*54f5de6fSIan Rogers    },
3230*54f5de6fSIan Rogers    {
3231*54f5de6fSIan Rogers        "BriefDescription": "2LM Tag check miss, existing data may be evicted to PMM",
3232*54f5de6fSIan Rogers        "EventCode": "0xd3",
3233*54f5de6fSIan Rogers        "EventName": "UNC_M_TAGCHK.MISS_DIRTY",
3234*54f5de6fSIan Rogers        "PerPkg": "1",
3235*54f5de6fSIan Rogers        "UMask": "0x4",
3236*54f5de6fSIan Rogers        "Unit": "iMC"
3237*54f5de6fSIan Rogers    },
3238*54f5de6fSIan Rogers    {
3239*54f5de6fSIan Rogers        "BriefDescription": "2LM Tag check hit due to memory read (bug?)",
3240*54f5de6fSIan Rogers        "EventCode": "0xd3",
3241*54f5de6fSIan Rogers        "EventName": "UNC_M_TAGCHK.NM_RD_HIT",
3242*54f5de6fSIan Rogers        "PerPkg": "1",
3243*54f5de6fSIan Rogers        "UMask": "0x8",
3244*54f5de6fSIan Rogers        "Unit": "iMC"
3245*54f5de6fSIan Rogers    },
3246*54f5de6fSIan Rogers    {
3247*54f5de6fSIan Rogers        "BriefDescription": "2LM Tag check hit due to memory write (bug?)",
3248*54f5de6fSIan Rogers        "EventCode": "0xd3",
3249*54f5de6fSIan Rogers        "EventName": "UNC_M_TAGCHK.NM_WR_HIT",
3250*54f5de6fSIan Rogers        "PerPkg": "1",
3251*54f5de6fSIan Rogers        "UMask": "0x10",
3252*54f5de6fSIan Rogers        "Unit": "iMC"
3253*54f5de6fSIan Rogers    },
3254*54f5de6fSIan Rogers    {
3255400dd489SIan Rogers        "BriefDescription": "Write Pending Queue Allocations",
3256400dd489SIan Rogers        "EventCode": "0x20",
3257400dd489SIan Rogers        "EventName": "UNC_M_WPQ_INSERTS.PCH0",
3258400dd489SIan Rogers        "PerPkg": "1",
3259400dd489SIan Rogers        "PublicDescription": "Write Pending Queue Allocations : Counts the number of allocations into the Write Pending Queue.  This can then be used to calculate the average queuing latency (in conjunction with the WPQ occupancy count).  The WPQ is used to schedule write out to the memory controller and to track the writes.  Requests allocate into the WPQ soon after they enter the memory controller, and need credits for an entry in this buffer before being sent from the CHA to the iMC.  They deallocate after being issued to DRAM.  Write requests themselves are able to complete (from the perspective of the rest of the system) as soon they have posted to the iMC.",
3260400dd489SIan Rogers        "UMask": "0x1",
3261400dd489SIan Rogers        "Unit": "iMC"
3262400dd489SIan Rogers    },
3263400dd489SIan Rogers    {
3264400dd489SIan Rogers        "BriefDescription": "Write Pending Queue Allocations",
3265400dd489SIan Rogers        "EventCode": "0x20",
3266400dd489SIan Rogers        "EventName": "UNC_M_WPQ_INSERTS.PCH1",
3267400dd489SIan Rogers        "PerPkg": "1",
3268400dd489SIan Rogers        "PublicDescription": "Write Pending Queue Allocations : Counts the number of allocations into the Write Pending Queue.  This can then be used to calculate the average queuing latency (in conjunction with the WPQ occupancy count).  The WPQ is used to schedule write out to the memory controller and to track the writes.  Requests allocate into the WPQ soon after they enter the memory controller, and need credits for an entry in this buffer before being sent from the CHA to the iMC.  They deallocate after being issued to DRAM.  Write requests themselves are able to complete (from the perspective of the rest of the system) as soon they have posted to the iMC.",
3269400dd489SIan Rogers        "UMask": "0x2",
3270400dd489SIan Rogers        "Unit": "iMC"
3271400dd489SIan Rogers    },
3272400dd489SIan Rogers    {
3273400dd489SIan Rogers        "BriefDescription": "Write Pending Queue Occupancy",
3274400dd489SIan Rogers        "EventCode": "0x82",
3275400dd489SIan Rogers        "EventName": "UNC_M_WPQ_OCCUPANCY_PCH0",
3276400dd489SIan Rogers        "PerPkg": "1",
3277400dd489SIan Rogers        "PublicDescription": "Write Pending Queue Occupancy : Accumulates the occupancies of the Write Pending Queue each cycle.  This can then be used to calculate both the average queue occupancy (in conjunction with the number of cycles not empty) and the average latency (in conjunction with the number of allocations).  The WPQ is used to schedule write out to the memory controller and to track the writes.  Requests allocate into the WPQ soon after they enter the memory controller, and need credits for an entry in this buffer before being sent from the HA to the iMC.  They deallocate after being issued to DRAM.  Write requests themselves are able to complete (from the perspective of the rest of the system) as soon they have posted to the iMC.  This is not to be confused with actually performing the write to DRAM.  Therefore, the average latency for this queue is actually not useful for deconstruction intermediate write latencies.  So, we provide filtering based on if the request has posted or not.  By using the not posted filter, we can track how long writes spent in the iMC before completions were sent to the HA.  The posted filter, on the other hand, provides information about how much queueing is actually happening in the iMC for writes before they are actually issued to memory.  High average occupancies will generally coincide with high write major mode counts.",
3278400dd489SIan Rogers        "Unit": "iMC"
3279400dd489SIan Rogers    },
3280400dd489SIan Rogers    {
3281400dd489SIan Rogers        "BriefDescription": "Write Pending Queue Occupancy",
3282400dd489SIan Rogers        "EventCode": "0x83",
3283400dd489SIan Rogers        "EventName": "UNC_M_WPQ_OCCUPANCY_PCH1",
3284400dd489SIan Rogers        "PerPkg": "1",
3285400dd489SIan Rogers        "PublicDescription": "Write Pending Queue Occupancy : Accumulates the occupancies of the Write Pending Queue each cycle.  This can then be used to calculate both the average queue occupancy (in conjunction with the number of cycles not empty) and the average latency (in conjunction with the number of allocations).  The WPQ is used to schedule write out to the memory controller and to track the writes.  Requests allocate into the WPQ soon after they enter the memory controller, and need credits for an entry in this buffer before being sent from the HA to the iMC.  They deallocate after being issued to DRAM.  Write requests themselves are able to complete (from the perspective of the rest of the system) as soon they have posted to the iMC.  This is not to be confused with actually performing the write to DRAM.  Therefore, the average latency for this queue is actually not useful for deconstruction intermediate write latencies.  So, we provide filtering based on if the request has posted or not.  By using the not posted filter, we can track how long writes spent in the iMC before completions were sent to the HA.  The posted filter, on the other hand, provides information about how much queueing is actually happening in the iMC for writes before they are actually issued to memory.  High average occupancies will generally coincide with high write major mode counts.",
32864e411ee4SZhengjun Xing        "Unit": "iMC"
3287*54f5de6fSIan Rogers    },
3288*54f5de6fSIan Rogers    {
3289*54f5de6fSIan Rogers        "BriefDescription": "Write Pending Queue CAM Match",
3290*54f5de6fSIan Rogers        "EventCode": "0x23",
3291*54f5de6fSIan Rogers        "EventName": "UNC_M_WPQ_READ_HIT",
3292*54f5de6fSIan Rogers        "FCMask": "0x00000000",
3293*54f5de6fSIan Rogers        "PerPkg": "1",
3294*54f5de6fSIan Rogers        "PortMask": "0x00000000",
3295*54f5de6fSIan Rogers        "PublicDescription": "Counts the number of times a request hits in the WPQ (write-pending queue).  The iMC allows writes and reads to pass up other writes to different addresses.  Before a read or a write is issued, it will first CAM the WPQ to see if there is a write pending to that address.  When reads hit, they are able to directly pull their data from the WPQ instead of going to memory.  Writes that hit will overwrite the existing data.  Partial writes that hit will not need to do underfill reads and will simply update their relevant sections.",
3296*54f5de6fSIan Rogers        "Unit": "iMC"
3297*54f5de6fSIan Rogers    },
3298*54f5de6fSIan Rogers    {
3299*54f5de6fSIan Rogers        "BriefDescription": "Write Pending Queue CAM Match",
3300*54f5de6fSIan Rogers        "EventCode": "0x24",
3301*54f5de6fSIan Rogers        "EventName": "UNC_M_WPQ_WRITE_HIT",
3302*54f5de6fSIan Rogers        "FCMask": "0x00000000",
3303*54f5de6fSIan Rogers        "PerPkg": "1",
3304*54f5de6fSIan Rogers        "PortMask": "0x00000000",
3305*54f5de6fSIan Rogers        "PublicDescription": "Counts the number of times a request hits in the WPQ (write-pending queue).  The iMC allows writes and reads to pass up other writes to different addresses.  Before a read or a write is issued, it will first CAM the WPQ to see if there is a write pending to that address.  When reads hit, they are able to directly pull their data from the WPQ instead of going to memory.  Writes that hit will overwrite the existing data.  Partial writes that hit will not need to do underfill reads and will simply update their relevant sections.",
3306*54f5de6fSIan Rogers        "Unit": "iMC"
33074e411ee4SZhengjun Xing    }
33084e411ee4SZhengjun Xing]
3309