Em Mon, Apr 19, 2021 at 10:38:46PM +1000, Michael Ellerman escreveu: > Kajol Jain <kj...@linux.ibm.com> writes: > > Patch adds initial json/events for POWER10. > > Acked-by: Michael Ellerman <m...@ellerman.id.au>
Thanks, applied. - Arnaldo > 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 -- - Arnaldo