lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Mon, 25 Oct 2021 14:23:15 +1100 From: Michael Ellerman <michaele@....ibm.com> To: "Paul A. Clarke" <pc@...ibm.com>, Kajol Jain <kjain@...ux.ibm.com> Cc: acme@...nel.org, maddy@...ux.vnet.ibm.com, rnsastry@...ux.ibm.com, jolsa@...hat.com, linux-kernel@...r.kernel.org, linux-perf-users@...r.kernel.org, atrajeev@...ux.vnet.ibm.com, linuxppc-dev@...ts.ozlabs.org Subject: Re: [PATCH v2] perf vendor events power10: Add metric events json file for power10 platform "Paul A. Clarke" <pc@...ibm.com> writes: > Thanks for the changes! > More nits below (many left over from prior review)... > > On Fri, Oct 22, 2021 at 11:55:05AM +0530, Kajol Jain wrote: >> Add pmu metric json file for power10 platform. >> >> Signed-off-by: Kajol Jain <kjain@...ux.ibm.com> >> --- >> Changelog v1 -> v2: >> - Did some nit changes in BriefDescription field >> as suggested by Paul A. Clarke >> >> - Link to the v1 patch: https://lkml.org/lkml/2021/10/6/131 >> >> .../arch/powerpc/power10/metrics.json | 676 ++++++++++++++++++ >> 1 file changed, 676 insertions(+) >> create mode 100644 tools/perf/pmu-events/arch/powerpc/power10/metrics.json >> >> diff --git a/tools/perf/pmu-events/arch/powerpc/power10/metrics.json b/tools/perf/pmu-events/arch/powerpc/power10/metrics.json >> new file mode 100644 >> index 000000000000..8adab5cd9934 >> --- /dev/null >> +++ b/tools/perf/pmu-events/arch/powerpc/power10/metrics.json >> @@ -0,0 +1,676 @@ >> +[ >> + { >> + "BriefDescription": "Percentage of cycles that are run cycles", >> + "MetricExpr": "PM_RUN_CYC / PM_CYC * 100", >> + "MetricGroup": "General", >> + "MetricName": "RUN_CYCLES_RATE", >> + "ScaleUnit": "1%" >> + }, >> + { >> + "BriefDescription": "Average cycles per completed instruction", >> + "MetricExpr": "PM_CYC / PM_INST_CMPL", >> + "MetricGroup": "CPI", >> + "MetricName": "CYCLES_PER_INSTRUCTION" >> + }, >> + { >> + "BriefDescription": "Average cycles per instruction when dispatch was stalled for any reason", >> + "MetricExpr": "PM_DISP_STALL_CYC / PM_RUN_INST_CMPL", >> + "MetricGroup": "CPI", >> + "MetricName": "DISPATCHED_CPI" >> + }, >> + { >> + "BriefDescription": "Average cycles per instruction when dispatch was stalled because there was a flush", >> + "MetricExpr": "PM_DISP_STALL_FLUSH / PM_RUN_INST_CMPL", >> + "MetricGroup": "CPI", >> + "MetricName": "DISPATCHED_FLUSH_CPI" >> + }, >> + { >> + "BriefDescription": "Average cycles per instruction when dispatch was stalled because the MMU was handling a translation miss", >> + "MetricExpr": "PM_DISP_STALL_TRANSLATION / PM_RUN_INST_CMPL", >> + "MetricGroup": "CPI", >> + "MetricName": "DISPATCHED_TRANSLATION_CPI" >> + }, >> + { >> + "BriefDescription": "Average cycles per instruction when dispatch was stalled waiting to resolve an instruction ERAT miss", >> + "MetricExpr": "PM_DISP_STALL_IERAT_ONLY_MISS / PM_RUN_INST_CMPL", >> + "MetricGroup": "CPI", >> + "MetricName": "DISPATCHED_IERAT_ONLY_MISS_CPI" >> + }, >> + { >> + "BriefDescription": "Average cycles per instruction when dispatch was stalled waiting to resolve an instruction TLB miss", >> + "MetricExpr": "PM_DISP_STALL_ITLB_MISS / PM_RUN_INST_CMPL", >> + "MetricGroup": "CPI", >> + "MetricName": "DISPATCHED_ITLB_MISS_CPI" >> + }, >> + { >> + "BriefDescription": "Average cycles per instruction when dispatch was stalled due to an icache miss", >> + "MetricExpr": "PM_DISP_STALL_IC_MISS / PM_RUN_INST_CMPL", >> + "MetricGroup": "CPI", >> + "MetricName": "DISPATCHED_IC_MISS_CPI" >> + }, >> + { >> + "BriefDescription": "Average cycles per instruction when dispatch was stalled while the instruction was fetched from the local L2", >> + "MetricExpr": "PM_DISP_STALL_IC_L2 / PM_RUN_INST_CMPL", >> + "MetricGroup": "CPI", >> + "MetricName": "DISPATCHED_IC_L2_CPI" >> + }, >> + { >> + "BriefDescription": "Average cycles per instruction when dispatch was stalled while the instruction was fetched from the local L3", >> + "MetricExpr": "PM_DISP_STALL_IC_L3 / PM_RUN_INST_CMPL", >> + "MetricGroup": "CPI", >> + "MetricName": "DISPATCHED_IC_L3_CPI" >> + }, >> + { >> + "BriefDescription": "Average cycles per instruction when dispatch was stalled while the instruction was fetched from any source beyond the local L3", >> + "MetricExpr": "PM_DISP_STALL_IC_L3MISS / PM_RUN_INST_CMPL", >> + "MetricGroup": "CPI", >> + "MetricName": "DISPATCHED_IC_L3MISS_CPI" >> + }, >> + { >> + "BriefDescription": "Average cycles per instruction when dispatch was stalled due to an icache miss after a branch mispredict", >> + "MetricExpr": "PM_DISP_STALL_BR_MPRED_ICMISS / PM_RUN_INST_CMPL", >> + "MetricGroup": "CPI", >> + "MetricName": "DISPATCHED_BR_MPRED_ICMISS_CPI" >> + }, >> + { >> + "BriefDescription": "Average cycles per instruction when dispatch was stalled while instruction was fetched from the local L2 after suffering a branch mispredict", >> + "MetricExpr": "PM_DISP_STALL_BR_MPRED_IC_L2 / PM_RUN_INST_CMPL", >> + "MetricGroup": "CPI", >> + "MetricName": "DISPATCHED_BR_MPRED_IC_L2_CPI" >> + }, >> + { >> + "BriefDescription": "Average cycles per instruction when dispatch was stalled while instruction was fetched from the local L3 after suffering a branch mispredict", >> + "MetricExpr": "PM_DISP_STALL_BR_MPRED_IC_L3 / PM_RUN_INST_CMPL", >> + "MetricGroup": "CPI", >> + "MetricName": "DISPATCHED_BR_MPRED_IC_L3_CPI" >> + }, >> + { >> + "BriefDescription": "Average cycles per instruction when dispatch was stalled while instruction was fetched from any source beyond the local L3 after suffering a branch mispredict", >> + "MetricExpr": "PM_DISP_STALL_BR_MPRED_IC_L3MISS / PM_RUN_INST_CMPL", >> + "MetricGroup": "CPI", >> + "MetricName": "DISPATCHED_BR_MPRED_IC_L3MISS_CPI" >> + }, >> + { >> + "BriefDescription": "Average cycles per instruction when dispatch was stalled due to a branch mispredict", >> + "MetricExpr": "PM_DISP_STALL_BR_MPRED / PM_RUN_INST_CMPL", >> + "MetricGroup": "CPI", >> + "MetricName": "DISPATCHED_BR_MPRED_CPI" >> + }, >> + { >> + "BriefDescription": "Average cycles per instruction when the NTC instruction was held at dispatch for any reason", >> + "MetricExpr": "PM_DISP_STALL_HELD_CYC / PM_RUN_INST_CMPL", >> + "MetricGroup": "CPI", >> + "MetricName": "DISPATCHED_HELD_CPI" >> + }, >> + { >> + "BriefDescription": "Average cycles per instruction when the NTC instruction was held at dispatch because of a synchronizing instruction that requires the ICT to be empty before dispatch", >> + "MetricExpr": "PM_DISP_STALL_HELD_SYNC_CYC / PM_RUN_INST_CMPL", >> + "MetricGroup": "CPI", >> + "MetricName": "DISP_HELD_STALL_SYNC_CPI" >> + }, >> + { >> + "BriefDescription": "Average cycles per instruction when the NTC instruction was held at dispatch while waiting on the scoreboard", >> + "MetricExpr": "PM_DISP_STALL_HELD_SCOREBOARD_CYC / PM_RUN_INST_CMPL", >> + "MetricGroup": "CPI", >> + "MetricName": "DISP_HELD_STALL_SCOREBOARD_CPI" >> + }, >> + { >> + "BriefDescription": "Average cycles per instruction when the NTC instruction was held at dispatch due to issue queue full", >> + "MetricExpr": "PM_DISP_STALL_HELD_ISSQ_FULL_CYC / PM_RUN_INST_CMPL", >> + "MetricGroup": "CPI", >> + "MetricName": "DISP_HELD_STALL_ISSQ_FULL_CPI" >> + }, >> + { >> + "BriefDescription": "Average cycles per instruction when the NTC instruction was held at dispatch because the mapper/SRB was full", >> + "MetricExpr": "PM_DISP_STALL_HELD_RENAME_CYC / PM_RUN_INST_CMPL", >> + "MetricGroup": "CPI", >> + "MetricName": "DISPATCHED_HELD_RENAME_CPI" >> + }, >> + { >> + "BriefDescription": "Average cycles per instruction when the NTC instruction was held at dispatch because the STF mapper/SRB was full", >> + "MetricExpr": "PM_DISP_STALL_HELD_STF_MAPPER_CYC / PM_RUN_INST_CMPL", >> + "MetricGroup": "CPI", >> + "MetricName": "DISPATCHED_HELD_STF_MAPPER_CPI" >> + }, >> + { >> + "BriefDescription": "Average cycles per instruction when the NTC instruction was held at dispatch because the XVFC mapper/SRB was full", >> + "MetricExpr": "PM_DISP_STALL_HELD_XVFC_MAPPER_CYC / PM_RUN_INST_CMPL", >> + "MetricGroup": "CPI", >> + "MetricName": "DISPATCHED_HELD_XVFC_MAPPER_CPI" >> + }, >> + { >> + "BriefDescription": "Average cycles per instruction when the NTC instruction was held at dispatch for any other reason", >> + "MetricExpr": "PM_DISP_STALL_HELD_OTHER_CYC / PM_RUN_INST_CMPL", >> + "MetricGroup": "CPI", >> + "MetricName": "DISPATCHED_HELD_OTHER_CPI" >> + }, >> + { >> + "BriefDescription": "Average cycles per instruction when the NTC instruction has been dispatched but not issued for any reason", >> + "MetricExpr": "PM_ISSUE_STALL / PM_RUN_INST_CMPL", >> + "MetricGroup": "CPI", >> + "MetricName": "ISSUE_STALL_CPI" >> + }, >> + { >> + "BriefDescription": "Average cycles per instruction when the NTC instruction is waiting to be finished in one of the execution units", >> + "MetricExpr": "PM_EXEC_STALL / PM_RUN_INST_CMPL", >> + "MetricGroup": "CPI", >> + "MetricName": "EXECUTION_STALL_CPI" >> + }, >> + { >> + "BriefDescription": "Average cycles per instruction spent executing an NTC instruction that gets flushed some time after dispatch", >> + "MetricExpr": "PM_EXEC_STALL_NTC_FLUSH / PM_RUN_INST_CMPL", >> + "MetricGroup": "CPI", >> + "MetricName": "NTC_FLUSH_STALL_CPI" >> + }, >> + { >> + "BriefDescription": "Average cycles per instruction when the NTF instruction finishes at dispatch", >> + "MetricExpr": "PM_EXEC_STALL_FIN_AT_DISP / PM_RUN_INST_CMPL", >> + "MetricGroup": "CPI", >> + "MetricName": "FIN_AT_DISP_STALL_CPI" >> + }, >> + { >> + "BriefDescription": "Average cycles per instruction when the NTC instruction is executing in the branch unit", >> + "MetricExpr": "PM_EXEC_STALL_BRU / PM_RUN_INST_CMPL", >> + "MetricGroup": "CPI", >> + "MetricName": "BRU_STALL_CPI" >> + }, >> + { >> + "BriefDescription": "Average cycles per instruction when the NTC instruction is a simple fixed point instruction that is executing in the LSU", >> + "MetricExpr": "PM_EXEC_STALL_SIMPLE_FX / PM_RUN_INST_CMPL", >> + "MetricGroup": "CPI", >> + "MetricName": "SIMPLE_FX_STALL_CPI" >> + }, >> + { >> + "BriefDescription": "Average cycles per instruction when the NTC instruction is executing in the VSU", >> + "MetricExpr": "PM_EXEC_STALL_VSU / PM_RUN_INST_CMPL", >> + "MetricGroup": "CPI", >> + "MetricName": "VSU_STALL_CPI" >> + }, >> + { >> + "BriefDescription": "Average cycles per instruction when the NTC instruction is waiting to be finished in one of the execution units", >> + "MetricExpr": "PM_EXEC_STALL_TRANSLATION / PM_RUN_INST_CMPL", >> + "MetricGroup": "CPI", >> + "MetricName": "TRANSLATION_STALL_CPI" >> + }, >> + { >> + "BriefDescription": "Average cycles per instruction when the NTC instruction is a load or store that suffered a translation miss", >> + "MetricExpr": "PM_EXEC_STALL_DERAT_ONLY_MISS / PM_RUN_INST_CMPL", >> + "MetricGroup": "CPI", >> + "MetricName": "DERAT_ONLY_MISS_STALL_CPI" >> + }, >> + { >> + "BriefDescription": "Average cycles per instruction when the NTC instruction is recovering from a TLB miss", >> + "MetricExpr": "PM_EXEC_STALL_DERAT_DTLB_MISS / PM_RUN_INST_CMPL", >> + "MetricGroup": "CPI", >> + "MetricName": "DERAT_DTLB_MISS_STALL_CPI" >> + }, >> + { >> + "BriefDescription": "Average cycles per instruction when the NTC instruction is executing in the LSU", >> + "MetricExpr": "PM_EXEC_STALL_LSU / PM_RUN_INST_CMPL", >> + "MetricGroup": "CPI", >> + "MetricName": "LSU_STALL_CPI" >> + }, >> + { >> + "BriefDescription": "Average cycles per instruction when the NTC instruction is a load that is executing in the LSU", >> + "MetricExpr": "PM_EXEC_STALL_LOAD / PM_RUN_INST_CMPL", >> + "MetricGroup": "CPI", >> + "MetricName": "LOAD_STALL_CPI" >> + }, >> + { >> + "BriefDescription": "Average cycles per instruction when the NTC instruction is waiting for a load miss to resolve from either the local L2 or local L3", >> + "MetricExpr": "PM_EXEC_STALL_DMISS_L2L3 / PM_RUN_INST_CMPL", >> + "MetricGroup": "CPI", >> + "MetricName": "DMISS_L2L3_STALL_CPI" >> + }, >> + { >> + "BriefDescription": "Average cycles per instruction when the NTC instruction is waiting for a load miss to resolve from either the local L2 or local L3, with an RC dispatch conflict", >> + "MetricExpr": "PM_EXEC_STALL_DMISS_L2L3_CONFLICT / PM_RUN_INST_CMPL", >> + "MetricGroup": "CPI", >> + "MetricName": "DMISS_L2L3_CONFLICT_STALL_CPI" >> + }, >> + { >> + "BriefDescription": "Average cycles per instruction when the NTC instruction is waiting for a load miss to resolve from either the local L2 or local L3, without an RC dispatch conflict", >> + "MetricExpr": "PM_EXEC_STALL_DMISS_L2L3_NOCONFLICT / PM_RUN_INST_CMPL", >> + "MetricGroup": "CPI", >> + "MetricName": "DMISS_L2L3_NOCONFLICT_STALL_CPI" >> + }, >> + { >> + "BriefDescription": "Average cycles per instruction when the NTC instruction is waiting for a load miss to resolve from a source beyond the local L2 and local L3", >> + "MetricExpr": "PM_EXEC_STALL_DMISS_L3MISS / PM_RUN_INST_CMPL", >> + "MetricGroup": "CPI", >> + "MetricName": "DMISS_L3MISS_STALL_CPI" >> + }, >> + { >> + "BriefDescription": "Average cycles per instruction when the NTC instruction is waiting for a load miss to resolve from a neighbor chiplet's L2 or L3 in the same chip", >> + "MetricExpr": "PM_EXEC_STALL_DMISS_L21_L31 / PM_RUN_INST_CMPL", >> + "MetricGroup": "CPI", >> + "MetricName": "DMISS_L21_L31_STALL_CPI" >> + }, >> + { >> + "BriefDescription": "Average cycles per instruction when the NTC instruction is waiting for a load miss to resolve from L4, local memory or OpenCapp chip", > > What is "OpenCapp"? Is is different from OpenCAPI? > >> + "MetricExpr": "PM_EXEC_STALL_DMISS_LMEM / PM_RUN_INST_CMPL", >> + "MetricGroup": "CPI", >> + "MetricName": "DMISS_LMEM_STALL_CPI" >> + }, >> + { >> + "BriefDescription": "Average cycles per instruction when the NTC instruction is waiting for a load miss to resolve from a remote chip (cache, L4, memory or OpenCapp) in the same group", >> + "MetricExpr": "PM_EXEC_STALL_DMISS_OFF_CHIP / PM_RUN_INST_CMPL", >> + "MetricGroup": "CPI", >> + "MetricName": "DMISS_OFF_CHIP_STALL_CPI" >> + }, >> + { >> + "BriefDescription": "Average cycles per instruction when the NTC instruction is waiting for a load miss to resolve from a distant chip (cache, L4, memory or OpenCapp chip)", >> + "MetricExpr": "PM_EXEC_STALL_DMISS_OFF_NODE / PM_RUN_INST_CMPL", >> + "MetricGroup": "CPI", >> + "MetricName": "DMISS_OFF_NODE_STALL_CPI" >> + }, >> + { >> + "BriefDescription": "Average cycles per instruction when the NTC instruction is executing a TLBIEL instruction", >> + "MetricExpr": "PM_EXEC_STALL_TLBIEL / PM_RUN_INST_CMPL", >> + "MetricGroup": "CPI", >> + "MetricName": "TLBIEL_STALL_CPI" >> + }, >> + { >> + "BriefDescription": "Average cycles per instruction when the NTC instruction is finishing a load after its data has been reloaded from a data source beyond the local L1, OR when the LSU is processing an L1-hit, OR when the NTF instruction merged with another load in the LMQ", >> + "MetricExpr": "PM_EXEC_STALL_LOAD_FINISH / PM_RUN_INST_CMPL", >> + "MetricGroup": "CPI", >> + "MetricName": "LOAD_FINISH_STALL_CPI" >> + }, >> + { >> + "BriefDescription": "Average cycles per instruction when the NTC instruction is a store that is executing in the LSU", >> + "MetricExpr": "PM_EXEC_STALL_STORE / PM_RUN_INST_CMPL", >> + "MetricGroup": "CPI", >> + "MetricName": "STORE_STALL_CPI" >> + }, >> + { >> + "BriefDescription": "Average cycles per instruction when the NTC instruction is in the store unit outside of handling store misses or other special store operations", > > Is "store unit" not the same as "LSU" ? Use "LSU" uniformly if appropriate: > s/store unit/LSU/ > >> + "MetricExpr": "PM_EXEC_STALL_STORE_PIPE / PM_RUN_INST_CMPL", >> + "MetricGroup": "CPI", >> + "MetricName": "STORE_PIPE_STALL_CPI" >> + }, >> + { >> + "BriefDescription": "Average cycles per instruction when the NTC instruction is a store whose cache line was not resident in the L1 and had to wait for allocation of the missing line into the L1", >> + "MetricExpr": "PM_EXEC_STALL_STORE_MISS / PM_RUN_INST_CMPL", >> + "MetricGroup": "CPI", >> + "MetricName": "STORE_MISS_STALL_CPI" >> + }, >> + { >> + "BriefDescription": "Average cycles per instruction when the NTC instruction is a TLBIE instruction waiting for a response from the L2", >> + "MetricExpr": "PM_EXEC_STALL_TLBIE / PM_RUN_INST_CMPL", >> + "MetricGroup": "CPI", >> + "MetricName": "TLBIE_STALL_CPI" >> + }, >> + { >> + "BriefDescription": "Average cycles per instruction when the NTC instruction is executing a PTESYNC instruction", >> + "MetricExpr": "PM_EXEC_STALL_PTESYNC / PM_RUN_INST_CMPL", >> + "MetricGroup": "CPI", >> + "MetricName": "PTESYNC_STALL_CPI" >> + }, >> + { >> + "BriefDescription": "Average cycles per instruction when the NTC instruction cannot complete because the thread was blocked", >> + "MetricExpr": "PM_CMPL_STALL / PM_RUN_INST_CMPL", >> + "MetricGroup": "CPI", >> + "MetricName": "COMPLETION_STALL_CPI" >> + }, >> + { >> + "BriefDescription": "Average cycles per instruction when the NTC instruction cannot complete because it was interrupted by ANY exception", >> + "MetricExpr": "PM_CMPL_STALL_EXCEPTION / PM_RUN_INST_CMPL", >> + "MetricGroup": "CPI", >> + "MetricName": "EXCEPTION_COMPLETION_STALL_CPI" >> + }, >> + { >> + "BriefDescription": "Average cycles per instruction when the NTC instruction is stuck at finish waiting for the non-speculative finish of either a STCX instruction waiting for its result or a load waiting for non-critical sectors of data and ECC", >> + "MetricExpr": "PM_CMPL_STALL_MEM_ECC / PM_RUN_INST_CMPL", >> + "MetricGroup": "CPI", >> + "MetricName": "MEM_ECC_COMPLETION_STALL_CPI" >> + }, >> + { >> + "BriefDescription": "Average cycles per instruction when the NTC instruction cannot complete the instruction is a STCX instruction waiting for resolution from the nest", > > Need to reword this, I think. I propose "Average cycles per instruction > when the NTC instruction is a STCX instruction waiting for resolution > from the nest", which follows the form used by HWSYNC_COMPLETION_STALL_CPI, > below. > >> + "MetricExpr": "PM_CMPL_STALL_STCX / PM_RUN_INST_CMPL", >> + "MetricGroup": "CPI", >> + "MetricName": "STCX_COMPLETION_STALL_CPI" >> + }, >> + { >> + "BriefDescription": "Average cycles per instruction when the NTC instruction is a LWSYNC instruction waiting to complete", >> + "MetricExpr": "PM_CMPL_STALL_LWSYNC / PM_RUN_INST_CMPL", >> + "MetricGroup": "CPI", >> + "MetricName": "LWSYNC_COMPLETION_STALL_CPI" >> + }, >> + { >> + "BriefDescription": "Average cycles per instruction when the NTC instruction is a HWSYNC instruction stuck at finish waiting for a response from the L2", >> + "MetricExpr": "PM_CMPL_STALL_HWSYNC / PM_RUN_INST_CMPL", >> + "MetricGroup": "CPI", >> + "MetricName": "HWSYNC_COMPLETION_STALL_CPI" >> + }, >> + { >> + "BriefDescription": "Average cycles per instruction when the NTC instruction required special handling before completion", >> + "MetricExpr": "PM_CMPL_STALL_SPECIAL / PM_RUN_INST_CMPL", >> + "MetricGroup": "CPI", >> + "MetricName": "SPECIAL_COMPLETION_STALL_CPI" >> + }, >> + { >> + "BriefDescription": "Average cycles per instruction when dispatch was stalled because fetch was being held, so there was nothing in the pipeline for this thread", >> + "MetricExpr": "PM_DISP_STALL_FETCH / PM_RUN_INST_CMPL", >> + "MetricGroup": "CPI", >> + "MetricName": "DISPATCHED_FETCH_CPI" >> + }, >> + { >> + "BriefDescription": "Average cycles per instruction when the NTC instruction was held at dispatch because of power management", >> + "MetricExpr": "PM_DISP_STALL_HELD_HALT_CYC / PM_RUN_INST_CMPL", >> + "MetricGroup": "CPI", >> + "MetricName": "DISPATCHED_HELD_HALT_CPI" >> + }, >> + { >> + "BriefDescription": "Percentage of flushes per completed run instruction", > > s/per completed run instruction/per instruction/ I'm not sure we want to drop "completed" from this and all the following descriptions. There is a meaningful distinction between completed and dispatched instructions, I think it's useful to be explicit about which the event is counting. I agree dropping "run" is a good idea, most people won't understand that "run" means "non-idle", and I think don't expect idle instructions to be counted anyway. ... > >> + "MetricExpr": "PM_RUN_INST_CMPL / PM_RUN_CYC", >> + "MetricGroup": "General", >> + "MetricName": "RUN_IPC" >> + }, >> + { >> + "BriefDescription": "Average number of instructions completed per instruction group", > > s/completed// And here the meaning is different if you drop "completed". cheers
Powered by blists - more mailing lists