PAPI 7.1.0.0
Loading...
Searching...
No Matches
libperfnec/lib/ppc970_events.h
Go to the documentation of this file.
1/****************************/
2/* THIS IS OPEN SOURCE CODE */
3/****************************/
4
5#ifndef __PPC970_EVENTS_H__
6#define __PPC970_EVENTS_H__
7
8/*
9* File: ppc970_events.h
10* CVS:
11* Author: Corey Ashford
12* cjashfor@us.ibm.com
13* Mods: <your name here>
14* <your email address>
15*
16* (C) Copyright IBM Corporation, 2007. All Rights Reserved.
17* Contributed by Corey Ashford <cjashfor.ibm.com>
18*
19* Note: This code was automatically generated and should not be modified by
20* hand.
21*
22*/
23#define PPC970_PME_PM_LSU_REJECT_RELOAD_CDF 0
24#define PPC970_PME_PM_MRK_LSU_SRQ_INST_VALID 1
25#define PPC970_PME_PM_FPU1_SINGLE 2
26#define PPC970_PME_PM_FPU0_STALL3 3
27#define PPC970_PME_PM_TB_BIT_TRANS 4
28#define PPC970_PME_PM_GPR_MAP_FULL_CYC 5
29#define PPC970_PME_PM_MRK_ST_CMPL 6
30#define PPC970_PME_PM_FPU0_STF 7
31#define PPC970_PME_PM_FPU1_FMA 8
32#define PPC970_PME_PM_LSU1_FLUSH_ULD 9
33#define PPC970_PME_PM_MRK_INST_FIN 10
34#define PPC970_PME_PM_MRK_LSU0_FLUSH_UST 11
35#define PPC970_PME_PM_LSU_LRQ_S0_ALLOC 12
36#define PPC970_PME_PM_FPU_FDIV 13
37#define PPC970_PME_PM_FPU0_FULL_CYC 14
38#define PPC970_PME_PM_FPU_SINGLE 15
39#define PPC970_PME_PM_FPU0_FMA 16
40#define PPC970_PME_PM_MRK_LSU1_FLUSH_ULD 17
41#define PPC970_PME_PM_LSU1_FLUSH_LRQ 18
42#define PPC970_PME_PM_DTLB_MISS 19
43#define PPC970_PME_PM_MRK_ST_MISS_L1 20
44#define PPC970_PME_PM_EXT_INT 21
45#define PPC970_PME_PM_MRK_LSU1_FLUSH_LRQ 22
46#define PPC970_PME_PM_MRK_ST_GPS 23
47#define PPC970_PME_PM_GRP_DISP_SUCCESS 24
48#define PPC970_PME_PM_LSU1_LDF 25
49#define PPC970_PME_PM_LSU0_SRQ_STFWD 26
50#define PPC970_PME_PM_CR_MAP_FULL_CYC 27
51#define PPC970_PME_PM_MRK_LSU0_FLUSH_ULD 28
52#define PPC970_PME_PM_LSU_DERAT_MISS 29
53#define PPC970_PME_PM_FPU0_SINGLE 30
54#define PPC970_PME_PM_FPU1_FDIV 31
55#define PPC970_PME_PM_FPU1_FEST 32
56#define PPC970_PME_PM_FPU0_FRSP_FCONV 33
57#define PPC970_PME_PM_GCT_EMPTY_SRQ_FULL 34
58#define PPC970_PME_PM_MRK_ST_CMPL_INT 35
59#define PPC970_PME_PM_FLUSH_BR_MPRED 36
60#define PPC970_PME_PM_FXU_FIN 37
61#define PPC970_PME_PM_FPU_STF 38
62#define PPC970_PME_PM_DSLB_MISS 39
63#define PPC970_PME_PM_FXLS1_FULL_CYC 40
64#define PPC970_PME_PM_LSU_LMQ_LHR_MERGE 41
65#define PPC970_PME_PM_MRK_STCX_FAIL 42
66#define PPC970_PME_PM_FXU0_BUSY_FXU1_IDLE 43
67#define PPC970_PME_PM_MRK_DATA_FROM_L25_SHR 44
68#define PPC970_PME_PM_LSU_FLUSH_ULD 45
69#define PPC970_PME_PM_MRK_BRU_FIN 46
70#define PPC970_PME_PM_IERAT_XLATE_WR 47
71#define PPC970_PME_PM_DATA_FROM_MEM 48
72#define PPC970_PME_PM_FPR_MAP_FULL_CYC 49
73#define PPC970_PME_PM_FPU1_FULL_CYC 50
74#define PPC970_PME_PM_FPU0_FIN 51
75#define PPC970_PME_PM_GRP_BR_REDIR 52
76#define PPC970_PME_PM_THRESH_TIMEO 53
77#define PPC970_PME_PM_FPU_FSQRT 54
78#define PPC970_PME_PM_MRK_LSU0_FLUSH_LRQ 55
79#define PPC970_PME_PM_PMC1_OVERFLOW 56
80#define PPC970_PME_PM_FXLS0_FULL_CYC 57
81#define PPC970_PME_PM_FPU0_ALL 58
82#define PPC970_PME_PM_DATA_TABLEWALK_CYC 59
83#define PPC970_PME_PM_FPU0_FEST 60
84#define PPC970_PME_PM_DATA_FROM_L25_MOD 61
85#define PPC970_PME_PM_LSU0_REJECT_ERAT_MISS 62
86#define PPC970_PME_PM_LSU_LMQ_SRQ_EMPTY_CYC 63
87#define PPC970_PME_PM_LSU0_REJECT_RELOAD_CDF 64
88#define PPC970_PME_PM_FPU_FEST 65
89#define PPC970_PME_PM_0INST_FETCH 66
90#define PPC970_PME_PM_LD_MISS_L1_LSU0 67
91#define PPC970_PME_PM_LSU1_REJECT_RELOAD_CDF 68
92#define PPC970_PME_PM_L1_PREF 69
93#define PPC970_PME_PM_FPU1_STALL3 70
94#define PPC970_PME_PM_BRQ_FULL_CYC 71
95#define PPC970_PME_PM_PMC8_OVERFLOW 72
96#define PPC970_PME_PM_PMC7_OVERFLOW 73
97#define PPC970_PME_PM_WORK_HELD 74
98#define PPC970_PME_PM_MRK_LD_MISS_L1_LSU0 75
99#define PPC970_PME_PM_FXU_IDLE 76
100#define PPC970_PME_PM_INST_CMPL 77
101#define PPC970_PME_PM_LSU1_FLUSH_UST 78
102#define PPC970_PME_PM_LSU0_FLUSH_ULD 79
103#define PPC970_PME_PM_LSU_FLUSH 80
104#define PPC970_PME_PM_INST_FROM_L2 81
105#define PPC970_PME_PM_LSU1_REJECT_LMQ_FULL 82
106#define PPC970_PME_PM_PMC2_OVERFLOW 83
107#define PPC970_PME_PM_FPU0_DENORM 84
108#define PPC970_PME_PM_FPU1_FMOV_FEST 85
109#define PPC970_PME_PM_GRP_DISP_REJECT 86
110#define PPC970_PME_PM_LSU_LDF 87
111#define PPC970_PME_PM_INST_DISP 88
112#define PPC970_PME_PM_DATA_FROM_L25_SHR 89
113#define PPC970_PME_PM_L1_DCACHE_RELOAD_VALID 90
114#define PPC970_PME_PM_MRK_GRP_ISSUED 91
115#define PPC970_PME_PM_FPU_FMA 92
116#define PPC970_PME_PM_MRK_CRU_FIN 93
117#define PPC970_PME_PM_MRK_LSU1_FLUSH_UST 94
118#define PPC970_PME_PM_MRK_FXU_FIN 95
119#define PPC970_PME_PM_LSU1_REJECT_ERAT_MISS 96
120#define PPC970_PME_PM_BR_ISSUED 97
121#define PPC970_PME_PM_PMC4_OVERFLOW 98
122#define PPC970_PME_PM_EE_OFF 99
123#define PPC970_PME_PM_INST_FROM_L25_MOD 100
124#define PPC970_PME_PM_ITLB_MISS 101
125#define PPC970_PME_PM_FXU1_BUSY_FXU0_IDLE 102
126#define PPC970_PME_PM_GRP_DISP_VALID 103
127#define PPC970_PME_PM_MRK_GRP_DISP 104
128#define PPC970_PME_PM_LSU_FLUSH_UST 105
129#define PPC970_PME_PM_FXU1_FIN 106
130#define PPC970_PME_PM_GRP_CMPL 107
131#define PPC970_PME_PM_FPU_FRSP_FCONV 108
132#define PPC970_PME_PM_MRK_LSU0_FLUSH_SRQ 109
133#define PPC970_PME_PM_LSU_LMQ_FULL_CYC 110
134#define PPC970_PME_PM_ST_REF_L1_LSU0 111
135#define PPC970_PME_PM_LSU0_DERAT_MISS 112
136#define PPC970_PME_PM_LSU_SRQ_SYNC_CYC 113
137#define PPC970_PME_PM_FPU_STALL3 114
138#define PPC970_PME_PM_LSU_REJECT_ERAT_MISS 115
139#define PPC970_PME_PM_MRK_DATA_FROM_L2 116
140#define PPC970_PME_PM_LSU0_FLUSH_SRQ 117
141#define PPC970_PME_PM_FPU0_FMOV_FEST 118
142#define PPC970_PME_PM_LD_REF_L1_LSU0 119
143#define PPC970_PME_PM_LSU1_FLUSH_SRQ 120
144#define PPC970_PME_PM_GRP_BR_MPRED 121
145#define PPC970_PME_PM_LSU_LMQ_S0_ALLOC 122
146#define PPC970_PME_PM_LSU0_REJECT_LMQ_FULL 123
147#define PPC970_PME_PM_ST_REF_L1 124
148#define PPC970_PME_PM_MRK_VMX_FIN 125
149#define PPC970_PME_PM_LSU_SRQ_EMPTY_CYC 126
150#define PPC970_PME_PM_FPU1_STF 127
151#define PPC970_PME_PM_RUN_CYC 128
152#define PPC970_PME_PM_LSU_LMQ_S0_VALID 129
153#define PPC970_PME_PM_LSU0_LDF 130
154#define PPC970_PME_PM_LSU_LRQ_S0_VALID 131
155#define PPC970_PME_PM_PMC3_OVERFLOW 132
156#define PPC970_PME_PM_MRK_IMR_RELOAD 133
157#define PPC970_PME_PM_MRK_GRP_TIMEO 134
158#define PPC970_PME_PM_FPU_FMOV_FEST 135
159#define PPC970_PME_PM_GRP_DISP_BLK_SB_CYC 136
160#define PPC970_PME_PM_XER_MAP_FULL_CYC 137
161#define PPC970_PME_PM_ST_MISS_L1 138
162#define PPC970_PME_PM_STOP_COMPLETION 139
163#define PPC970_PME_PM_MRK_GRP_CMPL 140
164#define PPC970_PME_PM_ISLB_MISS 141
165#define PPC970_PME_PM_SUSPENDED 142
166#define PPC970_PME_PM_CYC 143
167#define PPC970_PME_PM_LD_MISS_L1_LSU1 144
168#define PPC970_PME_PM_STCX_FAIL 145
169#define PPC970_PME_PM_LSU1_SRQ_STFWD 146
170#define PPC970_PME_PM_GRP_DISP 147
171#define PPC970_PME_PM_L2_PREF 148
172#define PPC970_PME_PM_FPU1_DENORM 149
173#define PPC970_PME_PM_DATA_FROM_L2 150
174#define PPC970_PME_PM_FPU0_FPSCR 151
175#define PPC970_PME_PM_MRK_DATA_FROM_L25_MOD 152
176#define PPC970_PME_PM_FPU0_FSQRT 153
177#define PPC970_PME_PM_LD_REF_L1 154
178#define PPC970_PME_PM_MRK_L1_RELOAD_VALID 155
179#define PPC970_PME_PM_1PLUS_PPC_CMPL 156
180#define PPC970_PME_PM_INST_FROM_L1 157
181#define PPC970_PME_PM_EE_OFF_EXT_INT 158
182#define PPC970_PME_PM_PMC6_OVERFLOW 159
183#define PPC970_PME_PM_LSU_LRQ_FULL_CYC 160
184#define PPC970_PME_PM_IC_PREF_INSTALL 161
185#define PPC970_PME_PM_DC_PREF_OUT_OF_STREAMS 162
186#define PPC970_PME_PM_MRK_LSU1_FLUSH_SRQ 163
187#define PPC970_PME_PM_GCT_FULL_CYC 164
188#define PPC970_PME_PM_INST_FROM_MEM 165
189#define PPC970_PME_PM_FLUSH_LSU_BR_MPRED 166
190#define PPC970_PME_PM_FXU_BUSY 167
191#define PPC970_PME_PM_ST_REF_L1_LSU1 168
192#define PPC970_PME_PM_MRK_LD_MISS_L1 169
193#define PPC970_PME_PM_L1_WRITE_CYC 170
194#define PPC970_PME_PM_LSU_REJECT_LMQ_FULL 171
195#define PPC970_PME_PM_FPU_ALL 172
196#define PPC970_PME_PM_LSU_SRQ_S0_ALLOC 173
197#define PPC970_PME_PM_INST_FROM_L25_SHR 174
198#define PPC970_PME_PM_GRP_MRK 175
199#define PPC970_PME_PM_BR_MPRED_CR 176
200#define PPC970_PME_PM_DC_PREF_STREAM_ALLOC 177
201#define PPC970_PME_PM_FPU1_FIN 178
202#define PPC970_PME_PM_LSU_REJECT_SRQ 179
203#define PPC970_PME_PM_BR_MPRED_TA 180
204#define PPC970_PME_PM_CRQ_FULL_CYC 181
205#define PPC970_PME_PM_LD_MISS_L1 182
206#define PPC970_PME_PM_INST_FROM_PREF 183
207#define PPC970_PME_PM_STCX_PASS 184
208#define PPC970_PME_PM_DC_INV_L2 185
209#define PPC970_PME_PM_LSU_SRQ_FULL_CYC 186
210#define PPC970_PME_PM_LSU0_FLUSH_LRQ 187
211#define PPC970_PME_PM_LSU_SRQ_S0_VALID 188
212#define PPC970_PME_PM_LARX_LSU0 189
213#define PPC970_PME_PM_GCT_EMPTY_CYC 190
214#define PPC970_PME_PM_FPU1_ALL 191
215#define PPC970_PME_PM_FPU1_FSQRT 192
216#define PPC970_PME_PM_FPU_FIN 193
217#define PPC970_PME_PM_LSU_SRQ_STFWD 194
218#define PPC970_PME_PM_MRK_LD_MISS_L1_LSU1 195
219#define PPC970_PME_PM_FXU0_FIN 196
220#define PPC970_PME_PM_MRK_FPU_FIN 197
221#define PPC970_PME_PM_PMC5_OVERFLOW 198
222#define PPC970_PME_PM_SNOOP_TLBIE 199
223#define PPC970_PME_PM_FPU1_FRSP_FCONV 200
224#define PPC970_PME_PM_FPU0_FDIV 201
225#define PPC970_PME_PM_LD_REF_L1_LSU1 202
226#define PPC970_PME_PM_HV_CYC 203
227#define PPC970_PME_PM_LR_CTR_MAP_FULL_CYC 204
228#define PPC970_PME_PM_FPU_DENORM 205
229#define PPC970_PME_PM_LSU0_REJECT_SRQ 206
230#define PPC970_PME_PM_LSU1_REJECT_SRQ 207
231#define PPC970_PME_PM_LSU1_DERAT_MISS 208
232#define PPC970_PME_PM_IC_PREF_REQ 209
233#define PPC970_PME_PM_MRK_LSU_FIN 210
234#define PPC970_PME_PM_MRK_DATA_FROM_MEM 211
235#define PPC970_PME_PM_LSU0_FLUSH_UST 212
236#define PPC970_PME_PM_LSU_FLUSH_LRQ 213
237#define PPC970_PME_PM_LSU_FLUSH_SRQ 214
238
239
241 [ PPC970_PME_PM_LSU_REJECT_RELOAD_CDF ] = { -1, -1, -1, -1, -1, 68, -1, -1 },
242 [ PPC970_PME_PM_MRK_LSU_SRQ_INST_VALID ] = { -1, -1, 63, 61, -1, -1, 60, 61 },
243 [ PPC970_PME_PM_FPU1_SINGLE ] = { 23, 22, -1, -1, 24, 23, -1, -1 },
244 [ PPC970_PME_PM_FPU0_STALL3 ] = { 15, 14, -1, -1, 16, 15, -1, -1 },
245 [ PPC970_PME_PM_TB_BIT_TRANS ] = { -1, -1, -1, -1, -1, -1, -1, 67 },
246 [ PPC970_PME_PM_GPR_MAP_FULL_CYC ] = { -1, -1, 28, 28, -1, -1, 27, 27 },
247 [ PPC970_PME_PM_MRK_ST_CMPL ] = { 79, -1, -1, -1, -1, -1, -1, -1 },
248 [ PPC970_PME_PM_FPU0_STF ] = { 16, 15, -1, -1, 17, 16, -1, -1 },
249 [ PPC970_PME_PM_FPU1_FMA ] = { 20, 19, -1, -1, 21, 20, -1, -1 },
250 [ PPC970_PME_PM_LSU1_FLUSH_ULD ] = { 58, 57, -1, -1, 60, 57, -1, -1 },
251 [ PPC970_PME_PM_MRK_INST_FIN ] = { -1, -1, -1, -1, -1, -1, 50, -1 },
252 [ PPC970_PME_PM_MRK_LSU0_FLUSH_UST ] = { -1, -1, 58, 56, -1, -1, 55, 55 },
253 [ PPC970_PME_PM_LSU_LRQ_S0_ALLOC ] = { 66, 66, -1, -1, 68, 66, -1, -1 },
254 [ PPC970_PME_PM_FPU_FDIV ] = { 27, -1, -1, -1, -1, -1, -1, -1 },
255 [ PPC970_PME_PM_FPU0_FULL_CYC ] = { 13, 12, -1, -1, 14, 13, -1, -1 },
256 [ PPC970_PME_PM_FPU_SINGLE ] = { -1, -1, -1, -1, 28, -1, -1, -1 },
257 [ PPC970_PME_PM_FPU0_FMA ] = { 11, 10, -1, -1, 12, 11, -1, -1 },
258 [ PPC970_PME_PM_MRK_LSU1_FLUSH_ULD ] = { -1, -1, 61, 59, -1, -1, 58, 58 },
259 [ PPC970_PME_PM_LSU1_FLUSH_LRQ ] = { 56, 55, -1, -1, 58, 55, -1, -1 },
260 [ PPC970_PME_PM_DTLB_MISS ] = { 6, 5, -1, -1, 7, 6, -1, -1 },
261 [ PPC970_PME_PM_MRK_ST_MISS_L1 ] = { 80, 76, -1, -1, 79, 79, -1, -1 },
262 [ PPC970_PME_PM_EXT_INT ] = { -1, -1, -1, -1, -1, -1, -1, 10 },
263 [ PPC970_PME_PM_MRK_LSU1_FLUSH_LRQ ] = { -1, -1, 59, 57, -1, -1, 56, 56 },
264 [ PPC970_PME_PM_MRK_ST_GPS ] = { -1, -1, -1, -1, -1, 78, -1, -1 },
265 [ PPC970_PME_PM_GRP_DISP_SUCCESS ] = { -1, -1, -1, -1, 34, -1, -1, -1 },
266 [ PPC970_PME_PM_LSU1_LDF ] = { -1, -1, 43, 40, -1, -1, 40, 41 },
267 [ PPC970_PME_PM_LSU0_SRQ_STFWD ] = { 54, 53, -1, -1, 56, 53, -1, -1 },
268 [ PPC970_PME_PM_CR_MAP_FULL_CYC ] = { 1, 1, -1, -1, 2, 1, -1, -1 },
269 [ PPC970_PME_PM_MRK_LSU0_FLUSH_ULD ] = { -1, -1, 57, 55, -1, -1, 54, 54 },
270 [ PPC970_PME_PM_LSU_DERAT_MISS ] = { -1, -1, -1, -1, -1, 64, -1, -1 },
271 [ PPC970_PME_PM_FPU0_SINGLE ] = { 14, 13, -1, -1, 15, 14, -1, -1 },
272 [ PPC970_PME_PM_FPU1_FDIV ] = { 19, 18, -1, -1, 20, 19, -1, -1 },
273 [ PPC970_PME_PM_FPU1_FEST ] = { -1, -1, 18, 18, -1, -1, 17, 18 },
274 [ PPC970_PME_PM_FPU0_FRSP_FCONV ] = { -1, -1, 17, 17, -1, -1, 16, 17 },
275 [ PPC970_PME_PM_GCT_EMPTY_SRQ_FULL ] = { -1, 27, -1, -1, -1, -1, -1, -1 },
276 [ PPC970_PME_PM_MRK_ST_CMPL_INT ] = { -1, -1, 64, -1, -1, -1, -1, -1 },
277 [ PPC970_PME_PM_FLUSH_BR_MPRED ] = { -1, -1, 11, 11, -1, -1, 10, 11 },
278 [ PPC970_PME_PM_FXU_FIN ] = { -1, -1, 27, -1, -1, -1, -1, -1 },
279 [ PPC970_PME_PM_FPU_STF ] = { -1, -1, -1, -1, -1, 27, -1, -1 },
280 [ PPC970_PME_PM_DSLB_MISS ] = { 5, 4, -1, -1, 6, 5, -1, -1 },
281 [ PPC970_PME_PM_FXLS1_FULL_CYC ] = { -1, -1, 24, 24, -1, -1, 23, 24 },
282 [ PPC970_PME_PM_LSU_LMQ_LHR_MERGE ] = { -1, -1, 46, 43, -1, -1, 43, 45 },
283 [ PPC970_PME_PM_MRK_STCX_FAIL ] = { 78, 75, -1, -1, 78, 77, -1, -1 },
284 [ PPC970_PME_PM_FXU0_BUSY_FXU1_IDLE ] = { -1, -1, -1, -1, -1, -1, 24, -1 },
285 [ PPC970_PME_PM_MRK_DATA_FROM_L25_SHR ] = { -1, -1, -1, -1, 73, -1, -1, -1 },
286 [ PPC970_PME_PM_LSU_FLUSH_ULD ] = { 65, -1, -1, -1, -1, -1, -1, -1 },
287 [ PPC970_PME_PM_MRK_BRU_FIN ] = { -1, 71, -1, -1, -1, -1, -1, -1 },
288 [ PPC970_PME_PM_IERAT_XLATE_WR ] = { 36, 36, -1, -1, 39, 36, -1, -1 },
289 [ PPC970_PME_PM_DATA_FROM_MEM ] = { -1, -1, 5, -1, -1, -1, -1, -1 },
290 [ PPC970_PME_PM_FPR_MAP_FULL_CYC ] = { 7, 6, -1, -1, 8, 7, -1, -1 },
291 [ PPC970_PME_PM_FPU1_FULL_CYC ] = { 22, 21, -1, -1, 23, 22, -1, -1 },
292 [ PPC970_PME_PM_FPU0_FIN ] = { -1, -1, 14, 14, -1, -1, 13, 14 },
293 [ PPC970_PME_PM_GRP_BR_REDIR ] = { 31, 30, -1, -1, 32, 31, -1, -1 },
294 [ PPC970_PME_PM_THRESH_TIMEO ] = { -1, 83, -1, -1, -1, -1, -1, -1 },
295 [ PPC970_PME_PM_FPU_FSQRT ] = { -1, -1, -1, -1, -1, 26, -1, -1 },
296 [ PPC970_PME_PM_MRK_LSU0_FLUSH_LRQ ] = { -1, -1, 55, 53, -1, -1, 52, 52 },
297 [ PPC970_PME_PM_PMC1_OVERFLOW ] = { -1, 77, -1, -1, -1, -1, -1, -1 },
298 [ PPC970_PME_PM_FXLS0_FULL_CYC ] = { -1, -1, 23, 23, -1, -1, 22, 23 },
299 [ PPC970_PME_PM_FPU0_ALL ] = { 8, 7, -1, -1, 9, 8, -1, -1 },
300 [ PPC970_PME_PM_DATA_TABLEWALK_CYC ] = { 4, 3, -1, -1, 5, 4, -1, -1 },
301 [ PPC970_PME_PM_FPU0_FEST ] = { -1, -1, 13, 13, -1, -1, 12, 13 },
302 [ PPC970_PME_PM_DATA_FROM_L25_MOD ] = { -1, -1, -1, -1, -1, 3, -1, -1 },
303 [ PPC970_PME_PM_LSU0_REJECT_ERAT_MISS ] = { 50, 49, -1, -1, 52, 49, -1, -1 },
304 [ PPC970_PME_PM_LSU_LMQ_SRQ_EMPTY_CYC ] = { -1, 65, 49, -1, -1, -1, -1, -1 },
305 [ PPC970_PME_PM_LSU0_REJECT_RELOAD_CDF ] = { 52, 51, -1, -1, 54, 51, -1, -1 },
306 [ PPC970_PME_PM_FPU_FEST ] = { -1, -1, 22, -1, -1, -1, -1, -1 },
307 [ PPC970_PME_PM_0INST_FETCH ] = { -1, -1, -1, 0, -1, -1, -1, -1 },
308 [ PPC970_PME_PM_LD_MISS_L1_LSU0 ] = { -1, -1, 38, 35, -1, -1, 35, 35 },
309 [ PPC970_PME_PM_LSU1_REJECT_RELOAD_CDF ] = { 62, 61, -1, -1, 64, 61, -1, -1 },
310 [ PPC970_PME_PM_L1_PREF ] = { -1, -1, 34, 32, -1, -1, 32, 32 },
311 [ PPC970_PME_PM_FPU1_STALL3 ] = { 24, 23, -1, -1, 25, 24, -1, -1 },
312 [ PPC970_PME_PM_BRQ_FULL_CYC ] = { 0, 0, -1, -1, 1, 0, -1, -1 },
313 [ PPC970_PME_PM_PMC8_OVERFLOW ] = { 81, -1, -1, -1, -1, -1, -1, -1 },
314 [ PPC970_PME_PM_PMC7_OVERFLOW ] = { -1, -1, -1, -1, -1, -1, -1, 62 },
315 [ PPC970_PME_PM_WORK_HELD ] = { -1, 84, -1, -1, -1, -1, -1, -1 },
316 [ PPC970_PME_PM_MRK_LD_MISS_L1_LSU0 ] = { 76, 73, -1, -1, 76, 75, -1, -1 },
317 [ PPC970_PME_PM_FXU_IDLE ] = { -1, -1, -1, -1, 29, -1, -1, -1 },
318 [ PPC970_PME_PM_INST_CMPL ] = { 37, 37, 31, 30, 40, 37, 30, 30 },
319 [ PPC970_PME_PM_LSU1_FLUSH_UST ] = { 59, 58, -1, -1, 61, 58, -1, -1 },
320 [ PPC970_PME_PM_LSU0_FLUSH_ULD ] = { 48, 47, -1, -1, 50, 47, -1, -1 },
321 [ PPC970_PME_PM_LSU_FLUSH ] = { -1, -1, 44, 41, -1, -1, 41, 42 },
322 [ PPC970_PME_PM_INST_FROM_L2 ] = { 40, -1, -1, -1, -1, -1, -1, -1 },
323 [ PPC970_PME_PM_LSU1_REJECT_LMQ_FULL ] = { 61, 60, -1, -1, 63, 60, -1, -1 },
324 [ PPC970_PME_PM_PMC2_OVERFLOW ] = { -1, -1, 66, -1, -1, -1, -1, -1 },
325 [ PPC970_PME_PM_FPU0_DENORM ] = { 9, 8, -1, -1, 10, 9, -1, -1 },
326 [ PPC970_PME_PM_FPU1_FMOV_FEST ] = { -1, -1, 20, 20, -1, -1, 19, 20 },
327 [ PPC970_PME_PM_GRP_DISP_REJECT ] = { 32, 32, -1, -1, 33, 32, -1, 29 },
328 [ PPC970_PME_PM_LSU_LDF ] = { -1, -1, -1, -1, -1, -1, -1, 43 },
329 [ PPC970_PME_PM_INST_DISP ] = { 38, 38, -1, -1, 41, 38, -1, -1 },
330 [ PPC970_PME_PM_DATA_FROM_L25_SHR ] = { -1, -1, -1, -1, 4, -1, -1, -1 },
331 [ PPC970_PME_PM_L1_DCACHE_RELOAD_VALID ] = { -1, -1, 33, 31, -1, -1, 31, 31 },
332 [ PPC970_PME_PM_MRK_GRP_ISSUED ] = { -1, -1, -1, -1, -1, 73, -1, -1 },
333 [ PPC970_PME_PM_FPU_FMA ] = { -1, 25, -1, -1, -1, -1, -1, -1 },
334 [ PPC970_PME_PM_MRK_CRU_FIN ] = { -1, -1, -1, 50, -1, -1, -1, -1 },
335 [ PPC970_PME_PM_MRK_LSU1_FLUSH_UST ] = { -1, -1, 62, 60, -1, -1, 59, 59 },
336 [ PPC970_PME_PM_MRK_FXU_FIN ] = { -1, -1, -1, -1, -1, 72, -1, -1 },
337 [ PPC970_PME_PM_LSU1_REJECT_ERAT_MISS ] = { 60, 59, -1, -1, 62, 59, -1, -1 },
338 [ PPC970_PME_PM_BR_ISSUED ] = { -1, -1, 0, 1, -1, -1, 0, 0 },
339 [ PPC970_PME_PM_PMC4_OVERFLOW ] = { -1, -1, -1, -1, 80, -1, -1, -1 },
340 [ PPC970_PME_PM_EE_OFF ] = { -1, -1, 9, 9, -1, -1, 8, 8 },
341 [ PPC970_PME_PM_INST_FROM_L25_MOD ] = { -1, -1, -1, -1, -1, 39, -1, -1 },
342 [ PPC970_PME_PM_ITLB_MISS ] = { 42, 41, -1, -1, 44, 41, -1, -1 },
343 [ PPC970_PME_PM_FXU1_BUSY_FXU0_IDLE ] = { -1, -1, -1, 26, -1, -1, -1, -1 },
344 [ PPC970_PME_PM_GRP_DISP_VALID ] = { 33, 33, -1, -1, 35, 33, -1, -1 },
345 [ PPC970_PME_PM_MRK_GRP_DISP ] = { 73, -1, -1, -1, -1, -1, -1, -1 },
346 [ PPC970_PME_PM_LSU_FLUSH_UST ] = { -1, 64, -1, -1, -1, -1, -1, -1 },
347 [ PPC970_PME_PM_FXU1_FIN ] = { -1, -1, 26, 27, -1, -1, 26, 26 },
348 [ PPC970_PME_PM_GRP_CMPL ] = { -1, -1, -1, -1, -1, -1, 28, -1 },
349 [ PPC970_PME_PM_FPU_FRSP_FCONV ] = { -1, -1, -1, -1, -1, -1, 21, -1 },
350 [ PPC970_PME_PM_MRK_LSU0_FLUSH_SRQ ] = { -1, -1, 56, 54, -1, -1, 53, 53 },
351 [ PPC970_PME_PM_LSU_LMQ_FULL_CYC ] = { -1, -1, 45, 42, -1, -1, 42, 44 },
352 [ PPC970_PME_PM_ST_REF_L1_LSU0 ] = { -1, -1, 69, 64, -1, -1, 64, 64 },
353 [ PPC970_PME_PM_LSU0_DERAT_MISS ] = { 45, 44, -1, -1, 47, 44, -1, -1 },
354 [ PPC970_PME_PM_LSU_SRQ_SYNC_CYC ] = { -1, -1, 52, 49, -1, -1, 48, 50 },
355 [ PPC970_PME_PM_FPU_STALL3 ] = { -1, 26, -1, -1, -1, -1, -1, -1 },
356 [ PPC970_PME_PM_LSU_REJECT_ERAT_MISS ] = { -1, -1, -1, -1, 70, -1, -1, -1 },
357 [ PPC970_PME_PM_MRK_DATA_FROM_L2 ] = { 72, -1, -1, -1, -1, -1, -1, -1 },
358 [ PPC970_PME_PM_LSU0_FLUSH_SRQ ] = { 47, 46, -1, -1, 49, 46, -1, -1 },
359 [ PPC970_PME_PM_FPU0_FMOV_FEST ] = { -1, -1, 15, 15, -1, -1, 14, 15 },
360 [ PPC970_PME_PM_LD_REF_L1_LSU0 ] = { -1, -1, 40, 37, -1, -1, 37, 38 },
361 [ PPC970_PME_PM_LSU1_FLUSH_SRQ ] = { 57, 56, -1, -1, 59, 56, -1, -1 },
362 [ PPC970_PME_PM_GRP_BR_MPRED ] = { 30, 29, -1, -1, 31, 30, -1, -1 },
363 [ PPC970_PME_PM_LSU_LMQ_S0_ALLOC ] = { -1, -1, 47, 44, -1, -1, 44, 46 },
364 [ PPC970_PME_PM_LSU0_REJECT_LMQ_FULL ] = { 51, 50, -1, -1, 53, 50, -1, -1 },
365 [ PPC970_PME_PM_ST_REF_L1 ] = { -1, -1, -1, -1, -1, -1, 63, -1 },
366 [ PPC970_PME_PM_MRK_VMX_FIN ] = { -1, -1, 65, -1, -1, -1, -1, -1 },
367 [ PPC970_PME_PM_LSU_SRQ_EMPTY_CYC ] = { -1, -1, -1, 47, -1, -1, -1, -1 },
368 [ PPC970_PME_PM_FPU1_STF ] = { 25, 24, -1, -1, 26, 25, -1, -1 },
369 [ PPC970_PME_PM_RUN_CYC ] = { 82, -1, -1, -1, -1, -1, -1, -1 },
370 [ PPC970_PME_PM_LSU_LMQ_S0_VALID ] = { -1, -1, 48, 45, -1, -1, 45, 47 },
371 [ PPC970_PME_PM_LSU0_LDF ] = { -1, -1, 42, 39, -1, -1, 39, 40 },
372 [ PPC970_PME_PM_LSU_LRQ_S0_VALID ] = { 67, 67, -1, -1, 69, 67, -1, -1 },
373 [ PPC970_PME_PM_PMC3_OVERFLOW ] = { -1, -1, -1, 62, -1, -1, -1, -1 },
374 [ PPC970_PME_PM_MRK_IMR_RELOAD ] = { 74, 72, -1, -1, 75, 74, -1, -1 },
375 [ PPC970_PME_PM_MRK_GRP_TIMEO ] = { -1, -1, -1, -1, 74, -1, -1, -1 },
376 [ PPC970_PME_PM_FPU_FMOV_FEST ] = { -1, -1, -1, -1, -1, -1, -1, 22 },
377 [ PPC970_PME_PM_GRP_DISP_BLK_SB_CYC ] = { -1, -1, 29, 29, -1, -1, 29, 28 },
378 [ PPC970_PME_PM_XER_MAP_FULL_CYC ] = { 88, 85, -1, -1, 86, 86, -1, -1 },
379 [ PPC970_PME_PM_ST_MISS_L1 ] = { 86, 81, 68, 63, 84, 84, 62, 63 },
380 [ PPC970_PME_PM_STOP_COMPLETION ] = { -1, -1, 67, -1, -1, -1, -1, -1 },
381 [ PPC970_PME_PM_MRK_GRP_CMPL ] = { -1, -1, -1, 51, -1, -1, -1, -1 },
382 [ PPC970_PME_PM_ISLB_MISS ] = { 41, 40, -1, -1, 43, 40, -1, -1 },
383 [ PPC970_PME_PM_SUSPENDED ] = { 87, 82, 71, 66, 85, 85, 66, 66 },
384 [ PPC970_PME_PM_CYC ] = { 2, 2, 4, 5, 3, 2, 4, 4 },
385 [ PPC970_PME_PM_LD_MISS_L1_LSU1 ] = { -1, -1, 39, 36, -1, -1, 36, 36 },
386 [ PPC970_PME_PM_STCX_FAIL ] = { 84, 79, -1, -1, 82, 82, -1, -1 },
387 [ PPC970_PME_PM_LSU1_SRQ_STFWD ] = { 64, 63, -1, -1, 66, 63, -1, -1 },
388 [ PPC970_PME_PM_GRP_DISP ] = { -1, 31, -1, -1, -1, -1, -1, -1 },
389 [ PPC970_PME_PM_L2_PREF ] = { -1, -1, 36, 34, -1, -1, 34, 34 },
390 [ PPC970_PME_PM_FPU1_DENORM ] = { 18, 17, -1, -1, 19, 18, -1, -1 },
391 [ PPC970_PME_PM_DATA_FROM_L2 ] = { 3, -1, -1, -1, -1, -1, -1, -1 },
392 [ PPC970_PME_PM_FPU0_FPSCR ] = { -1, -1, 16, 16, -1, -1, 15, 16 },
393 [ PPC970_PME_PM_MRK_DATA_FROM_L25_MOD ] = { -1, -1, -1, -1, -1, 71, -1, -1 },
394 [ PPC970_PME_PM_FPU0_FSQRT ] = { 12, 11, -1, -1, 13, 12, -1, -1 },
395 [ PPC970_PME_PM_LD_REF_L1 ] = { -1, -1, -1, -1, -1, -1, -1, 37 },
396 [ PPC970_PME_PM_MRK_L1_RELOAD_VALID ] = { -1, -1, 54, 52, -1, -1, 51, 51 },
397 [ PPC970_PME_PM_1PLUS_PPC_CMPL ] = { -1, -1, -1, -1, 0, -1, -1, -1 },
398 [ PPC970_PME_PM_INST_FROM_L1 ] = { 39, -1, -1, -1, -1, -1, -1, -1 },
399 [ PPC970_PME_PM_EE_OFF_EXT_INT ] = { -1, -1, 10, 10, -1, -1, 9, 9 },
400 [ PPC970_PME_PM_PMC6_OVERFLOW ] = { -1, -1, -1, -1, -1, -1, 61, -1 },
401 [ PPC970_PME_PM_LSU_LRQ_FULL_CYC ] = { -1, -1, 50, 46, -1, -1, 46, 48 },
402 [ PPC970_PME_PM_IC_PREF_INSTALL ] = { 34, 34, -1, -1, 37, 34, -1, -1 },
403 [ PPC970_PME_PM_DC_PREF_OUT_OF_STREAMS ] = { -1, -1, 7, 7, -1, -1, 6, 6 },
404 [ PPC970_PME_PM_MRK_LSU1_FLUSH_SRQ ] = { -1, -1, 60, 58, -1, -1, 57, 57 },
405 [ PPC970_PME_PM_GCT_FULL_CYC ] = { 29, 28, -1, -1, 30, 29, -1, -1 },
406 [ PPC970_PME_PM_INST_FROM_MEM ] = { -1, 39, -1, -1, -1, -1, -1, -1 },
407 [ PPC970_PME_PM_FLUSH_LSU_BR_MPRED ] = { -1, -1, 12, 12, -1, -1, 11, 12 },
408 [ PPC970_PME_PM_FXU_BUSY ] = { -1, -1, -1, -1, -1, 28, -1, -1 },
409 [ PPC970_PME_PM_ST_REF_L1_LSU1 ] = { -1, -1, 70, 65, -1, -1, 65, 65 },
410 [ PPC970_PME_PM_MRK_LD_MISS_L1 ] = { 75, -1, -1, -1, -1, -1, -1, -1 },
411 [ PPC970_PME_PM_L1_WRITE_CYC ] = { -1, -1, 35, 33, -1, -1, 33, 33 },
412 [ PPC970_PME_PM_LSU_REJECT_LMQ_FULL ] = { -1, 68, -1, -1, -1, -1, -1, -1 },
413 [ PPC970_PME_PM_FPU_ALL ] = { -1, -1, -1, -1, 27, -1, -1, -1 },
414 [ PPC970_PME_PM_LSU_SRQ_S0_ALLOC ] = { 69, 69, -1, -1, 71, 69, -1, -1 },
415 [ PPC970_PME_PM_INST_FROM_L25_SHR ] = { -1, -1, -1, -1, 42, -1, -1, -1 },
416 [ PPC970_PME_PM_GRP_MRK ] = { -1, -1, -1, -1, 36, -1, -1, -1 },
417 [ PPC970_PME_PM_BR_MPRED_CR ] = { -1, -1, 1, 2, -1, -1, 1, 1 },
418 [ PPC970_PME_PM_DC_PREF_STREAM_ALLOC ] = { -1, -1, 8, 8, -1, -1, 7, 7 },
419 [ PPC970_PME_PM_FPU1_FIN ] = { -1, -1, 19, 19, -1, -1, 18, 19 },
420 [ PPC970_PME_PM_LSU_REJECT_SRQ ] = { 68, -1, -1, -1, -1, -1, -1, -1 },
421 [ PPC970_PME_PM_BR_MPRED_TA ] = { -1, -1, 2, 3, -1, -1, 2, 2 },
422 [ PPC970_PME_PM_CRQ_FULL_CYC ] = { -1, -1, 3, 4, -1, -1, 3, 3 },
423 [ PPC970_PME_PM_LD_MISS_L1 ] = { -1, -1, 37, -1, -1, -1, -1, -1 },
424 [ PPC970_PME_PM_INST_FROM_PREF ] = { -1, -1, 32, -1, -1, -1, -1, -1 },
425 [ PPC970_PME_PM_STCX_PASS ] = { 85, 80, -1, -1, 83, 83, -1, -1 },
426 [ PPC970_PME_PM_DC_INV_L2 ] = { -1, -1, 6, 6, -1, -1, 5, 5 },
427 [ PPC970_PME_PM_LSU_SRQ_FULL_CYC ] = { -1, -1, 51, 48, -1, -1, 47, 49 },
428 [ PPC970_PME_PM_LSU0_FLUSH_LRQ ] = { 46, 45, -1, -1, 48, 45, -1, -1 },
429 [ PPC970_PME_PM_LSU_SRQ_S0_VALID ] = { 70, 70, -1, -1, 72, 70, -1, -1 },
430 [ PPC970_PME_PM_LARX_LSU0 ] = { 43, 42, -1, -1, 45, 42, -1, -1 },
431 [ PPC970_PME_PM_GCT_EMPTY_CYC ] = { 28, -1, -1, -1, -1, -1, -1, -1 },
432 [ PPC970_PME_PM_FPU1_ALL ] = { 17, 16, -1, -1, 18, 17, -1, -1 },
433 [ PPC970_PME_PM_FPU1_FSQRT ] = { 21, 20, -1, -1, 22, 21, -1, -1 },
434 [ PPC970_PME_PM_FPU_FIN ] = { -1, -1, -1, 22, -1, -1, -1, -1 },
435 [ PPC970_PME_PM_LSU_SRQ_STFWD ] = { 71, -1, -1, -1, -1, -1, -1, -1 },
436 [ PPC970_PME_PM_MRK_LD_MISS_L1_LSU1 ] = { 77, 74, -1, -1, 77, 76, -1, -1 },
437 [ PPC970_PME_PM_FXU0_FIN ] = { -1, -1, 25, 25, -1, -1, 25, 25 },
438 [ PPC970_PME_PM_MRK_FPU_FIN ] = { -1, -1, -1, -1, -1, -1, 49, -1 },
439 [ PPC970_PME_PM_PMC5_OVERFLOW ] = { -1, -1, -1, -1, -1, 80, -1, -1 },
440 [ PPC970_PME_PM_SNOOP_TLBIE ] = { 83, 78, -1, -1, 81, 81, -1, -1 },
441 [ PPC970_PME_PM_FPU1_FRSP_FCONV ] = { -1, -1, 21, 21, -1, -1, 20, 21 },
442 [ PPC970_PME_PM_FPU0_FDIV ] = { 10, 9, -1, -1, 11, 10, -1, -1 },
443 [ PPC970_PME_PM_LD_REF_L1_LSU1 ] = { -1, -1, 41, 38, -1, -1, 38, 39 },
444 [ PPC970_PME_PM_HV_CYC ] = { -1, -1, 30, -1, -1, -1, -1, -1 },
445 [ PPC970_PME_PM_LR_CTR_MAP_FULL_CYC ] = { 44, 43, -1, -1, 46, 43, -1, -1 },
446 [ PPC970_PME_PM_FPU_DENORM ] = { 26, -1, -1, -1, -1, -1, -1, -1 },
447 [ PPC970_PME_PM_LSU0_REJECT_SRQ ] = { 53, 52, -1, -1, 55, 52, -1, -1 },
448 [ PPC970_PME_PM_LSU1_REJECT_SRQ ] = { 63, 62, -1, -1, 65, 62, -1, -1 },
449 [ PPC970_PME_PM_LSU1_DERAT_MISS ] = { 55, 54, -1, -1, 57, 54, -1, -1 },
450 [ PPC970_PME_PM_IC_PREF_REQ ] = { 35, 35, -1, -1, 38, 35, -1, -1 },
451 [ PPC970_PME_PM_MRK_LSU_FIN ] = { -1, -1, -1, -1, -1, -1, -1, 60 },
452 [ PPC970_PME_PM_MRK_DATA_FROM_MEM ] = { -1, -1, 53, -1, -1, -1, -1, -1 },
453 [ PPC970_PME_PM_LSU0_FLUSH_UST ] = { 49, 48, -1, -1, 51, 48, -1, -1 },
454 [ PPC970_PME_PM_LSU_FLUSH_LRQ ] = { -1, -1, -1, -1, -1, 65, -1, -1 },
455 [ PPC970_PME_PM_LSU_FLUSH_SRQ ] = { -1, -1, -1, -1, 67, -1, -1, -1 }
456};
457
458static const unsigned long long ppc970_group_vecs[][PPC970_NUM_GROUP_VEC] = {
460 0x0000000000000000ULL
461 },
463 0x0000000800000000ULL
464 },
466 0x0000000000000000ULL
467 },
469 0x0000000000002000ULL
470 },
472 0x0000000000080000ULL
473 },
475 0x0000000000000000ULL
476 },
478 0x0000000800000000ULL
479 },
481 0x0000000000000000ULL
482 },
484 0x0000000000000400ULL
485 },
487 0x0000000000008000ULL
488 },
490 0x0000000200000000ULL
491 },
493 0x0000001000000000ULL
494 },
496 0x0000000010000000ULL
497 },
499 0x0000000000900010ULL
500 },
502 0x0000000000000080ULL
503 },
505 0x0000000000000000ULL
506 },
508 0x0000000000000400ULL
509 },
511 0x0000001000000000ULL
512 },
514 0x0000000000004000ULL
515 },
517 0x0000000010600000ULL
518 },
520 0x0000001000000000ULL
521 },
523 0x0000000000000200ULL
524 },
526 0x0000002000000000ULL
527 },
529 0x0000000800000000ULL
530 },
532 0x0000000000000000ULL
533 },
535 0x0000000000000000ULL
536 },
538 0x0000000000020000ULL
539 },
541 0x0000000000000040ULL
542 },
544 0x0000001000000000ULL
545 },
547 0x0000000100000000ULL
548 },
550 0x0000000000000000ULL
551 },
553 0x0000000000000400ULL
554 },
556 0x0000000000001000ULL
557 },
559 0x0000000000000400ULL
560 },
562 0x0000000000000000ULL
563 },
565 0x0000000800000000ULL
566 },
568 0x0000000000000000ULL
569 },
571 0x0000004000100000ULL
572 },
574 0x0000000000800020ULL
575 },
577 0x0000000004000000ULL
578 },
580 0x0000008000000080ULL
581 },
583 0x0000000000000000ULL
584 },
586 0x0000000000000000ULL
587 },
589 0x0000004000000000ULL
590 },
592 0x0000000000000000ULL
593 },
595 0x0000000000000008ULL
596 },
598 0x0000000400000000ULL
599 },
601 0x0000000080000000ULL
602 },
604 0x0000000008000000ULL
605 },
607 0x0000000000000000ULL
608 },
610 0x0000000000000080ULL
611 },
613 0x0000000000802800ULL
614 },
616 0x0000000000000000ULL
617 },
619 0x0000000200000000ULL
620 },
622 0x0000000000100010ULL
623 },
625 0x0000002000000000ULL
626 },
628 0x0000000000000000ULL
629 },
631 0x0000008000000080ULL
632 },
634 0x0000000000000800ULL
635 },
637 0x0000000020000000ULL
638 },
640 0x0000000000001000ULL
641 },
643 0x0000000008000000ULL
644 },
646 0x0000000000000000ULL
647 },
649 0x0000000000480000ULL
650 },
652 0x0000000000000000ULL
653 },
655 0x0000000000000010ULL
656 },
658 0x0000030000000000ULL
659 },
661 0x0000000000008000ULL
662 },
664 0x0000000000000000ULL
665 },
667 0x0000000010000000ULL
668 },
670 0x0000000000002000ULL
671 },
673 0x0000000000000000ULL
674 },
676 0x0000000000000000ULL
677 },
679 0x0000000000000000ULL
680 },
682 0x0000000000000200ULL
683 },
685 0x0000002000000000ULL
686 },
688 0x000000c000000000ULL
689 },
691 0x000003fbffffffffULL
692 },
694 0x0000000000010000ULL
695 },
697 0x0000000000008000ULL
698 },
700 0x0000000000000000ULL
701 },
703 0x0000020020000000ULL
704 },
706 0x0000000000000000ULL
707 },
709 0x0000000000000000ULL
710 },
712 0x0000000000001000ULL
713 },
715 0x0000000000001000ULL
716 },
718 0x0000000000000101ULL
719 },
721 0x0000000000800020ULL
722 },
724 0x0000000100000146ULL
725 },
727 0x0000000008000000ULL
728 },
730 0x0000000100040000ULL
731 },
733 0x0000000200000000ULL
734 },
736 0x0000000000900010ULL
737 },
739 0x0000000400000000ULL
740 },
742 0x0000001000000000ULL
743 },
745 0x0000000400000000ULL
746 },
748 0x0000000000000000ULL
749 },
751 0x0000000007000000ULL
752 },
754 0x0000000000000000ULL
755 },
757 0x0000000000000200ULL
758 },
760 0x0000020000000000ULL
761 },
763 0x0000000010200000ULL
764 },
766 0x0000004000000000ULL
767 },
769 0x0000000100000100ULL
770 },
772 0x0000000400000000ULL
773 },
775 0x0000000000000008ULL
776 },
778 0x0000008000000100ULL
779 },
781 0x0000000020080001ULL
782 },
784 0x0000000000000020ULL
785 },
787 0x0000002000000000ULL
788 },
790 0x0000000000000000ULL
791 },
793 0x0000000000030000ULL
794 },
796 0x0000000000040000ULL
797 },
799 0x0000000040000000ULL
800 },
802 0x0000000000000020ULL
803 },
805 0x0000000000000000ULL
806 },
808 0x0000000000000000ULL
809 },
811 0x0000000000004000ULL
812 },
814 0x0000000000001000ULL
815 },
817 0x0000000000008000ULL
818 },
820 0x0000000000004000ULL
821 },
823 0x0000000000000000ULL
824 },
826 0x0000000008000000ULL
827 },
829 0x0000000000000000ULL
830 },
832 0x000000010260000eULL
833 },
835 0x0000000000000000ULL
836 },
838 0x0000000000000000ULL
839 },
841 0x0000000000000000ULL
842 },
844 0x0000000004000001ULL
845 },
847 0x0000000008000000ULL
848 },
850 0x0000000000000000ULL
851 },
853 0x0000000010000000ULL
854 },
856 0x0000000000000000ULL
857 },
859 0x0000001000000000ULL
860 },
862 0x0000000800000000ULL
863 },
865 0x0000000000100010ULL
866 },
868 0x0000000000000040ULL
869 },
871 0x0000000000000040ULL
872 },
874 0x0000000003630000ULL
875 },
877 0x0000000000000201ULL
878 },
880 0x0000000a00000000ULL
881 },
883 0x0000000004000000ULL
884 },
886 0x0000000000000000ULL
887 },
888 [ PPC970_PME_PM_CYC ] = {
889 0x000003ffffffffffULL
890 },
892 0x0000000000008000ULL
893 },
895 0x0000000000000000ULL
896 },
898 0x0000000000020000ULL
899 },
901 0x0000000000000000ULL
902 },
904 0x0000000010000000ULL
905 },
907 0x0000000000001000ULL
908 },
910 0x0000000008000000ULL
911 },
913 0x0000000000002000ULL
914 },
916 0x0000000000000000ULL
917 },
919 0x0000000000000800ULL
920 },
922 0x000000004260000eULL
923 },
925 0x0000000000000000ULL
926 },
928 0x0000000000080001ULL
929 },
931 0x0000010080000000ULL
932 },
934 0x0000000000000200ULL
935 },
937 0x0000000000000000ULL
938 },
940 0x0000000000000080ULL
941 },
943 0x0000000000000000ULL
944 },
946 0x0000000000000000ULL
947 },
949 0x0000002000000000ULL
950 },
952 0x0000000000000000ULL
953 },
955 0x0000030020000000ULL
956 },
958 0x0000000000000000ULL
959 },
961 0x000000c000000000ULL
962 },
964 0x0000000000030000ULL
965 },
967 0x0000000200000000ULL
968 },
970 0x0000000000000000ULL
971 },
973 0x0000000000000000ULL
974 },
976 0x0000000000000020ULL
977 },
979 0x0000000040000000ULL
980 },
982 0x0000020000000000ULL
983 },
985 0x0000000600000000ULL
986 },
988 0x0000000005000000ULL
989 },
991 0x0000000000000000ULL
992 },
994 0x0000000000802800ULL
995 },
997 0x0000000000000000ULL
998 },
1000 0x0000000005000000ULL
1001 },
1003 0x0000000000000040ULL
1004 },
1006 0x0000000043600006ULL
1007 },
1009 0x0000030000000000ULL
1010 },
1012 0x0000000000000000ULL
1013 },
1015 0x0000000020010006ULL
1016 },
1018 0x0000000000000080ULL
1019 },
1021 0x0000000000004000ULL
1022 },
1024 0x0000000040000000ULL
1025 },
1027 0x0000000000000000ULL
1028 },
1030 0x0000000100080200ULL
1031 },
1033 0x0000000000000800ULL
1034 },
1036 0x0000000000000800ULL
1037 },
1038 [ PPC970_PME_PM_FPU_FIN ] = {
1039 0x0000000000100010ULL
1040 },
1042 0x0000000000000000ULL
1043 },
1045 0x0000002000000000ULL
1046 },
1048 0x0000008000000100ULL
1049 },
1051 0x0000000400000000ULL
1052 },
1054 0x0000000000000000ULL
1055 },
1057 0x0000000000000000ULL
1058 },
1060 0x0000000000000400ULL
1061 },
1063 0x0000000000000400ULL
1064 },
1066 0x0000000000008000ULL
1067 },
1068 [ PPC970_PME_PM_HV_CYC ] = {
1069 0x0000000020080000ULL
1070 },
1072 0x0000000000000040ULL
1073 },
1075 0x0000000000000020ULL
1076 },
1078 0x0000000000000000ULL
1079 },
1081 0x0000000000000000ULL
1082 },
1084 0x0000000000040000ULL
1085 },
1087 0x0000000000000000ULL
1088 },
1090 0x0000000400000000ULL
1091 },
1093 0x0000000000000000ULL
1094 },
1096 0x0000000000010000ULL
1097 },
1099 0x0000000000000008ULL
1100 },
1102 0x0000000000000008ULL
1103 }
1104};
1105
1108 .pme_name = "PM_LSU_REJECT_RELOAD_CDF",
1109 .pme_code = 0x6920,
1110 .pme_short_desc = "LSU reject due to reload CDF or tag update collision",
1111 .pme_long_desc = "LSU reject due to reload CDF or tag update collision",
1114 },
1116 .pme_name = "PM_MRK_LSU_SRQ_INST_VALID",
1117 .pme_code = 0x936,
1118 .pme_short_desc = "Marked instruction valid in SRQ",
1119 .pme_long_desc = "This signal is asserted every cycle when a marked request is resident in the Store Request Queue",
1122 },
1124 .pme_name = "PM_FPU1_SINGLE",
1125 .pme_code = 0x127,
1126 .pme_short_desc = "FPU1 executed single precision instruction",
1127 .pme_long_desc = "This signal is active for one cycle when fp1 is executing single precision instruction.",
1129 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_FPU1_SINGLE]
1130 },
1132 .pme_name = "PM_FPU0_STALL3",
1133 .pme_code = 0x121,
1134 .pme_short_desc = "FPU0 stalled in pipe3",
1135 .pme_long_desc = "This signal indicates that fp0 has generated a stall in pipe3 due to overflow, underflow, massive cancel, convert to integer (sometimes), or convert from integer (always). This signal is active during the entire duration of the stall. ",
1137 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_FPU0_STALL3]
1138 },
1140 .pme_name = "PM_TB_BIT_TRANS",
1141 .pme_code = 0x8005,
1142 .pme_short_desc = "Time Base bit transition",
1143 .pme_long_desc = "When the selected time base bit (as specified in MMCR0[TBSEL])transitions from 0 to 1 ",
1146 },
1148 .pme_name = "PM_GPR_MAP_FULL_CYC",
1149 .pme_code = 0x335,
1150 .pme_short_desc = "Cycles GPR mapper full",
1151 .pme_long_desc = "The ISU sends a signal indicating that the gpr mapper cannot accept any more groups. Dispatch is stopped. Note: this condition indicates that a pool of mapper is full but the entire mapper may not be.",
1154 },
1156 .pme_name = "PM_MRK_ST_CMPL",
1157 .pme_code = 0x1003,
1158 .pme_short_desc = "Marked store instruction completed",
1159 .pme_long_desc = "A sampled store has completed (data home)",
1161 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_MRK_ST_CMPL]
1162 },
1164 .pme_name = "PM_FPU0_STF",
1165 .pme_code = 0x122,
1166 .pme_short_desc = "FPU0 executed store instruction",
1167 .pme_long_desc = "This signal is active for one cycle when fp0 is executing a store instruction.",
1168 .pme_event_ids = ppc970_event_ids[PPC970_PME_PM_FPU0_STF],
1169 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_FPU0_STF]
1170 },
1172 .pme_name = "PM_FPU1_FMA",
1173 .pme_code = 0x105,
1174 .pme_short_desc = "FPU1 executed multiply-add instruction",
1175 .pme_long_desc = "This signal is active for one cycle when fp1 is executing multiply-add kind of instruction. This could be fmadd*, fnmadd*, fmsub*, fnmsub* where XYZ* means XYZ, XYZs, XYZ., XYZs.",
1176 .pme_event_ids = ppc970_event_ids[PPC970_PME_PM_FPU1_FMA],
1177 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_FPU1_FMA]
1178 },
1180 .pme_name = "PM_LSU1_FLUSH_ULD",
1181 .pme_code = 0x804,
1182 .pme_short_desc = "LSU1 unaligned load flushes",
1183 .pme_long_desc = "A load was flushed from unit 1 because it was unaligned (crossed a 64byte boundary, or 32 byte if it missed the L1)",
1186 },
1188 .pme_name = "PM_MRK_INST_FIN",
1189 .pme_code = 0x7005,
1190 .pme_short_desc = "Marked instruction finished",
1191 .pme_long_desc = "One of the execution units finished a marked instruction. Instructions that finish may not necessary complete",
1194 },
1196 .pme_name = "PM_MRK_LSU0_FLUSH_UST",
1197 .pme_code = 0x711,
1198 .pme_short_desc = "LSU0 marked unaligned store flushes",
1199 .pme_long_desc = "A marked store was flushed from unit 0 because it was unaligned",
1202 },
1204 .pme_name = "PM_LSU_LRQ_S0_ALLOC",
1205 .pme_code = 0x826,
1206 .pme_short_desc = "LRQ slot 0 allocated",
1207 .pme_long_desc = "LRQ slot zero was allocated",
1210 },
1212 .pme_name = "PM_FPU_FDIV",
1213 .pme_code = 0x1100,
1214 .pme_short_desc = "FPU executed FDIV instruction",
1215 .pme_long_desc = "This signal is active for one cycle at the end of the microcode executed when FPU is executing a divide instruction. This could be fdiv, fdivs, fdiv. fdivs. Combined Unit 0 + Unit 1",
1216 .pme_event_ids = ppc970_event_ids[PPC970_PME_PM_FPU_FDIV],
1217 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_FPU_FDIV]
1218 },
1220 .pme_name = "PM_FPU0_FULL_CYC",
1221 .pme_code = 0x303,
1222 .pme_short_desc = "Cycles FPU0 issue queue full",
1223 .pme_long_desc = "The issue queue for FPU unit 0 cannot accept any more instructions. Issue is stopped",
1226 },
1228 .pme_name = "PM_FPU_SINGLE",
1229 .pme_code = 0x5120,
1230 .pme_short_desc = "FPU executed single precision instruction",
1231 .pme_long_desc = "FPU is executing single precision instruction. Combined Unit 0 + Unit 1",
1233 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_FPU_SINGLE]
1234 },
1236 .pme_name = "PM_FPU0_FMA",
1237 .pme_code = 0x101,
1238 .pme_short_desc = "FPU0 executed multiply-add instruction",
1239 .pme_long_desc = "This signal is active for one cycle when fp0 is executing multiply-add kind of instruction. This could be fmadd*, fnmadd*, fmsub*, fnmsub* where XYZ* means XYZ, XYZs, XYZ., XYZs.",
1240 .pme_event_ids = ppc970_event_ids[PPC970_PME_PM_FPU0_FMA],
1241 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_FPU0_FMA]
1242 },
1244 .pme_name = "PM_MRK_LSU1_FLUSH_ULD",
1245 .pme_code = 0x714,
1246 .pme_short_desc = "LSU1 marked unaligned load flushes",
1247 .pme_long_desc = "A marked load was flushed from unit 1 because it was unaligned (crossed a 64byte boundary, or 32 byte if it missed the L1)",
1250 },
1252 .pme_name = "PM_LSU1_FLUSH_LRQ",
1253 .pme_code = 0x806,
1254 .pme_short_desc = "LSU1 LRQ flushes",
1255 .pme_long_desc = "A load was flushed by unit 1 because a younger load executed before an older store executed and they had overlapping data OR two loads executed out of order and they have byte overlap and there was a snoop in between to an overlapped byte.",
1258 },
1260 .pme_name = "PM_DTLB_MISS",
1261 .pme_code = 0x704,
1262 .pme_short_desc = "Data TLB misses",
1263 .pme_long_desc = "A TLB miss for a data request occurred. Requests that miss the TLB may be retried until the instruction is in the next to complete group (unless HID4 is set to allow speculative tablewalks). This may result in multiple TLB misses for the same instruction.",
1264 .pme_event_ids = ppc970_event_ids[PPC970_PME_PM_DTLB_MISS],
1265 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_DTLB_MISS]
1266 },
1268 .pme_name = "PM_MRK_ST_MISS_L1",
1269 .pme_code = 0x723,
1270 .pme_short_desc = "Marked L1 D cache store misses",
1271 .pme_long_desc = "A marked store missed the dcache",
1274 },
1275 [ PPC970_PME_PM_EXT_INT ] = {
1276 .pme_name = "PM_EXT_INT",
1277 .pme_code = 0x8002,
1278 .pme_short_desc = "External interrupts",
1279 .pme_long_desc = "An external interrupt occurred",
1280 .pme_event_ids = ppc970_event_ids[PPC970_PME_PM_EXT_INT],
1281 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_EXT_INT]
1282 },
1284 .pme_name = "PM_MRK_LSU1_FLUSH_LRQ",
1285 .pme_code = 0x716,
1286 .pme_short_desc = "LSU1 marked LRQ flushes",
1287 .pme_long_desc = "A marked load was flushed by unit 1 because a younger load executed before an older store executed and they had overlapping data OR two loads executed out of order and they have byte overlap and there was a snoop in between to an overlapped byte.",
1290 },
1292 .pme_name = "PM_MRK_ST_GPS",
1293 .pme_code = 0x6003,
1294 .pme_short_desc = "Marked store sent to GPS",
1295 .pme_long_desc = "A sampled store has been sent to the memory subsystem",
1297 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_MRK_ST_GPS]
1298 },
1300 .pme_name = "PM_GRP_DISP_SUCCESS",
1301 .pme_code = 0x5001,
1302 .pme_short_desc = "Group dispatch success",
1303 .pme_long_desc = "Number of groups sucessfully dispatched (not rejected)",
1306 },
1308 .pme_name = "PM_LSU1_LDF",
1309 .pme_code = 0x734,
1310 .pme_short_desc = "LSU1 executed Floating Point load instruction",
1311 .pme_long_desc = "A floating point load was executed from LSU unit 1",
1312 .pme_event_ids = ppc970_event_ids[PPC970_PME_PM_LSU1_LDF],
1313 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_LSU1_LDF]
1314 },
1316 .pme_name = "PM_LSU0_SRQ_STFWD",
1317 .pme_code = 0x820,
1318 .pme_short_desc = "LSU0 SRQ store forwarded",
1319 .pme_long_desc = "Data from a store instruction was forwarded to a load on unit 0",
1322 },
1324 .pme_name = "PM_CR_MAP_FULL_CYC",
1325 .pme_code = 0x304,
1326 .pme_short_desc = "Cycles CR logical operation mapper full",
1327 .pme_long_desc = "The ISU sends a signal indicating that the cr mapper cannot accept any more groups. Dispatch is stopped. Note: this condition indicates that a pool of mapper is full but the entire mapper may not be.",
1330 },
1332 .pme_name = "PM_MRK_LSU0_FLUSH_ULD",
1333 .pme_code = 0x710,
1334 .pme_short_desc = "LSU0 marked unaligned load flushes",
1335 .pme_long_desc = "A marked load was flushed from unit 0 because it was unaligned (crossed a 64byte boundary, or 32 byte if it missed the L1)",
1338 },
1340 .pme_name = "PM_LSU_DERAT_MISS",
1341 .pme_code = 0x6700,
1342 .pme_short_desc = "DERAT misses",
1343 .pme_long_desc = "Total D-ERAT Misses (Unit 0 + Unit 1). Requests that miss the Derat are rejected and retried until the request hits in the Erat. This may result in multiple erat misses for the same instruction.",
1346 },
1348 .pme_name = "PM_FPU0_SINGLE",
1349 .pme_code = 0x123,
1350 .pme_short_desc = "FPU0 executed single precision instruction",
1351 .pme_long_desc = "This signal is active for one cycle when fp0 is executing single precision instruction.",
1353 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_FPU0_SINGLE]
1354 },
1356 .pme_name = "PM_FPU1_FDIV",
1357 .pme_code = 0x104,
1358 .pme_short_desc = "FPU1 executed FDIV instruction",
1359 .pme_long_desc = "This signal is active for one cycle at the end of the microcode executed when fp1 is executing a divide instruction. This could be fdiv, fdivs, fdiv. fdivs.",
1360 .pme_event_ids = ppc970_event_ids[PPC970_PME_PM_FPU1_FDIV],
1361 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_FPU1_FDIV]
1362 },
1364 .pme_name = "PM_FPU1_FEST",
1365 .pme_code = 0x116,
1366 .pme_short_desc = "FPU1 executed FEST instruction",
1367 .pme_long_desc = "This signal is active for one cycle when fp1 is executing one of the estimate instructions. This could be fres* or frsqrte* where XYZ* means XYZ or XYZ. ",
1368 .pme_event_ids = ppc970_event_ids[PPC970_PME_PM_FPU1_FEST],
1369 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_FPU1_FEST]
1370 },
1372 .pme_name = "PM_FPU0_FRSP_FCONV",
1373 .pme_code = 0x111,
1374 .pme_short_desc = "FPU0 executed FRSP or FCONV instructions",
1375 .pme_long_desc = "This signal is active for one cycle when fp0 is executing frsp or convert kind of instruction. This could be frsp*, fcfid*, fcti* where XYZ* means XYZ, XYZs, XYZ., XYZs.",
1378 },
1380 .pme_name = "PM_GCT_EMPTY_SRQ_FULL",
1381 .pme_code = 0x200b,
1382 .pme_short_desc = "GCT empty caused by SRQ full",
1383 .pme_long_desc = "GCT empty caused by SRQ full",
1386 },
1388 .pme_name = "PM_MRK_ST_CMPL_INT",
1389 .pme_code = 0x3003,
1390 .pme_short_desc = "Marked store completed with intervention",
1391 .pme_long_desc = "A marked store previously sent to the memory subsystem completed (data home) after requiring intervention",
1394 },
1396 .pme_name = "PM_FLUSH_BR_MPRED",
1397 .pme_code = 0x316,
1398 .pme_short_desc = "Flush caused by branch mispredict",
1399 .pme_long_desc = "Flush caused by branch mispredict",
1402 },
1403 [ PPC970_PME_PM_FXU_FIN ] = {
1404 .pme_name = "PM_FXU_FIN",
1405 .pme_code = 0x3330,
1406 .pme_short_desc = "FXU produced a result",
1407 .pme_long_desc = "The fixed point unit (Unit 0 + Unit 1) finished a marked instruction. Instructions that finish may not necessary complete.",
1408 .pme_event_ids = ppc970_event_ids[PPC970_PME_PM_FXU_FIN],
1409 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_FXU_FIN]
1410 },
1411 [ PPC970_PME_PM_FPU_STF ] = {
1412 .pme_name = "PM_FPU_STF",
1413 .pme_code = 0x6120,
1414 .pme_short_desc = "FPU executed store instruction",
1415 .pme_long_desc = "FPU is executing a store instruction. Combined Unit 0 + Unit 1",
1416 .pme_event_ids = ppc970_event_ids[PPC970_PME_PM_FPU_STF],
1417 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_FPU_STF]
1418 },
1420 .pme_name = "PM_DSLB_MISS",
1421 .pme_code = 0x705,
1422 .pme_short_desc = "Data SLB misses",
1423 .pme_long_desc = "A SLB miss for a data request occurred. SLB misses trap to the operating system to resolve",
1424 .pme_event_ids = ppc970_event_ids[PPC970_PME_PM_DSLB_MISS],
1425 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_DSLB_MISS]
1426 },
1428 .pme_name = "PM_FXLS1_FULL_CYC",
1429 .pme_code = 0x314,
1430 .pme_short_desc = "Cycles FXU1/LS1 queue full",
1431 .pme_long_desc = "The issue queue for FXU/LSU unit 0 cannot accept any more instructions. Issue is stopped",
1434 },
1436 .pme_name = "PM_LSU_LMQ_LHR_MERGE",
1437 .pme_code = 0x935,
1438 .pme_short_desc = "LMQ LHR merges",
1439 .pme_long_desc = "A dcache miss occured for the same real cache line address as an earlier request already in the Load Miss Queue and was merged into the LMQ entry.",
1442 },
1444 .pme_name = "PM_MRK_STCX_FAIL",
1445 .pme_code = 0x726,
1446 .pme_short_desc = "Marked STCX failed",
1447 .pme_long_desc = "A marked stcx (stwcx or stdcx) failed",
1450 },
1452 .pme_name = "PM_FXU0_BUSY_FXU1_IDLE",
1453 .pme_code = 0x7002,
1454 .pme_short_desc = "FXU0 busy FXU1 idle",
1455 .pme_long_desc = "FXU0 is busy while FXU1 was idle",
1458 },
1460 .pme_name = "PM_MRK_DATA_FROM_L25_SHR",
1461 .pme_code = 0x193d,
1462 .pme_short_desc = "Marked data loaded from L2.5 shared",
1463 .pme_long_desc = "DL1 was reloaded with shared (T or SL) data from the L2 of a chip on this MCM due to a marked demand load",
1466 },
1468 .pme_name = "PM_LSU_FLUSH_ULD",
1469 .pme_code = 0x1800,
1470 .pme_short_desc = "LRQ unaligned load flushes",
1471 .pme_long_desc = "A load was flushed because it was unaligned (crossed a 64byte boundary, or 32 byte if it missed the L1)",
1474 },
1476 .pme_name = "PM_MRK_BRU_FIN",
1477 .pme_code = 0x2005,
1478 .pme_short_desc = "Marked instruction BRU processing finished",
1479 .pme_long_desc = "The branch unit finished a marked instruction. Instructions that finish may not necessary complete",
1481 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_MRK_BRU_FIN]
1482 },
1484 .pme_name = "PM_IERAT_XLATE_WR",
1485 .pme_code = 0x430,
1486 .pme_short_desc = "Translation written to ierat",
1487 .pme_long_desc = "This signal will be asserted each time the I-ERAT is written. This indicates that an ERAT miss has been serviced. ERAT misses will initiate a sequence resulting in the ERAT being written. ERAT misses that are later ignored will not be counted unless the ERAT is written before the instruction stream is changed, This should be a fairly accurate count of ERAT missed (best available).",
1490 },
1492 .pme_name = "PM_DATA_FROM_MEM",
1493 .pme_code = 0x3837,
1494 .pme_short_desc = "Data loaded from memory",
1495 .pme_long_desc = "Data loaded from memory",
1498 },
1500 .pme_name = "PM_FPR_MAP_FULL_CYC",
1501 .pme_code = 0x301,
1502 .pme_short_desc = "Cycles FPR mapper full",
1503 .pme_long_desc = "The ISU sends a signal indicating that the FPR mapper cannot accept any more groups. Dispatch is stopped. Note: this condition indicates that a pool of mapper is full but the entire mapper may not be.",
1506 },
1508 .pme_name = "PM_FPU1_FULL_CYC",
1509 .pme_code = 0x307,
1510 .pme_short_desc = "Cycles FPU1 issue queue full",
1511 .pme_long_desc = "The issue queue for FPU unit 1 cannot accept any more instructions. Issue is stopped",
1514 },
1516 .pme_name = "PM_FPU0_FIN",
1517 .pme_code = 0x113,
1518 .pme_short_desc = "FPU0 produced a result",
1519 .pme_long_desc = "fp0 finished, produced a result This only indicates finish, not completion. ",
1520 .pme_event_ids = ppc970_event_ids[PPC970_PME_PM_FPU0_FIN],
1521 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_FPU0_FIN]
1522 },
1524 .pme_name = "PM_GRP_BR_REDIR",
1525 .pme_code = 0x326,
1526 .pme_short_desc = "Group experienced branch redirect",
1527 .pme_long_desc = "Group experienced branch redirect",
1530 },
1532 .pme_name = "PM_THRESH_TIMEO",
1533 .pme_code = 0x2003,
1534 .pme_short_desc = "Threshold timeout",
1535 .pme_long_desc = "The threshold timer expired",
1538 },
1540 .pme_name = "PM_FPU_FSQRT",
1541 .pme_code = 0x6100,
1542 .pme_short_desc = "FPU executed FSQRT instruction",
1543 .pme_long_desc = "This signal is active for one cycle at the end of the microcode executed when FPU is executing a square root instruction. This could be fsqrt* where XYZ* means XYZ, XYZs, XYZ., XYZs. Combined Unit 0 + Unit 1",
1544 .pme_event_ids = ppc970_event_ids[PPC970_PME_PM_FPU_FSQRT],
1545 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_FPU_FSQRT]
1546 },
1548 .pme_name = "PM_MRK_LSU0_FLUSH_LRQ",
1549 .pme_code = 0x712,
1550 .pme_short_desc = "LSU0 marked LRQ flushes",
1551 .pme_long_desc = "A marked load was flushed by unit 0 because a younger load executed before an older store executed and they had overlapping data OR two loads executed out of order and they have byte overlap and there was a snoop in between to an overlapped byte.",
1554 },
1556 .pme_name = "PM_PMC1_OVERFLOW",
1557 .pme_code = 0x200a,
1558 .pme_short_desc = "PMC1 Overflow",
1559 .pme_long_desc = "PMC1 Overflow",
1562 },
1564 .pme_name = "PM_FXLS0_FULL_CYC",
1565 .pme_code = 0x310,
1566 .pme_short_desc = "Cycles FXU0/LS0 queue full",
1567 .pme_long_desc = "The issue queue for FXU/LSU unit 0 cannot accept any more instructions. Issue is stopped",
1570 },
1572 .pme_name = "PM_FPU0_ALL",
1573 .pme_code = 0x103,
1574 .pme_short_desc = "FPU0 executed add",
1575 .pme_long_desc = " mult",
1576 .pme_event_ids = ppc970_event_ids[PPC970_PME_PM_FPU0_ALL],
1577 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_FPU0_ALL]
1578 },
1580 .pme_name = "PM_DATA_TABLEWALK_CYC",
1581 .pme_code = 0x707,
1582 .pme_short_desc = "Cycles doing data tablewalks",
1583 .pme_long_desc = "This signal is asserted every cycle when a tablewalk is active. While a tablewalk is active any request attempting to access the TLB will be rejected and retried.",
1586 },
1588 .pme_name = "PM_FPU0_FEST",
1589 .pme_code = 0x112,
1590 .pme_short_desc = "FPU0 executed FEST instruction",
1591 .pme_long_desc = "This signal is active for one cycle when fp0 is executing one of the estimate instructions. This could be fres* or frsqrte* where XYZ* means XYZ or XYZ. ",
1592 .pme_event_ids = ppc970_event_ids[PPC970_PME_PM_FPU0_FEST],
1593 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_FPU0_FEST]
1594 },
1596 .pme_name = "PM_DATA_FROM_L25_MOD",
1597 .pme_code = 0x383d,
1598 .pme_short_desc = "Data loaded from L2.5 modified",
1599 .pme_long_desc = "DL1 was reloaded with modified (M) data from the L2 of a chip on this MCM due to a demand load",
1602 },
1604 .pme_name = "PM_LSU0_REJECT_ERAT_MISS",
1605 .pme_code = 0x923,
1606 .pme_short_desc = "LSU0 reject due to ERAT miss",
1607 .pme_long_desc = "LSU0 reject due to ERAT miss",
1610 },
1612 .pme_name = "PM_LSU_LMQ_SRQ_EMPTY_CYC",
1613 .pme_code = 0x2002,
1614 .pme_short_desc = "Cycles LMQ and SRQ empty",
1615 .pme_long_desc = "Cycles when both the LMQ and SRQ are empty (LSU is idle)",
1618 },
1620 .pme_name = "PM_LSU0_REJECT_RELOAD_CDF",
1621 .pme_code = 0x922,
1622 .pme_short_desc = "LSU0 reject due to reload CDF or tag update collision",
1623 .pme_long_desc = "LSU0 reject due to reload CDF or tag update collision",
1626 },
1628 .pme_name = "PM_FPU_FEST",
1629 .pme_code = 0x3110,
1630 .pme_short_desc = "FPU executed FEST instruction",
1631 .pme_long_desc = "This signal is active for one cycle when executing one of the estimate instructions. This could be fres* or frsqrte* where XYZ* means XYZ or XYZ. Combined Unit 0 + Unit 1.",
1632 .pme_event_ids = ppc970_event_ids[PPC970_PME_PM_FPU_FEST],
1633 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_FPU_FEST]
1634 },
1636 .pme_name = "PM_0INST_FETCH",
1637 .pme_code = 0x442d,
1638 .pme_short_desc = "No instructions fetched",
1639 .pme_long_desc = "No instructions were fetched this cycles (due to IFU hold, redirect, or icache miss)",
1641 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_0INST_FETCH]
1642 },
1644 .pme_name = "PM_LD_MISS_L1_LSU0",
1645 .pme_code = 0x812,
1646 .pme_short_desc = "LSU0 L1 D cache load misses",
1647 .pme_long_desc = "A load, executing on unit 0, missed the dcache",
1650 },
1652 .pme_name = "PM_LSU1_REJECT_RELOAD_CDF",
1653 .pme_code = 0x926,
1654 .pme_short_desc = "LSU1 reject due to reload CDF or tag update collision",
1655 .pme_long_desc = "LSU1 reject due to reload CDF or tag update collision",
1658 },
1659 [ PPC970_PME_PM_L1_PREF ] = {
1660 .pme_name = "PM_L1_PREF",
1661 .pme_code = 0x731,
1662 .pme_short_desc = "L1 cache data prefetches",
1663 .pme_long_desc = "A request to prefetch data into the L1 was made",
1664 .pme_event_ids = ppc970_event_ids[PPC970_PME_PM_L1_PREF],
1665 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_L1_PREF]
1666 },
1668 .pme_name = "PM_FPU1_STALL3",
1669 .pme_code = 0x125,
1670 .pme_short_desc = "FPU1 stalled in pipe3",
1671 .pme_long_desc = "This signal indicates that fp1 has generated a stall in pipe3 due to overflow, underflow, massive cancel, convert to integer (sometimes), or convert from integer (always). This signal is active during the entire duration of the stall. ",
1673 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_FPU1_STALL3]
1674 },
1676 .pme_name = "PM_BRQ_FULL_CYC",
1677 .pme_code = 0x305,
1678 .pme_short_desc = "Cycles branch queue full",
1679 .pme_long_desc = "The ISU sends a signal indicating that the issue queue that feeds the ifu br unit cannot accept any more group (queue is full of groups).",
1682 },
1684 .pme_name = "PM_PMC8_OVERFLOW",
1685 .pme_code = 0x100a,
1686 .pme_short_desc = "PMC8 Overflow",
1687 .pme_long_desc = "PMC8 Overflow",
1690 },
1692 .pme_name = "PM_PMC7_OVERFLOW",
1693 .pme_code = 0x800a,
1694 .pme_short_desc = "PMC7 Overflow",
1695 .pme_long_desc = "PMC7 Overflow",
1698 },
1700 .pme_name = "PM_WORK_HELD",
1701 .pme_code = 0x2001,
1702 .pme_short_desc = "Work held",
1703 .pme_long_desc = "RAS Unit has signaled completion to stop and there are groups waiting to complete",
1704 .pme_event_ids = ppc970_event_ids[PPC970_PME_PM_WORK_HELD],
1705 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_WORK_HELD]
1706 },
1708 .pme_name = "PM_MRK_LD_MISS_L1_LSU0",
1709 .pme_code = 0x720,
1710 .pme_short_desc = "LSU0 L1 D cache load misses",
1711 .pme_long_desc = "A marked load, executing on unit 0, missed the dcache",
1714 },
1716 .pme_name = "PM_FXU_IDLE",
1717 .pme_code = 0x5002,
1718 .pme_short_desc = "FXU idle",
1719 .pme_long_desc = "FXU0 and FXU1 are both idle",
1720 .pme_event_ids = ppc970_event_ids[PPC970_PME_PM_FXU_IDLE],
1721 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_FXU_IDLE]
1722 },
1724 .pme_name = "PM_INST_CMPL",
1725 .pme_code = 0x1,
1726 .pme_short_desc = "Instructions completed",
1727 .pme_long_desc = "Number of Eligible Instructions that completed. ",
1728 .pme_event_ids = ppc970_event_ids[PPC970_PME_PM_INST_CMPL],
1729 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_INST_CMPL]
1730 },
1732 .pme_name = "PM_LSU1_FLUSH_UST",
1733 .pme_code = 0x805,
1734 .pme_short_desc = "LSU1 unaligned store flushes",
1735 .pme_long_desc = "A store was flushed from unit 1 because it was unaligned (crossed a 4k boundary)",
1738 },
1740 .pme_name = "PM_LSU0_FLUSH_ULD",
1741 .pme_code = 0x800,
1742 .pme_short_desc = "LSU0 unaligned load flushes",
1743 .pme_long_desc = "A load was flushed from unit 0 because it was unaligned (crossed a 64byte boundary, or 32 byte if it missed the L1)",
1746 },
1748 .pme_name = "PM_LSU_FLUSH",
1749 .pme_code = 0x315,
1750 .pme_short_desc = "Flush initiated by LSU",
1751 .pme_long_desc = "Flush initiated by LSU",
1752 .pme_event_ids = ppc970_event_ids[PPC970_PME_PM_LSU_FLUSH],
1753 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_LSU_FLUSH]
1754 },
1756 .pme_name = "PM_INST_FROM_L2",
1757 .pme_code = 0x1426,
1758 .pme_short_desc = "Instructions fetched from L2",
1759 .pme_long_desc = "An instruction fetch group was fetched from L2. Fetch Groups can contain up to 8 instructions",
1762 },
1764 .pme_name = "PM_LSU1_REJECT_LMQ_FULL",
1765 .pme_code = 0x925,
1766 .pme_short_desc = "LSU1 reject due to LMQ full or missed data coming",
1767 .pme_long_desc = "LSU1 reject due to LMQ full or missed data coming",
1770 },
1772 .pme_name = "PM_PMC2_OVERFLOW",
1773 .pme_code = 0x300a,
1774 .pme_short_desc = "PMC2 Overflow",
1775 .pme_long_desc = "PMC2 Overflow",
1778 },
1780 .pme_name = "PM_FPU0_DENORM",
1781 .pme_code = 0x120,
1782 .pme_short_desc = "FPU0 received denormalized data",
1783 .pme_long_desc = "This signal is active for one cycle when one of the operands is denormalized.",
1785 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_FPU0_DENORM]
1786 },
1788 .pme_name = "PM_FPU1_FMOV_FEST",
1789 .pme_code = 0x114,
1790 .pme_short_desc = "FPU1 executing FMOV or FEST instructions",
1791 .pme_long_desc = "This signal is active for one cycle when fp1 is executing a move kind of instruction or one of the estimate instructions.. This could be fmr*, fneg*, fabs*, fnabs* , fres* or frsqrte* where XYZ* means XYZ or XYZ",
1794 },
1796 .pme_name = "PM_GRP_DISP_REJECT",
1797 .pme_code = 0x324,
1798 .pme_short_desc = "Group dispatch rejected",
1799 .pme_long_desc = "A group that previously attempted dispatch was rejected.",
1802 },
1803 [ PPC970_PME_PM_LSU_LDF ] = {
1804 .pme_name = "PM_LSU_LDF",
1805 .pme_code = 0x8730,
1806 .pme_short_desc = "LSU executed Floating Point load instruction",
1807 .pme_long_desc = "LSU executed Floating Point load instruction",
1808 .pme_event_ids = ppc970_event_ids[PPC970_PME_PM_LSU_LDF],
1809 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_LSU_LDF]
1810 },
1812 .pme_name = "PM_INST_DISP",
1813 .pme_code = 0x320,
1814 .pme_short_desc = "Instructions dispatched",
1815 .pme_long_desc = "The ISU sends the number of instructions dispatched.",
1816 .pme_event_ids = ppc970_event_ids[PPC970_PME_PM_INST_DISP],
1817 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_INST_DISP]
1818 },
1820 .pme_name = "PM_DATA_FROM_L25_SHR",
1821 .pme_code = 0x183d,
1822 .pme_short_desc = "Data loaded from L2.5 shared",
1823 .pme_long_desc = "DL1 was reloaded with shared (T or SL) data from the L2 of a chip on this MCM due to a demand load",
1826 },
1828 .pme_name = "PM_L1_DCACHE_RELOAD_VALID",
1829 .pme_code = 0x834,
1830 .pme_short_desc = "L1 reload data source valid",
1831 .pme_long_desc = "The data source information is valid",
1834 },
1836 .pme_name = "PM_MRK_GRP_ISSUED",
1837 .pme_code = 0x6005,
1838 .pme_short_desc = "Marked group issued",
1839 .pme_long_desc = "A sampled instruction was issued",
1842 },
1843 [ PPC970_PME_PM_FPU_FMA ] = {
1844 .pme_name = "PM_FPU_FMA",
1845 .pme_code = 0x2100,
1846 .pme_short_desc = "FPU executed multiply-add instruction",
1847 .pme_long_desc = "This signal is active for one cycle when FPU is executing multiply-add kind of instruction. This could be fmadd*, fnmadd*, fmsub*, fnmsub* where XYZ* means XYZ, XYZs, XYZ., XYZs. Combined Unit 0 + Unit 1",
1848 .pme_event_ids = ppc970_event_ids[PPC970_PME_PM_FPU_FMA],
1849 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_FPU_FMA]
1850 },
1852 .pme_name = "PM_MRK_CRU_FIN",
1853 .pme_code = 0x4005,
1854 .pme_short_desc = "Marked instruction CRU processing finished",
1855 .pme_long_desc = "The Condition Register Unit finished a marked instruction. Instructions that finish may not necessary complete",
1857 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_MRK_CRU_FIN]
1858 },
1860 .pme_name = "PM_MRK_LSU1_FLUSH_UST",
1861 .pme_code = 0x715,
1862 .pme_short_desc = "LSU1 marked unaligned store flushes",
1863 .pme_long_desc = "A marked store was flushed from unit 1 because it was unaligned (crossed a 4k boundary)",
1866 },
1868 .pme_name = "PM_MRK_FXU_FIN",
1869 .pme_code = 0x6004,
1870 .pme_short_desc = "Marked instruction FXU processing finished",
1871 .pme_long_desc = "Marked instruction FXU processing finished",
1873 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_MRK_FXU_FIN]
1874 },
1876 .pme_name = "PM_LSU1_REJECT_ERAT_MISS",
1877 .pme_code = 0x927,
1878 .pme_short_desc = "LSU1 reject due to ERAT miss",
1879 .pme_long_desc = "LSU1 reject due to ERAT miss",
1882 },
1884 .pme_name = "PM_BR_ISSUED",
1885 .pme_code = 0x431,
1886 .pme_short_desc = "Branches issued",
1887 .pme_long_desc = "This signal will be asserted each time the ISU issues a branch instruction. This signal will be asserted each time the ISU selects a branch instruction to issue.",
1888 .pme_event_ids = ppc970_event_ids[PPC970_PME_PM_BR_ISSUED],
1889 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_BR_ISSUED]
1890 },
1892 .pme_name = "PM_PMC4_OVERFLOW",
1893 .pme_code = 0x500a,
1894 .pme_short_desc = "PMC4 Overflow",
1895 .pme_long_desc = "PMC4 Overflow",
1898 },
1899 [ PPC970_PME_PM_EE_OFF ] = {
1900 .pme_name = "PM_EE_OFF",
1901 .pme_code = 0x333,
1902 .pme_short_desc = "Cycles MSR(EE) bit off",
1903 .pme_long_desc = "The number of Cycles MSR(EE) bit was off.",
1904 .pme_event_ids = ppc970_event_ids[PPC970_PME_PM_EE_OFF],
1905 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_EE_OFF]
1906 },
1908 .pme_name = "PM_INST_FROM_L25_MOD",
1909 .pme_code = 0x6426,
1910 .pme_short_desc = "Instruction fetched from L2.5 modified",
1911 .pme_long_desc = "Instruction fetched from L2.5 modified",
1914 },
1916 .pme_name = "PM_ITLB_MISS",
1917 .pme_code = 0x700,
1918 .pme_short_desc = "Instruction TLB misses",
1919 .pme_long_desc = "A TLB miss for an Instruction Fetch has occurred",
1920 .pme_event_ids = ppc970_event_ids[PPC970_PME_PM_ITLB_MISS],
1921 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_ITLB_MISS]
1922 },
1924 .pme_name = "PM_FXU1_BUSY_FXU0_IDLE",
1925 .pme_code = 0x4002,
1926 .pme_short_desc = "FXU1 busy FXU0 idle",
1927 .pme_long_desc = "FXU0 was idle while FXU1 was busy",
1930 },
1932 .pme_name = "PM_GRP_DISP_VALID",
1933 .pme_code = 0x323,
1934 .pme_short_desc = "Group dispatch valid",
1935 .pme_long_desc = "Dispatch has been attempted for a valid group. Some groups may be rejected. The total number of successful dispatches is the number of dispatch valid minus dispatch reject.",
1938 },
1940 .pme_name = "PM_MRK_GRP_DISP",
1941 .pme_code = 0x1002,
1942 .pme_short_desc = "Marked group dispatched",
1943 .pme_long_desc = "A group containing a sampled instruction was dispatched",
1946 },
1948 .pme_name = "PM_LSU_FLUSH_UST",
1949 .pme_code = 0x2800,
1950 .pme_short_desc = "SRQ unaligned store flushes",
1951 .pme_long_desc = "A store was flushed because it was unaligned",
1954 },
1956 .pme_name = "PM_FXU1_FIN",
1957 .pme_code = 0x336,
1958 .pme_short_desc = "FXU1 produced a result",
1959 .pme_long_desc = "The Fixed Point unit 1 finished an instruction and produced a result",
1960 .pme_event_ids = ppc970_event_ids[PPC970_PME_PM_FXU1_FIN],
1961 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_FXU1_FIN]
1962 },
1964 .pme_name = "PM_GRP_CMPL",
1965 .pme_code = 0x7003,
1966 .pme_short_desc = "Group completed",
1967 .pme_long_desc = "A group completed. Microcoded instructions that span multiple groups will generate this event once per group.",
1968 .pme_event_ids = ppc970_event_ids[PPC970_PME_PM_GRP_CMPL],
1969 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_GRP_CMPL]
1970 },
1972 .pme_name = "PM_FPU_FRSP_FCONV",
1973 .pme_code = 0x7110,
1974 .pme_short_desc = "FPU executed FRSP or FCONV instructions",
1975 .pme_long_desc = "This signal is active for one cycle when executing frsp or convert kind of instruction. This could be frsp*, fcfid*, fcti* where XYZ* means XYZ, XYZs, XYZ., XYZs. Combined Unit 0 + Unit 1",
1978 },
1980 .pme_name = "PM_MRK_LSU0_FLUSH_SRQ",
1981 .pme_code = 0x713,
1982 .pme_short_desc = "LSU0 marked SRQ flushes",
1983 .pme_long_desc = "A marked store was flushed because younger load hits and older store that is already in the SRQ or in the same group.",
1986 },
1988 .pme_name = "PM_LSU_LMQ_FULL_CYC",
1989 .pme_code = 0x837,
1990 .pme_short_desc = "Cycles LMQ full",
1991 .pme_long_desc = "The LMQ was full",
1994 },
1996 .pme_name = "PM_ST_REF_L1_LSU0",
1997 .pme_code = 0x811,
1998 .pme_short_desc = "LSU0 L1 D cache store references",
1999 .pme_long_desc = "A store executed on unit 0",
2002 },
2004 .pme_name = "PM_LSU0_DERAT_MISS",
2005 .pme_code = 0x702,
2006 .pme_short_desc = "LSU0 DERAT misses",
2007 .pme_long_desc = "A data request (load or store) from LSU Unit 0 missed the ERAT and resulted in an ERAT reload. Multiple instructions may miss the ERAT entry for the same 4K page, but only one reload will occur.",
2010 },
2012 .pme_name = "PM_LSU_SRQ_SYNC_CYC",
2013 .pme_code = 0x735,
2014 .pme_short_desc = "SRQ sync duration",
2015 .pme_long_desc = "This signal is asserted every cycle when a sync is in the SRQ.",
2018 },
2020 .pme_name = "PM_FPU_STALL3",
2021 .pme_code = 0x2120,
2022 .pme_short_desc = "FPU stalled in pipe3",
2023 .pme_long_desc = "FPU has generated a stall in pipe3 due to overflow, underflow, massive cancel, convert to integer (sometimes), or convert from integer (always). This signal is active during the entire duration of the stall. Combined Unit 0 + Unit 1",
2025 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_FPU_STALL3]
2026 },
2028 .pme_name = "PM_LSU_REJECT_ERAT_MISS",
2029 .pme_code = 0x5920,
2030 .pme_short_desc = "LSU reject due to ERAT miss",
2031 .pme_long_desc = "LSU reject due to ERAT miss",
2034 },
2036 .pme_name = "PM_MRK_DATA_FROM_L2",
2037 .pme_code = 0x1937,
2038 .pme_short_desc = "Marked data loaded from L2",
2039 .pme_long_desc = "DL1 was reloaded from the local L2 due to a marked demand load",
2042 },
2044 .pme_name = "PM_LSU0_FLUSH_SRQ",
2045 .pme_code = 0x803,
2046 .pme_short_desc = "LSU0 SRQ flushes",
2047 .pme_long_desc = "A store was flushed because younger load hits and older store that is already in the SRQ or in the same group.",
2050 },
2052 .pme_name = "PM_FPU0_FMOV_FEST",
2053 .pme_code = 0x110,
2054 .pme_short_desc = "FPU0 executed FMOV or FEST instructions",
2055 .pme_long_desc = "This signal is active for one cycle when fp0 is executing a move kind of instruction or one of the estimate instructions.. This could be fmr*, fneg*, fabs*, fnabs* , fres* or frsqrte* where XYZ* means XYZ or XYZ",
2058 },
2060 .pme_name = "PM_LD_REF_L1_LSU0",
2061 .pme_code = 0x810,
2062 .pme_short_desc = "LSU0 L1 D cache load references",
2063 .pme_long_desc = "A load executed on unit 0",
2066 },
2068 .pme_name = "PM_LSU1_FLUSH_SRQ",
2069 .pme_code = 0x807,
2070 .pme_short_desc = "LSU1 SRQ flushes",
2071 .pme_long_desc = "A store was flushed because younger load hits and older store that is already in the SRQ or in the same group. ",
2074 },
2076 .pme_name = "PM_GRP_BR_MPRED",
2077 .pme_code = 0x327,
2078 .pme_short_desc = "Group experienced a branch mispredict",
2079 .pme_long_desc = "Group experienced a branch mispredict",
2082 },
2084 .pme_name = "PM_LSU_LMQ_S0_ALLOC",
2085 .pme_code = 0x836,
2086 .pme_short_desc = "LMQ slot 0 allocated",
2087 .pme_long_desc = "The first entry in the LMQ was allocated.",
2090 },
2092 .pme_name = "PM_LSU0_REJECT_LMQ_FULL",
2093 .pme_code = 0x921,
2094 .pme_short_desc = "LSU0 reject due to LMQ full or missed data coming",
2095 .pme_long_desc = "LSU0 reject due to LMQ full or missed data coming",
2098 },
2100 .pme_name = "PM_ST_REF_L1",
2101 .pme_code = 0x7810,
2102 .pme_short_desc = "L1 D cache store references",
2103 .pme_long_desc = "Total DL1 Store references",
2104 .pme_event_ids = ppc970_event_ids[PPC970_PME_PM_ST_REF_L1],
2105 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_ST_REF_L1]
2106 },
2108 .pme_name = "PM_MRK_VMX_FIN",
2109 .pme_code = 0x3005,
2110 .pme_short_desc = "Marked instruction VMX processing finished",
2111 .pme_long_desc = "Marked instruction VMX processing finished",
2113 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_MRK_VMX_FIN]
2114 },
2116 .pme_name = "PM_LSU_SRQ_EMPTY_CYC",
2117 .pme_code = 0x4003,
2118 .pme_short_desc = "Cycles SRQ empty",
2119 .pme_long_desc = "The Store Request Queue is empty",
2122 },
2124 .pme_name = "PM_FPU1_STF",
2125 .pme_code = 0x126,
2126 .pme_short_desc = "FPU1 executed store instruction",
2127 .pme_long_desc = "This signal is active for one cycle when fp1 is executing a store instruction.",
2128 .pme_event_ids = ppc970_event_ids[PPC970_PME_PM_FPU1_STF],
2129 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_FPU1_STF]
2130 },
2131 [ PPC970_PME_PM_RUN_CYC ] = {
2132 .pme_name = "PM_RUN_CYC",
2133 .pme_code = 0x1005,
2134 .pme_short_desc = "Run cycles",
2135 .pme_long_desc = "Processor Cycles gated by the run latch",
2136 .pme_event_ids = ppc970_event_ids[PPC970_PME_PM_RUN_CYC],
2137 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_RUN_CYC]
2138 },
2140 .pme_name = "PM_LSU_LMQ_S0_VALID",
2141 .pme_code = 0x835,
2142 .pme_short_desc = "LMQ slot 0 valid",
2143 .pme_long_desc = "This signal is asserted every cycle when the first entry in the LMQ is valid. The LMQ had eight entries that are allocated FIFO",
2146 },
2148 .pme_name = "PM_LSU0_LDF",
2149 .pme_code = 0x730,
2150 .pme_short_desc = "LSU0 executed Floating Point load instruction",
2151 .pme_long_desc = "A floating point load was executed from LSU unit 0",
2152 .pme_event_ids = ppc970_event_ids[PPC970_PME_PM_LSU0_LDF],
2153 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_LSU0_LDF]
2154 },
2156 .pme_name = "PM_LSU_LRQ_S0_VALID",
2157 .pme_code = 0x822,
2158 .pme_short_desc = "LRQ slot 0 valid",
2159 .pme_long_desc = "This signal is asserted every cycle that the Load Request Queue slot zero is valid. The SRQ is 32 entries long and is allocated round-robin.",
2162 },
2164 .pme_name = "PM_PMC3_OVERFLOW",
2165 .pme_code = 0x400a,
2166 .pme_short_desc = "PMC3 Overflow",
2167 .pme_long_desc = "PMC3 Overflow",
2170 },
2172 .pme_name = "PM_MRK_IMR_RELOAD",
2173 .pme_code = 0x722,
2174 .pme_short_desc = "Marked IMR reloaded",
2175 .pme_long_desc = "A DL1 reload occured due to marked load",
2178 },
2180 .pme_name = "PM_MRK_GRP_TIMEO",
2181 .pme_code = 0x5005,
2182 .pme_short_desc = "Marked group completion timeout",
2183 .pme_long_desc = "The sampling timeout expired indicating that the previously sampled instruction is no longer in the processor",
2186 },
2188 .pme_name = "PM_FPU_FMOV_FEST",
2189 .pme_code = 0x8110,
2190 .pme_short_desc = "FPU executing FMOV or FEST instructions",
2191 .pme_long_desc = "This signal is active for one cycle when executing a move kind of instruction or one of the estimate instructions.. This could be fmr*, fneg*, fabs*, fnabs* , fres* or frsqrte* where XYZ* means XYZ or XYZ . Combined Unit 0 + Unit 1",
2194 },
2196 .pme_name = "PM_GRP_DISP_BLK_SB_CYC",
2197 .pme_code = 0x331,
2198 .pme_short_desc = "Cycles group dispatch blocked by scoreboard",
2199 .pme_long_desc = "The ISU sends a signal indicating that dispatch is blocked by scoreboard.",
2202 },
2204 .pme_name = "PM_XER_MAP_FULL_CYC",
2205 .pme_code = 0x302,
2206 .pme_short_desc = "Cycles XER mapper full",
2207 .pme_long_desc = "The ISU sends a signal indicating that the xer mapper cannot accept any more groups. Dispatch is stopped. Note: this condition indicates that a pool of mapper is full but the entire mapper may not be.",
2210 },
2212 .pme_name = "PM_ST_MISS_L1",
2213 .pme_code = 0x813,
2214 .pme_short_desc = "L1 D cache store misses",
2215 .pme_long_desc = "A store missed the dcache",
2217 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_ST_MISS_L1]
2218 },
2220 .pme_name = "PM_STOP_COMPLETION",
2221 .pme_code = 0x3001,
2222 .pme_short_desc = "Completion stopped",
2223 .pme_long_desc = "RAS Unit has signaled completion to stop",
2226 },
2228 .pme_name = "PM_MRK_GRP_CMPL",
2229 .pme_code = 0x4004,
2230 .pme_short_desc = "Marked group completed",
2231 .pme_long_desc = "A group containing a sampled instruction completed. Microcoded instructions that span multiple groups will generate this event once per group.",
2234 },
2236 .pme_name = "PM_ISLB_MISS",
2237 .pme_code = 0x701,
2238 .pme_short_desc = "Instruction SLB misses",
2239 .pme_long_desc = "A SLB miss for an instruction fetch as occurred",
2240 .pme_event_ids = ppc970_event_ids[PPC970_PME_PM_ISLB_MISS],
2241 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_ISLB_MISS]
2242 },
2244 .pme_name = "PM_SUSPENDED",
2245 .pme_code = 0x0,
2246 .pme_short_desc = "Suspended",
2247 .pme_long_desc = "Suspended",
2248 .pme_event_ids = ppc970_event_ids[PPC970_PME_PM_SUSPENDED],
2249 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_SUSPENDED]
2250 },
2251 [ PPC970_PME_PM_CYC ] = {
2252 .pme_name = "PM_CYC",
2253 .pme_code = 0x7,
2254 .pme_short_desc = "Processor cycles",
2255 .pme_long_desc = "Processor cycles",
2256 .pme_event_ids = ppc970_event_ids[PPC970_PME_PM_CYC],
2257 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_CYC]
2258 },
2260 .pme_name = "PM_LD_MISS_L1_LSU1",
2261 .pme_code = 0x816,
2262 .pme_short_desc = "LSU1 L1 D cache load misses",
2263 .pme_long_desc = "A load, executing on unit 1, missed the dcache",
2266 },
2268 .pme_name = "PM_STCX_FAIL",
2269 .pme_code = 0x721,
2270 .pme_short_desc = "STCX failed",
2271 .pme_long_desc = "A stcx (stwcx or stdcx) failed",
2272 .pme_event_ids = ppc970_event_ids[PPC970_PME_PM_STCX_FAIL],
2273 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_STCX_FAIL]
2274 },
2276 .pme_name = "PM_LSU1_SRQ_STFWD",
2277 .pme_code = 0x824,
2278 .pme_short_desc = "LSU1 SRQ store forwarded",
2279 .pme_long_desc = "Data from a store instruction was forwarded to a load on unit 1",
2282 },
2284 .pme_name = "PM_GRP_DISP",
2285 .pme_code = 0x2004,
2286 .pme_short_desc = "Group dispatches",
2287 .pme_long_desc = "A group was dispatched",
2288 .pme_event_ids = ppc970_event_ids[PPC970_PME_PM_GRP_DISP],
2289 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_GRP_DISP]
2290 },
2291 [ PPC970_PME_PM_L2_PREF ] = {
2292 .pme_name = "PM_L2_PREF",
2293 .pme_code = 0x733,
2294 .pme_short_desc = "L2 cache prefetches",
2295 .pme_long_desc = "A request to prefetch data into L2 was made",
2296 .pme_event_ids = ppc970_event_ids[PPC970_PME_PM_L2_PREF],
2297 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_L2_PREF]
2298 },
2300 .pme_name = "PM_FPU1_DENORM",
2301 .pme_code = 0x124,
2302 .pme_short_desc = "FPU1 received denormalized data",
2303 .pme_long_desc = "This signal is active for one cycle when one of the operands is denormalized.",
2305 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_FPU1_DENORM]
2306 },
2308 .pme_name = "PM_DATA_FROM_L2",
2309 .pme_code = 0x1837,
2310 .pme_short_desc = "Data loaded from L2",
2311 .pme_long_desc = "DL1 was reloaded from the local L2 due to a demand load",
2314 },
2316 .pme_name = "PM_FPU0_FPSCR",
2317 .pme_code = 0x130,
2318 .pme_short_desc = "FPU0 executed FPSCR instruction",
2319 .pme_long_desc = "This signal is active for one cycle when fp0 is executing fpscr move related instruction. This could be mtfsfi*, mtfsb0*, mtfsb1*. mffs*, mtfsf*, mcrsf* where XYZ* means XYZ, XYZs, XYZ., XYZs",
2321 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_FPU0_FPSCR]
2322 },
2324 .pme_name = "PM_MRK_DATA_FROM_L25_MOD",
2325 .pme_code = 0x393d,
2326 .pme_short_desc = "Marked data loaded from L2.5 modified",
2327 .pme_long_desc = "DL1 was reloaded with modified (M) data from the L2 of a chip on this MCM due to a marked demand load",
2330 },
2332 .pme_name = "PM_FPU0_FSQRT",
2333 .pme_code = 0x102,
2334 .pme_short_desc = "FPU0 executed FSQRT instruction",
2335 .pme_long_desc = "This signal is active for one cycle at the end of the microcode executed when fp0 is executing a square root instruction. This could be fsqrt* where XYZ* means XYZ, XYZs, XYZ., XYZs.",
2337 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_FPU0_FSQRT]
2338 },
2340 .pme_name = "PM_LD_REF_L1",
2341 .pme_code = 0x8810,
2342 .pme_short_desc = "L1 D cache load references",
2343 .pme_long_desc = "Total DL1 Load references",
2344 .pme_event_ids = ppc970_event_ids[PPC970_PME_PM_LD_REF_L1],
2345 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_LD_REF_L1]
2346 },
2348 .pme_name = "PM_MRK_L1_RELOAD_VALID",
2349 .pme_code = 0x934,
2350 .pme_short_desc = "Marked L1 reload data source valid",
2351 .pme_long_desc = "The source information is valid and is for a marked load",
2354 },
2356 .pme_name = "PM_1PLUS_PPC_CMPL",
2357 .pme_code = 0x5003,
2358 .pme_short_desc = "One or more PPC instruction completed",
2359 .pme_long_desc = "A group containing at least one PPC instruction completed. For microcoded instructions that span multiple groups, this will only occur once.",
2362 },
2364 .pme_name = "PM_INST_FROM_L1",
2365 .pme_code = 0x142d,
2366 .pme_short_desc = "Instruction fetched from L1",
2367 .pme_long_desc = "An instruction fetch group was fetched from L1. Fetch Groups can contain up to 8 instructions",
2370 },
2372 .pme_name = "PM_EE_OFF_EXT_INT",
2373 .pme_code = 0x337,
2374 .pme_short_desc = "Cycles MSR(EE) bit off and external interrupt pending",
2375 .pme_long_desc = "Cycles MSR(EE) bit off and external interrupt pending",
2378 },
2380 .pme_name = "PM_PMC6_OVERFLOW",
2381 .pme_code = 0x700a,
2382 .pme_short_desc = "PMC6 Overflow",
2383 .pme_long_desc = "PMC6 Overflow",
2386 },
2388 .pme_name = "PM_LSU_LRQ_FULL_CYC",
2389 .pme_code = 0x312,
2390 .pme_short_desc = "Cycles LRQ full",
2391 .pme_long_desc = "The ISU sends this signal when the LRQ is full.",
2394 },
2396 .pme_name = "PM_IC_PREF_INSTALL",
2397 .pme_code = 0x427,
2398 .pme_short_desc = "Instruction prefetched installed in prefetch",
2399 .pme_long_desc = "New line coming into the prefetch buffer",
2402 },
2404 .pme_name = "PM_DC_PREF_OUT_OF_STREAMS",
2405 .pme_code = 0x732,
2406 .pme_short_desc = "D cache out of streams",
2407 .pme_long_desc = "out of streams",
2410 },
2412 .pme_name = "PM_MRK_LSU1_FLUSH_SRQ",
2413 .pme_code = 0x717,
2414 .pme_short_desc = "LSU1 marked SRQ flushes",
2415 .pme_long_desc = "A marked store was flushed because younger load hits and older store that is already in the SRQ or in the same group.",
2418 },
2420 .pme_name = "PM_GCT_FULL_CYC",
2421 .pme_code = 0x300,
2422 .pme_short_desc = "Cycles GCT full",
2423 .pme_long_desc = "The ISU sends a signal indicating the gct is full. ",
2426 },
2428 .pme_name = "PM_INST_FROM_MEM",
2429 .pme_code = 0x2426,
2430 .pme_short_desc = "Instruction fetched from memory",
2431 .pme_long_desc = "Instruction fetched from memory",
2434 },
2436 .pme_name = "PM_FLUSH_LSU_BR_MPRED",
2437 .pme_code = 0x317,
2438 .pme_short_desc = "Flush caused by LSU or branch mispredict",
2439 .pme_long_desc = "Flush caused by LSU or branch mispredict",
2442 },
2444 .pme_name = "PM_FXU_BUSY",
2445 .pme_code = 0x6002,
2446 .pme_short_desc = "FXU busy",
2447 .pme_long_desc = "FXU0 and FXU1 are both busy",
2448 .pme_event_ids = ppc970_event_ids[PPC970_PME_PM_FXU_BUSY],
2449 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_FXU_BUSY]
2450 },
2452 .pme_name = "PM_ST_REF_L1_LSU1",
2453 .pme_code = 0x815,
2454 .pme_short_desc = "LSU1 L1 D cache store references",
2455 .pme_long_desc = "A store executed on unit 1",
2458 },
2460 .pme_name = "PM_MRK_LD_MISS_L1",
2461 .pme_code = 0x1720,
2462 .pme_short_desc = "Marked L1 D cache load misses",
2463 .pme_long_desc = "Marked L1 D cache load misses",
2466 },
2468 .pme_name = "PM_L1_WRITE_CYC",
2469 .pme_code = 0x434,
2470 .pme_short_desc = "Cycles writing to instruction L1",
2471 .pme_long_desc = "This signal is asserted each cycle a cache write is active.",
2474 },
2476 .pme_name = "PM_LSU_REJECT_LMQ_FULL",
2477 .pme_code = 0x2920,
2478 .pme_short_desc = "LSU reject due to LMQ full or missed data coming",
2479 .pme_long_desc = "LSU reject due to LMQ full or missed data coming",
2482 },
2483 [ PPC970_PME_PM_FPU_ALL ] = {
2484 .pme_name = "PM_FPU_ALL",
2485 .pme_code = 0x5100,
2486 .pme_short_desc = "FPU executed add",
2487 .pme_long_desc = " mult",
2488 .pme_event_ids = ppc970_event_ids[PPC970_PME_PM_FPU_ALL],
2489 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_FPU_ALL]
2490 },
2492 .pme_name = "PM_LSU_SRQ_S0_ALLOC",
2493 .pme_code = 0x825,
2494 .pme_short_desc = "SRQ slot 0 allocated",
2495 .pme_long_desc = "SRQ Slot zero was allocated",
2498 },
2500 .pme_name = "PM_INST_FROM_L25_SHR",
2501 .pme_code = 0x5426,
2502 .pme_short_desc = "Instruction fetched from L2.5 shared",
2503 .pme_long_desc = "Instruction fetched from L2.5 shared",
2506 },
2507 [ PPC970_PME_PM_GRP_MRK ] = {
2508 .pme_name = "PM_GRP_MRK",
2509 .pme_code = 0x5004,
2510 .pme_short_desc = "Group marked in IDU",
2511 .pme_long_desc = "A group was sampled (marked)",
2512 .pme_event_ids = ppc970_event_ids[PPC970_PME_PM_GRP_MRK],
2513 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_GRP_MRK]
2514 },
2516 .pme_name = "PM_BR_MPRED_CR",
2517 .pme_code = 0x432,
2518 .pme_short_desc = "Branch mispredictions due to CR bit setting",
2519 .pme_long_desc = "This signal is asserted when the branch execution unit detects a branch mispredict because the CR value is opposite of the predicted value. This signal is asserted after a branch issue event and will result in a branch redirect flush if not overridden by a flush of an older instruction.",
2521 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_BR_MPRED_CR]
2522 },
2524 .pme_name = "PM_DC_PREF_STREAM_ALLOC",
2525 .pme_code = 0x737,
2526 .pme_short_desc = "D cache new prefetch stream allocated",
2527 .pme_long_desc = "A new Prefetch Stream was allocated",
2530 },
2532 .pme_name = "PM_FPU1_FIN",
2533 .pme_code = 0x117,
2534 .pme_short_desc = "FPU1 produced a result",
2535 .pme_long_desc = "fp1 finished, produced a result. This only indicates finish, not completion. ",
2536 .pme_event_ids = ppc970_event_ids[PPC970_PME_PM_FPU1_FIN],
2537 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_FPU1_FIN]
2538 },
2540 .pme_name = "PM_LSU_REJECT_SRQ",
2541 .pme_code = 0x1920,
2542 .pme_short_desc = "LSU SRQ rejects",
2543 .pme_long_desc = "LSU SRQ rejects",
2546 },
2548 .pme_name = "PM_BR_MPRED_TA",
2549 .pme_code = 0x433,
2550 .pme_short_desc = "Branch mispredictions due to target address",
2551 .pme_long_desc = "branch miss predict due to a target address prediction. This signal will be asserted each time the branch execution unit detects an incorrect target address prediction. This signal will be asserted after a valid branch execution unit issue and will cause a branch mispredict flush unless a flush is detected from an older instruction.",
2553 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_BR_MPRED_TA]
2554 },
2556 .pme_name = "PM_CRQ_FULL_CYC",
2557 .pme_code = 0x311,
2558 .pme_short_desc = "Cycles CR issue queue full",
2559 .pme_long_desc = "The ISU sends a signal indicating that the issue queue that feeds the ifu cr unit cannot accept any more group (queue is full of groups).",
2562 },
2564 .pme_name = "PM_LD_MISS_L1",
2565 .pme_code = 0x3810,
2566 .pme_short_desc = "L1 D cache load misses",
2567 .pme_long_desc = "Total DL1 Load references that miss the DL1",
2569 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_LD_MISS_L1]
2570 },
2572 .pme_name = "PM_INST_FROM_PREF",
2573 .pme_code = 0x342d,
2574 .pme_short_desc = "Instructions fetched from prefetch",
2575 .pme_long_desc = "An instruction fetch group was fetched from the prefetch buffer. Fetch Groups can contain up to 8 instructions",
2578 },
2580 .pme_name = "PM_STCX_PASS",
2581 .pme_code = 0x725,
2582 .pme_short_desc = "Stcx passes",
2583 .pme_long_desc = "A stcx (stwcx or stdcx) instruction was successful",
2584 .pme_event_ids = ppc970_event_ids[PPC970_PME_PM_STCX_PASS],
2585 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_STCX_PASS]
2586 },
2588 .pme_name = "PM_DC_INV_L2",
2589 .pme_code = 0x817,
2590 .pme_short_desc = "L1 D cache entries invalidated from L2",
2591 .pme_long_desc = "A dcache invalidated was received from the L2 because a line in L2 was castout.",
2592 .pme_event_ids = ppc970_event_ids[PPC970_PME_PM_DC_INV_L2],
2593 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_DC_INV_L2]
2594 },
2596 .pme_name = "PM_LSU_SRQ_FULL_CYC",
2597 .pme_code = 0x313,
2598 .pme_short_desc = "Cycles SRQ full",
2599 .pme_long_desc = "The ISU sends this signal when the srq is full.",
2602 },
2604 .pme_name = "PM_LSU0_FLUSH_LRQ",
2605 .pme_code = 0x802,
2606 .pme_short_desc = "LSU0 LRQ flushes",
2607 .pme_long_desc = "A load was flushed by unit 1 because a younger load executed before an older store executed and they had overlapping data OR two loads executed out of order and they have byte overlap and there was a snoop in between to an overlapped byte.",
2610 },
2612 .pme_name = "PM_LSU_SRQ_S0_VALID",
2613 .pme_code = 0x821,
2614 .pme_short_desc = "SRQ slot 0 valid",
2615 .pme_long_desc = "This signal is asserted every cycle that the Store Request Queue slot zero is valid. The SRQ is 32 entries long and is allocated round-robin.",
2618 },
2620 .pme_name = "PM_LARX_LSU0",
2621 .pme_code = 0x727,
2622 .pme_short_desc = "Larx executed on LSU0",
2623 .pme_long_desc = "A larx (lwarx or ldarx) was executed on side 0 (there is no coresponding unit 1 event since larx instructions can only execute on unit 0)",
2624 .pme_event_ids = ppc970_event_ids[PPC970_PME_PM_LARX_LSU0],
2625 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_LARX_LSU0]
2626 },
2628 .pme_name = "PM_GCT_EMPTY_CYC",
2629 .pme_code = 0x1004,
2630 .pme_short_desc = "Cycles GCT empty",
2631 .pme_long_desc = "The Global Completion Table is completely empty",
2634 },
2636 .pme_name = "PM_FPU1_ALL",
2637 .pme_code = 0x107,
2638 .pme_short_desc = "FPU1 executed add",
2639 .pme_long_desc = " mult",
2640 .pme_event_ids = ppc970_event_ids[PPC970_PME_PM_FPU1_ALL],
2641 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_FPU1_ALL]
2642 },
2644 .pme_name = "PM_FPU1_FSQRT",
2645 .pme_code = 0x106,
2646 .pme_short_desc = "FPU1 executed FSQRT instruction",
2647 .pme_long_desc = "This signal is active for one cycle at the end of the microcode executed when fp1 is executing a square root instruction. This could be fsqrt* where XYZ* means XYZ, XYZs, XYZ., XYZs.",
2649 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_FPU1_FSQRT]
2650 },
2651 [ PPC970_PME_PM_FPU_FIN ] = {
2652 .pme_name = "PM_FPU_FIN",
2653 .pme_code = 0x4110,
2654 .pme_short_desc = "FPU produced a result",
2655 .pme_long_desc = "FPU finished, produced a result This only indicates finish, not completion. Combined Unit 0 + Unit 1",
2656 .pme_event_ids = ppc970_event_ids[PPC970_PME_PM_FPU_FIN],
2657 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_FPU_FIN]
2658 },
2660 .pme_name = "PM_LSU_SRQ_STFWD",
2661 .pme_code = 0x1820,
2662 .pme_short_desc = "SRQ store forwarded",
2663 .pme_long_desc = "Data from a store instruction was forwarded to a load",
2666 },
2668 .pme_name = "PM_MRK_LD_MISS_L1_LSU1",
2669 .pme_code = 0x724,
2670 .pme_short_desc = "LSU1 L1 D cache load misses",
2671 .pme_long_desc = "A marked load, executing on unit 1, missed the dcache",
2674 },
2676 .pme_name = "PM_FXU0_FIN",
2677 .pme_code = 0x332,
2678 .pme_short_desc = "FXU0 produced a result",
2679 .pme_long_desc = "The Fixed Point unit 0 finished an instruction and produced a result",
2680 .pme_event_ids = ppc970_event_ids[PPC970_PME_PM_FXU0_FIN],
2681 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_FXU0_FIN]
2682 },
2684 .pme_name = "PM_MRK_FPU_FIN",
2685 .pme_code = 0x7004,
2686 .pme_short_desc = "Marked instruction FPU processing finished",
2687 .pme_long_desc = "One of the Floating Point Units finished a marked instruction. Instructions that finish may not necessary complete",
2689 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_MRK_FPU_FIN]
2690 },
2692 .pme_name = "PM_PMC5_OVERFLOW",
2693 .pme_code = 0x600a,
2694 .pme_short_desc = "PMC5 Overflow",
2695 .pme_long_desc = "PMC5 Overflow",
2698 },
2700 .pme_name = "PM_SNOOP_TLBIE",
2701 .pme_code = 0x703,
2702 .pme_short_desc = "Snoop TLBIE",
2703 .pme_long_desc = "A TLB miss for a data request occurred. Requests that miss the TLB may be retried until the instruction is in the next to complete group (unless HID4 is set to allow speculative tablewalks). This may result in multiple TLB misses for the same instruction.",
2705 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_SNOOP_TLBIE]
2706 },
2708 .pme_name = "PM_FPU1_FRSP_FCONV",
2709 .pme_code = 0x115,
2710 .pme_short_desc = "FPU1 executed FRSP or FCONV instructions",
2711 .pme_long_desc = "This signal is active for one cycle when fp1 is executing frsp or convert kind of instruction. This could be frsp*, fcfid*, fcti* where XYZ* means XYZ, XYZs, XYZ., XYZs.",
2714 },
2716 .pme_name = "PM_FPU0_FDIV",
2717 .pme_code = 0x100,
2718 .pme_short_desc = "FPU0 executed FDIV instruction",
2719 .pme_long_desc = "This signal is active for one cycle at the end of the microcode executed when fp0 is executing a divide instruction. This could be fdiv, fdivs, fdiv. fdivs.",
2720 .pme_event_ids = ppc970_event_ids[PPC970_PME_PM_FPU0_FDIV],
2721 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_FPU0_FDIV]
2722 },
2724 .pme_name = "PM_LD_REF_L1_LSU1",
2725 .pme_code = 0x814,
2726 .pme_short_desc = "LSU1 L1 D cache load references",
2727 .pme_long_desc = "A load executed on unit 1",
2730 },
2731 [ PPC970_PME_PM_HV_CYC ] = {
2732 .pme_name = "PM_HV_CYC",
2733 .pme_code = 0x3004,
2734 .pme_short_desc = "Hypervisor Cycles",
2735 .pme_long_desc = "Cycles when the processor is executing in Hypervisor (MSR[HV] = 1 and MSR[PR]=0)",
2736 .pme_event_ids = ppc970_event_ids[PPC970_PME_PM_HV_CYC],
2737 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_HV_CYC]
2738 },
2740 .pme_name = "PM_LR_CTR_MAP_FULL_CYC",
2741 .pme_code = 0x306,
2742 .pme_short_desc = "Cycles LR/CTR mapper full",
2743 .pme_long_desc = "The ISU sends a signal indicating that the lr/ctr mapper cannot accept any more groups. Dispatch is stopped. Note: this condition indicates that a pool of mapper is full but the entire mapper may not be.",
2746 },
2748 .pme_name = "PM_FPU_DENORM",
2749 .pme_code = 0x1120,
2750 .pme_short_desc = "FPU received denormalized data",
2751 .pme_long_desc = "This signal is active for one cycle when one of the operands is denormalized. Combined Unit 0 + Unit 1",
2753 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_FPU_DENORM]
2754 },
2756 .pme_name = "PM_LSU0_REJECT_SRQ",
2757 .pme_code = 0x920,
2758 .pme_short_desc = "LSU0 SRQ rejects",
2759 .pme_long_desc = "LSU0 SRQ rejects",
2762 },
2764 .pme_name = "PM_LSU1_REJECT_SRQ",
2765 .pme_code = 0x924,
2766 .pme_short_desc = "LSU1 SRQ rejects",
2767 .pme_long_desc = "LSU1 SRQ rejects",
2770 },
2772 .pme_name = "PM_LSU1_DERAT_MISS",
2773 .pme_code = 0x706,
2774 .pme_short_desc = "LSU1 DERAT misses",
2775 .pme_long_desc = "A data request (load or store) from LSU Unit 1 missed the ERAT and resulted in an ERAT reload. Multiple instructions may miss the ERAT entry for the same 4K page, but only one reload will occur.",
2778 },
2780 .pme_name = "PM_IC_PREF_REQ",
2781 .pme_code = 0x426,
2782 .pme_short_desc = "Instruction prefetch requests",
2783 .pme_long_desc = "Asserted when a non-canceled prefetch is made to the cache interface unit (CIU).",
2785 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_IC_PREF_REQ]
2786 },
2788 .pme_name = "PM_MRK_LSU_FIN",
2789 .pme_code = 0x8004,
2790 .pme_short_desc = "Marked instruction LSU processing finished",
2791 .pme_long_desc = "One of the Load/Store Units finished a marked instruction. Instructions that finish may not necessary complete",
2793 .pme_group_vector = ppc970_group_vecs[PPC970_PME_PM_MRK_LSU_FIN]
2794 },
2796 .pme_name = "PM_MRK_DATA_FROM_MEM",
2797 .pme_code = 0x3937,
2798 .pme_short_desc = "Marked data loaded from memory",
2799 .pme_long_desc = "Marked data loaded from memory",
2802 },
2804 .pme_name = "PM_LSU0_FLUSH_UST",
2805 .pme_code = 0x801,
2806 .pme_short_desc = "LSU0 unaligned store flushes",
2807 .pme_long_desc = "A store was flushed from unit 0 because it was unaligned (crossed a 4k boundary)",
2810 },
2812 .pme_name = "PM_LSU_FLUSH_LRQ",
2813 .pme_code = 0x6800,
2814 .pme_short_desc = "LRQ flushes",
2815 .pme_long_desc = "A load was flushed because a younger load executed before an older store executed and they had overlapping data OR two loads executed out of order and they have byte overlap and there was a snoop in between to an overlapped byte.",
2818 },
2820 .pme_name = "PM_LSU_FLUSH_SRQ",
2821 .pme_code = 0x5800,
2822 .pme_short_desc = "SRQ flushes",
2823 .pme_long_desc = "A store was flushed because younger load hits and older store that is already in the SRQ or in the same group.",
2826 }
2827};
2828#define PPC970_PME_EVENT_COUNT 215
2829
2831 [ 0 ] = { 82, 2, 67, 30, 0, 2, 28, 29 },
2832 [ 1 ] = { 2, 2, 37, 6, 41, 37, 63, 37 },
2833 [ 2 ] = { 37, 2, 37, 6, 41, 37, 63, 37 },
2834 [ 3 ] = { 65, 64, 4, 30, 67, 65, 63, 37 },
2835 [ 4 ] = { 27, 25, 22, 22, 3, 26, 30, 22 },
2836 [ 5 ] = { 26, 26, 4, 30, 27, 27, 21, 43 },
2837 [ 6 ] = { 88, 1, 3, 29, 46, 38, 30, 4 },
2838 [ 7 ] = { 13, 21, 23, 24, 3, 37, 46, 49 },
2839 [ 8 ] = { 38, 2, 25, 27, 35, 32, 30, 4 },
2840 [ 9 ] = { 28, 84, 67, 10, 3, 37, 8, 10 },
2841 [ 10 ] = { 10, 18, 17, 21, 12, 20, 30, 4 },
2842 [ 11 ] = { 12, 20, 14, 19, 9, 17, 30, 4 },
2843 [ 12 ] = { 9, 17, 15, 20, 3, 37, 12, 18 },
2844 [ 13 ] = { 15, 23, 14, 19, 3, 37, 4, 16 },
2845 [ 14 ] = { 46, 55, 4, 5, 49, 56, 30, 4 },
2846 [ 15 ] = { 48, 57, 40, 38, 3, 37, 35, 36 },
2847 [ 16 ] = { 49, 58, 69, 65, 3, 37, 62, 5 },
2848 [ 17 ] = { 54, 63, 69, 65, 84, 2, 30, 4 },
2849 [ 18 ] = { 45, 54, 4, 5, 40, 2, 31, 4 },
2850 [ 19 ] = { 28, 65, 30, 5, 0, 37, 28, 67 },
2851 [ 20 ] = { 27, 25, 27, 22, 3, 26, 30, 22 },
2852 [ 21 ] = { 6, 41, 37, 63, 3, 37, 63, 37 },
2853 [ 22 ] = { 6, 65, 37, 63, 3, 37, 63, 37 },
2854 [ 23 ] = { 27, 25, 14, 19, 3, 27, 30, 43 },
2855 [ 24 ] = { 37, 2, 37, 1, 84, 2, 1, 2 },
2856 [ 25 ] = { 37, 2, 37, 1, 3, 84, 63, 37 },
2857 [ 26 ] = { 82, 4, 0, 2, 43, 2, 30, 2 },
2858 [ 27 ] = { 3, 37, 5, 5, 4, 3, 44, 47 },
2859 [ 28 ] = { 6, 41, 31, 5, 68, 67, 32, 34 },
2860 [ 29 ] = { 40, 39, 30, 30, 5, 2, 28, 5 },
2861 [ 30 ] = { 69, 70, 37, 49, 40, 37, 4, 37 },
2862 [ 31 ] = { 39, 36, 31, 5, 40, 2, 30, 4 },
2863 [ 32 ] = { 28, 33, 33, 30, 41, 64, 63, 4 },
2864 [ 33 ] = { 75, 83, 4, 51, 36, 73, 50, 30 },
2865 [ 34 ] = { 73, 71, 4, 50, 36, 72, 49, 60 },
2866 [ 35 ] = { 79, 2, 64, 51, 74, 78, 60, 30 },
2867 [ 36 ] = { 80, 72, 58, 60, 3, 37, 54, 58 },
2868 [ 37 ] = { 76, 74, 55, 57, 3, 37, 53, 57 },
2869 [ 38 ] = { 37, 37, 27, 26, 29, 28, 24, 4 },
2870 [ 39 ] = { 37, 2, 24, 23, 29, 28, 25, 26 },
2871 [ 40 ] = { 39, 39, 32, 0, 40, 2, 4, 30 },
2872 [ 41 ] = { 40, 39, 32, 0, 42, 39, 4, 30 }
2873};
2874
2876 [ 0 ] = {
2877 .pmg_name = "pm_slice0",
2878 .pmg_desc = "Time Slice 0",
2879 .pmg_event_ids = ppc970_group_event_ids[0],
2880 .pmg_mmcr0 = 0x000000000000051eULL,
2881 .pmg_mmcr1 = 0x000000000a46f18cULL,
2882 .pmg_mmcra = 0x0000000000002000ULL
2883 },
2884 [ 1 ] = {
2885 .pmg_name = "pm_eprof",
2886 .pmg_desc = "Group for use with eprof",
2887 .pmg_event_ids = ppc970_group_event_ids[1],
2888 .pmg_mmcr0 = 0x0000000000000f1eULL,
2889 .pmg_mmcr1 = 0x4003001005f09000ULL,
2890 .pmg_mmcra = 0x0000000000002000ULL
2891 },
2892 [ 2 ] = {
2893 .pmg_name = "pm_basic",
2894 .pmg_desc = "Basic performance indicators",
2895 .pmg_event_ids = ppc970_group_event_ids[2],
2896 .pmg_mmcr0 = 0x000000000000091eULL,
2897 .pmg_mmcr1 = 0x4003001005f09000ULL,
2898 .pmg_mmcra = 0x0000000000002000ULL
2899 },
2900 [ 3 ] = {
2901 .pmg_name = "pm_lsu",
2902 .pmg_desc = "Information on the Load Store Unit",
2903 .pmg_event_ids = ppc970_group_event_ids[3],
2904 .pmg_mmcr0 = 0x0000000000000000ULL,
2905 .pmg_mmcr1 = 0x000f00007a400000ULL,
2906 .pmg_mmcra = 0x0000000000002000ULL
2907 },
2908 [ 4 ] = {
2909 .pmg_name = "pm_fpu1",
2910 .pmg_desc = "Floating Point events",
2911 .pmg_event_ids = ppc970_group_event_ids[4],
2912 .pmg_mmcr0 = 0x0000000000000000ULL,
2913 .pmg_mmcr1 = 0x00000000001e0480ULL,
2914 .pmg_mmcra = 0x0000000000002000ULL
2915 },
2916 [ 5 ] = {
2917 .pmg_name = "pm_fpu2",
2918 .pmg_desc = "Floating Point events",
2919 .pmg_event_ids = ppc970_group_event_ids[5],
2920 .pmg_mmcr0 = 0x0000000000000000ULL,
2921 .pmg_mmcr1 = 0x000020e87a400000ULL,
2922 .pmg_mmcra = 0x0000000000002000ULL
2923 },
2924 [ 6 ] = {
2925 .pmg_name = "pm_isu_rename",
2926 .pmg_desc = "ISU Rename Pool Events",
2927 .pmg_event_ids = ppc970_group_event_ids[6],
2928 .pmg_mmcr0 = 0x0000000000001228ULL,
2929 .pmg_mmcr1 = 0x400000218e6d84bcULL,
2930 .pmg_mmcra = 0x0000000000002000ULL
2931 },
2932 [ 7 ] = {
2933 .pmg_name = "pm_isu_queues1",
2934 .pmg_desc = "ISU Rename Pool Events",
2935 .pmg_event_ids = ppc970_group_event_ids[7],
2936 .pmg_mmcr0 = 0x000000000000132eULL,
2937 .pmg_mmcr1 = 0x40000000851e994cULL,
2938 .pmg_mmcra = 0x0000000000002000ULL
2939 },
2940 [ 8 ] = {
2941 .pmg_name = "pm_isu_flow",
2942 .pmg_desc = "ISU Instruction Flow Events",
2943 .pmg_event_ids = ppc970_group_event_ids[8],
2944 .pmg_mmcr0 = 0x000000000000181eULL,
2945 .pmg_mmcr1 = 0x400000b3d7b7c4bcULL,
2946 .pmg_mmcra = 0x0000000000002000ULL
2947 },
2948 [ 9 ] = {
2949 .pmg_name = "pm_isu_work",
2950 .pmg_desc = "ISU Indicators of Work Blockage",
2951 .pmg_event_ids = ppc970_group_event_ids[9],
2952 .pmg_mmcr0 = 0x0000000000000402ULL,
2953 .pmg_mmcr1 = 0x400000050fde9d88ULL,
2954 .pmg_mmcra = 0x0000000000002000ULL
2955 },
2956 [ 10 ] = {
2957 .pmg_name = "pm_fpu3",
2958 .pmg_desc = "Floating Point events by unit",
2959 .pmg_event_ids = ppc970_group_event_ids[10],
2960 .pmg_mmcr0 = 0x0000000000001028ULL,
2961 .pmg_mmcr1 = 0x000000008d6354bcULL,
2962 .pmg_mmcra = 0x0000000000002000ULL
2963 },
2964 [ 11 ] = {
2965 .pmg_name = "pm_fpu4",
2966 .pmg_desc = "Floating Point events by unit",
2967 .pmg_event_ids = ppc970_group_event_ids[11],
2968 .pmg_mmcr0 = 0x000000000000122cULL,
2969 .pmg_mmcr1 = 0x000000009de774bcULL,
2970 .pmg_mmcra = 0x0000000000002000ULL
2971 },
2972 [ 12 ] = {
2973 .pmg_name = "pm_fpu5",
2974 .pmg_desc = "Floating Point events by unit",
2975 .pmg_event_ids = ppc970_group_event_ids[12],
2976 .pmg_mmcr0 = 0x0000000000001838ULL,
2977 .pmg_mmcr1 = 0x000000c0851e9958ULL,
2978 .pmg_mmcra = 0x0000000000002000ULL
2979 },
2980 [ 13 ] = {
2981 .pmg_name = "pm_fpu7",
2982 .pmg_desc = "Floating Point events by unit",
2983 .pmg_event_ids = ppc970_group_event_ids[13],
2984 .pmg_mmcr0 = 0x000000000000193aULL,
2985 .pmg_mmcr1 = 0x000000c89dde97e0ULL,
2986 .pmg_mmcra = 0x0000000000002000ULL
2987 },
2988 [ 14 ] = {
2989 .pmg_name = "pm_lsu_flush",
2990 .pmg_desc = "LSU Flush Events",
2991 .pmg_event_ids = ppc970_group_event_ids[14],
2992 .pmg_mmcr0 = 0x000000000000122cULL,
2993 .pmg_mmcr1 = 0x000c00007be774bcULL,
2994 .pmg_mmcra = 0x0000000000002000ULL
2995 },
2996 [ 15 ] = {
2997 .pmg_name = "pm_lsu_load1",
2998 .pmg_desc = "LSU Load Events",
2999 .pmg_event_ids = ppc970_group_event_ids[15],
3000 .pmg_mmcr0 = 0x0000000000001028ULL,
3001 .pmg_mmcr1 = 0x000f0000851e9958ULL,
3002 .pmg_mmcra = 0x0000000000002000ULL
3003 },
3004 [ 16 ] = {
3005 .pmg_name = "pm_lsu_store1",
3006 .pmg_desc = "LSU Store Events",
3007 .pmg_event_ids = ppc970_group_event_ids[16],
3008 .pmg_mmcr0 = 0x000000000000112aULL,
3009 .pmg_mmcr1 = 0x000f00008d5e99dcULL,
3010 .pmg_mmcra = 0x0000000000002000ULL
3011 },
3012 [ 17 ] = {
3013 .pmg_name = "pm_lsu_store2",
3014 .pmg_desc = "LSU Store Events",
3015 .pmg_event_ids = ppc970_group_event_ids[17],
3016 .pmg_mmcr0 = 0x0000000000001838ULL,
3017 .pmg_mmcr1 = 0x0003c0d08d76f4bcULL,
3018 .pmg_mmcra = 0x0000000000002000ULL
3019 },
3020 [ 18 ] = {
3021 .pmg_name = "pm_lsu7",
3022 .pmg_desc = "Information on the Load Store Unit",
3023 .pmg_event_ids = ppc970_group_event_ids[18],
3024 .pmg_mmcr0 = 0x000000000000122cULL,
3025 .pmg_mmcr1 = 0x000830047bd2fe3cULL,
3026 .pmg_mmcra = 0x0000000000002000ULL
3027 },
3028 [ 19 ] = {
3029 .pmg_name = "pm_misc",
3030 .pmg_desc = "Misc Events for testing",
3031 .pmg_event_ids = ppc970_group_event_ids[19],
3032 .pmg_mmcr0 = 0x0000000000000404ULL,
3033 .pmg_mmcr1 = 0x0000000023c69194ULL,
3034 .pmg_mmcra = 0x0000000000002000ULL
3035 },
3036 [ 20 ] = {
3037 .pmg_name = "pm_pe_bench1",
3038 .pmg_desc = "PE Benchmarker group for FP analysis",
3039 .pmg_event_ids = ppc970_group_event_ids[20],
3040 .pmg_mmcr0 = 0x0000000000000000ULL,
3041 .pmg_mmcr1 = 0x10001002001e0480ULL,
3042 .pmg_mmcra = 0x0000000000002000ULL
3043 },
3044 [ 21 ] = {
3045 .pmg_name = "pm_pe_bench4",
3046 .pmg_desc = "PE Benchmarker group for L1 and TLB",
3047 .pmg_event_ids = ppc970_group_event_ids[21],
3048 .pmg_mmcr0 = 0x0000000000001420ULL,
3049 .pmg_mmcr1 = 0x000b000004de9000ULL,
3050 .pmg_mmcra = 0x0000000000002000ULL
3051 },
3052 [ 22 ] = {
3053 .pmg_name = "pm_hpmcount1",
3054 .pmg_desc = "Hpmcount group for L1 and TLB behavior",
3055 .pmg_event_ids = ppc970_group_event_ids[22],
3056 .pmg_mmcr0 = 0x0000000000001404ULL,
3057 .pmg_mmcr1 = 0x000b000004de9000ULL,
3058 .pmg_mmcra = 0x0000000000002000ULL
3059 },
3060 [ 23 ] = {
3061 .pmg_name = "pm_hpmcount2",
3062 .pmg_desc = "Hpmcount group for computation",
3063 .pmg_event_ids = ppc970_group_event_ids[23],
3064 .pmg_mmcr0 = 0x0000000000000000ULL,
3065 .pmg_mmcr1 = 0x000020289dde0480ULL,
3066 .pmg_mmcra = 0x0000000000002000ULL
3067 },
3068 [ 24 ] = {
3069 .pmg_name = "pm_l1andbr",
3070 .pmg_desc = "L1 misses and branch misspredict analysis",
3071 .pmg_event_ids = ppc970_group_event_ids[24],
3072 .pmg_mmcr0 = 0x000000000000091eULL,
3073 .pmg_mmcr1 = 0x8003c01d0636fce8ULL,
3074 .pmg_mmcra = 0x0000000000002000ULL
3075 },
3076 [ 25 ] = {
3077 .pmg_name = "Instruction mix: loads",
3078 .pmg_desc = " stores and branches",
3079 .pmg_event_ids = ppc970_group_event_ids[25],
3080 .pmg_mmcr0 = 0x000000000000091eULL,
3081 .pmg_mmcr1 = 0x8003c021061fb000ULL,
3082 .pmg_mmcra = 0x0000000000002000ULL
3083 },
3084 [ 26 ] = {
3085 .pmg_name = "pm_branch",
3086 .pmg_desc = "SLB and branch misspredict analysis",
3087 .pmg_event_ids = ppc970_group_event_ids[26],
3088 .pmg_mmcr0 = 0x000000000000052aULL,
3089 .pmg_mmcr1 = 0x8008000bc662f4e8ULL,
3090 .pmg_mmcra = 0x0000000000002000ULL
3091 },
3092 [ 27 ] = {
3093 .pmg_name = "pm_data",
3094 .pmg_desc = "data source and LMQ",
3095 .pmg_event_ids = ppc970_group_event_ids[27],
3096 .pmg_mmcr0 = 0x0000000000000712ULL,
3097 .pmg_mmcr1 = 0x0000300e3bce7f74ULL,
3098 .pmg_mmcra = 0x0000000000002000ULL
3099 },
3100 [ 28 ] = {
3101 .pmg_name = "pm_tlb",
3102 .pmg_desc = "TLB and LRQ plus data prefetch",
3103 .pmg_event_ids = ppc970_group_event_ids[28],
3104 .pmg_mmcr0 = 0x0000000000001420ULL,
3105 .pmg_mmcr1 = 0x0008e03c4bfdacecULL,
3106 .pmg_mmcra = 0x0000000000002000ULL
3107 },
3108 [ 29 ] = {
3109 .pmg_name = "pm_isource",
3110 .pmg_desc = "inst source and tablewalk",
3111 .pmg_event_ids = ppc970_group_event_ids[29],
3112 .pmg_mmcr0 = 0x000000000000060cULL,
3113 .pmg_mmcr1 = 0x800b00c0226ef1dcULL,
3114 .pmg_mmcra = 0x0000000000002000ULL
3115 },
3116 [ 30 ] = {
3117 .pmg_name = "pm_sync",
3118 .pmg_desc = "Sync and SRQ",
3119 .pmg_event_ids = ppc970_group_event_ids[30],
3120 .pmg_mmcr0 = 0x0000000000001d32ULL,
3121 .pmg_mmcr1 = 0x0003e0c107529780ULL,
3122 .pmg_mmcra = 0x0000000000002000ULL
3123 },
3124 [ 31 ] = {
3125 .pmg_name = "pm_ierat",
3126 .pmg_desc = "IERAT",
3127 .pmg_event_ids = ppc970_group_event_ids[31],
3128 .pmg_mmcr0 = 0x0000000000000d3eULL,
3129 .pmg_mmcr1 = 0x800000c04bd2f4bcULL,
3130 .pmg_mmcra = 0x0000000000002000ULL
3131 },
3132 [ 32 ] = {
3133 .pmg_name = "pm_derat",
3134 .pmg_desc = "DERAT",
3135 .pmg_event_ids = ppc970_group_event_ids[32],
3136 .pmg_mmcr0 = 0x0000000000000436ULL,
3137 .pmg_mmcr1 = 0x100b7052e274003cULL,
3138 .pmg_mmcra = 0x0000000000002000ULL
3139 },
3140 [ 33 ] = {
3141 .pmg_name = "pm_mark1",
3142 .pmg_desc = "Information on marked instructions",
3143 .pmg_event_ids = ppc970_group_event_ids[33],
3144 .pmg_mmcr0 = 0x0000000000000006ULL,
3145 .pmg_mmcr1 = 0x00008080790852a4ULL,
3146 .pmg_mmcra = 0x0000000000002001ULL
3147 },
3148 [ 34 ] = {
3149 .pmg_name = "pm_mark2",
3150 .pmg_desc = "Marked Instructions Processing Flow",
3151 .pmg_event_ids = ppc970_group_event_ids[34],
3152 .pmg_mmcr0 = 0x000000000000020aULL,
3153 .pmg_mmcr1 = 0x0000000079484210ULL,
3154 .pmg_mmcra = 0x0000000000002001ULL
3155 },
3156 [ 35 ] = {
3157 .pmg_name = "pm_mark3",
3158 .pmg_desc = "Marked Stores Processing Flow",
3159 .pmg_event_ids = ppc970_group_event_ids[35],
3160 .pmg_mmcr0 = 0x000000000000031eULL,
3161 .pmg_mmcr1 = 0x00203004190a3f24ULL,
3162 .pmg_mmcra = 0x0000000000002001ULL
3163 },
3164 [ 36 ] = {
3165 .pmg_name = "pm_lsu_mark1",
3166 .pmg_desc = "Load Store Unit Marked Events",
3167 .pmg_event_ids = ppc970_group_event_ids[36],
3168 .pmg_mmcr0 = 0x0000000000001b34ULL,
3169 .pmg_mmcr1 = 0x000280c08d5e9850ULL,
3170 .pmg_mmcra = 0x0000000000002001ULL
3171 },
3172 [ 37 ] = {
3173 .pmg_name = "pm_lsu_mark2",
3174 .pmg_desc = "Load Store Unit Marked Events",
3175 .pmg_event_ids = ppc970_group_event_ids[37],
3176 .pmg_mmcr0 = 0x0000000000001838ULL,
3177 .pmg_mmcr1 = 0x000280c0959e99dcULL,
3178 .pmg_mmcra = 0x0000000000002001ULL
3179 },
3180 [ 38 ] = {
3181 .pmg_name = "pm_fxu1",
3182 .pmg_desc = "Fixed Point events by unit",
3183 .pmg_event_ids = ppc970_group_event_ids[38],
3184 .pmg_mmcr0 = 0x0000000000000912ULL,
3185 .pmg_mmcr1 = 0x100010020084213cULL,
3186 .pmg_mmcra = 0x0000000000002000ULL
3187 },
3188 [ 39 ] = {
3189 .pmg_name = "pm_fxu2",
3190 .pmg_desc = "Fixed Point events by unit",
3191 .pmg_event_ids = ppc970_group_event_ids[39],
3192 .pmg_mmcr0 = 0x000000000000091eULL,
3193 .pmg_mmcr1 = 0x4000000ca4042d78ULL,
3194 .pmg_mmcra = 0x0000000000002000ULL
3195 },
3196 [ 40 ] = {
3197 .pmg_name = "pm_ifu",
3198 .pmg_desc = "Instruction Fetch Unit events",
3199 .pmg_event_ids = ppc970_group_event_ids[40],
3200 .pmg_mmcr0 = 0x0000000000000d0cULL,
3201 .pmg_mmcr1 = 0x800000c06b52f7a4ULL,
3202 .pmg_mmcra = 0x0000000000002000ULL
3203 },
3204 [ 41 ] = {
3205 .pmg_name = "pm_L1_icm",
3206 .pmg_desc = " Level 1 instruction cache misses",
3207 .pmg_event_ids = ppc970_group_event_ids[41],
3208 .pmg_mmcr0 = 0x000000000000060cULL,
3209 .pmg_mmcr1 = 0x800000f06b4c67a4ULL,
3210 .pmg_mmcra = 0x0000000000002000ULL
3211 }
3212};
3213
3214#endif
3215
#define PPC970_PME_PM_FPU1_DENORM
#define PPC970_PME_PM_CYC
#define PPC970_PME_PM_LSU0_FLUSH_UST
static const unsigned long long ppc970_group_vecs[][PPC970_NUM_GROUP_VEC]
#define PPC970_PME_PM_LSU_FLUSH_ULD
#define PPC970_PME_PM_GRP_DISP_VALID
#define PPC970_PME_PM_FXU_BUSY
#define PPC970_PME_PM_L1_PREF
#define PPC970_PME_PM_FPU_STF
#define PPC970_PME_PM_GRP_DISP_SUCCESS
#define PPC970_PME_PM_LSU1_FLUSH_LRQ
#define PPC970_PME_PM_FPU_FSQRT
#define PPC970_PME_PM_FPU0_ALL
#define PPC970_PME_PM_FPU_ALL
static const pme_power_entry_t ppc970_pe[]
#define PPC970_PME_PM_MRK_DATA_FROM_L25_SHR
#define PPC970_PME_PM_MRK_LSU0_FLUSH_LRQ
#define PPC970_PME_PM_FPU1_FIN
#define PPC970_PME_PM_LSU1_FLUSH_UST
#define PPC970_PME_PM_MRK_LD_MISS_L1
#define PPC970_PME_PM_PMC1_OVERFLOW
#define PPC970_PME_PM_LSU_DERAT_MISS
#define PPC970_PME_PM_FXU_FIN
#define PPC970_PME_PM_LARX_LSU0
#define PPC970_PME_PM_PMC5_OVERFLOW
#define PPC970_PME_PM_FPU1_STALL3
#define PPC970_PME_PM_GRP_BR_REDIR
#define PPC970_PME_PM_LSU1_REJECT_ERAT_MISS
#define PPC970_PME_PM_LSU_SRQ_S0_VALID
#define PPC970_PME_PM_FPU0_FSQRT
#define PPC970_PME_PM_LSU1_DERAT_MISS
#define PPC970_PME_PM_INST_FROM_L25_MOD
#define PPC970_PME_PM_TB_BIT_TRANS
#define PPC970_PME_PM_MRK_LSU0_FLUSH_UST
#define PPC970_PME_PM_GCT_FULL_CYC
#define PPC970_PME_PM_GCT_EMPTY_CYC
#define PPC970_PME_PM_MRK_LSU_FIN
#define PPC970_PME_PM_FXU0_FIN
#define PPC970_PME_PM_DTLB_MISS
#define PPC970_PME_PM_LSU_REJECT_SRQ
#define PPC970_PME_PM_LSU1_SRQ_STFWD
#define PPC970_PME_PM_FPU1_FMA
#define PPC970_PME_PM_LSU_LMQ_LHR_MERGE
#define PPC970_PME_PM_LSU_SRQ_S0_ALLOC
#define PPC970_PME_PM_LD_REF_L1_LSU1
#define PPC970_PME_PM_FPU1_FDIV
#define PPC970_PME_PM_IERAT_XLATE_WR
#define PPC970_PME_PM_IC_PREF_REQ
#define PPC970_PME_PM_FPU1_FULL_CYC
#define PPC970_PME_PM_MRK_GRP_ISSUED
#define PPC970_PME_PM_FPU_FIN
#define PPC970_PME_PM_ST_MISS_L1
#define PPC970_PME_PM_MRK_LSU1_FLUSH_LRQ
#define PPC970_PME_PM_FPU1_FRSP_FCONV
#define PPC970_PME_PM_LSU_FLUSH
#define PPC970_PME_PM_STCX_FAIL
#define PPC970_PME_PM_GRP_DISP
#define PPC970_PME_PM_FPU_FRSP_FCONV
#define PPC970_PME_PM_MRK_DATA_FROM_L2
#define PPC970_PME_PM_MRK_GRP_TIMEO
#define PPC970_PME_PM_INST_DISP
#define PPC970_PME_PM_MRK_LSU0_FLUSH_ULD
#define PPC970_PME_PM_BR_MPRED_CR
#define PPC970_PME_PM_MRK_DATA_FROM_MEM
#define PPC970_PME_PM_FPU_DENORM
#define PPC970_PME_PM_FXU1_BUSY_FXU0_IDLE
#define PPC970_PME_PM_DATA_FROM_L25_MOD
#define PPC970_PME_PM_LSU0_REJECT_SRQ
#define PPC970_PME_PM_FPU1_FEST
#define PPC970_PME_PM_INST_FROM_MEM
#define PPC970_PME_PM_MRK_GRP_DISP
#define PPC970_PME_PM_MRK_LSU1_FLUSH_UST
static const pmg_power_group_t ppc970_groups[]
#define PPC970_PME_PM_DATA_FROM_L25_SHR
#define PPC970_PME_PM_MRK_IMR_RELOAD
#define PPC970_PME_PM_MRK_BRU_FIN
#define PPC970_PME_PM_MRK_CRU_FIN
#define PPC970_PME_PM_L2_PREF
#define PPC970_PME_PM_MRK_DATA_FROM_L25_MOD
#define PPC970_PME_PM_LSU0_FLUSH_SRQ
#define PPC970_PME_PM_LSU_SRQ_SYNC_CYC
#define PPC970_PME_PM_FPU_FMOV_FEST
#define PPC970_PME_PM_LSU1_REJECT_RELOAD_CDF
static const int ppc970_event_ids[][PPC970_NUM_EVENT_COUNTERS]
#define PPC970_PME_PM_MRK_LSU0_FLUSH_SRQ
#define PPC970_PME_PM_GPR_MAP_FULL_CYC
#define PPC970_PME_PM_FPU0_STALL3
#define PPC970_PME_PM_FXU1_FIN
#define PPC970_PME_PM_MRK_LD_MISS_L1_LSU1
#define PPC970_PME_PM_FPU0_FMA
#define PPC970_PME_PM_PMC8_OVERFLOW
#define PPC970_PME_PM_RUN_CYC
#define PPC970_PME_PM_LSU_LDF
#define PPC970_PME_PM_BRQ_FULL_CYC
#define PPC970_PME_PM_FXU0_BUSY_FXU1_IDLE
#define PPC970_PME_PM_FPU1_ALL
#define PPC970_PME_PM_FPU0_FPSCR
#define PPC970_PME_PM_FPU0_FMOV_FEST
#define PPC970_PME_PM_LD_MISS_L1_LSU1
#define PPC970_PME_PM_L1_WRITE_CYC
#define PPC970_PME_PM_LSU_LMQ_S0_VALID
#define PPC970_PME_PM_INST_FROM_L25_SHR
#define PPC970_PME_PM_MRK_L1_RELOAD_VALID
#define PPC970_PME_PM_LD_REF_L1_LSU0
#define PPC970_PME_PM_LSU0_REJECT_RELOAD_CDF
#define PPC970_PME_PM_LSU_REJECT_LMQ_FULL
static const int ppc970_group_event_ids[][PPC970_NUM_EVENT_COUNTERS]
#define PPC970_PME_PM_LD_REF_L1
#define PPC970_PME_PM_FLUSH_LSU_BR_MPRED
#define PPC970_PME_PM_DATA_FROM_L2
#define PPC970_PME_PM_MRK_ST_CMPL_INT
#define PPC970_PME_PM_FPU1_STF
#define PPC970_PME_PM_GRP_CMPL
#define PPC970_PME_PM_FPU0_SINGLE
#define PPC970_PME_PM_ST_REF_L1_LSU0
#define PPC970_PME_PM_FPU0_FDIV
#define PPC970_PME_PM_DATA_TABLEWALK_CYC
#define PPC970_PME_PM_LSU1_LDF
#define PPC970_PME_PM_WORK_HELD
#define PPC970_PME_PM_LSU_FLUSH_LRQ
#define PPC970_PME_PM_SNOOP_TLBIE
#define PPC970_PME_PM_BR_MPRED_TA
#define PPC970_PME_PM_FPU0_FIN
#define PPC970_PME_PM_FLUSH_BR_MPRED
#define PPC970_PME_PM_STCX_PASS
#define PPC970_PME_PM_DC_INV_L2
#define PPC970_PME_PM_FPU_SINGLE
#define PPC970_PME_PM_LSU_LMQ_S0_ALLOC
#define PPC970_PME_PM_FPU0_FEST
#define PPC970_PME_PM_FPU_FDIV
#define PPC970_PME_PM_MRK_FXU_FIN
#define PPC970_PME_PM_LSU_LMQ_SRQ_EMPTY_CYC
#define PPC970_PME_PM_XER_MAP_FULL_CYC
#define PPC970_PME_PM_EE_OFF_EXT_INT
#define PPC970_PME_PM_HV_CYC
#define PPC970_PME_PM_GRP_BR_MPRED
#define PPC970_PME_PM_LSU0_FLUSH_LRQ
#define PPC970_PME_PM_INST_FROM_PREF
#define PPC970_PME_PM_MRK_STCX_FAIL
#define PPC970_PME_PM_FPU_FEST
#define PPC970_PME_PM_LSU_REJECT_RELOAD_CDF
#define PPC970_PME_PM_FPU1_FSQRT
#define PPC970_PME_PM_LSU_SRQ_STFWD
#define PPC970_PME_PM_PMC3_OVERFLOW
#define PPC970_PME_PM_PMC7_OVERFLOW
#define PPC970_PME_PM_STOP_COMPLETION
#define PPC970_PME_PM_GRP_DISP_BLK_SB_CYC
#define PPC970_PME_PM_ST_REF_L1
#define PPC970_PME_PM_MRK_ST_MISS_L1
#define PPC970_PME_PM_FPU0_FULL_CYC
#define PPC970_PME_PM_IC_PREF_INSTALL
#define PPC970_PME_PM_FPU0_FRSP_FCONV
#define PPC970_PME_PM_FPU1_SINGLE
#define PPC970_PME_PM_1PLUS_PPC_CMPL
#define PPC970_PME_PM_LD_MISS_L1
#define PPC970_PME_PM_MRK_FPU_FIN
#define PPC970_PME_PM_GCT_EMPTY_SRQ_FULL
#define PPC970_PME_PM_L1_DCACHE_RELOAD_VALID
#define PPC970_PME_PM_GRP_DISP_REJECT
#define PPC970_PME_PM_SUSPENDED
#define PPC970_PME_PM_INST_CMPL
#define PPC970_PME_PM_LSU1_FLUSH_ULD
#define PPC970_PME_PM_LSU_LMQ_FULL_CYC
#define PPC970_PME_PM_GRP_MRK
#define PPC970_PME_PM_MRK_LSU1_FLUSH_ULD
#define PPC970_PME_PM_MRK_INST_FIN
#define PPC970_PME_PM_FXLS0_FULL_CYC
#define PPC970_PME_PM_ISLB_MISS
#define PPC970_PME_PM_MRK_ST_CMPL
#define PPC970_PME_PM_ST_REF_L1_LSU1
#define PPC970_PME_PM_INST_FROM_L2
#define PPC970_PME_PM_MRK_LSU_SRQ_INST_VALID
#define PPC970_PME_PM_LSU0_FLUSH_ULD
#define PPC970_PME_PM_FXLS1_FULL_CYC
#define PPC970_PME_PM_LD_MISS_L1_LSU0
#define PPC970_PME_PM_FPU0_DENORM
#define PPC970_PME_PM_LSU_LRQ_S0_ALLOC
#define PPC970_PME_PM_THRESH_TIMEO
#define PPC970_PME_PM_LSU1_FLUSH_SRQ
#define PPC970_PME_PM_LSU_FLUSH_SRQ
#define PPC970_PME_PM_MRK_ST_GPS
#define PPC970_PME_PM_DATA_FROM_MEM
#define PPC970_PME_PM_DC_PREF_STREAM_ALLOC
#define PPC970_PME_PM_LSU0_REJECT_LMQ_FULL
#define PPC970_PME_PM_MRK_LSU1_FLUSH_SRQ
#define PPC970_PME_PM_FPU_STALL3
#define PPC970_PME_PM_0INST_FETCH
#define PPC970_PME_PM_LSU0_LDF
#define PPC970_PME_PM_FPU_FMA
#define PPC970_PME_PM_LR_CTR_MAP_FULL_CYC
#define PPC970_PME_PM_EXT_INT
#define PPC970_PME_PM_LSU_LRQ_S0_VALID
#define PPC970_PME_PM_LSU_REJECT_ERAT_MISS
#define PPC970_PME_PM_INST_FROM_L1
#define PPC970_PME_PM_LSU_SRQ_FULL_CYC
#define PPC970_PME_PM_MRK_GRP_CMPL
#define PPC970_PME_PM_PMC4_OVERFLOW
#define PPC970_PME_PM_MRK_LD_MISS_L1_LSU0
#define PPC970_PME_PM_LSU0_DERAT_MISS
#define PPC970_PME_PM_DC_PREF_OUT_OF_STREAMS
#define PPC970_PME_PM_LSU0_REJECT_ERAT_MISS
#define PPC970_PME_PM_PMC6_OVERFLOW
#define PPC970_PME_PM_MRK_VMX_FIN
#define PPC970_PME_PM_LSU_FLUSH_UST
#define PPC970_PME_PM_FPU1_FMOV_FEST
#define PPC970_PME_PM_CR_MAP_FULL_CYC
#define PPC970_PME_PM_LSU_LRQ_FULL_CYC
#define PPC970_PME_PM_LSU0_SRQ_STFWD
#define PPC970_PME_PM_ITLB_MISS
#define PPC970_PME_PM_EE_OFF
#define PPC970_PME_PM_DSLB_MISS
#define PPC970_PME_PM_BR_ISSUED
#define PPC970_PME_PM_FPR_MAP_FULL_CYC
#define PPC970_PME_PM_FXU_IDLE
#define PPC970_PME_PM_LSU_SRQ_EMPTY_CYC
#define PPC970_PME_PM_PMC2_OVERFLOW
#define PPC970_PME_PM_LSU1_REJECT_SRQ
#define PPC970_PME_PM_FPU0_STF
#define PPC970_PME_PM_CRQ_FULL_CYC
#define PPC970_PME_PM_LSU1_REJECT_LMQ_FULL
#define PPC970_NUM_EVENT_COUNTERS
#define PPC970_NUM_GROUP_VEC
char * pme_name