Blame src/libpfm4/lib/events/sparc_ultra3_events.h

Packit 577717
static const sparc_entry_t ultra3_pe[] = {
Packit 577717
	/* These two must always be first.  */
Packit 577717
	{	.name = "Cycle_cnt",
Packit 577717
		.desc = "Accumulated cycles",
Packit 577717
		.ctrl = PME_CTRL_S0 | PME_CTRL_S1,
Packit 577717
		.code = 0x0,
Packit 577717
	},
Packit 577717
	{	.name = "Instr_cnt",
Packit 577717
		.desc = "Number of instructions completed",
Packit 577717
		.ctrl = PME_CTRL_S0 | PME_CTRL_S1,
Packit 577717
		.code = 0x1,
Packit 577717
	},
Packit 577717
Packit 577717
	/* PIC0 events common to all UltraSPARC processors */
Packit 577717
	{
Packit 577717
		.name = "Dispatch0_IC_miss",
Packit 577717
		.desc = "I-buffer is empty from I-Cache miss",
Packit 577717
		.ctrl = PME_CTRL_S0,
Packit 577717
		.code = 0x2,
Packit 577717
	},
Packit 577717
	{
Packit 577717
		.name = "IC_ref",
Packit 577717
		.desc = "I-cache references",
Packit 577717
		.ctrl = PME_CTRL_S0,
Packit 577717
		.code = 0x8,
Packit 577717
	},
Packit 577717
	{
Packit 577717
		.name = "DC_rd",
Packit 577717
		.desc = "D-cache read references (including accesses that subsequently trap)",
Packit 577717
		.ctrl = PME_CTRL_S0,
Packit 577717
		.code = 0x9,
Packit 577717
	},
Packit 577717
	{
Packit 577717
		.name = "DC_wr",
Packit 577717
		.desc = "D-cache store accesses (including cacheable stores that subsequently trap)",
Packit 577717
		.ctrl = PME_CTRL_S0,
Packit 577717
		.code = 0xa,
Packit 577717
	},
Packit 577717
	{
Packit 577717
		.name = "EC_ref",
Packit 577717
		.desc = "E-cache references",
Packit 577717
		.ctrl = PME_CTRL_S0,
Packit 577717
		.code = 0xc,
Packit 577717
	},
Packit 577717
	{
Packit 577717
		.name = "EC_snoop_inv",
Packit 577717
		.desc = "L2-cache invalidates generated from a snoop by a remote processor",
Packit 577717
		.ctrl = PME_CTRL_S0,
Packit 577717
		.code = 0xe,
Packit 577717
	},
Packit 577717
Packit 577717
	/* PIC1 events common to all UltraSPARC processors */
Packit 577717
	{
Packit 577717
		.name = "Dispatch0_mispred",
Packit 577717
		.desc = "I-buffer is empty from Branch misprediction",
Packit 577717
		.ctrl = PME_CTRL_S1,
Packit 577717
		.code = 0x2,
Packit 577717
	},
Packit 577717
	{
Packit 577717
		.name = "EC_wb",
Packit 577717
		.desc = "Dirty sub-blocks that produce writebacks due to L2-cache miss events",
Packit 577717
		.ctrl = PME_CTRL_S1,
Packit 577717
		.code = 0xd,
Packit 577717
	},
Packit 577717
	{
Packit 577717
		.name = "EC_snoop_cb",
Packit 577717
		.desc = "L2-cache copybacks generated from a snoop by a remote processor",
Packit 577717
		.ctrl = PME_CTRL_S1,
Packit 577717
		.code = 0xe,
Packit 577717
	},
Packit 577717
Packit 577717
	/* PIC0 events common to all UltraSPARC-III/III+/IIIi processors  */
Packit 577717
	{
Packit 577717
		.name = "Dispatch0_br_target",
Packit 577717
		.desc = "I-buffer is empty due to a branch target address calculation",
Packit 577717
		.ctrl = PME_CTRL_S0,
Packit 577717
		.code = 0x3,
Packit 577717
	},
Packit 577717
	{
Packit 577717
		.name = "Dispatch0_2nd_br",
Packit 577717
		.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",
Packit 577717
		.ctrl = PME_CTRL_S0,
Packit 577717
		.code = 0x4,
Packit 577717
	},
Packit 577717
	{
Packit 577717
		.name = "Rstall_storeQ",
Packit 577717
		.desc = "R-stage stall for a store instruction which is the next instruction to be executed, but it stalled due to the store queue being full",
Packit 577717
		.ctrl = PME_CTRL_S0,
Packit 577717
		.code = 0x5,
Packit 577717
	},
Packit 577717
	{
Packit 577717
		.name = "Rstall_IU_use",
Packit 577717
		.desc = "R-stage stall for an event that the next instruction to be executed depends on the result of a preceding integer instruction in the pipeline that is not yet available",
Packit 577717
		.ctrl = PME_CTRL_S0,
Packit 577717
		.code = 0x6,
Packit 577717
	},
Packit 577717
	{
Packit 577717
		.name = "EC_write_hit_RTO",
Packit 577717
		.desc = "W-cache exclusive requests that hit L2-cache in S, O, or Os state and thus, do a read-to-own bus transaction",
Packit 577717
		.ctrl = PME_CTRL_S0,
Packit 577717
		.code = 0xd,
Packit 577717
	},
Packit 577717
	{
Packit 577717
		.name = "EC_rd_miss",
Packit 577717
		.desc = "L2-cache miss events (including atomics) from D-cache events",
Packit 577717
		.ctrl = PME_CTRL_S0,
Packit 577717
		.code = 0xf,
Packit 577717
	},
Packit 577717
	{
Packit 577717
		.name = "PC_port0_rd",
Packit 577717
		.desc = "P-cache cacheable FP loads to the first port (general purpose load path to D-cache and P-cache via MS pipeline)",
Packit 577717
		.ctrl = PME_CTRL_S0,
Packit 577717
		.code = 0x10,
Packit 577717
	},
Packit 577717
	{
Packit 577717
		.name = "SI_snoop",
Packit 577717
		.desc = "Counts snoops from remote processor(s) including RTS, RTSR, RTO, RTOR, RS, RSR, RTSM, and WS",
Packit 577717
		.ctrl = PME_CTRL_S0,
Packit 577717
		.code = 0x11,
Packit 577717
	},
Packit 577717
	{
Packit 577717
		.name = "SI_ciq_flow",
Packit 577717
		.desc = "Counts system clock cycles when the flow control (PauseOut) signal is asserted",
Packit 577717
		.ctrl = PME_CTRL_S0,
Packit 577717
		.code = 0x12,
Packit 577717
	},
Packit 577717
	{
Packit 577717
		.name = "SI_owned",
Packit 577717
		.desc = "Counts events where owned_in is asserted on bus requests from the local processor",
Packit 577717
		.ctrl = PME_CTRL_S0,
Packit 577717
		.code = 0x13,
Packit 577717
	},
Packit 577717
	{
Packit 577717
		.name = "SW_count0",
Packit 577717
		.desc = "Counts software-generated occurrences of 'sethi %hi(0xfc000), %g0' instruction",
Packit 577717
		.ctrl = PME_CTRL_S0,
Packit 577717
		.code = 0x14,
Packit 577717
	},
Packit 577717
	{	.name = "IU_Stat_Br_miss_taken",
Packit 577717
		.desc = "Retired branches that were predicted to be taken, but in fact were not taken",
Packit 577717
		.ctrl = PME_CTRL_S0,
Packit 577717
		.code = 0x15,
Packit 577717
	},
Packit 577717
	{	.name = "IU_Stat_Br_Count_taken",
Packit 577717
		.desc = "Retired taken branches",
Packit 577717
		.ctrl = PME_CTRL_S0,
Packit 577717
		.code = 0x16,
Packit 577717
	},
Packit 577717
	{
Packit 577717
		.name = "Dispatch0_rs_mispred",
Packit 577717
		.desc = "I-buffer is empty due to a Return Address Stack misprediction",
Packit 577717
		.ctrl = PME_CTRL_S0,
Packit 577717
		.code = 0x4,
Packit 577717
	},
Packit 577717
	{
Packit 577717
		.name = "FA_pipe_completion",
Packit 577717
		.desc = "Instructions that complete execution on the FPG ALU pipelines",
Packit 577717
		.ctrl = PME_CTRL_S0,
Packit 577717
		.code = 0x18,
Packit 577717
	},
Packit 577717
Packit 577717
	/* PIC1 events common to all UltraSPARC-III/III+/IIIi processors  */
Packit 577717
	{
Packit 577717
		.name = "IC_miss_cancelled",
Packit 577717
		.desc = "I-cache misses cancelled due to mis-speculation, recycle, or other events",
Packit 577717
		.ctrl = PME_CTRL_S1,
Packit 577717
		.code = 0x3,
Packit 577717
	},
Packit 577717
	{
Packit 577717
		.name = "Re_FPU_bypass",
Packit 577717
		.desc = "Stall due to recirculation when an FPU bypass condition that does not have a direct bypass path occurs",
Packit 577717
		.ctrl = PME_CTRL_S1,
Packit 577717
		.code = 0x5,
Packit 577717
	},
Packit 577717
	{
Packit 577717
		.name = "Re_DC_miss",
Packit 577717
		.desc = "Stall due to loads that miss D-cache and get recirculated",
Packit 577717
		.ctrl = PME_CTRL_S1,
Packit 577717
		.code = 0x6,
Packit 577717
	},
Packit 577717
	{
Packit 577717
		.name = "Re_EC_miss",
Packit 577717
		.desc = "Stall due to loads that miss L2-cache and get recirculated",
Packit 577717
		.ctrl = PME_CTRL_S1,
Packit 577717
		.code = 0x7,
Packit 577717
	},
Packit 577717
	{
Packit 577717
		.name = "IC_miss",
Packit 577717
		.desc = "I-cache misses, including fetches from mis-speculated execution paths which are later cancelled",
Packit 577717
		.ctrl = PME_CTRL_S1,
Packit 577717
		.code = 0x8,
Packit 577717
	},
Packit 577717
	{
Packit 577717
		.name = "DC_rd_miss",
Packit 577717
		.desc = "Recirculated loads that miss the D-cache",
Packit 577717
		.ctrl = PME_CTRL_S1,
Packit 577717
		.code = 0x9,
Packit 577717
	},
Packit 577717
	{
Packit 577717
		.name = "DC_wr_miss",
Packit 577717
		.desc = "D-cache store accesses that miss D-cache",
Packit 577717
		.ctrl = PME_CTRL_S1,
Packit 577717
		.code = 0xa,
Packit 577717
	},
Packit 577717
	{
Packit 577717
		.name = "Rstall_FP_use",
Packit 577717
		.desc = "R-stage stall for an event that the next instruction to be executed depends on the result of a preceding floating-point instruction in the pipeline that is not yet available",
Packit 577717
		.ctrl = PME_CTRL_S1,
Packit 577717
		.code = 0xb,
Packit 577717
	},
Packit 577717
	{
Packit 577717
		.name = "EC_misses",
Packit 577717
		.desc = "E-cache misses",
Packit 577717
		.ctrl = PME_CTRL_S1,
Packit 577717
		.code = 0xc,
Packit 577717
	},
Packit 577717
	{
Packit 577717
		.name = "EC_ic_miss",
Packit 577717
		.desc = "L2-cache read misses from I-cache requests",
Packit 577717
		.ctrl = PME_CTRL_S1,
Packit 577717
		.code = 0xf,
Packit 577717
	},
Packit 577717
	{
Packit 577717
		.name = "Re_PC_miss",
Packit 577717
		.desc = "Stall due to recirculation when a prefetch cache miss occurs on a prefetch predicted second load",
Packit 577717
		.ctrl = PME_CTRL_S1,
Packit 577717
		.code = 0x10,
Packit 577717
	},
Packit 577717
	{
Packit 577717
		.name = "ITLB_miss",
Packit 577717
		.desc = "I-TLB miss traps taken",
Packit 577717
		.ctrl = PME_CTRL_S1,
Packit 577717
		.code = 0x11,
Packit 577717
	},
Packit 577717
	{
Packit 577717
		.name = "DTLB_miss",
Packit 577717
		.desc = "Memory reference instructions which trap due to D-TLB miss",
Packit 577717
		.ctrl = PME_CTRL_S1,
Packit 577717
		.code = 0x12,
Packit 577717
	},
Packit 577717
	{
Packit 577717
		.name = "WC_miss",
Packit 577717
		.desc = "W-cache misses",
Packit 577717
		.ctrl = PME_CTRL_S1,
Packit 577717
		.code = 0x13,
Packit 577717
	},
Packit 577717
	{
Packit 577717
		.name = "WC_snoop_cb",
Packit 577717
		.desc = "W-cache copybacks generated by a snoop from a remote processor",
Packit 577717
		.ctrl = PME_CTRL_S1,
Packit 577717
		.code = 0x14,
Packit 577717
	},
Packit 577717
	{
Packit 577717
		.name = "WC_scrubbed",
Packit 577717
		.desc = "W-cache hits to clean lines",
Packit 577717
		.ctrl = PME_CTRL_S1,
Packit 577717
		.code = 0x15,
Packit 577717
	},
Packit 577717
	{
Packit 577717
		.name = "WC_wb_wo_read",
Packit 577717
		.desc = "W-cache writebacks not requiring a read",
Packit 577717
		.ctrl = PME_CTRL_S1,
Packit 577717
		.code = 0x16,
Packit 577717
	},
Packit 577717
	{
Packit 577717
		.name = "PC_soft_hit",
Packit 577717
		.desc = "FP loads that hit a P-cache line that was prefetched by a software-prefetch instruction",
Packit 577717
		.ctrl = PME_CTRL_S1,
Packit 577717
		.code = 0x18,
Packit 577717
	},
Packit 577717
	{
Packit 577717
		.name = "PC_snoop_inv",
Packit 577717
		.desc = "P-cache invalidates that were generated by a snoop from a remote processor and stores by a local processor",
Packit 577717
		.ctrl = PME_CTRL_S1,
Packit 577717
		.code = 0x19,
Packit 577717
	},
Packit 577717
	{
Packit 577717
		.name = "PC_hard_hit",
Packit 577717
		.desc = "FP loads that hit a P-cache line that was prefetched by a hardware prefetch",
Packit 577717
		.ctrl = PME_CTRL_S1,
Packit 577717
		.code = 0x1a,
Packit 577717
	},
Packit 577717
	{
Packit 577717
		.name = "PC_port1_rd",
Packit 577717
		.desc = "P-cache cacheable FP loads to the second port (memory and out-of-pipeline instruction execution loads via the A0 and A1 pipelines)",
Packit 577717
		.ctrl = PME_CTRL_S1,
Packit 577717
		.code = 0x1b,
Packit 577717
	},
Packit 577717
	{
Packit 577717
		.name = "SW_count1",
Packit 577717
		.desc = "Counts software-generated occurrences of 'sethi %hi(0xfc000), %g0' instruction",
Packit 577717
		.ctrl = PME_CTRL_S1,
Packit 577717
		.code = 0x1c,
Packit 577717
	},
Packit 577717
	{	.name = "IU_Stat_Br_miss_untaken",
Packit 577717
		.desc = "Retired branches that were predicted to be untaken, but in fact were taken",
Packit 577717
		.ctrl = PME_CTRL_S1,
Packit 577717
		.code = 0x1d,
Packit 577717
	},
Packit 577717
	{	.name = "IU_Stat_Br_Count_untaken",
Packit 577717
		.desc = "Retired untaken branches",
Packit 577717
		.ctrl = PME_CTRL_S1,
Packit 577717
		.code = 0x1e,
Packit 577717
	},
Packit 577717
	{
Packit 577717
		.name = "PC_MS_miss",
Packit 577717
		.desc = "FP loads through the MS pipeline that miss P-cache",
Packit 577717
		.ctrl = PME_CTRL_S1,
Packit 577717
		.code = 0x1f,
Packit 577717
	},
Packit 577717
	{
Packit 577717
		.name = "Re_RAW_miss",
Packit 577717
		.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",
Packit 577717
		.ctrl = PME_CTRL_S1,
Packit 577717
		.code = 0x26,
Packit 577717
	},
Packit 577717
	{
Packit 577717
		.name = "FM_pipe_completion",
Packit 577717
		.desc = "Instructions that complete execution on the FPG Multiply pipelines",
Packit 577717
		.ctrl = PME_CTRL_S0,
Packit 577717
		.code = 0x27,
Packit 577717
	},
Packit 577717
Packit 577717
Packit 577717
	/* PIC0 memory controller events common to UltraSPARC-III/III+ processors */
Packit 577717
	{
Packit 577717
		.name = "MC_reads_0",
Packit 577717
		.desc = "Read requests completed to memory bank 0",
Packit 577717
		.ctrl = PME_CTRL_S0,
Packit 577717
		.code = 0x20,
Packit 577717
	},
Packit 577717
	{
Packit 577717
		.name = "MC_reads_1",
Packit 577717
		.desc = "Read requests completed to memory bank 1",
Packit 577717
		.ctrl = PME_CTRL_S0,
Packit 577717
		.code = 0x21,
Packit 577717
	},
Packit 577717
	{
Packit 577717
		.name = "MC_reads_2",
Packit 577717
		.desc = "Read requests completed to memory bank 2",
Packit 577717
		.ctrl = PME_CTRL_S0,
Packit 577717
		.code = 0x22,
Packit 577717
	},
Packit 577717
	{
Packit 577717
		.name = "MC_reads_3",
Packit 577717
		.desc = "Read requests completed to memory bank 3",
Packit 577717
		.ctrl = PME_CTRL_S0,
Packit 577717
		.code = 0x23,
Packit 577717
	},
Packit 577717
	{
Packit 577717
		.name = "MC_stalls_0",
Packit 577717
		.desc = "Clock cycles that requests were stalled in the MCU queues because bank 0 was busy with a previous request",
Packit 577717
		.ctrl = PME_CTRL_S0,
Packit 577717
		.code = 0x24,
Packit 577717
	},
Packit 577717
	{
Packit 577717
		.name = "MC_stalls_2",
Packit 577717
		.desc = "Clock cycles that requests were stalled in the MCU queues because bank 2 was busy with a previous request",
Packit 577717
		.ctrl = PME_CTRL_S0,
Packit 577717
		.code = 0x25,
Packit 577717
	},
Packit 577717
Packit 577717
	/* PIC1 memory controller events common to all UltraSPARC-III/III+ processors */
Packit 577717
	{
Packit 577717
		.name = "MC_writes_0",
Packit 577717
		.desc = "Write requests completed to memory bank 0",
Packit 577717
		.ctrl = PME_CTRL_S1,
Packit 577717
		.code = 0x20,
Packit 577717
	},
Packit 577717
	{
Packit 577717
		.name = "MC_writes_1",
Packit 577717
		.desc = "Write requests completed to memory bank 1",
Packit 577717
		.ctrl = PME_CTRL_S1,
Packit 577717
		.code = 0x21,
Packit 577717
	},
Packit 577717
	{
Packit 577717
		.name = "MC_writes_2",
Packit 577717
		.desc = "Write requests completed to memory bank 2",
Packit 577717
		.ctrl = PME_CTRL_S1,
Packit 577717
		.code = 0x22,
Packit 577717
	},
Packit 577717
	{
Packit 577717
		.name = "MC_writes_3",
Packit 577717
		.desc = "Write requests completed to memory bank 3",
Packit 577717
		.ctrl = PME_CTRL_S1,
Packit 577717
		.code = 0x23,
Packit 577717
	},
Packit 577717
	{
Packit 577717
		.name = "MC_stalls_1",
Packit 577717
		.desc = "Clock cycles that requests were stalled in the MCU queues because bank 1 was busy with a previous request",
Packit 577717
		.ctrl = PME_CTRL_S1,
Packit 577717
		.code = 0x24,
Packit 577717
	},
Packit 577717
	{
Packit 577717
		.name = "MC_stalls_3",
Packit 577717
		.desc = "Clock cycles that requests were stalled in the MCU queues because bank 3 was busy with a previous request",
Packit 577717
		.ctrl = PME_CTRL_S1,
Packit 577717
		.code = 0x25,
Packit 577717
	},
Packit 577717
};
Packit 577717
#define PME_SPARC_ULTRA3_EVENT_COUNT	   (sizeof(ultra3_pe)/sizeof(sparc_entry_t))