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

Reply via email to