Skip to content

Commit 83f83cc

Browse files
zhangshkwilldeacon
authored andcommitted
arm64: perf: Expose some Armv9 common events under sysfs
Armv9[1] has introduced some common architectural events (0x400C-0x400F) and common microarchitectural events (0x4010-0x401B), which can be detected by PMCEID0_EL0 from bit44 to bit59, so expose these common events under sysfs. [1] https://developer.arm.com/documentation/ddi0608/ba Cc: Mark Rutland <mark.rutland@arm.com> Cc: Will Deacon <will@kernel.org> Signed-off-by: Shaokun Zhang <zhangshaokun@hisilicon.com> Link: https://lore.kernel.org/r/20220303085419.64085-1-zhangshaokun@hisilicon.com Signed-off-by: Will Deacon <will@kernel.org>
1 parent 68fa55f commit 83f83cc

2 files changed

Lines changed: 24 additions & 0 deletions

File tree

arch/arm64/include/asm/perf_event.h

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,20 @@
9696
#define ARMV8_PMUV3_PERFCTR_L2I_CACHE_LMISS 0x400A
9797
#define ARMV8_PMUV3_PERFCTR_L3D_CACHE_LMISS_RD 0x400B
9898

99+
/* Trace buffer events */
100+
#define ARMV8_PMUV3_PERFCTR_TRB_WRAP 0x400C
101+
#define ARMV8_PMUV3_PERFCTR_TRB_TRIG 0x400E
102+
103+
/* Trace unit events */
104+
#define ARMV8_PMUV3_PERFCTR_TRCEXTOUT0 0x4010
105+
#define ARMV8_PMUV3_PERFCTR_TRCEXTOUT1 0x4011
106+
#define ARMV8_PMUV3_PERFCTR_TRCEXTOUT2 0x4012
107+
#define ARMV8_PMUV3_PERFCTR_TRCEXTOUT3 0x4013
108+
#define ARMV8_PMUV3_PERFCTR_CTI_TRIGOUT4 0x4018
109+
#define ARMV8_PMUV3_PERFCTR_CTI_TRIGOUT5 0x4019
110+
#define ARMV8_PMUV3_PERFCTR_CTI_TRIGOUT6 0x401A
111+
#define ARMV8_PMUV3_PERFCTR_CTI_TRIGOUT7 0x401B
112+
99113
/* additional latency from alignment events */
100114
#define ARMV8_PMUV3_PERFCTR_LDST_ALIGN_LAT 0x4020
101115
#define ARMV8_PMUV3_PERFCTR_LD_ALIGN_LAT 0x4021

arch/arm64/kernel/perf_event.c

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -242,6 +242,16 @@ static struct attribute *armv8_pmuv3_event_attrs[] = {
242242
ARMV8_EVENT_ATTR(l2d_cache_lmiss_rd, ARMV8_PMUV3_PERFCTR_L2D_CACHE_LMISS_RD),
243243
ARMV8_EVENT_ATTR(l2i_cache_lmiss, ARMV8_PMUV3_PERFCTR_L2I_CACHE_LMISS),
244244
ARMV8_EVENT_ATTR(l3d_cache_lmiss_rd, ARMV8_PMUV3_PERFCTR_L3D_CACHE_LMISS_RD),
245+
ARMV8_EVENT_ATTR(trb_wrap, ARMV8_PMUV3_PERFCTR_TRB_WRAP),
246+
ARMV8_EVENT_ATTR(trb_trig, ARMV8_PMUV3_PERFCTR_TRB_TRIG),
247+
ARMV8_EVENT_ATTR(trcextout0, ARMV8_PMUV3_PERFCTR_TRCEXTOUT0),
248+
ARMV8_EVENT_ATTR(trcextout1, ARMV8_PMUV3_PERFCTR_TRCEXTOUT1),
249+
ARMV8_EVENT_ATTR(trcextout2, ARMV8_PMUV3_PERFCTR_TRCEXTOUT2),
250+
ARMV8_EVENT_ATTR(trcextout3, ARMV8_PMUV3_PERFCTR_TRCEXTOUT3),
251+
ARMV8_EVENT_ATTR(cti_trigout4, ARMV8_PMUV3_PERFCTR_CTI_TRIGOUT4),
252+
ARMV8_EVENT_ATTR(cti_trigout5, ARMV8_PMUV3_PERFCTR_CTI_TRIGOUT5),
253+
ARMV8_EVENT_ATTR(cti_trigout6, ARMV8_PMUV3_PERFCTR_CTI_TRIGOUT6),
254+
ARMV8_EVENT_ATTR(cti_trigout7, ARMV8_PMUV3_PERFCTR_CTI_TRIGOUT7),
245255
ARMV8_EVENT_ATTR(ldst_align_lat, ARMV8_PMUV3_PERFCTR_LDST_ALIGN_LAT),
246256
ARMV8_EVENT_ATTR(ld_align_lat, ARMV8_PMUV3_PERFCTR_LD_ALIGN_LAT),
247257
ARMV8_EVENT_ATTR(st_align_lat, ARMV8_PMUV3_PERFCTR_ST_ALIGN_LAT),

0 commit comments

Comments
 (0)