PAPI 7.1.0.0
Loading...
Searching...
No Matches
ultra4plus_events.h
Go to the documentation of this file.
2 /* These two must always be first. */
3 { .pme_name = "Cycle_cnt",
4 .pme_desc = "Accumulated cycles",
5 .pme_ctrl = PME_CTRL_S0 | PME_CTRL_S1,
6 .pme_val = 0x0,
7 },
8 { .pme_name = "Instr_cnt",
9 .pme_desc = "Number of instructions completed",
10 .pme_ctrl = PME_CTRL_S0 | PME_CTRL_S1,
11 .pme_val = 0x1,
12 },
13
14 /* PIC0 UltraSPARC-IV+ events */
15 {
16 .pme_name = "Dispatch0_IC_miss",
17 .pme_desc = "I-buffer is empty from I-Cache miss",
18 .pme_ctrl = PME_CTRL_S0,
19 .pme_val = 0x2,
20 },
21 {
22 .pme_name = "IU_stat_jmp_correct_pred",
23 .pme_desc = "Retired non-annulled register indirect jumps predicted correctly",
24 .pme_ctrl = PME_CTRL_S0,
25 .pme_val = 0x3,
26 },
27 {
28 .pme_name = "Dispatch0_2nd_br",
29 .pme_desc = "Stall cycles due to having two branch instructions line-up in one 4-instruction group causing the second branch in the group to be re-fetched, delaying it's entrance into the I-buffer",
30 .pme_ctrl = PME_CTRL_S0,
31 .pme_val = 0x4,
32 },
33 {
34 .pme_name = "Rstall_storeQ",
35 .pme_desc = "R-stage stall for a store instruction which is the next instruction to be executed, but it stailled due to the store queue being full",
36 .pme_ctrl = PME_CTRL_S0,
37 .pme_val = 0x5,
38 },
39 {
40 .pme_name = "Rstall_IU_use",
41 .pme_desc = "R-stage stall for an event that the next instruction to be executed depends on the result of a preceeding integer instruction in the pipeline that is not yet available",
42 .pme_ctrl = PME_CTRL_S0,
43 .pme_val = 0x6,
44 },
45 {
46 .pme_name = "IU_stat_ret_correct_pred",
47 .pme_desc = "Retired non-annulled returns predicted correctly",
48 .pme_ctrl = PME_CTRL_S0,
49 .pme_val = 0x7,
50 },
51 {
52 .pme_name = "IC_ref",
53 .pme_desc = "I-cache refrences",
54 .pme_ctrl = PME_CTRL_S0,
55 .pme_val = 0x8,
56 },
57 {
58 .pme_name = "DC_rd",
59 .pme_desc = "D-cache read references (including accesses that subsequently trap)",
60 .pme_ctrl = PME_CTRL_S0,
61 .pme_val = 0x9,
62 },
63 {
64 .pme_name = "Rstall_FP_use",
65 .pme_desc = "R-stage stall for an event that the next instruction to be executed depends on the result of a preceeding floating-point instruction in the pipeline that is not yet available",
66 .pme_ctrl = PME_CTRL_S0,
67 .pme_val = 0xa,
68 },
69 {
70 .pme_name = "SW_pf_instr",
71 .pme_desc = "Retired SW prefetch instructions",
72 .pme_ctrl = PME_CTRL_S0,
73 .pme_val = 0xb,
74 },
75 {
76 .pme_name = "L2_ref",
77 .pme_desc = "L2-cache references",
78 .pme_ctrl = PME_CTRL_S0,
79 .pme_val = 0xc,
80 },
81 {
82 .pme_name = "L2_write_hit_RTO",
83 .pme_desc = "L2-cache exclusive requests that hit L2-cache in S, O, or Os state and thus, do a read-to-own bus transaction",
84 .pme_ctrl = PME_CTRL_S0,
85 .pme_val = 0xd,
86 },
87 {
88 .pme_name = "L2_snoop_inv_sh",
89 .pme_desc = "L2 cache lines that were written back to the L3 cache due to requests from both cores",
90 .pme_ctrl = PME_CTRL_S0,
91 .pme_val = 0xe,
92 },
93 {
94 .pme_name = "L2_rd_miss",
95 .pme_desc = "L2-cache miss events (including atomics) from D-cache events",
96 .pme_ctrl = PME_CTRL_S0,
97 .pme_val = 0xf,
98 },
99 {
100 .pme_name = "PC_rd",
101 .pme_desc = "P-cache cacheable loads",
102 .pme_ctrl = PME_CTRL_S0,
103 .pme_val = 0x10,
104 },
105 {
106 .pme_name = "SI_snoop_sh",
107 .pme_desc = "Counts snoops from remote processor(s) including RTS, RTSR, RTO, RTOR, RS, RSR, RTSM, and WS",
108 .pme_ctrl = PME_CTRL_S0,
109 .pme_val = 0x11,
110 },
111 {
112 .pme_name = "SI_ciq_flow_sh",
113 .pme_desc = "Counts system clock cycles when the flow control (PauseOut) signal is asserted",
114 .pme_ctrl = PME_CTRL_S0,
115 .pme_val = 0x12,
116 },
117 {
118 .pme_name = "Re_DC_miss",
119 .pme_desc = "Stall due to loads that miss D-cache and get recirculated",
120 .pme_ctrl = PME_CTRL_S0,
121 .pme_val = 0x13,
122 },
123 {
124 .pme_name = "SW_count_NOP0",
125 .pme_desc = "Retired, non-annulled special software NOP instructions (which is equivalent to 'sethi %hi(0xfc000), %g0' instruction)",
126 .pme_ctrl = PME_CTRL_S0,
127 .pme_val = 0x14,
128 },
129 { .pme_name = "IU_Stat_Br_miss_taken",
130 .pme_desc = "Retired branches that were predicted to be taken, but in fact were not taken",
131 .pme_ctrl = PME_CTRL_S0,
132 .pme_val = 0x15,
133 },
134 { .pme_name = "IU_Stat_Br_Count_taken",
135 .pme_desc = "Retired taken branches",
136 .pme_ctrl = PME_CTRL_S0,
137 .pme_val = 0x16,
138 },
139 { .pme_name = "HW_pf_exec",
140 .pme_desc = "Hardware prefetches enqueued in the prefetch queue",
141 .pme_ctrl = PME_CTRL_S0,
142 .pme_val = 0x17,
143 },
144 {
145 .pme_name = "FA_pipe_completion",
146 .pme_desc = "Instructions that complete execution on the FPG ALU pipelines",
147 .pme_ctrl = PME_CTRL_S0,
148 .pme_val = 0x18,
149 },
150 {
151 .pme_name = "SSM_L3_wb_remote",
152 .pme_desc = "L3 cache line victimizations from this core which generate R_WB transactions to non-LPA (remote physical address) regions",
153 .pme_ctrl = PME_CTRL_S0,
154 .pme_val = 0x19,
155 },
156 {
157 .pme_name = "SSM_L3_miss_local",
158 .pme_desc = "L3 cache misses to LPA (local physical address) from this core which generate an RTS, RTO, or RS transaction",
159 .pme_ctrl = PME_CTRL_S0,
160 .pme_val = 0x1a,
161 },
162 {
163 .pme_name = "SSM_L3_miss_mtag_remote",
164 .pme_desc = "L3 cache misses to LPA (local physical address) from this core which generate retry (R_*) transactions including R_RTS, R_RTO, and R_RS",
165 .pme_ctrl = PME_CTRL_S0,
166 .pme_val = 0x1b,
167 },
168 {
169 .pme_name = "SW_pf_str_trapped",
170 .pme_desc = "Strong software prefetch instructions trapping due to TLB miss",
171 .pme_ctrl = PME_CTRL_S0,
172 .pme_val = 0x1c,
173 },
174 {
175 .pme_name = "SW_pf_PC_installed",
176 .pme_desc = "Software prefetch instructions that installed lines in the P-cache",
177 .pme_ctrl = PME_CTRL_S0,
178 .pme_val = 0x1d,
179 },
180 {
181 .pme_name = "IPB_to_IC_fill",
182 .pme_desc = "I-cache filles from the instruction prefetch buffer",
183 .pme_ctrl = PME_CTRL_S0,
184 .pme_val = 0x1e,
185 },
186 {
187 .pme_name = "L2_write_miss",
188 .pme_desc = "L2-cache misses from this core by cacheable store requests",
189 .pme_ctrl = PME_CTRL_S0,
190 .pme_val = 0x1f,
191 },
192 {
193 .pme_name = "MC_reads_0_sh",
194 .pme_desc = "Read requests completed to memory bank 0",
195 .pme_ctrl = PME_CTRL_S0,
196 .pme_val = 0x20,
197 },
198 {
199 .pme_name = "MC_reads_1_sh",
200 .pme_desc = "Read requests completed to memory bank 1",
201 .pme_ctrl = PME_CTRL_S0,
202 .pme_val = 0x21,
203 },
204 {
205 .pme_name = "MC_reads_2_sh",
206 .pme_desc = "Read requests completed to memory bank 2",
207 .pme_ctrl = PME_CTRL_S0,
208 .pme_val = 0x22,
209 },
210 {
211 .pme_name = "MC_reads_3_sh",
212 .pme_desc = "Read requests completed to memory bank 3",
213 .pme_ctrl = PME_CTRL_S0,
214 .pme_val = 0x23,
215 },
216 {
217 .pme_name = "MC_stalls_0_sh",
218 .pme_desc = "Clock cycles that requests were stalled in the MCU queues because bank 0 was busy with a previous request",
219 .pme_ctrl = PME_CTRL_S0,
220 .pme_val = 0x24,
221 },
222 {
223 .pme_name = "MC_stalls_2_sh",
224 .pme_desc = "Clock cycles that requests were stalled in the MCU queues because bank 2 was busy with a previous request",
225 .pme_ctrl = PME_CTRL_S0,
226 .pme_val = 0x25,
227 },
228 {
229 .pme_name = "L2_hit_other_half",
230 .pme_desc = "L2 cache hits from this core to the ways filled by the other core when the cache is in the pseudo-split mode",
231 .pme_ctrl = PME_CTRL_S0,
232 .pme_val = 0x26,
233 },
234 {
235 .pme_name = "L3_rd_miss",
236 .pme_desc = "L3 cache misses sent out to SIU from this code by cacheable I-cache, D-cache, PO-cache, and W-cache (excluding block store) requests",
237 .pme_ctrl = PME_CTRL_S0,
238 .pme_val = 0x28,
239 },
240 {
241 .pme_name = "Re_L2_miss",
242 .pme_desc = "Stall cycles due to recirculation of cacheable loads that miss both D-cache and L2 cache",
243 .pme_ctrl = PME_CTRL_S0,
244 .pme_val = 0x29,
245 },
246 {
247 .pme_name = "IC_miss_cancelled",
248 .pme_desc = "I-cache miss requests cancelled due to new fetch stream",
249 .pme_ctrl = PME_CTRL_S0,
250 .pme_val = 0x2a,
251 },
252 {
253 .pme_name = "DC_wr_miss",
254 .pme_desc = "D-cache store accesses that miss D-cache",
255 .pme_ctrl = PME_CTRL_S0,
256 .pme_val = 0x2b,
257 },
258 {
259 .pme_name = "L3_hit_I_state_sh",
260 .pme_desc = "Tag hits in L3 cache when the line is in I state",
261 .pme_ctrl = PME_CTRL_S0,
262 .pme_val = 0x2c,
263 },
264 {
265 .pme_name = "SI_RTS_src_data",
266 .pme_desc = "Local RTS transactions due to I-cache, D-cache, or P-cache requests from this core where data is from the cache of another processor on the system, not from memory",
267 .pme_ctrl = PME_CTRL_S0,
268 .pme_val = 0x2d,
269 },
270 {
271 .pme_name = "L2_IC_miss",
272 .pme_desc = "L2 cache misses from this code by cacheable I-cache requests",
273 .pme_ctrl = PME_CTRL_S0,
274 .pme_val = 0x2e,
275 },
276 {
277 .pme_name = "SSM_new_transaction_sh",
278 .pme_desc = "New SSM transactions (RTSU, RTOU, UGM) observed by this processor on the Fireplane Interconnect",
279 .pme_ctrl = PME_CTRL_S0,
280 .pme_val = 0x2f,
281 },
282 {
283 .pme_name = "L2_SW_pf_miss",
284 .pme_desc = "L2 cache misses by software prefetch requests from this core",
285 .pme_ctrl = PME_CTRL_S0,
286 .pme_val = 0x30,
287 },
288 {
289 .pme_name = "L2_wb",
290 .pme_desc = "L2 cache lines that were written back to the L3 cache because of requests from this core",
291 .pme_ctrl = PME_CTRL_S0,
292 .pme_val = 0x31,
293 },
294 {
295 .pme_name = "L2_wb_sh",
296 .pme_desc = "L2 cache lines that were written back to the L3 cache because of requests from both cores",
297 .pme_ctrl = PME_CTRL_S0,
298 .pme_val = 0x32,
299 },
300 {
301 .pme_name = "L2_snoop_cb_sh",
302 .pme_desc = "L2 cache lines that were copied back due to other processors",
303 .pme_ctrl = PME_CTRL_S0,
304 .pme_val = 0x33,
305 },
306
307 /* PIC1 UltraSPARC-IV+ events */
308 {
309 .pme_name = "Dispatch0_other",
310 .pme_desc = "Stall cycles due to the event that no instructions are dispatched because the I-queue is empty due to various other events, including branch target address fetch and various events which cause an instruction to be refetched",
311 .pme_ctrl = PME_CTRL_S1,
312 .pme_val = 0x2,
313 },
314 {
315 .pme_name = "DC_wr",
316 .pme_desc = "D-cache write references by cacheable stores (excluding block stores)",
317 .pme_ctrl = PME_CTRL_S1,
318 .pme_val = 0x3,
319 },
320 {
321 .pme_name = "Re_DC_missovhd",
322 .pme_desc = "Stall cycles due to D-cache load miss",
323 .pme_ctrl = PME_CTRL_S1,
324 .pme_val = 0x4,
325 },
326 {
327 .pme_name = "Re_FPU_bypass",
328 .pme_desc = "Stall due to recirculation when an FPU bypass condition that does not have a direct bypass path occurs",
329 .pme_ctrl = PME_CTRL_S1,
330 .pme_val = 0x5,
331 },
332 {
333 .pme_name = "L3_write_hit_RTO",
334 .pme_desc = "L3 cache hits in O, Os, or S state by cacheable store requests from this core that do a read-to-own (RTO) bus transaction",
335 .pme_ctrl = PME_CTRL_S1,
336 .pme_val = 0x6,
337 },
338 {
339 .pme_name = "L2L3_snoop_inv_sh",
340 .pme_desc = "L2 and L3 cache lines that were invalidated due to other processors doing RTO, RTOR, RTOU, or WS transactions",
341 .pme_ctrl = PME_CTRL_S1,
342 .pme_val = 0x7,
343 },
344 {
345 .pme_name = "IC_L2_req",
346 .pme_desc = "I-cache requests sent to L2 cache",
347 .pme_ctrl = PME_CTRL_S1,
348 .pme_val = 0x8,
349 },
350 {
351 .pme_name = "DC_rd_miss",
352 .pme_desc = "Cacheable loads (excluding atomics and block loads) that miss D-cache as well as P-cache (for FP loads)",
353 .pme_ctrl = PME_CTRL_S1,
354 .pme_val = 0x9,
355 },
356 {
357 .pme_name = "L2_hit_I_state_sh",
358 .pme_desc = "Tag hits in L2 cache when the line is in I state",
359 .pme_ctrl = PME_CTRL_S1,
360 .pme_val = 0xa,
361 },
362 {
363 .pme_name = "L3_write_miss_RTO",
364 .pme_desc = "L3 cache misses from this core by cacheable store requests that do a read-to-own (RTO) bus transaction. This count does not include RTO requests for prefetch (fcn=2,3/22,23) instructions",
365 .pme_ctrl = PME_CTRL_S1,
366 .pme_val = 0xb,
367 },
368 {
369 .pme_name = "L2_miss",
370 .pme_desc = "L2 cache misses from this core by cacheable I-cache, D-cache, P-cache, and W-cache (excluding block stores) requests",
371 .pme_ctrl = PME_CTRL_S1,
372 .pme_val = 0xc,
373 },
374 {
375 .pme_name = "SI_owned_sh",
376 .pme_desc = "Number of times owned_in is asserted on bus requests from the local processor",
377 .pme_ctrl = PME_CTRL_S1,
378 .pme_val = 0xd,
379 },
380 {
381 .pme_name = "SI_RTO_src_data",
382 .pme_desc = "Number of local RTO transactions due to W-cache or P-cache requests from this core where data is from the cache of another processor on the system, not from memory",
383 .pme_ctrl = PME_CTRL_S1,
384 .pme_val = 0xe,
385 },
386 {
387 .pme_name = "SW_pf_duplicate",
388 .pme_desc = "Number of software prefetch instructions that were dropped because the prefetch request matched an outstanding requests in the prefetch queue or the request hit the P-cache",
389 .pme_ctrl = PME_CTRL_S1,
390 .pme_val = 0xf,
391 },
392 {
393 .pme_name = "IU_stat_jmp_mispred",
394 .pme_desc = "Number of retired non-annulled register indirect jumps mispredicted",
395 .pme_ctrl = PME_CTRL_S1,
396 .pme_val = 0x10,
397 },
398 {
399 .pme_name = "ITLB_miss",
400 .pme_desc = "I-TLB misses",
401 .pme_ctrl = PME_CTRL_S1,
402 .pme_val = 0x11,
403 },
404 {
405 .pme_name = "DTLB_miss",
406 .pme_desc = "D-TLB misses",
407 .pme_ctrl = PME_CTRL_S1,
408 .pme_val = 0x12,
409 },
410 {
411 .pme_name = "WC_miss",
412 .pme_desc = "W-cache misses",
413 .pme_ctrl = PME_CTRL_S1,
414 .pme_val = 0x13,
415 },
416 {
417 .pme_name = "IC_fill",
418 .pme_desc = "Number of I-cache fills excluding fills from the instruction prefetch buffer. This is the best approximation of the number of I-cache misses for instructions that were actually executed",
419 .pme_ctrl = PME_CTRL_S1,
420 .pme_val = 0x14,
421 },
422 {
423 .pme_name = "IU_stat_ret_mispred",
424 .pme_desc = "Number of retired non-annulled returns mispredicted",
425 .pme_ctrl = PME_CTRL_S1,
426 .pme_val = 0x15,
427 },
428 {
429 .pme_name = "Re_L3_miss",
430 .pme_desc = "Stall cycles due to recirculation of cacheable loads that miss D-cache, L2, and L3 cache",
431 .pme_ctrl = PME_CTRL_S1,
432 .pme_val = 0x16,
433 },
434 {
435 .pme_name = "Re_PFQ_full",
436 .pme_desc = "Stall cycles due to recirculation of prefetch instructions because the prefetch queue (PFQ) was full",
437 .pme_ctrl = PME_CTRL_S1,
438 .pme_val = 0x17,
439 },
440 {
441 .pme_name = "PC_soft_hit",
442 .pme_desc = "Number of cacheable FP loads that hit a P-cache line that was prefetched by a software prefetch instruction",
443 .pme_ctrl = PME_CTRL_S1,
444 .pme_val = 0x18,
445 },
446 {
447 .pme_name = "PC_inv",
448 .pme_desc = "Number of P-cache lines that were invalidated due to external snoops, internal stores, and L2 evictions",
449 .pme_ctrl = PME_CTRL_S1,
450 .pme_val = 0x19,
451 },
452 {
453 .pme_name = "PC_hard_hit",
454 .pme_desc = "Number of FP loads that hit a P-cache line that was fetched by a FP load or a hardware prefetch, irrespective of whether the loads hit or miss the D-cache",
455 .pme_ctrl = PME_CTRL_S1,
456 .pme_val = 0x1a,
457 },
458 {
459 .pme_name = "IC_pf",
460 .pme_desc = "Number of I-cache prefetch requests sent to L2 cache",
461 .pme_ctrl = PME_CTRL_S1,
462 .pme_val = 0x1b,
463 },
464 {
465 .pme_name = "SW_count_NOP1",
466 .pme_desc = "Retired, non-annulled special software NOP instructions (which is equivalent to 'sethi %hi(0xfc000), %g0' instruction)",
467 .pme_ctrl = PME_CTRL_S1,
468 .pme_val = 0x1c,
469 },
470 {
471 .pme_name = "IU_stat_br_miss_untaken",
472 .pme_desc = "Number of retired non-annulled conditional branches that were predicted to be not taken, but in fact were taken",
473 .pme_ctrl = PME_CTRL_S1,
474 .pme_val = 0x1d,
475 },
476 {
477 .pme_name = "IU_stat_br_count_taken",
478 .pme_desc = "Number of retired non-annulled conditional branches that were taken",
479 .pme_ctrl = PME_CTRL_S1,
480 .pme_val = 0x1e,
481 },
482 {
483 .pme_name = "PC_miss",
484 .pme_desc = "Number of cacheable FP loads that miss P-cache, irrespective of whether the loads hit or miss the D-cache",
485 .pme_ctrl = PME_CTRL_S1,
486 .pme_val = 0x1f,
487 },
488 {
489 .pme_name = "MC_writes_0_sh",
490 .pme_desc = "Number of write requests complete to memory bank 0",
491 .pme_ctrl = PME_CTRL_S1,
492 .pme_val = 0x20,
493 },
494 {
495 .pme_name = "MC_writes_1_sh",
496 .pme_desc = "Number of write requests complete to memory bank 1",
497 .pme_ctrl = PME_CTRL_S1,
498 .pme_val = 0x21,
499 },
500 {
501 .pme_name = "MC_writes_2_sh",
502 .pme_desc = "Number of write requests complete to memory bank 2",
503 .pme_ctrl = PME_CTRL_S1,
504 .pme_val = 0x22,
505 },
506 {
507 .pme_name = "MC_writes_3_sh",
508 .pme_desc = "Number of write requests complete to memory bank 3",
509 .pme_ctrl = PME_CTRL_S1,
510 .pme_val = 0x23,
511 },
512 {
513 .pme_name = "MC_stalls_1_sh",
514 .pme_desc = "Number of processor cycles that requests were stalled in the MCU queues because bank 0 was busy with a previous requests",
515 .pme_ctrl = PME_CTRL_S1,
516 .pme_val = 0x24,
517 },
518 {
519 .pme_name = "MC_stalls_3_sh",
520 .pme_desc = "Number of processor cycles that requests were stalled in the MCU queues because bank 3 was busy with a previous requests",
521 .pme_ctrl = PME_CTRL_S1,
522 .pme_val = 0x25,
523 },
524 {
525 .pme_name = "Re_RAW_miss",
526 .pme_desc = "Stall cycles due to recirculation when there is a load instruction in the E-stage of the pipeline which has a non-bypassable read-after-write (RAW) hazard with an earlier store instruction",
527 .pme_ctrl = PME_CTRL_S1,
528 .pme_val = 0x26,
529 },
530 {
531 .pme_name = "FM_pipe_completion",
532 .pme_desc = "Number of retired instructions that complete execution on the FLoat-Point/Graphics Multiply pipeline",
533 .pme_ctrl = PME_CTRL_S1,
534 .pme_val = 0x27,
535 },
536 {
537 .pme_name = "SSM_L3_miss_mtag_remote",
538 .pme_desc = "Number of L3 cache misses to LPA (local physical address) from this core which generate retry (R_*) transactions including R_RTS, R_RTO, and R_RS",
539 .pme_ctrl = PME_CTRL_S1,
540 .pme_val = 0x28,
541 },
542 {
543 .pme_name = "SSM_L3_miss_remote",
544 .pme_desc = "Number of L3 cache misses from this core which generate retry (R_*) transactions to non-LPA (non-local physical address) address space, or R_WS transactions due to block store (BST) / block store commit (BSTC) to any address space (LPA or non-LPA), or R_RTO due to atomic request on Os state to LPA space.",
545 .pme_ctrl = PME_CTRL_S1,
546 .pme_val = 0x29,
547 },
548 {
549 .pme_name = "SW_pf_exec",
550 .pme_desc = "Number of retired, non-trapping software prefetch instructions that completed, i.e. number of retired prefetch instructions that were not dropped due to the prefecth queue being full",
551 .pme_ctrl = PME_CTRL_S1,
552 .pme_val = 0x2a,
553 },
554 {
555 .pme_name = "SW_pf_str_exec",
556 .pme_desc = "Number of retired, non-trapping strong prefetch instructions that completed",
557 .pme_ctrl = PME_CTRL_S1,
558 .pme_val = 0x2b,
559 },
560 {
561 .pme_name = "SW_pf_dropped",
562 .pme_desc = "Number of software prefetch instructions dropped due to TLB miss or due to the prefetch queue being full",
563 .pme_ctrl = PME_CTRL_S1,
564 .pme_val = 0x2c,
565 },
566 {
567 .pme_name = "SW_pf_L2_installed",
568 .pme_desc = "Number of software prefetch instructions that installed lines in the L2 cache",
569 .pme_ctrl = PME_CTRL_S1,
570 .pme_val = 0x2d,
571 },
572 {
573 .pme_name = "L2_HW_pf_miss",
574 .pme_desc = "Number of L2 cache misses by hardware prefetch requests from this core",
575 .pme_ctrl = PME_CTRL_S1,
576 .pme_val = 0x2f,
577 },
578 {
579 .pme_name = "L3_miss",
580 .pme_desc = "Number of L3 cache misses sent out to SIU from this core by cacheable I-cache, D-cache, P-cache, and W-cache (exclusing block stores) requests",
581 .pme_ctrl = PME_CTRL_S1,
582 .pme_val = 0x31,
583 },
584 {
585 .pme_name = "L3_IC_miss",
586 .pme_desc = "Number of L3 cache misses by cacheable I-cache requests from this core",
587 .pme_ctrl = PME_CTRL_S1,
588 .pme_val = 0x32,
589 },
590 {
591 .pme_name = "L3_SW_pf_miss",
592 .pme_desc = "Number of L3 cache misses by software prefetch requests from this core",
593 .pme_ctrl = PME_CTRL_S1,
594 .pme_val = 0x33,
595 },
596 {
597 .pme_name = "L3_hit_other_half",
598 .pme_desc = "Number of L3 cache hits from this core to the ways filled by the other core when the cache is in pseudo-split mode",
599 .pme_ctrl = PME_CTRL_S1,
600 .pme_val = 0x34,
601 },
602 {
603 .pme_name = "L3_wb",
604 .pme_desc = "Number of L3 cache lines that were written back because of requests from this core",
605 .pme_ctrl = PME_CTRL_S1,
606 .pme_val = 0x35,
607 },
608 {
609 .pme_name = "L3_wb_sh",
610 .pme_desc = "Number of L3 cache lines that were written back because of requests from both cores",
611 .pme_ctrl = PME_CTRL_S1,
612 .pme_val = 0x36,
613 },
614 {
615 .pme_name = "L2L3_snoop_cb_sh",
616 .pme_desc = "Total number of L2 and L3 cache lines that were copied back due to other processors",
617 .pme_ctrl = PME_CTRL_S1,
618 .pme_val = 0x37,
619 },
620};
621#define PME_ULTRA4PLUS_EVENT_COUNT (sizeof(ultra4plus_pe)/sizeof(pme_sparc_entry_t))
#define PME_CTRL_S0
#define PME_CTRL_S1
char * pme_name
static pme_sparc_entry_t ultra4plus_pe[]