[IMPACT]
=======
The ARM architecture defines several events as part of the Performance Monitor Unit (PMU)
Extension. In addition, Cavium has added "implementation defined" pmu core events, which Cavium deems most useful for analyzing performance. Currently perf does not list these "implementation defined" events.
rNNN [Raw hardware event descrip
cpu/t1=v1[,t2=v2,t3 ...]/modifier [Raw hardware event descrip
(see 'man perf-list' on how to encode it)
mem:<addr>[/len][:access] [Hardware breakpoint]
ubuntu@starbuck:~$
[REGRESSION POTENTIAL]
======================
The patch is limited to ARM64, ThunderX2 PMU core definitions json file. No regression potential for any kernel subsystems.
[IMPACT]
=======
The ARM architecture defines several events as part of the Performance Monitor Unit (PMU)
Extension. In addition, Cavium has added "implementation defined" pmu core events, which Cavium deems most useful for analyzing performance. Currently perf does not list these "implementation defined" events.
[FIX]
====
b9b77222d4ff perf vendor events arm64: Update ThunderX2 implementation defined pmu core events
[TEST]
====
With the patch applied perf lists the additional PMU events.
ubuntu@starbuck:~$ perf list
List of pre-defined events (to be used in -e):
armv8_ pmuv3_0/ br_immed_ retired/ [Kernel PMU event] pmuv3_0/ br_mis_ pred/ [Kernel PMU event] pmuv3_0/ br_mis_ pred_retired/ [Kernel PMU event] pmuv3_0/ br_pred/ [Kernel PMU event] pmuv3_0/ br_retired/ [Kernel PMU event] pmuv3_0/ br_return_ retired/ [Kernel PMU event] pmuv3_0/ bus_access/ [Kernel PMU event] pmuv3_0/ bus_cycles/ [Kernel PMU event] pmuv3_0/ cid_write_ retired/ [Kernel PMU event] pmuv3_0/ cpu_cycles/ [Kernel PMU event] pmuv3_0/ exc_return/ [Kernel PMU event] pmuv3_0/ exc_taken/ [Kernel PMU event] pmuv3_0/ inst_retired/ [Kernel PMU event] pmuv3_0/ inst_spec/ [Kernel PMU event] pmuv3_0/ l1d_cache/ [Kernel PMU event] pmuv3_0/ l1d_cache_ allocate/ [Kernel PMU event] pmuv3_0/ l1d_cache_ refill/ [Kernel PMU event] pmuv3_0/ l1d_cache_ wb/ [Kernel PMU event] pmuv3_0/ l1d_tlb/ [Kernel PMU event] pmuv3_0/ l1d_tlb_ refill/ [Kernel PMU event] pmuv3_0/ l1i_cache/ [Kernel PMU event] pmuv3_0/ l1i_cache_ refill/ [Kernel PMU event] pmuv3_0/ l1i_tlb/ [Kernel PMU event] pmuv3_0/ l1i_tlb_ refill/ [Kernel PMU event] pmuv3_0/ l2d_cache/ [Kernel PMU event] pmuv3_0/ l2d_cache_ allocate/ [Kernel PMU event] pmuv3_0/ l2d_cache_ refill/ [Kernel PMU event] pmuv3_0/ l2d_cache_ wb/ [Kernel PMU event] pmuv3_0/ l2d_tlb/ [Kernel PMU event] pmuv3_0/ l2d_tlb_ refill/ [Kernel PMU event] pmuv3_0/ ld_retired/ [Kernel PMU event] pmuv3_0/ mem_access/ [Kernel PMU event] pmuv3_0/ st_retired/ [Kernel PMU event] pmuv3_0/ stall_backend/ [Kernel PMU event] pmuv3_0/ stall_frontend/ [Kernel PMU event] pmuv3_0/ sw_incr/ [Kernel PMU event] pmuv3_0/ ttbr_write_ retired/ [Kernel PMU event] pmuv3_0/ unaligned_ ldst_retired/ [Kernel PMU event]
armv8_
armv8_
armv8_
armv8_
armv8_
armv8_
armv8_
armv8_
armv8_
armv8_
armv8_
armv8_
armv8_
armv8_
armv8_
armv8_
armv8_
armv8_
armv8_
armv8_
armv8_
armv8_
armv8_
armv8_
armv8_
armv8_
armv8_
armv8_
armv8_
armv8_
armv8_
armv8_
armv8_
armv8_
armv8_
armv8_
armv8_
core imp def: refill_ inner refill_ outer refill_ rd refill_ wr wb_clean wb_victim ldst_spec
bus_access_rd
[Bus access read]
bus_access_wr
[Bus access write]
exc_dabort
[Exception taken, Data Abort and SError]
exc_fiq
[Exception taken, FIQ]
exc_hvc
[Exception taken, Hypervisor Call]
exc_irq
[Exception taken, IRQ]
exc_pabort
[Exception taken, Instruction Abort]
exc_smc
[Exception taken, Secure Monitor Call]
exc_svc
[Exception taken, Supervisor Call]
exc_trap_dabort
[Exception taken, Data Abort or SError not taken locally]
exc_trap_fiq
[Exception taken, FIQ not taken locally]
exc_trap_irq
[Exception taken, IRQ not taken locally]
exc_trap_other
[Exception taken, Other traps not taken locally]
exc_trap_pabort
[Exception taken, Instruction Abort not taken locally]
exc_undef
[Exception taken, Other synchronous]
l1d_cache_inval
[L1D cache invalidate]
l1d_cache_rd
[L1D cache access, read]
l1d_cache_
[L1D cache refill, inner]
l1d_cache_
[L1D cache refill, outer]
l1d_cache_
[L1D cache refill, read]
l1d_cache_
[L1D cache refill, write]
l1d_cache_
[L1D cache Write-Back, cleaning and coherency]
l1d_cache_
[L1D cache Write-Back, victim]
l1d_cache_wr
[L1D cache access, write]
l1d_tlb_rd
[L1D tlb access, read]
l1d_tlb_refill_rd
[L1D tlb refill, read]
l1d_tlb_refill_wr
[L1D tlb refill, write]
l1d_tlb_wr
[L1D tlb access, write]
l2d_tlb_rd
[L2D cache access, read]
l2d_tlb_refill_rd
[L2D cache refill, read]
l2d_tlb_refill_wr
[L2D cache refill, write]
l2d_tlb_wr
[L2D cache access, write]
mem_access_rd
[Data memory access, read]
mem_access_wr
[Data memory access, write]
unaligned_ld_spec
[Unaligned access, read]
unaligned_
[Unaligned access]
unaligned_st_spec
[Unaligned access, write]
rNNN [Raw hardware event descrip v1[,t2= v2,t3 ...]/modifier [Raw hardware event descrip
cpu/t1=
(see 'man perf-list' on how to encode it)
mem:< addr>[/ len][:access] [Hardware breakpoint]
ubuntu@starbuck:~$
[REGRESSION POTENTIAL] ======= ======= =
=======
The patch is limited to ARM64, ThunderX2 PMU core definitions json file. No regression potential for any kernel subsystems.