Kajol Jain <kj...@linux.ibm.com> writes: > Patch adds initial json/events for POWER10.
Acked-by: Michael Ellerman <m...@ellerman.id.au> cheers > Signed-off-by: Kajol Jain <kj...@linux.ibm.com> > Tested-by: Paul A. Clarke <p...@us.ibm.com> > Reviewed-by: Paul A. Clarke <p...@us.ibm.com> > --- > .../perf/pmu-events/arch/powerpc/mapfile.csv | 1 + > .../arch/powerpc/power10/cache.json | 47 +++ > .../arch/powerpc/power10/floating_point.json | 7 + > .../arch/powerpc/power10/frontend.json | 217 +++++++++++++ > .../arch/powerpc/power10/locks.json | 12 + > .../arch/powerpc/power10/marked.json | 147 +++++++++ > .../arch/powerpc/power10/memory.json | 192 +++++++++++ > .../arch/powerpc/power10/others.json | 297 ++++++++++++++++++ > .../arch/powerpc/power10/pipeline.json | 297 ++++++++++++++++++ > .../pmu-events/arch/powerpc/power10/pmc.json | 22 ++ > .../arch/powerpc/power10/translation.json | 57 ++++ > 11 files changed, 1296 insertions(+) > create mode 100644 tools/perf/pmu-events/arch/powerpc/power10/cache.json > create mode 100644 > tools/perf/pmu-events/arch/powerpc/power10/floating_point.json > create mode 100644 tools/perf/pmu-events/arch/powerpc/power10/frontend.json > create mode 100644 tools/perf/pmu-events/arch/powerpc/power10/locks.json > create mode 100644 tools/perf/pmu-events/arch/powerpc/power10/marked.json > create mode 100644 tools/perf/pmu-events/arch/powerpc/power10/memory.json > create mode 100644 tools/perf/pmu-events/arch/powerpc/power10/others.json > create mode 100644 tools/perf/pmu-events/arch/powerpc/power10/pipeline.json > create mode 100644 tools/perf/pmu-events/arch/powerpc/power10/pmc.json > create mode 100644 > tools/perf/pmu-events/arch/powerpc/power10/translation.json > > --- > Changelog: > v1 -> v2 > - Removed inconsistencies in "BriefDescription" field and make sure > it will end with period without any space at the end. > Suggested by : Paul A. Clarke > - Added Tested-by and Reviewed-by tag. > --- > diff --git a/tools/perf/pmu-events/arch/powerpc/mapfile.csv > b/tools/perf/pmu-events/arch/powerpc/mapfile.csv > index 229150e7ab7d..4abdfc3f9692 100644 > --- a/tools/perf/pmu-events/arch/powerpc/mapfile.csv > +++ b/tools/perf/pmu-events/arch/powerpc/mapfile.csv > @@ -15,3 +15,4 @@ > # Power8 entries > 004[bcd][[:xdigit:]]{4},1,power8,core > 004e[[:xdigit:]]{4},1,power9,core > +0080[[:xdigit:]]{4},1,power10,core > diff --git a/tools/perf/pmu-events/arch/powerpc/power10/cache.json > b/tools/perf/pmu-events/arch/powerpc/power10/cache.json > new file mode 100644 > index 000000000000..95e33531fbc6 > --- /dev/null > +++ b/tools/perf/pmu-events/arch/powerpc/power10/cache.json > @@ -0,0 +1,47 @@ > +[ > + { > + "EventCode": "1003C", > + "EventName": "PM_EXEC_STALL_DMISS_L2L3", > + "BriefDescription": "Cycles in which the oldest instruction in the > pipeline was waiting for a load miss to resolve from either the local L2 or > local L3." > + }, > + { > + "EventCode": "34056", > + "EventName": "PM_EXEC_STALL_LOAD_FINISH", > + "BriefDescription": "Cycles in which the oldest instruction in the > pipeline was finishing a load after its data was reloaded from a data source > beyond the local L1; cycles in which the LSU was processing an L1-hit; cycles > in which the NTF instruction merged with another load in the LMQ." > + }, > + { > + "EventCode": "3006C", > + "EventName": "PM_RUN_CYC_SMT2_MODE", > + "BriefDescription": "Cycles when this thread's run latch is set and the > core is in SMT2 mode." > + }, > + { > + "EventCode": "300F4", > + "EventName": "PM_RUN_INST_CMPL_CONC", > + "BriefDescription": "PowerPC instructions completed by this thread when > all threads in the core had the run-latch set." > + }, > + { > + "EventCode": "4C016", > + "EventName": "PM_EXEC_STALL_DMISS_L2L3_CONFLICT", > + "BriefDescription": "Cycles in which the oldest instruction in the > pipeline was waiting for a load miss to resolve from the local L2 or local > L3, with a dispatch conflict." > + }, > + { > + "EventCode": "4D014", > + "EventName": "PM_EXEC_STALL_LOAD", > + "BriefDescription": "Cycles in which the oldest instruction in the > pipeline was a load instruction executing in the Load Store Unit." > + }, > + { > + "EventCode": "4D016", > + "EventName": "PM_EXEC_STALL_PTESYNC", > + "BriefDescription": "Cycles in which the oldest instruction in the > pipeline was a PTESYNC instruction executing in the Load Store Unit." > + }, > + { > + "EventCode": "401EA", > + "EventName": "PM_THRESH_EXC_128", > + "BriefDescription": "Threshold counter exceeded a value of 128." > + }, > + { > + "EventCode": "400F6", > + "EventName": "PM_BR_MPRED_CMPL", > + "BriefDescription": "A mispredicted branch completed. Includes direction > and target." > + } > +] > diff --git a/tools/perf/pmu-events/arch/powerpc/power10/floating_point.json > b/tools/perf/pmu-events/arch/powerpc/power10/floating_point.json > new file mode 100644 > index 000000000000..e9b92f282d3c > --- /dev/null > +++ b/tools/perf/pmu-events/arch/powerpc/power10/floating_point.json > @@ -0,0 +1,7 @@ > +[ > + { > + "EventCode": "4016E", > + "EventName": "PM_THRESH_NOT_MET", > + "BriefDescription": "Threshold counter did not meet threshold." > + } > +] > diff --git a/tools/perf/pmu-events/arch/powerpc/power10/frontend.json > b/tools/perf/pmu-events/arch/powerpc/power10/frontend.json > new file mode 100644 > index 000000000000..aebaf94bfdfe > --- /dev/null > +++ b/tools/perf/pmu-events/arch/powerpc/power10/frontend.json > @@ -0,0 +1,217 @@ > +[ > + { > + "EventCode": "10004", > + "EventName": "PM_EXEC_STALL_TRANSLATION", > + "BriefDescription": "Cycles in which the oldest instruction in the > pipeline suffered a TLB miss or ERAT miss and waited for it to resolve." > + }, > + { > + "EventCode": "10010", > + "EventName": "PM_PMC4_OVERFLOW", > + "BriefDescription": "The event selected for PMC4 caused the event > counter to overflow." > + }, > + { > + "EventCode": "10020", > + "EventName": "PM_PMC4_REWIND", > + "BriefDescription": "The speculative event selected for PMC4 rewinds and > the counter for PMC4 is not charged." > + }, > + { > + "EventCode": "10038", > + "EventName": "PM_DISP_STALL_TRANSLATION", > + "BriefDescription": "Cycles when dispatch was stalled for this thread > because the MMU was handling a translation miss." > + }, > + { > + "EventCode": "1003A", > + "EventName": "PM_DISP_STALL_BR_MPRED_IC_L2", > + "BriefDescription": "Cycles when dispatch was stalled while the > instruction was fetched from the local L2 after suffering a branch > mispredict." > + }, > + { > + "EventCode": "1E050", > + "EventName": "PM_DISP_STALL_HELD_STF_MAPPER_CYC", > + "BriefDescription": "Cycles in which the NTC instruction is held at > dispatch because the STF mapper/SRB was full. Includes GPR (count, link, > tar), VSR, VMR, FPR." > + }, > + { > + "EventCode": "1F054", > + "EventName": "PM_DTLB_HIT", > + "BriefDescription": "The PTE required by the instruction was resident in > the TLB (data TLB access). When MMCR1[16]=0 this event counts only demand > hits. When MMCR1[16]=1 this event includes demand and prefetch. Applies to > both HPT and RPT." > + }, > + { > + "EventCode": "101E8", > + "EventName": "PM_THRESH_EXC_256", > + "BriefDescription": "Threshold counter exceeded a count of 256." > + }, > + { > + "EventCode": "101EC", > + "EventName": "PM_THRESH_MET", > + "BriefDescription": "Threshold exceeded." > + }, > + { > + "EventCode": "100F2", > + "EventName": "PM_1PLUS_PPC_CMPL", > + "BriefDescription": "Cycles in which at least one instruction is > completed by this thread." > + }, > + { > + "EventCode": "100F6", > + "EventName": "PM_IERAT_MISS", > + "BriefDescription": "IERAT Reloaded to satisfy an IERAT miss. All page > sizes are counted by this event." > + }, > + { > + "EventCode": "100F8", > + "EventName": "PM_DISP_STALL_CYC", > + "BriefDescription": "Cycles the ICT has no itags assigned to this thread > (no instructions were dispatched during these cycles)." > + }, > + { > + "EventCode": "20114", > + "EventName": "PM_MRK_L2_RC_DISP", > + "BriefDescription": "Marked instruction RC dispatched in L2." > + }, > + { > + "EventCode": "2C010", > + "EventName": "PM_EXEC_STALL_LSU", > + "BriefDescription": "Cycles in which the oldest instruction in the > pipeline was executing in the Load Store Unit. This does not include simple > fixed point instructions." > + }, > + { > + "EventCode": "2C016", > + "EventName": "PM_DISP_STALL_IERAT_ONLY_MISS", > + "BriefDescription": "Cycles when dispatch was stalled while waiting to > resolve an instruction ERAT miss." > + }, > + { > + "EventCode": "2C01E", > + "EventName": "PM_DISP_STALL_BR_MPRED_IC_L3", > + "BriefDescription": "Cycles when dispatch was stalled while the > instruction was fetched from the local L3 after suffering a branch > mispredict." > + }, > + { > + "EventCode": "2D01A", > + "EventName": "PM_DISP_STALL_IC_MISS", > + "BriefDescription": "Cycles when dispatch was stalled for this thread > due to an Icache Miss." > + }, > + { > + "EventCode": "2D01C", > + "EventName": "PM_CMPL_STALL_STCX", > + "BriefDescription": "Cycles in which the oldest instruction in the > pipeline was a stcx waiting for resolution from the nest before completing." > + }, > + { > + "EventCode": "2E018", > + "EventName": "PM_DISP_STALL_FETCH", > + "BriefDescription": "Cycles when dispatch was stalled for this thread > because Fetch was being held." > + }, > + { > + "EventCode": "2E01A", > + "EventName": "PM_DISP_STALL_HELD_XVFC_MAPPER_CYC", > + "BriefDescription": "Cycles in which the NTC instruction is held at > dispatch because the XVFC mapper/SRB was full." > + }, > + { > + "EventCode": "2C142", > + "EventName": "PM_MRK_XFER_FROM_SRC_PMC2", > + "BriefDescription": "For a marked data transfer instruction, the > processor's L1 data cache was reloaded from the source specified in > MMCR3[15:27]. If MMCR1[16|17] is 0 (default), this count includes only lines > that were reloaded to satisfy a demand miss. If MMCR1[16|17] is 1, this count > includes both demand misses and prefetch reloads." > + }, > + { > + "EventCode": "24050", > + "EventName": "PM_IOPS_DISP", > + "BriefDescription": "Internal Operations dispatched. PM_IOPS_DISP / > PM_INST_DISP will show the average number of internal operations per PowerPC > instruction." > + }, > + { > + "EventCode": "2405E", > + "EventName": "PM_ISSUE_CANCEL", > + "BriefDescription": "An instruction issued and the issue was later > cancelled. Only one cancel per PowerPC instruction." > + }, > + { > + "EventCode": "200FA", > + "EventName": "PM_BR_TAKEN_CMPL", > + "BriefDescription": "Branch Taken instruction completed." > + }, > + { > + "EventCode": "30012", > + "EventName": "PM_FLUSH_COMPLETION", > + "BriefDescription": "The instruction that was next to complete (oldest > in the pipeline) did not complete because it suffered a flush." > + }, > + { > + "EventCode": "30014", > + "EventName": "PM_EXEC_STALL_STORE", > + "BriefDescription": "Cycles in which the oldest instruction in the > pipeline was a store instruction executing in the Load Store Unit." > + }, > + { > + "EventCode": "30018", > + "EventName": "PM_DISP_STALL_HELD_SCOREBOARD_CYC", > + "BriefDescription": "Cycles in which the NTC instruction is held at > dispatch while waiting on the Scoreboard. This event combines VSCR and FPSCR > together." > + }, > + { > + "EventCode": "30026", > + "EventName": "PM_EXEC_STALL_STORE_MISS", > + "BriefDescription": "Cycles in which the oldest instruction in the > pipeline was a store whose cache line was not resident in the L1 and was > waiting for allocation of the missing line into the L1." > + }, > + { > + "EventCode": "3012A", > + "EventName": "PM_MRK_L2_RC_DONE", > + "BriefDescription": "L2 RC machine completed the transaction for the > marked instruction." > + }, > + { > + "EventCode": "3F046", > + "EventName": "PM_ITLB_HIT_1G", > + "BriefDescription": "Instruction TLB hit (IERAT reload) page size 1G, > which implies Radix Page Table translation is in use. When MMCR1[17]=0 this > event counts only for demand misses. When MMCR1[17]=1 this event includes > demand misses and prefetches." > + }, > + { > + "EventCode": "34058", > + "EventName": "PM_DISP_STALL_BR_MPRED_ICMISS", > + "BriefDescription": "Cycles when dispatch was stalled after a > mispredicted branch resulted in an instruction cache miss." > + }, > + { > + "EventCode": "3D05C", > + "EventName": "PM_DISP_STALL_HELD_RENAME_CYC", > + "BriefDescription": "Cycles in which the NTC instruction is held at > dispatch because the mapper/SRB was full. Includes GPR (count, link, tar), > VSR, VMR, FPR and XVFC." > + }, > + { > + "EventCode": "3E052", > + "EventName": "PM_DISP_STALL_IC_L3", > + "BriefDescription": "Cycles when dispatch was stalled while the > instruction was fetched from the local L3." > + }, > + { > + "EventCode": "3E054", > + "EventName": "PM_LD_MISS_L1", > + "BriefDescription": "Load Missed L1, counted at execution time (can be > greater than loads finished). LMQ merges are not included in this count. i.e. > if a load instruction misses on an address that is already allocated on the > LMQ, this event will not increment for that load). Note that this count is > per slice, so if a load spans multiple slices this event will increment > multiple times for a single load." > + }, > + { > + "EventCode": "301EA", > + "EventName": "PM_THRESH_EXC_1024", > + "BriefDescription": "Threshold counter exceeded a value of 1024." > + }, > + { > + "EventCode": "300FA", > + "EventName": "PM_INST_FROM_L3MISS", > + "BriefDescription": "The processor's instruction cache was reloaded from > a source other than the local core's L1, L2, or L3 due to a demand miss." > + }, > + { > + "EventCode": "40006", > + "EventName": "PM_ISSUE_KILL", > + "BriefDescription": "Cycles in which an instruction or group of > instructions were cancelled after being issued. This event increments once > per occurrence, regardless of how many instructions are included in the issue > group." > + }, > + { > + "EventCode": "40116", > + "EventName": "PM_MRK_LARX_FIN", > + "BriefDescription": "Marked load and reserve instruction (LARX) > finished. LARX and STCX are instructions used to acquire a lock." > + }, > + { > + "EventCode": "4C010", > + "EventName": "PM_DISP_STALL_BR_MPRED_IC_L3MISS", > + "BriefDescription": "Cycles when dispatch was stalled while the > instruction was fetched from sources beyond the local L3 after suffering a > mispredicted branch." > + }, > + { > + "EventCode": "4D01E", > + "EventName": "PM_DISP_STALL_BR_MPRED", > + "BriefDescription": "Cycles when dispatch was stalled for this thread > due to a mispredicted branch." > + }, > + { > + "EventCode": "4E010", > + "EventName": "PM_DISP_STALL_IC_L3MISS", > + "BriefDescription": "Cycles when dispatch was stalled while the > instruction was fetched from any source beyond the local L3." > + }, > + { > + "EventCode": "4E01A", > + "EventName": "PM_DISP_STALL_HELD_CYC", > + "BriefDescription": "Cycles in which the NTC instruction is held at > dispatch for any reason." > + }, > + { > + "EventCode": "44056", > + "EventName": "PM_VECTOR_ST_CMPL", > + "BriefDescription": "Vector store instructions completed." > + } > +] > diff --git a/tools/perf/pmu-events/arch/powerpc/power10/locks.json > b/tools/perf/pmu-events/arch/powerpc/power10/locks.json > new file mode 100644 > index 000000000000..fa81b470d21f > --- /dev/null > +++ b/tools/perf/pmu-events/arch/powerpc/power10/locks.json > @@ -0,0 +1,12 @@ > +[ > + { > + "EventCode": "1E058", > + "EventName": "PM_STCX_FAIL_FIN", > + "BriefDescription": "Conditional store instruction (STCX) failed. LARX > and STCX are instructions used to acquire a lock." > + }, > + { > + "EventCode": "4E050", > + "EventName": "PM_STCX_PASS_FIN", > + "BriefDescription": "Conditional store instruction (STCX) passed. LARX > and STCX are instructions used to acquire a lock." > + } > +] > diff --git a/tools/perf/pmu-events/arch/powerpc/power10/marked.json > b/tools/perf/pmu-events/arch/powerpc/power10/marked.json > new file mode 100644 > index 000000000000..ffe38525b18b > --- /dev/null > +++ b/tools/perf/pmu-events/arch/powerpc/power10/marked.json > @@ -0,0 +1,147 @@ > +[ > + { > + "EventCode": "1002C", > + "EventName": "PM_LD_PREFETCH_CACHE_LINE_MISS", > + "BriefDescription": "The L1 cache was reloaded with a line that fulfills > a prefetch request." > + }, > + { > + "EventCode": "10132", > + "EventName": "PM_MRK_INST_ISSUED", > + "BriefDescription": "Marked instruction issued. Note that stores always > get issued twice, the address gets issued to the LSU and the data gets issued > to the VSU. Also, issues can sometimes get killed/cancelled and cause > multiple sequential issues for the same instruction." > + }, > + { > + "EventCode": "101E0", > + "EventName": "PM_MRK_INST_DISP", > + "BriefDescription": "The thread has dispatched a randomly sampled marked > instruction." > + }, > + { > + "EventCode": "101E2", > + "EventName": "PM_MRK_BR_TAKEN_CMPL", > + "BriefDescription": "Marked Branch Taken instruction completed." > + }, > + { > + "EventCode": "20112", > + "EventName": "PM_MRK_NTF_FIN", > + "BriefDescription": "The marked instruction became the oldest in the > pipeline before it finished. It excludes instructions that finish at > dispatch." > + }, > + { > + "EventCode": "2C01C", > + "EventName": "PM_EXEC_STALL_DMISS_OFF_CHIP", > + "BriefDescription": "Cycles in which the oldest instruction in the > pipeline was waiting for a load miss to resolve from a remote chip." > + }, > + { > + "EventCode": "20138", > + "EventName": "PM_MRK_ST_NEST", > + "BriefDescription": "A store has been sampled/marked and is at the point > of execution where it has completed in the core and can no longer be flushed. > At this point the store is sent to the L2." > + }, > + { > + "EventCode": "2013A", > + "EventName": "PM_MRK_BRU_FIN", > + "BriefDescription": "Marked Branch instruction finished." > + }, > + { > + "EventCode": "2C144", > + "EventName": "PM_MRK_XFER_FROM_SRC_CYC_PMC2", > + "BriefDescription": "Cycles taken for a marked demand miss to reload a > line from the source specified in MMCR3[15:27]." > + }, > + { > + "EventCode": "24156", > + "EventName": "PM_MRK_STCX_FIN", > + "BriefDescription": "Marked conditional store instruction (STCX) > finished. LARX and STCX are instructions used to acquire a lock." > + }, > + { > + "EventCode": "24158", > + "EventName": "PM_MRK_INST", > + "BriefDescription": "An instruction was marked. Includes both Random > Instruction Sampling (RIS) at decode time and Random Event Sampling (RES) at > the time the configured event happens." > + }, > + { > + "EventCode": "2415C", > + "EventName": "PM_MRK_BR_CMPL", > + "BriefDescription": "A marked branch completed. All branches are > included." > + }, > + { > + "EventCode": "200FD", > + "EventName": "PM_L1_ICACHE_MISS", > + "BriefDescription": "Demand iCache Miss." > + }, > + { > + "EventCode": "30130", > + "EventName": "PM_MRK_INST_FIN", > + "BriefDescription": "marked instruction finished. Excludes instructions > that finish at dispatch. Note that stores always finish twice since the > address gets issued to the LSU and the data gets issued to the VSU." > + }, > + { > + "EventCode": "34146", > + "EventName": "PM_MRK_LD_CMPL", > + "BriefDescription": "Marked loads completed." > + }, > + { > + "EventCode": "3E158", > + "EventName": "PM_MRK_STCX_FAIL", > + "BriefDescription": "Marked conditional store instruction (STCX) failed. > LARX and STCX are instructions used to acquire a lock." > + }, > + { > + "EventCode": "3E15A", > + "EventName": "PM_MRK_ST_FIN", > + "BriefDescription": "The marked instruction was a store of any kind." > + }, > + { > + "EventCode": "30068", > + "EventName": "PM_L1_ICACHE_RELOADED_PREF", > + "BriefDescription": "Counts all Icache prefetch reloads ( includes > demand turned into prefetch)." > + }, > + { > + "EventCode": "301E4", > + "EventName": "PM_MRK_BR_MPRED_CMPL", > + "BriefDescription": "Marked Branch Mispredicted. Includes direction and > target." > + }, > + { > + "EventCode": "300F6", > + "EventName": "PM_LD_DEMAND_MISS_L1", > + "BriefDescription": "The L1 cache was reloaded with a line that fulfills > a demand miss request. Counted at reload time, before finish." > + }, > + { > + "EventCode": "300FE", > + "EventName": "PM_DATA_FROM_L3MISS", > + "BriefDescription": "The processor's data cache was reloaded from a > source other than the local core's L1, L2, or L3 due to a demand miss." > + }, > + { > + "EventCode": "40012", > + "EventName": "PM_L1_ICACHE_RELOADED_ALL", > + "BriefDescription": "Counts all Icache reloads includes demand, > prefetch, prefetch turned into demand and demand turned into prefetch." > + }, > + { > + "EventCode": "40134", > + "EventName": "PM_MRK_INST_TIMEO", > + "BriefDescription": "Marked instruction finish timeout (instruction was > lost)." > + }, > + { > + "EventCode": "4003C", > + "EventName": "PM_DISP_STALL_HELD_SYNC_CYC", > + "BriefDescription": "Cycles in which the NTC instruction is held at > dispatch because of a synchronizing instruction that requires the ICT to be > empty before dispatch." > + }, > + { > + "EventCode": "4505A", > + "EventName": "PM_SP_FLOP_CMPL", > + "BriefDescription": "Single Precision floating point instructions > completed." > + }, > + { > + "EventCode": "4D058", > + "EventName": "PM_VECTOR_FLOP_CMPL", > + "BriefDescription": "Vector floating point instructions completed." > + }, > + { > + "EventCode": "4D05A", > + "EventName": "PM_NON_MATH_FLOP_CMPL", > + "BriefDescription": "Non Math instructions completed." > + }, > + { > + "EventCode": "401E0", > + "EventName": "PM_MRK_INST_CMPL", > + "BriefDescription": "marked instruction completed." > + }, > + { > + "EventCode": "400FE", > + "EventName": "PM_DATA_FROM_MEMORY", > + "BriefDescription": "The processor's data cache was reloaded from local, > remote, or distant memory due to a demand miss." > + } > +] > diff --git a/tools/perf/pmu-events/arch/powerpc/power10/memory.json > b/tools/perf/pmu-events/arch/powerpc/power10/memory.json > new file mode 100644 > index 000000000000..6e47b96e2d66 > --- /dev/null > +++ b/tools/perf/pmu-events/arch/powerpc/power10/memory.json > @@ -0,0 +1,192 @@ > +[ > + { > + "EventCode": "1000A", > + "EventName": "PM_PMC3_REWIND", > + "BriefDescription": "The speculative event selected for PMC3 rewinds and > the counter for PMC3 is not charged." > + }, > + { > + "EventCode": "1C040", > + "EventName": "PM_XFER_FROM_SRC_PMC1", > + "BriefDescription": "The processor's L1 data cache was reloaded from the > source specified in MMCR3[0:12]. If MMCR1[16|17] is 0 (default), this count > includes only lines that were reloaded to satisfy a demand miss. If > MMCR1[16|17] is 1, this count includes both demand misses and prefetch > reloads." > + }, > + { > + "EventCode": "1C142", > + "EventName": "PM_MRK_XFER_FROM_SRC_PMC1", > + "BriefDescription": "For a marked data transfer instruction, the > processor's L1 data cache was reloaded from the source specified in > MMCR3[0:12]. If MMCR1[16|17] is 0 (default), this count includes only lines > that were reloaded to satisfy a demand miss. If MMCR1[16|17] is 1, this count > includes both demand misses and prefetch reloads." > + }, > + { > + "EventCode": "1C144", > + "EventName": "PM_MRK_XFER_FROM_SRC_CYC_PMC1", > + "BriefDescription": "Cycles taken for a marked demand miss to reload a > line from the source specified in MMCR3[0:12]." > + }, > + { > + "EventCode": "1C056", > + "EventName": "PM_DERAT_MISS_4K", > + "BriefDescription": "Data ERAT Miss (Data TLB Access) page size 4K. When > MMCR1[16]=0 this event counts only DERAT reloads for demand misses. When > MMCR1[16]=1 this event includes demand misses and prefetches." > + }, > + { > + "EventCode": "1C058", > + "EventName": "PM_DTLB_MISS_16G", > + "BriefDescription": "Data TLB reload (after a miss) page size 16G. When > MMCR1[16]=0 this event counts only for demand misses. When MMCR1[16]=1 this > event includes demand misses and prefetches." > + }, > + { > + "EventCode": "1C05C", > + "EventName": "PM_DTLB_MISS_2M", > + "BriefDescription": "Data TLB reload (after a miss) page size 2M. > Implies radix translation was used. When MMCR1[16]=0 this event counts only > for demand misses. When MMCR1[16]=1 this event includes demand misses and > prefetches." > + }, > + { > + "EventCode": "1E056", > + "EventName": "PM_EXEC_STALL_STORE_PIPE", > + "BriefDescription": "Cycles in which the oldest instruction in the > pipeline was executing in the store unit. This does not include cycles spent > handling store misses, PTESYNC instructions or TLBIE instructions." > + }, > + { > + "EventCode": "1F150", > + "EventName": "PM_MRK_ST_L2_CYC", > + "BriefDescription": "Cycles from L2 RC dispatch to L2 RC completion." > + }, > + { > + "EventCode": "10062", > + "EventName": "PM_LD_L3MISS_PEND_CYC", > + "BriefDescription": "Cycles L3 miss was pending for this thread." > + }, > + { > + "EventCode": "20010", > + "EventName": "PM_PMC1_OVERFLOW", > + "BriefDescription": "The event selected for PMC1 caused the event > counter to overflow." > + }, > + { > + "EventCode": "2001A", > + "EventName": "PM_ITLB_HIT", > + "BriefDescription": "The PTE required to translate the instruction > address was resident in the TLB (instruction TLB access/IERAT reload). > Applies to both HPT and RPT. When MMCR1[17]=0 this event counts only for > demand misses. When MMCR1[17]=1 this event includes demand misses and > prefetches." > + }, > + { > + "EventCode": "2003E", > + "EventName": "PM_PTESYNC_FIN", > + "BriefDescription": "Ptesync instruction finished in the store unit. > Only one ptesync can finish at a time." > + }, > + { > + "EventCode": "2C040", > + "EventName": "PM_XFER_FROM_SRC_PMC2", > + "BriefDescription": "The processor's L1 data cache was reloaded from the > source specified in MMCR3[15:27]. If MMCR1[16|17] is 0 (default), this count > includes only lines that were reloaded to satisfy a demand miss. If > MMCR1[16|17] is 1, this count includes both demand misses and prefetch > reloads." > + }, > + { > + "EventCode": "2C054", > + "EventName": "PM_DERAT_MISS_64K", > + "BriefDescription": "Data ERAT Miss (Data TLB Access) page size 64K. > When MMCR1[16]=0 this event counts only DERAT reloads for demand misses. When > MMCR1[16]=1 this event includes demand misses and prefetches." > + }, > + { > + "EventCode": "2C056", > + "EventName": "PM_DTLB_MISS_4K", > + "BriefDescription": "Data TLB reload (after a miss) page size 4K. When > MMCR1[16]=0 this event counts only for demand misses. When MMCR1[16]=1 this > event includes demand misses and prefetches." > + }, > + { > + "EventCode": "2D154", > + "EventName": "PM_MRK_DERAT_MISS_64K", > + "BriefDescription": "Data ERAT Miss (Data TLB Access) page size 64K for > a marked instruction. When MMCR1[16]=0 this event counts only DERAT reloads > for demand misses. When MMCR1[16]=1 this event includes demand misses and > prefetches." > + }, > + { > + "EventCode": "200F6", > + "EventName": "PM_DERAT_MISS", > + "BriefDescription": "DERAT Reloaded to satisfy a DERAT miss. All page > sizes are counted by this event. When MMCR1[16]=0 this event counts only > DERAT reloads for demand misses. When MMCR1[16]=1 this event includes demand > misses and prefetches." > + }, > + { > + "EventCode": "3000A", > + "EventName": "PM_DISP_STALL_ITLB_MISS", > + "BriefDescription": "Cycles when dispatch was stalled while waiting to > resolve an instruction TLB miss." > + }, > + { > + "EventCode": "30016", > + "EventName": "PM_EXEC_STALL_DERAT_DTLB_MISS", > + "BriefDescription": "Cycles in which the oldest instruction in the > pipeline suffered a TLB miss and waited for it resolve." > + }, > + { > + "EventCode": "3C040", > + "EventName": "PM_XFER_FROM_SRC_PMC3", > + "BriefDescription": "The processor's L1 data cache was reloaded from the > source specified in MMCR3[30:42]. If MMCR1[16|17] is 0 (default), this count > includes only lines that were reloaded to satisfy a demand miss. If > MMCR1[16|17] is 1, this count includes both demand misses and prefetch > reloads." > + }, > + { > + "EventCode": "3C142", > + "EventName": "PM_MRK_XFER_FROM_SRC_PMC3", > + "BriefDescription": "For a marked data transfer instruction, the > processor's L1 data cache was reloaded from the source specified in > MMCR3[30:42]. If MMCR1[16|17] is 0 (default), this count includes only lines > that were reloaded to satisfy a demand miss. If MMCR1[16|17] is 1, this count > includes both demand misses and prefetch reloads." > + }, > + { > + "EventCode": "3C144", > + "EventName": "PM_MRK_XFER_FROM_SRC_CYC_PMC3", > + "BriefDescription": "Cycles taken for a marked demand miss to reload a > line from the source specified in MMCR3[30:42]." > + }, > + { > + "EventCode": "3C054", > + "EventName": "PM_DERAT_MISS_16M", > + "BriefDescription": "Data ERAT Miss (Data TLB Access) page size 16M. > When MMCR1[16]=0 this event counts only DERAT reloads for demand misses. When > MMCR1[16]=1 this event includes demand misses and prefetches." > + }, > + { > + "EventCode": "3C056", > + "EventName": "PM_DTLB_MISS_64K", > + "BriefDescription": "Data TLB reload (after a miss) page size 64K. When > MMCR1[16]=0 this event counts only for demand misses. When MMCR1[16]=1 this > event includes demand misses and prefetches." > + }, > + { > + "EventCode": "3C058", > + "EventName": "PM_LARX_FIN", > + "BriefDescription": "Load and reserve instruction (LARX) finished. LARX > and STCX are instructions used to acquire a lock." > + }, > + { > + "EventCode": "301E2", > + "EventName": "PM_MRK_ST_CMPL", > + "BriefDescription": "Marked store completed and sent to nest. Note that > this count excludes cache-inhibited stores." > + }, > + { > + "EventCode": "300FC", > + "EventName": "PM_DTLB_MISS", > + "BriefDescription": "The DPTEG required for the load/store instruction > in execution was missing from the TLB. It includes pages of all sizes for > demand and prefetch activity." > + }, > + { > + "EventCode": "4D02C", > + "EventName": "PM_PMC1_REWIND", > + "BriefDescription": "The speculative event selected for PMC1 rewinds and > the counter for PMC1 is not charged." > + }, > + { > + "EventCode": "4003E", > + "EventName": "PM_LD_CMPL", > + "BriefDescription": "Loads completed." > + }, > + { > + "EventCode": "4C040", > + "EventName": "PM_XFER_FROM_SRC_PMC4", > + "BriefDescription": "The processor's L1 data cache was reloaded from the > source specified in MMCR3[45:57]. If MMCR1[16|17] is 0 (default), this count > includes only lines that were reloaded to satisfy a demand miss. If > MMCR1[16|17] is 1, this count includes both demand misses and prefetch > reloads." > + }, > + { > + "EventCode": "4C142", > + "EventName": "PM_MRK_XFER_FROM_SRC_PMC4", > + "BriefDescription": "For a marked data transfer instruction, the > processor's L1 data cache was reloaded from the source specified in > MMCR3[45:57]. If MMCR1[16|17] is 0 (default), this count includes only lines > that were reloaded to satisfy a demand miss. If MMCR1[16|17] is 1, this count > includes both demand misses and prefetch reloads." > + }, > + { > + "EventCode": "4C144", > + "EventName": "PM_MRK_XFER_FROM_SRC_CYC_PMC4", > + "BriefDescription": "Cycles taken for a marked demand miss to reload a > line from the source specified in MMCR3[45:57]." > + }, > + { > + "EventCode": "4C056", > + "EventName": "PM_DTLB_MISS_16M", > + "BriefDescription": "Data TLB reload (after a miss) page size 16M. When > MMCR1[16]=0 this event counts only for demand misses. When MMCR1[16]=1 this > event includes demand misses and prefetches." > + }, > + { > + "EventCode": "4C05A", > + "EventName": "PM_DTLB_MISS_1G", > + "BriefDescription": "Data TLB reload (after a miss) page size 1G. > Implies radix translation was used. When MMCR1[16]=0 this event counts only > for demand misses. When MMCR1[16]=1 this event includes demand misses and > prefetches." > + }, > + { > + "EventCode": "4C15E", > + "EventName": "PM_MRK_DTLB_MISS_64K", > + "BriefDescription": "Marked Data TLB reload (after a miss) page size > 64K. When MMCR1[16]=0 this event counts only for demand misses. When > MMCR1[16]=1 this event includes demand misses and prefetches." > + }, > + { > + "EventCode": "4D056", > + "EventName": "PM_NON_FMA_FLOP_CMPL", > + "BriefDescription": "Non FMA instruction completed." > + }, > + { > + "EventCode": "40164", > + "EventName": "PM_MRK_DERAT_MISS_2M", > + "BriefDescription": "Data ERAT Miss (Data TLB Access) page size 2M for a > marked instruction. When MMCR1[16]=0 this event counts only DERAT reloads for > demand misses. When MMCR1[16]=1 this event includes demand misses and > prefetches." > + } > +] > diff --git a/tools/perf/pmu-events/arch/powerpc/power10/others.json > b/tools/perf/pmu-events/arch/powerpc/power10/others.json > new file mode 100644 > index 000000000000..2992f7961134 > --- /dev/null > +++ b/tools/perf/pmu-events/arch/powerpc/power10/others.json > @@ -0,0 +1,297 @@ > +[ > + { > + "EventCode": "10016", > + "EventName": "PM_VSU0_ISSUE", > + "BriefDescription": "VSU instructions issued to VSU pipe 0." > + }, > + { > + "EventCode": "1001C", > + "EventName": "PM_ULTRAVISOR_INST_CMPL", > + "BriefDescription": "PowerPC instructions that completed while the > thread was in ultravisor state." > + }, > + { > + "EventCode": "100F0", > + "EventName": "PM_CYC", > + "BriefDescription": "Processor cycles." > + }, > + { > + "EventCode": "10134", > + "EventName": "PM_MRK_ST_DONE_L2", > + "BriefDescription": "Marked stores completed in L2 (RC machine done)." > + }, > + { > + "EventCode": "1505E", > + "EventName": "PM_LD_HIT_L1", > + "BriefDescription": "Loads that finished without experiencing an L1 > miss." > + }, > + { > + "EventCode": "1D05E", > + "EventName": "PM_DISP_STALL_HELD_HALT_CYC", > + "BriefDescription": "Cycles in which the NTC instruction is held at > dispatch because of power management." > + }, > + { > + "EventCode": "1E054", > + "EventName": "PM_EXEC_STALL_DMISS_L21_L31", > + "BriefDescription": "Cycles in which the oldest instruction in the > pipeline was waiting for a load miss to resolve from another core's L2 or L3 > on the same chip." > + }, > + { > + "EventCode": "1E05A", > + "EventName": "PM_CMPL_STALL_LWSYNC", > + "BriefDescription": "Cycles in which the oldest instruction in the > pipeline was a lwsync waiting to complete." > + }, > + { > + "EventCode": "1F056", > + "EventName": "PM_DISP_SS0_2_INSTR_CYC", > + "BriefDescription": "Cycles in which Superslice 0 dispatches either 1 or > 2 instructions." > + }, > + { > + "EventCode": "1F15C", > + "EventName": "PM_MRK_STCX_L2_CYC", > + "BriefDescription": "Cycles spent in the nest portion of a marked Stcx > instruction. It starts counting when the operation starts to drain to the L2 > and it stops counting when the instruction retires from the Instruction > Completion Table (ICT) in the Instruction Sequencing Unit (ISU)." > + }, > + { > + "EventCode": "10066", > + "EventName": "PM_ADJUNCT_CYC", > + "BriefDescription": "Cycles in which the thread is in Adjunct state. > MSR[S HV PR] bits = 011." > + }, > + { > + "EventCode": "101E4", > + "EventName": "PM_MRK_L1_ICACHE_MISS", > + "BriefDescription": "Marked Instruction suffered an icache Miss." > + }, > + { > + "EventCode": "101EA", > + "EventName": "PM_MRK_L1_RELOAD_VALID", > + "BriefDescription": "Marked demand reload." > + }, > + { > + "EventCode": "100F4", > + "EventName": "PM_FLOP_CMPL", > + "BriefDescription": "Floating Point Operations Completed. Includes any > type. It counts once for each 1, 2, 4 or 8 flop instruction. Use > PM_1|2|4|8_FLOP_CMPL events to count flops." > + }, > + { > + "EventCode": "100FA", > + "EventName": "PM_RUN_LATCH_ANY_THREAD_CYC", > + "BriefDescription": "Cycles when at least one thread has the run latch > set." > + }, > + { > + "EventCode": "100FC", > + "EventName": "PM_LD_REF_L1", > + "BriefDescription": "All L1 D cache load references counted at finish, > gated by reject. In P9 and earlier this event counted only cacheable loads > but in P10 both cacheable and non-cacheable loads are included." > + }, > + { > + "EventCode": "20006", > + "EventName": "PM_DISP_STALL_HELD_ISSQ_FULL_CYC", > + "BriefDescription": "Cycles in which the NTC instruction is held at > dispatch due to Issue queue full. Includes issue queue and branch queue." > + }, > + { > + "EventCode": "2000C", > + "EventName": "PM_RUN_LATCH_ALL_THREADS_CYC", > + "BriefDescription": "Cycles when the run latch is set for all threads." > + }, > + { > + "EventCode": "2E010", > + "EventName": "PM_ADJUNCT_INST_CMPL", > + "BriefDescription": "PowerPC instructions that completed while the > thread is in Adjunct state." > + }, > + { > + "EventCode": "2E014", > + "EventName": "PM_STCX_FIN", > + "BriefDescription": "Conditional store instruction (STCX) finished. LARX > and STCX are instructions used to acquire a lock." > + }, > + { > + "EventCode": "20130", > + "EventName": "PM_MRK_INST_DECODED", > + "BriefDescription": "An instruction was marked at decode time. Random > Instruction Sampling (RIS) only." > + }, > + { > + "EventCode": "20132", > + "EventName": "PM_MRK_DFU_ISSUE", > + "BriefDescription": "The marked instruction was a decimal floating point > operation issued to the VSU. Measured at issue time." > + }, > + { > + "EventCode": "20134", > + "EventName": "PM_MRK_FXU_ISSUE", > + "BriefDescription": "The marked instruction was a fixed point operation > issued to the VSU. Measured at issue time." > + }, > + { > + "EventCode": "2505C", > + "EventName": "PM_VSU_ISSUE", > + "BriefDescription": "At least one VSU instruction was issued to one of > the VSU pipes. Up to 4 per cycle. Includes fixed point operations." > + }, > + { > + "EventCode": "2F054", > + "EventName": "PM_DISP_SS1_2_INSTR_CYC", > + "BriefDescription": "Cycles in which Superslice 1 dispatches either 1 or > 2 instructions." > + }, > + { > + "EventCode": "2F056", > + "EventName": "PM_DISP_SS1_4_INSTR_CYC", > + "BriefDescription": "Cycles in which Superslice 1 dispatches either 3 or > 4 instructions." > + }, > + { > + "EventCode": "2006C", > + "EventName": "PM_RUN_CYC_SMT4_MODE", > + "BriefDescription": "Cycles when this thread's run latch is set and the > core is in SMT4 mode." > + }, > + { > + "EventCode": "201E0", > + "EventName": "PM_MRK_DATA_FROM_MEMORY", > + "BriefDescription": "The processor's data cache was reloaded from local, > remote, or distant memory due to a demand miss for a marked load." > + }, > + { > + "EventCode": "201E4", > + "EventName": "PM_MRK_DATA_FROM_L3MISS", > + "BriefDescription": "The processor's data cache was reloaded from a > source other than the local core's L1, L2, or L3 due to a demand miss for a > marked load." > + }, > + { > + "EventCode": "201E8", > + "EventName": "PM_THRESH_EXC_512", > + "BriefDescription": "Threshold counter exceeded a value of 512." > + }, > + { > + "EventCode": "200F2", > + "EventName": "PM_INST_DISP", > + "BriefDescription": "PowerPC instructions dispatched." > + }, > + { > + "EventCode": "30132", > + "EventName": "PM_MRK_VSU_FIN", > + "BriefDescription": "VSU marked instructions finished. Excludes simple > FX instructions issued to the Store Unit." > + }, > + { > + "EventCode": "30038", > + "EventName": "PM_EXEC_STALL_DMISS_LMEM", > + "BriefDescription": "Cycles in which the oldest instruction in the > pipeline was waiting for a load miss to resolve from the local memory, local > OpenCapp cache, or local OpenCapp memory." > + }, > + { > + "EventCode": "3F04A", > + "EventName": "PM_LSU_ST5_FIN", > + "BriefDescription": "LSU Finished an internal operation in ST2 port." > + }, > + { > + "EventCode": "34054", > + "EventName": "PM_EXEC_STALL_DMISS_L2L3_NOCONFLICT", > + "BriefDescription": "Cycles in which the oldest instruction in the > pipeline was waiting for a load miss to resolve from the local L2 or local > L3, without a dispatch conflict." > + }, > + { > + "EventCode": "3405A", > + "EventName": "PM_PRIVILEGED_INST_CMPL", > + "BriefDescription": "PowerPC Instructions that completed while the > thread is in Privileged state." > + }, > + { > + "EventCode": "3F150", > + "EventName": "PM_MRK_ST_DRAIN_CYC", > + "BriefDescription": "cycles to drain st from core to L2." > + }, > + { > + "EventCode": "3F054", > + "EventName": "PM_DISP_SS0_4_INSTR_CYC", > + "BriefDescription": "Cycles in which Superslice 0 dispatches either 3 or > 4 instructions." > + }, > + { > + "EventCode": "3F056", > + "EventName": "PM_DISP_SS0_8_INSTR_CYC", > + "BriefDescription": "Cycles in which Superslice 0 dispatches either 5, > 6, 7 or 8 instructions." > + }, > + { > + "EventCode": "30162", > + "EventName": "PM_MRK_ISSUE_DEPENDENT_LOAD", > + "BriefDescription": "The marked instruction was dependent on a load. It > is eligible for issue kill." > + }, > + { > + "EventCode": "40114", > + "EventName": "PM_MRK_START_PROBE_NOP_DISP", > + "BriefDescription": "Marked Start probe nop dispatched. Instruction AND > R0,R0,R0." > + }, > + { > + "EventCode": "4001C", > + "EventName": "PM_VSU_FIN", > + "BriefDescription": "VSU instructions finished." > + }, > + { > + "EventCode": "4C01A", > + "EventName": "PM_EXEC_STALL_DMISS_OFF_NODE", > + "BriefDescription": "Cycles in which the oldest instruction in the > pipeline was waiting for a load miss to resolve from a distant chip." > + }, > + { > + "EventCode": "4D012", > + "EventName": "PM_PMC3_SAVED", > + "BriefDescription": "The conditions for the speculative event selected > for PMC3 are met and PMC3 is charged." > + }, > + { > + "EventCode": "4D022", > + "EventName": "PM_HYPERVISOR_INST_CMPL", > + "BriefDescription": "PowerPC instructions that completed while the > thread is in hypervisor state." > + }, > + { > + "EventCode": "4D026", > + "EventName": "PM_ULTRAVISOR_CYC", > + "BriefDescription": "Cycles when the thread is in Ultravisor state. > MSR[S HV PR]=110." > + }, > + { > + "EventCode": "4D028", > + "EventName": "PM_PRIVILEGED_CYC", > + "BriefDescription": "Cycles when the thread is in Privileged state. > MSR[S HV PR]=x00." > + }, > + { > + "EventCode": "40030", > + "EventName": "PM_INST_FIN", > + "BriefDescription": "Instructions finished." > + }, > + { > + "EventCode": "44146", > + "EventName": "PM_MRK_STCX_CORE_CYC", > + "BriefDescription": "Cycles spent in the core portion of a marked Stcx > instruction. It starts counting when the instruction is decoded and stops > counting when it drains into the L2." > + }, > + { > + "EventCode": "44054", > + "EventName": "PM_VECTOR_LD_CMPL", > + "BriefDescription": "Vector load instructions completed." > + }, > + { > + "EventCode": "45054", > + "EventName": "PM_FMA_CMPL", > + "BriefDescription": "Two floating point instructions completed (FMA > class of instructions: fmadd, fnmadd, fmsub, fnmsub). Scalar instructions > only." > + }, > + { > + "EventCode": "45056", > + "EventName": "PM_SCALAR_FLOP_CMPL", > + "BriefDescription": "Scalar floating point instructions completed." > + }, > + { > + "EventCode": "4505C", > + "EventName": "PM_MATH_FLOP_CMPL", > + "BriefDescription": "Math floating point instructions completed." > + }, > + { > + "EventCode": "4D05E", > + "EventName": "PM_BR_CMPL", > + "BriefDescription": "A branch completed. All branches are included." > + }, > + { > + "EventCode": "4E15E", > + "EventName": "PM_MRK_INST_FLUSHED", > + "BriefDescription": "The marked instruction was flushed." > + }, > + { > + "EventCode": "401E6", > + "EventName": "PM_MRK_INST_FROM_L3MISS", > + "BriefDescription": "The processor's instruction cache was reloaded from > a source other than the local core's L1, L2, or L3 due to a demand miss for a > marked instruction." > + }, > + { > + "EventCode": "401E8", > + "EventName": "PM_MRK_DATA_FROM_L2MISS", > + "BriefDescription": "The processor's data cache was reloaded from a > source other than the local core's L1 or L2 due to a demand miss for a marked > load." > + }, > + { > + "EventCode": "400F0", > + "EventName": "PM_LD_DEMAND_MISS_L1_FIN", > + "BriefDescription": "Load Missed L1, counted at finish time." > + }, > + { > + "EventCode": "400FA", > + "EventName": "PM_RUN_INST_CMPL", > + "BriefDescription": "Completed PowerPC instructions gated by the run > latch." > + } > +] > diff --git a/tools/perf/pmu-events/arch/powerpc/power10/pipeline.json > b/tools/perf/pmu-events/arch/powerpc/power10/pipeline.json > new file mode 100644 > index 000000000000..33c1c39ea323 > --- /dev/null > +++ b/tools/perf/pmu-events/arch/powerpc/power10/pipeline.json > @@ -0,0 +1,297 @@ > +[ > + { > + "EventCode": "100FE", > + "EventName": "PM_INST_CMPL", > + "BriefDescription": "PowerPC instructions completed." > + }, > + { > + "EventCode": "10006", > + "EventName": "PM_DISP_STALL_HELD_OTHER_CYC", > + "BriefDescription": "Cycles in which the NTC instruction is held at > dispatch for any other reason." > + }, > + { > + "EventCode": "1000C", > + "EventName": "PM_LSU_LD0_FIN", > + "BriefDescription": "LSU Finished an internal operation in LD0 port." > + }, > + { > + "EventCode": "1000E", > + "EventName": "PM_MMA_ISSUED", > + "BriefDescription": "MMA instructions issued." > + }, > + { > + "EventCode": "10012", > + "EventName": "PM_LSU_ST0_FIN", > + "BriefDescription": "LSU Finished an internal operation in ST0 port." > + }, > + { > + "EventCode": "10014", > + "EventName": "PM_LSU_ST4_FIN", > + "BriefDescription": "LSU Finished an internal operation in ST4 port." > + }, > + { > + "EventCode": "10018", > + "EventName": "PM_IC_DEMAND_CYC", > + "BriefDescription": "Cycles in which an instruction reload is pending to > satisfy a demand miss." > + }, > + { > + "EventCode": "10022", > + "EventName": "PM_PMC2_SAVED", > + "BriefDescription": "The conditions for the speculative event selected > for PMC2 are met and PMC2 is charged." > + }, > + { > + "EventCode": "10024", > + "EventName": "PM_PMC5_OVERFLOW", > + "BriefDescription": "The event selected for PMC5 caused the event > counter to overflow." > + }, > + { > + "EventCode": "10058", > + "EventName": "PM_EXEC_STALL_FIN_AT_DISP", > + "BriefDescription": "Cycles in which the oldest instruction in the > pipeline finished at dispatch and did not require execution in the LSU, BRU > or VSU." > + }, > + { > + "EventCode": "1005A", > + "EventName": "PM_FLUSH_MPRED", > + "BriefDescription": "A flush occurred due to a mispredicted branch. > Includes target and direction." > + }, > + { > + "EventCode": "1C05A", > + "EventName": "PM_DERAT_MISS_2M", > + "BriefDescription": "Data ERAT Miss (Data TLB Access) page size 2M. > Implies radix translation. When MMCR1[16]=0 this event counts only DERAT > reloads for demand misses. When MMCR1[16]=1 this event includes demand misses > and prefetches." > + }, > + { > + "EventCode": "10064", > + "EventName": "PM_DISP_STALL_IC_L2", > + "BriefDescription": "Cycles when dispatch was stalled while the > instruction was fetched from the local L2." > + }, > + { > + "EventCode": "10068", > + "EventName": "PM_BR_FIN", > + "BriefDescription": "A branch instruction finished. Includes > predicted/mispredicted/unconditional." > + }, > + { > + "EventCode": "1006A", > + "EventName": "PM_FX_LSU_FIN", > + "BriefDescription": "Simple fixed point instruction issued to the store > unit. Measured at finish time." > + }, > + { > + "EventCode": "1006C", > + "EventName": "PM_RUN_CYC_ST_MODE", > + "BriefDescription": "Cycles when the run latch is set and the core is in > ST mode." > + }, > + { > + "EventCode": "20004", > + "EventName": "PM_ISSUE_STALL", > + "BriefDescription": "Cycles in which the oldest instruction in the > pipeline was dispatched but not issued yet." > + }, > + { > + "EventCode": "2000A", > + "EventName": "PM_HYPERVISOR_CYC", > + "BriefDescription": "Cycles when the thread is in Hypervisor state. > MSR[S HV PR]=010." > + }, > + { > + "EventCode": "2000E", > + "EventName": "PM_LSU_LD1_FIN", > + "BriefDescription": "LSU Finished an internal operation in LD1 port." > + }, > + { > + "EventCode": "2C014", > + "EventName": "PM_CMPL_STALL_SPECIAL", > + "BriefDescription": "Cycles in which the oldest instruction in the > pipeline required special handling before completing." > + }, > + { > + "EventCode": "2C018", > + "EventName": "PM_EXEC_STALL_DMISS_L3MISS", > + "BriefDescription": "Cycles in which the oldest instruction in the > pipeline was waiting for a load miss to resolve from a source beyond the > local L2 or local L3." > + }, > + { > + "EventCode": "2D010", > + "EventName": "PM_LSU_ST1_FIN", > + "BriefDescription": "LSU Finished an internal operation in ST1 port." > + }, > + { > + "EventCode": "2D012", > + "EventName": "PM_VSU1_ISSUE", > + "BriefDescription": "VSU instructions issued to VSU pipe 1." > + }, > + { > + "EventCode": "2D018", > + "EventName": "PM_EXEC_STALL_VSU", > + "BriefDescription": "Cycles in which the oldest instruction in the > pipeline was executing in the VSU (includes FXU, VSU, CRU)." > + }, > + { > + "EventCode": "2E01E", > + "EventName": "PM_EXEC_STALL_NTC_FLUSH", > + "BriefDescription": "Cycles in which the oldest instruction in the > pipeline was executing in any unit before it was flushed. Note that if the > flush of the oldest instruction happens after finish, the cycles from > dispatch to issue will be included in PM_DISP_STALL and the cycles from issue > to finish will be included in PM_EXEC_STALL and its corresponding children." > + }, > + { > + "EventCode": "2013C", > + "EventName": "PM_MRK_FX_LSU_FIN", > + "BriefDescription": "The marked instruction was simple fixed point that > was issued to the store unit. Measured at finish time." > + }, > + { > + "EventCode": "2405A", > + "EventName": "PM_NTC_FIN", > + "BriefDescription": "Cycles in which the oldest instruction in the > pipeline (NTC) finishes. Note that instructions can finish out of order, > therefore not all the instructions that finish have a Next-to-complete > status." > + }, > + { > + "EventCode": "201E2", > + "EventName": "PM_MRK_LD_MISS_L1", > + "BriefDescription": "Marked DL1 Demand Miss counted at finish time." > + }, > + { > + "EventCode": "200F4", > + "EventName": "PM_RUN_CYC", > + "BriefDescription": "Processor cycles gated by the run latch." > + }, > + { > + "EventCode": "30004", > + "EventName": "PM_DISP_STALL_FLUSH", > + "BriefDescription": "Cycles when dispatch was stalled because of a flush > that happened to an instruction(s) that was not yet NTC. > PM_EXEC_STALL_NTC_FLUSH only includes instructions that were flushed after > becoming NTC." > + }, > + { > + "EventCode": "30008", > + "EventName": "PM_EXEC_STALL", > + "BriefDescription": "Cycles in which the oldest instruction in the > pipeline was waiting to finish in one of the execution units (BRU, LSU, VSU). > Only cycles between issue and finish are counted in this category." > + }, > + { > + "EventCode": "3001A", > + "EventName": "PM_LSU_ST2_FIN", > + "BriefDescription": "LSU Finished an internal operation in ST2 port." > + }, > + { > + "EventCode": "30020", > + "EventName": "PM_PMC2_REWIND", > + "BriefDescription": "The speculative event selected for PMC2 rewinds and > the counter for PMC2 is not charged." > + }, > + { > + "EventCode": "30022", > + "EventName": "PM_PMC4_SAVED", > + "BriefDescription": "The conditions for the speculative event selected > for PMC4 are met and PMC4 is charged." > + }, > + { > + "EventCode": "30024", > + "EventName": "PM_PMC6_OVERFLOW", > + "BriefDescription": "The event selected for PMC6 caused the event > counter to overflow." > + }, > + { > + "EventCode": "30028", > + "EventName": "PM_CMPL_STALL_MEM_ECC", > + "BriefDescription": "Cycles in which the oldest instruction in the > pipeline was waiting for the non-speculative finish of either a stcx waiting > for its result or a load waiting for non-critical sectors of data and ECC." > + }, > + { > + "EventCode": "30036", > + "EventName": "PM_EXEC_STALL_SIMPLE_FX", > + "BriefDescription": "Cycles in which the oldest instruction in the > pipeline was a simple fixed point instruction executing in the Load Store > Unit." > + }, > + { > + "EventCode": "3003A", > + "EventName": "PM_CMPL_STALL_EXCEPTION", > + "BriefDescription": "Cycles in which the oldest instruction in the > pipeline was not allowed to complete because it was interrupted by ANY > exception, which has to be serviced before the instruction can complete." > + }, > + { > + "EventCode": "3F044", > + "EventName": "PM_VSU2_ISSUE", > + "BriefDescription": "VSU instructions issued to VSU pipe 2." > + }, > + { > + "EventCode": "30058", > + "EventName": "PM_TLBIE_FIN", > + "BriefDescription": "TLBIE instructions finished in the LSU. Two TLBIEs > can finish each cycle. All will be counted." > + }, > + { > + "EventCode": "3D058", > + "EventName": "PM_SCALAR_FSQRT_FDIV_ISSUE", > + "BriefDescription": "Scalar versions of four floating point operations: > fdiv,fsqrt (xvdivdp, xvdivsp, xvsqrtdp, xvsqrtsp)." > + }, > + { > + "EventCode": "30066", > + "EventName": "PM_LSU_FIN", > + "BriefDescription": "LSU Finished an internal operation (up to 4 per > cycle)." > + }, > + { > + "EventCode": "40004", > + "EventName": "PM_FXU_ISSUE", > + "BriefDescription": "A fixed point instruction was issued to the VSU." > + }, > + { > + "EventCode": "40008", > + "EventName": "PM_NTC_ALL_FIN", > + "BriefDescription": "Cycles in which both instructions in the ICT entry > pair show as finished. These are the cycles between finish and completion for > the oldest pair of instructions in the pipeline." > + }, > + { > + "EventCode": "40010", > + "EventName": "PM_PMC3_OVERFLOW", > + "BriefDescription": "The event selected for PMC3 caused the event > counter to overflow." > + }, > + { > + "EventCode": "4C012", > + "EventName": "PM_EXEC_STALL_DERAT_ONLY_MISS", > + "BriefDescription": "Cycles in which the oldest instruction in the > pipeline suffered an ERAT miss and waited for it resolve." > + }, > + { > + "EventCode": "4C018", > + "EventName": "PM_CMPL_STALL", > + "BriefDescription": "Cycles in which the oldest instruction in the > pipeline cannot complete because the thread was blocked for any reason." > + }, > + { > + "EventCode": "4C01E", > + "EventName": "PM_LSU_ST3_FIN", > + "BriefDescription": "LSU Finished an internal operation in ST3 port." > + }, > + { > + "EventCode": "4D018", > + "EventName": "PM_EXEC_STALL_BRU", > + "BriefDescription": "Cycles in which the oldest instruction in the > pipeline was executing in the Branch unit." > + }, > + { > + "EventCode": "4D01A", > + "EventName": "PM_CMPL_STALL_HWSYNC", > + "BriefDescription": "Cycles in which the oldest instruction in the > pipeline was a hwsync waiting for response from L2 before completing." > + }, > + { > + "EventCode": "4D01C", > + "EventName": "PM_EXEC_STALL_TLBIEL", > + "BriefDescription": "Cycles in which the oldest instruction in the > pipeline was a TLBIEL instruction executing in the Load Store Unit. TLBIEL > instructions have lower overhead than TLBIE instructions because they don't > get set to the nest." > + }, > + { > + "EventCode": "4E012", > + "EventName": "PM_EXEC_STALL_UNKNOWN", > + "BriefDescription": "Cycles in which the oldest instruction in the > pipeline completed without an ntf_type pulse. The ntf_pulse was missed by the > ISU because the NTF finishes and completions came too close together." > + }, > + { > + "EventCode": "4D020", > + "EventName": "PM_VSU3_ISSUE", > + "BriefDescription": "VSU instruction was issued to VSU pipe 3." > + }, > + { > + "EventCode": "40132", > + "EventName": "PM_MRK_LSU_FIN", > + "BriefDescription": "LSU marked instruction finish." > + }, > + { > + "EventCode": "45058", > + "EventName": "PM_IC_MISS_CMPL", > + "BriefDescription": "Non-speculative icache miss, counted at completion." > + }, > + { > + "EventCode": "4D050", > + "EventName": "PM_VSU_NON_FLOP_CMPL", > + "BriefDescription": "Non-floating point VSU instructions completed." > + }, > + { > + "EventCode": "4D052", > + "EventName": "PM_2FLOP_CMPL", > + "BriefDescription": "Double Precision vector version of fmul, fsub, > fcmp, fsel, fabs, fnabs, fres, fsqrte, fneg completed." > + }, > + { > + "EventCode": "400F2", > + "EventName": "PM_1PLUS_PPC_DISP", > + "BriefDescription": "Cycles at least one Instr Dispatched." > + }, > + { > + "EventCode": "400F8", > + "EventName": "PM_FLUSH", > + "BriefDescription": "Flush (any type)." > + } > +] > diff --git a/tools/perf/pmu-events/arch/powerpc/power10/pmc.json > b/tools/perf/pmu-events/arch/powerpc/power10/pmc.json > new file mode 100644 > index 000000000000..60a0100ee996 > --- /dev/null > +++ b/tools/perf/pmu-events/arch/powerpc/power10/pmc.json > @@ -0,0 +1,22 @@ > +[ > + { > + "EventCode": "301E8", > + "EventName": "PM_THRESH_EXC_64", > + "BriefDescription": "Threshold counter exceeded a value of 64." > + }, > + { > + "EventCode": "45050", > + "EventName": "PM_1FLOP_CMPL", > + "BriefDescription": "One floating point instruction completed (fadd, > fmul, fsub, fcmp, fsel, fabs, fnabs, fres, fsqrte, fneg)." > + }, > + { > + "EventCode": "45052", > + "EventName": "PM_4FLOP_CMPL", > + "BriefDescription": "Four floating point instructions completed (fadd, > fmul, fsub, fcmp, fsel, fabs, fnabs, fres, fsqrte, fneg)." > + }, > + { > + "EventCode": "4D054", > + "EventName": "PM_8FLOP_CMPL", > + "BriefDescription": "Four Double Precision vector instructions > completed." > + } > +] > diff --git a/tools/perf/pmu-events/arch/powerpc/power10/translation.json > b/tools/perf/pmu-events/arch/powerpc/power10/translation.json > new file mode 100644 > index 000000000000..da44d4ca6ef3 > --- /dev/null > +++ b/tools/perf/pmu-events/arch/powerpc/power10/translation.json > @@ -0,0 +1,57 @@ > +[ > + { > + "EventCode": "1F15E", > + "EventName": "PM_MRK_START_PROBE_NOP_CMPL", > + "BriefDescription": "Marked Start probe nop (AND R0,R0,R0) completed." > + }, > + { > + "EventCode": "20016", > + "EventName": "PM_ST_FIN", > + "BriefDescription": "Store finish count. Includes speculative activity." > + }, > + { > + "EventCode": "20018", > + "EventName": "PM_ST_FWD", > + "BriefDescription": "Store forwards that finished." > + }, > + { > + "EventCode": "2011C", > + "EventName": "PM_MRK_NTF_CYC", > + "BriefDescription": "Cycles during which the marked instruction is the > oldest in the pipeline (NTF or NTC)." > + }, > + { > + "EventCode": "2E01C", > + "EventName": "PM_EXEC_STALL_TLBIE", > + "BriefDescription": "Cycles in which the oldest instruction in the > pipeline was a TLBIE instruction executing in the Load Store Unit." > + }, > + { > + "EventCode": "201E6", > + "EventName": "PM_THRESH_EXC_32", > + "BriefDescription": "Threshold counter exceeded a value of 32." > + }, > + { > + "EventCode": "200F0", > + "EventName": "PM_ST_CMPL", > + "BriefDescription": "Stores completed from S2Q (2nd-level store queue). > This event includes regular stores, stcx and cache inhibited stores. The > following operations are excluded (pteupdate, snoop tlbie complete, store > atomics, miso, load atomic payloads, tlbie, tlbsync, slbieg, isync, msgsnd, > slbiag, cpabort, copy, tcheck, tend, stsync, dcbst, icbi, dcbf, hwsync, > lwsync, ptesync, eieio, msgsync)." > + }, > + { > + "EventCode": "200FE", > + "EventName": "PM_DATA_FROM_L2MISS", > + "BriefDescription": "The processor's data cache was reloaded from a > source other than the local core's L1 or L2 due to a demand miss." > + }, > + { > + "EventCode": "30010", > + "EventName": "PM_PMC2_OVERFLOW", > + "BriefDescription": "The event selected for PMC2 caused the event > counter to overflow." > + }, > + { > + "EventCode": "4D010", > + "EventName": "PM_PMC1_SAVED", > + "BriefDescription": "The conditions for the speculative event selected > for PMC1 are met and PMC1 is charged." > + }, > + { > + "EventCode": "4D05C", > + "EventName": "PM_DPP_FLOP_CMPL", > + "BriefDescription": "Double-Precision or Quad-Precision instructions > completed." > + } > +] > -- > 2.27.0