Skip to content

Commit

Permalink
perf vendor events arm64: Add Fujitsu A64FX pmu event
Browse files Browse the repository at this point in the history
Add pmu events for A64FX.

Documentation source:

  https://github.com/fujitsu/A64FX/blob/master/doc/A64FX_PMU_Events_v1.2.pdf

Signed-off-by: Nakamura, Shunsuke/中村 俊介 <nakamura.shun@fujitsu.com>
Reviewed-by: John Garry <john.garry@huawei.com>
Tested-by: Masayoshi Mizuma <m.mizuma@jp.fujitsu.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Leo Yan <leo.yan@linaro.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Mathieu Poirier <mathieu.poirier@linaro.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Will Deacon <will@kernel.org>
Cc: linux-arm-kernel@lists.infradead.org
Link: http://lore.kernel.org/lkml/20210308105342.746940-3-nakamura.shun@fujitsu.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
  • Loading branch information
Shunsuke Nakamura authored and Arnaldo Carvalho de Melo committed Mar 15, 2021
1 parent 8efd163 commit 5497b23
Show file tree
Hide file tree
Showing 11 changed files with 864 additions and 0 deletions.
8 changes: 8 additions & 0 deletions tools/perf/pmu-events/arch/arm64/fujitsu/a64fx/branch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
[
{
"ArchStdEvent": "BR_MIS_PRED"
},
{
"ArchStdEvent": "BR_PRED"
}
]
62 changes: 62 additions & 0 deletions tools/perf/pmu-events/arch/arm64/fujitsu/a64fx/bus.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
[
{
"PublicDescription": "This event counts read transactions from tofu controller to measured CMG.",
"EventCode": "0x314",
"EventName": "BUS_READ_TOTAL_TOFU",
"BriefDescription": "This event counts read transactions from tofu controller to measured CMG."
},
{
"PublicDescription": "This event counts read transactions from PCI controller to measured CMG.",
"EventCode": "0x315",
"EventName": "BUS_READ_TOTAL_PCI",
"BriefDescription": "This event counts read transactions from PCI controller to measured CMG."
},
{
"PublicDescription": "This event counts read transactions from measured CMG local memory to measured CMG.",
"EventCode": "0x316",
"EventName": "BUS_READ_TOTAL_MEM",
"BriefDescription": "This event counts read transactions from measured CMG local memory to measured CMG."
},
{
"PublicDescription": "This event counts write transactions from measured CMG to CMG0, if measured CMG is not CMG0.",
"EventCode": "0x318",
"EventName": "BUS_WRITE_TOTAL_CMG0",
"BriefDescription": "This event counts write transactions from measured CMG to CMG0, if measured CMG is not CMG0."
},
{
"PublicDescription": "This event counts write transactions from measured CMG to CMG1, if measured CMG is not CMG1.",
"EventCode": "0x319",
"EventName": "BUS_WRITE_TOTAL_CMG1",
"BriefDescription": "This event counts write transactions from measured CMG to CMG1, if measured CMG is not CMG1."
},
{
"PublicDescription": "This event counts write transactions from measured CMG to CMG2, if measured CMG is not CMG2.",
"EventCode": "0x31A",
"EventName": "BUS_WRITE_TOTAL_CMG2",
"BriefDescription": "This event counts write transactions from measured CMG to CMG2, if measured CMG is not CMG2."
},
{
"PublicDescription": "This event counts write transactions from measured CMG to CMG3, if measured CMG is not CMG3.",
"EventCode": "0x31B",
"EventName": "BUS_WRITE_TOTAL_CMG3",
"BriefDescription": "This event counts write transactions from measured CMG to CMG3, if measured CMG is not CMG3."
},
{
"PublicDescription": "This event counts write transactions from measured CMG to tofu controller.",
"EventCode": "0x31C",
"EventName": "BUS_WRITE_TOTAL_TOFU",
"BriefDescription": "This event counts write transactions from measured CMG to tofu controller."
},
{
"PublicDescription": "This event counts write transactions from measured CMG to PCI controller.",
"EventCode": "0x31D",
"EventName": "BUS_WRITE_TOTAL_PCI",
"BriefDescription": "This event counts write transactions from measured CMG to PCI controller."
},
{
"PublicDescription": "This event counts write transactions from measured CMG to measured CMG local memory.",
"EventCode": "0x31E",
"EventName": "BUS_WRITE_TOTAL_MEM",
"BriefDescription": "This event counts write transactions from measured CMG to measured CMG local memory."
}
]
128 changes: 128 additions & 0 deletions tools/perf/pmu-events/arch/arm64/fujitsu/a64fx/cache.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,128 @@
[
{
"ArchStdEvent": "L1I_CACHE_REFILL"
},
{
"ArchStdEvent": "L1I_TLB_REFILL"
},
{
"ArchStdEvent": "L1D_CACHE_REFILL"
},
{
"ArchStdEvent": "L1D_CACHE"
},
{
"ArchStdEvent": "L1D_TLB_REFILL"
},
{
"ArchStdEvent": "L1I_CACHE"
},
{
"ArchStdEvent": "L1D_CACHE_WB"
},
{
"ArchStdEvent": "L2D_CACHE"
},
{
"ArchStdEvent": "L2D_CACHE_REFILL"
},
{
"ArchStdEvent": "L2D_CACHE_WB"
},
{
"ArchStdEvent": "L2D_TLB_REFILL"
},
{
"ArchStdEvent": "L2I_TLB_REFILL"
},
{
"ArchStdEvent": "L2D_TLB"
},
{
"ArchStdEvent": "L2I_TLB"
},
{
"PublicDescription": "This event counts L1D_CACHE_REFILL caused by software or hardware prefetch.",
"EventCode": "0x49",
"EventName": "L1D_CACHE_REFILL_PRF",
"BriefDescription": "This event counts L1D_CACHE_REFILL caused by software or hardware prefetch."
},
{
"PublicDescription": "This event counts L2D_CACHE_REFILL caused by software or hardware prefetch.",
"EventCode": "0x59",
"EventName": "L2D_CACHE_REFILL_PRF",
"BriefDescription": "This event counts L2D_CACHE_REFILL caused by software or hardware prefetch."
},
{
"PublicDescription": "This event counts L1D_CACHE_REFILL caused by demand access.",
"EventCode": "0x200",
"EventName": "L1D_CACHE_REFILL_DM",
"BriefDescription": "This event counts L1D_CACHE_REFILL caused by demand access."
},
{
"PublicDescription": "This event counts L1D_CACHE_REFILL caused by hardware prefetch.",
"EventCode": "0x202",
"EventName": "L1D_CACHE_REFILL_HWPRF",
"BriefDescription": "This event counts L1D_CACHE_REFILL caused by hardware prefetch."
},
{
"PublicDescription": "This event counts outstanding L1D cache miss requests per cycle.",
"EventCode": "0x208",
"EventName": "L1_MISS_WAIT",
"BriefDescription": "This event counts outstanding L1D cache miss requests per cycle."
},
{
"PublicDescription": "This event counts outstanding L1I cache miss requests per cycle.",
"EventCode": "0x209",
"EventName": "L1I_MISS_WAIT",
"BriefDescription": "This event counts outstanding L1I cache miss requests per cycle."
},
{
"PublicDescription": "This event counts L2D_CACHE_REFILL caused by demand access.",
"EventCode": "0x300",
"EventName": "L2D_CACHE_REFILL_DM",
"BriefDescription": "This event counts L2D_CACHE_REFILL caused by demand access."
},
{
"PublicDescription": "This event counts L2D_CACHE_REFILL caused by hardware prefetch.",
"EventCode": "0x302",
"EventName": "L2D_CACHE_REFILL_HWPRF",
"BriefDescription": "This event counts L2D_CACHE_REFILL caused by hardware prefetch."
},
{
"PublicDescription": "This event counts outstanding L2 cache miss requests per cycle.",
"EventCode": "0x308",
"EventName": "L2_MISS_WAIT",
"BriefDescription": "This event counts outstanding L2 cache miss requests per cycle."
},
{
"PublicDescription": "This event counts the number of times of L2 cache miss.",
"EventCode": "0x309",
"EventName": "L2_MISS_COUNT",
"BriefDescription": "This event counts the number of times of L2 cache miss."
},
{
"PublicDescription": "This event counts operations where demand access hits an L2 cache refill buffer allocated by software or hardware prefetch.",
"EventCode": "0x325",
"EventName": "L2D_SWAP_DM",
"BriefDescription": "This event counts operations where demand access hits an L2 cache refill buffer allocated by software or hardware prefetch."
},
{
"PublicDescription": "This event counts operations where software or hardware prefetch hits an L2 cache refill buffer allocated by demand access.",
"EventCode": "0x326",
"EventName": "L2D_CACHE_MIBMCH_PRF",
"BriefDescription": "This event counts operations where software or hardware prefetch hits an L2 cache refill buffer allocated by demand access."
},
{
"PublicDescription": "This event counts operations where demand access hits an L2 cache refill buffer allocated by software or hardware prefetch.",
"EventCode": "0x396",
"EventName": "L2D_CACHE_SWAP_LOCAL",
"BriefDescription": "This event counts operations where demand access hits an L2 cache refill buffer allocated by software or hardware prefetch."
},
{
"PublicDescription": "This event counts energy consumption per cycle of L2 cache.",
"EventCode": "0x3E0",
"EventName": "EA_L2",
"BriefDescription": "This event counts energy consumption per cycle of L2 cache."
}
]
5 changes: 5 additions & 0 deletions tools/perf/pmu-events/arch/arm64/fujitsu/a64fx/cycle.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
[
{
"ArchStdEvent": "CPU_CYCLES"
}
]
29 changes: 29 additions & 0 deletions tools/perf/pmu-events/arch/arm64/fujitsu/a64fx/exception.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
[
{
"ArchStdEvent": "EXC_TAKEN"
},
{
"ArchStdEvent": "EXC_UNDEF"
},
{
"ArchStdEvent": "EXC_SVC"
},
{
"ArchStdEvent": "EXC_PABORT"
},
{
"ArchStdEvent": "EXC_DABORT"
},
{
"ArchStdEvent": "EXC_IRQ"
},
{
"ArchStdEvent": "EXC_FIQ"
},
{
"ArchStdEvent": "EXC_SMC"
},
{
"ArchStdEvent": "EXC_HVC"
}
]
131 changes: 131 additions & 0 deletions tools/perf/pmu-events/arch/arm64/fujitsu/a64fx/instruction.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,131 @@
[
{
"ArchStdEvent": "SW_INCR"
},
{
"ArchStdEvent": "INST_RETIRED"
},
{
"ArchStdEvent": "EXC_RETURN"
},
{
"ArchStdEvent": "CID_WRITE_RETIRED"
},
{
"ArchStdEvent": "INST_SPEC"
},
{
"ArchStdEvent": "LDREX_SPEC"
},
{
"ArchStdEvent": "STREX_SPEC"
},
{
"ArchStdEvent": "LD_SPEC"
},
{
"ArchStdEvent": "ST_SPEC"
},
{
"ArchStdEvent": "LDST_SPEC"
},
{
"ArchStdEvent": "DP_SPEC"
},
{
"ArchStdEvent": "ASE_SPEC"
},
{
"ArchStdEvent": "VFP_SPEC"
},
{
"ArchStdEvent": "PC_WRITE_SPEC"
},
{
"ArchStdEvent": "CRYPTO_SPEC"
},
{
"ArchStdEvent": "BR_IMMED_SPEC"
},
{
"ArchStdEvent": "BR_RETURN_SPEC"
},
{
"ArchStdEvent": "BR_INDIRECT_SPEC"
},
{
"ArchStdEvent": "ISB_SPEC"
},
{
"ArchStdEvent": "DSB_SPEC"
},
{
"ArchStdEvent": "DMB_SPEC"
},
{
"PublicDescription": "This event counts architecturally executed zero blocking operations due to the 'DC ZVA' instruction.",
"EventCode": "0x9F",
"EventName": "DCZVA_SPEC",
"BriefDescription": "This event counts architecturally executed zero blocking operations due to the 'DC ZVA' instruction."
},
{
"PublicDescription": "This event counts architecturally executed floating-point move operations.",
"EventCode": "0x105",
"EventName": "FP_MV_SPEC",
"BriefDescription": "This event counts architecturally executed floating-point move operations."
},
{
"PublicDescription": "This event counts architecturally executed operations that using predicate register.",
"EventCode": "0x108",
"EventName": "PRD_SPEC",
"BriefDescription": "This event counts architecturally executed operations that using predicate register."
},
{
"PublicDescription": "This event counts architecturally executed inter-element manipulation operations.",
"EventCode": "0x109",
"EventName": "IEL_SPEC",
"BriefDescription": "This event counts architecturally executed inter-element manipulation operations."
},
{
"PublicDescription": "This event counts architecturally executed inter-register manipulation operations.",
"EventCode": "0x10A",
"EventName": "IREG_SPEC",
"BriefDescription": "This event counts architecturally executed inter-register manipulation operations."
},
{
"PublicDescription": "This event counts architecturally executed NOSIMD load operations that using SIMD&FP registers.",
"EventCode": "0x112",
"EventName": "FP_LD_SPEC",
"BriefDescription": "This event counts architecturally executed NOSIMD load operations that using SIMD&FP registers."
},
{
"PublicDescription": "This event counts architecturally executed NOSIMD store operations that using SIMD&FP registers.",
"EventCode": "0x113",
"EventName": "FP_ST_SPEC",
"BriefDescription": "This event counts architecturally executed NOSIMD store operations that using SIMD&FP registers."
},
{
"PublicDescription": "This event counts architecturally executed SIMD broadcast floating-point load operations.",
"EventCode": "0x11A",
"EventName": "BC_LD_SPEC",
"BriefDescription": "This event counts architecturally executed SIMD broadcast floating-point load operations."
},
{
"PublicDescription": "This event counts architecturally executed instructions, excluding the MOVPRFX instruction.",
"EventCode": "0x121",
"EventName": "EFFECTIVE_INST_SPEC",
"BriefDescription": "This event counts architecturally executed instructions, excluding the MOVPRFX instruction."
},
{
"PublicDescription": "This event counts architecturally executed operations that uses 'pre-index' as its addressing mode.",
"EventCode": "0x123",
"EventName": "PRE_INDEX_SPEC",
"BriefDescription": "This event counts architecturally executed operations that uses 'pre-index' as its addressing mode."
},
{
"PublicDescription": "This event counts architecturally executed operations that uses 'post-index' as its addressing mode.",
"EventCode": "0x124",
"EventName": "POST_INDEX_SPEC",
"BriefDescription": "This event counts architecturally executed operations that uses 'post-index' as its addressing mode."
}
]
8 changes: 8 additions & 0 deletions tools/perf/pmu-events/arch/arm64/fujitsu/a64fx/memory.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
[
{
"PublicDescription": "This event counts energy consumption per cycle of CMG local memory.",
"EventCode": "0x3E8",
"EventName": "EA_MEMORY",
"BriefDescription": "This event counts energy consumption per cycle of CMG local memory."
}
]
Loading

0 comments on commit 5497b23

Please sign in to comment.