4 .pme_desc =
"Accumulated cycles",
8 { .pme_name =
"Instr_cnt",
9 .pme_desc =
"Number of instructions completed",
16 .pme_name =
"Dispatch0_IC_miss",
17 .pme_desc =
"I-buffer is empty from I-Cache miss",
23 .pme_desc =
"I-cache refrences",
29 .pme_desc =
"D-cache read references (including accesses that subsequently trap)",
35 .pme_desc =
"D-cache store accesses (including cacheable stores that subsequently trap)",
41 .pme_desc =
"E-cache references",
46 .pme_name =
"EC_snoop_inv",
47 .pme_desc =
"L2-cache invalidates generated from a snoop by a remote processor",
54 .pme_name =
"Dispatch0_mispred",
55 .pme_desc =
"I-buffer is empty from Branch misprediction",
61 .pme_desc =
"Dirty sub-blocks that produce writebacks due to L2-cache miss events",
66 .pme_name =
"EC_snoop_cb",
67 .pme_desc =
"L2-cache copybacks generated from a snoop by a remote processor",
74 .pme_name =
"Dispatch0_br_target",
75 .pme_desc =
"I-buffer is empty due to a branch target address calculation",
80 .pme_name =
"Dispatch0_2nd_br",
81 .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",
86 .pme_name =
"Rstall_storeQ",
87 .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",
92 .pme_name =
"Rstall_IU_use",
93 .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",
98 .pme_name =
"EC_write_hit_RTO",
99 .pme_desc =
"W-cache exclusive requests that hit L2-cache in S, O, or Os state and thus, do a read-to-own bus transaction",
104 .pme_name =
"EC_rd_miss",
105 .pme_desc =
"L2-cache miss events (including atomics) from D-cache events",
110 .pme_name =
"PC_port0_rd",
111 .pme_desc =
"P-cache cacheable FP loads to the first port (general purpose load path to D-cache and P-cache via MS pipeline)",
116 .pme_name =
"SI_snoop",
117 .pme_desc =
"Counts snoops from remote processor(s) including RTS, RTSR, RTO, RTOR, RS, RSR, RTSM, and WS",
122 .pme_name =
"SI_ciq_flow",
123 .pme_desc =
"Counts system clock cycles when the flow control (PauseOut) signal is asserted",
128 .pme_name =
"SI_owned",
129 .pme_desc =
"Counts events where owned_in is asserted on bus requests from the local processor",
134 .pme_name =
"SW_count0",
135 .pme_desc =
"Counts software-generated occurrences of 'sethi %hi(0xfc000), %g0' instruction",
139 { .pme_name =
"IU_Stat_Br_miss_taken",
140 .pme_desc =
"Retired branches that were predicted to be taken, but in fact were not taken",
144 { .pme_name =
"IU_Stat_Br_Count_taken",
145 .pme_desc =
"Retired taken branches",
150 .pme_name =
"Dispatch0_rs_mispred",
151 .pme_desc =
"I-buffer is empty due to a Return Address Stack misprediction",
156 .pme_name =
"FA_pipe_completion",
157 .pme_desc =
"Instructions that complete execution on the FPG ALU pipelines",
164 .pme_name =
"IC_miss_cancelled",
165 .pme_desc =
"I-cache misses cancelled due to mis-speculation, recycle, or other events",
170 .pme_name =
"Re_FPU_bypass",
171 .pme_desc =
"Stall due to recirculation when an FPU bypass condition that does not have a direct bypass path occurs",
176 .pme_name =
"Re_DC_miss",
177 .pme_desc =
"Stall due to loads that miss D-cache and get recirculated",
182 .pme_name =
"Re_EC_miss",
183 .pme_desc =
"Stall due to loads that miss L2-cache and get recirculated",
188 .pme_name =
"IC_miss",
189 .pme_desc =
"I-cache misses, including fetches from mis-speculated execution paths which are later cancelled",
194 .pme_name =
"DC_rd_miss",
195 .pme_desc =
"Recirculated loads that miss the D-cache",
200 .pme_name =
"DC_wr_miss",
201 .pme_desc =
"D-cache store accesses that miss D-cache",
206 .pme_name =
"Rstall_FP_use",
207 .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",
212 .pme_name =
"EC_misses",
213 .pme_desc =
"E-cache misses",
218 .pme_name =
"EC_ic_miss",
219 .pme_desc =
"L2-cache read misses from I-cache requests",
224 .pme_name =
"Re_PC_miss",
225 .pme_desc =
"Stall due to recirculation when a prefetch cache miss occurs on a prefetch predicted second load",
230 .pme_name =
"ITLB_miss",
231 .pme_desc =
"I-TLB miss traps taken",
236 .pme_name =
"DTLB_miss",
237 .pme_desc =
"Memory reference instructions which trap due to D-TLB miss",
242 .pme_name =
"WC_miss",
243 .pme_desc =
"W-cache misses",
248 .pme_name =
"WC_snoop_cb",
249 .pme_desc =
"W-cache copybacks generated by a snoop from a remote processor",
254 .pme_name =
"WC_scrubbed",
255 .pme_desc =
"W-cache hits to clean lines",
260 .pme_name =
"WC_wb_wo_read",
261 .pme_desc =
"W-cache writebacks not requiring a read",
266 .pme_name =
"PC_soft_hit",
267 .pme_desc =
"FP loads that hit a P-cache line that was prefetched by a software-prefetch instruction",
272 .pme_name =
"PC_snoop_inv",
273 .pme_desc =
"P-cache invalidates that were generated by a snoop from a remote processor and stores by a local processor",
278 .pme_name =
"PC_hard_hit",
279 .pme_desc =
"FP loads that hit a P-cache line that was prefetched by a hardware prefetch",
284 .pme_name =
"PC_port1_rd",
285 .pme_desc =
"P-cache cacheable FP loads to the second port (memory and out-of-pipeline instruction execution loads via the A0 and A1 pipelines)",
290 .pme_name =
"SW_count1",
291 .pme_desc =
"Counts software-generated occurrences of 'sethi %hi(0xfc000), %g0' instruction",
295 { .pme_name =
"IU_Stat_Br_miss_untaken",
296 .pme_desc =
"Retired branches that were predicted to be untaken, but in fact were taken",
300 { .pme_name =
"IU_Stat_Br_Count_untaken",
301 .pme_desc =
"Retired untaken branches",
306 .pme_name =
"PC_MS_miss",
307 .pme_desc =
"FP loads through the MS pipeline that miss P-cache",
312 .pme_name =
"Re_RAW_miss",
313 .pme_desc =
"Stall due to recirculation when there is a load in the E-stage which has a non-bypassable read-after-write hazard with an earlier store instruction",
318 .pme_name =
"FM_pipe_completion",
319 .pme_desc =
"Instructions that complete execution on the FPG Multiply pipelines",
327 .pme_name =
"MC_reads_0",
328 .pme_desc =
"Read requests completed to memory bank 0",
333 .pme_name =
"MC_reads_1",
334 .pme_desc =
"Read requests completed to memory bank 1",
339 .pme_name =
"MC_reads_2",
340 .pme_desc =
"Read requests completed to memory bank 2",
345 .pme_name =
"MC_reads_3",
346 .pme_desc =
"Read requests completed to memory bank 3",
351 .pme_name =
"MC_stalls_0",
352 .pme_desc =
"Clock cycles that requests were stalled in the MCU queues because bank 0 was busy with a previous request",
357 .pme_name =
"MC_stalls_2",
358 .pme_desc =
"Clock cycles that requests were stalled in the MCU queues because bank 2 was busy with a previous request",
365 .pme_name =
"MC_writes_0",
366 .pme_desc =
"Write requests completed to memory bank 0",
371 .pme_name =
"MC_writes_1",
372 .pme_desc =
"Write requests completed to memory bank 1",
377 .pme_name =
"MC_writes_2",
378 .pme_desc =
"Write requests completed to memory bank 2",
383 .pme_name =
"MC_writes_3",
384 .pme_desc =
"Write requests completed to memory bank 3",
389 .pme_name =
"MC_stalls_1",
390 .pme_desc =
"Clock cycles that requests were stalled in the MCU queues because bank 1 was busy with a previous request",
395 .pme_name =
"MC_stalls_3",
396 .pme_desc =
"Clock cycles that requests were stalled in the MCU queues because bank 3 was busy with a previous request",
403 .pme_name =
"EC_wb_remote",
404 .pme_desc =
"Counts the retry event when any victimization for which the processor generates an R_WB transaction to non_LPA address region",
409 .pme_name =
"EC_miss_local",
410 .pme_desc =
"Counts any transaction to an LPA for which the processor issues an RTS/RTO/RS transaction",
415 .pme_name =
"EC_miss_mtag_remote",
416 .pme_desc =
"Counts any transaction to an LPA in which the processor is required to generate a retry transaction",
423 .pme_name =
"Re_DC_missovhd",
424 .pme_desc =
"Used to measure D-cache stall counts seperatedly for L2-cache hits and misses. This counter is used with the recirculation and cache access events to seperately calculate the D-cache loads that hit and miss the L2-cache",
431 .pme_name =
"EC_miss_mtag_remote",
432 .pme_desc =
"Counts any transaction to an LPA in which the processor is required to generate a retry transaction",
437 .pme_name =
"EC_miss_remote",
438 .pme_desc =
"Counts the events triggered whenever the processor generates a remote (R_*) transaction and the address is to a non-LPA portion (remote) of the physical address space, or an R_WS transaction due to block-store/block-store-commit to any address space (LPA or non-LPA), or an R-RTO due to store/swap request on Os state to LPA space",
443#define PME_ULTRA3PLUS_EVENT_COUNT (sizeof(ultra3plus_pe)/sizeof(pme_sparc_entry_t))
static pme_sparc_entry_t ultra3plus_pe[]