I created a Google sheet for ARMv8 PMU events. After input all PMU events collect, it will generate some meaningful ratios in the next tab. That helps to understand the performance of the tested application.
0x000 | Architectural | SW_INCR | Instruction architecturally executed, condition code check pass, software increment |
0x001 | Microarchitectural | L1I_CACHE_REFILL | Attributable Level 1 instruction cache refill |
0x002 | Microarchitectural | L1I_TLB_REFILL | Attributable Level 1 instruction TLB refill |
0x003 | Microarchitectural | L1D_CACHE_REFILL | Attributable Level 1 data cache refill |
0x004 | Microarchitectural | L1D_CACHE | Attributable Level 1 data cache access |
0x005 | Microarchitectural | L1D_TLB_REFILL | Attributable Level 1 data TLB refill |
0x006 | Architectural | LD_RETIRED | Instruction architecturally executed, condition code check pass, load |
0x007 | Architectural | ST_RETIRED | Instruction architecturally executed, condition code check pass, store |
0x008 | Architectural | INST_RETIRED | Instruction architecturally executed |
0x009 | Architectural | EXC_TAKEN | Exception taken |
0x00A | Architectural | EXC_RETURN | Instruction architecturally executed, condition code check pass, exception return |
0x00B | Architectural | CID_WRITE_RETIRED | Instruction architecturally executed, condition code check pass, write to CONTEXTIDR |
0x00C | Architectural | PC_WRITE_RETIRED | Instruction architecturally executed, condition code check pass, software change of the PC |
0x00D | Architectural | BR_IMMED_RETIRED | Instruction architecturally executed, immediate branch |
0x00E | Architectural | BR_RETURN_RETIRED | Instruction architecturally executed, condition code check pass, procedure return |
0x00F | Architectural | UNALIGNED_LDST_RETIRED | Instruction architecturally executed, condition code check pass, unaligned load or store |
0x010 | Microarchitectural | BR_MIS_PRED | Mispredicted or not predicted branch speculatively executed |
0x011 | Microarchitectural | CPU_CYCLES | Cycle |
0x012 | Microarchitectural | BR_PRED | Predictable branch speculatively executed |
0x013 | Microarchitectural | MEM_ACCESS | Data memory access |
0x014 | Microarchitectural | L1I_CACHE | Attributable Level 1 instruction cache access |
0x015 | Microarchitectural | L1D_CACHE_WB | Attributable Level 1 data cache write-back |
0x016 | Microarchitectural | L2D_CACHE | Attributable Level 2 data cache access |
0x017 | Microarchitectural | L2D_CACHE_REFILL | Attributable Level 2 data cache refill |
0x018 | Microarchitectural | L2D_CACHE_WB | Attributable Level 2 data cache write-back |
0x019 | Microarchitectural | BUS_ACCESS | Bus access |
0x01A | Microarchitectural | MEMORY_ERROR | Local memory error |
0x01B | Microarchitectural | INST_SPEC | Operation speculatively executed |
0x01C | Architectural | TTBR_WRITE_RETIRED | Instruction architecturally executed, condition code check pass, write toTTBR |
0x01D | Microarchitectural | BUS_CYCLES | Bus cycle |
0x01E | Architectural | CHAIN | For odd-numbered counters, increments the count by one for each overflow of the preceding even-numbered counter. For even-numbered counters there is no increment. |
0x01F | Microarchitectural | L1D_CACHE_ALLOCATE | Attributable Level 1 data cache allocation without refill |
0x020 | Microarchitectural | L2D_CACHE_ALLOCATE | Attributable Level 2 data cache allocation without refill |
0x021 | Architectural | BR_RETIRED | Instruction architecturally executed, branch |
0x022 | Microarchitectural | BR_MIS_PRED_RETIRED | Instruction architecturally executed, mispredicted branch |
0x023 | Microarchitectural | STALL_FRONTEND | No operation issued due to the frontend |
0x024 | Microarchitectural | STALL_BACKEND | No operation issued due to backend |
0x025 | Microarchitectural | L1D_TLB | Attributable Level 1 data or unified TLB access |
0x026 | Microarchitectural | L1I_TLB | Attributable Level 1 instruction TLB access |
0x027 | Microarchitectural | L2I_CACHE | Attributable Level 2 instruction cache access |
0x028 | Microarchitectural | L2I_CACHE_REFILL | Attributable Level 2 instruction cache refill |
0x029 | Microarchitectural | L3D_CACHE_ALLOCATE | Attributable Level 3 data or unified cache allocation without refill |
0x02A | Microarchitectural | L3D_CACHE_REFILL | Attributable Level 3 data or unified cache refill |
0x02B | Microarchitectural | L3D_CACHE | Attributable Level 3 data or unified cache access |
0x02C | Microarchitectural | L3D_CACHE_WB | Attributable Level 3 data or unified cache write-back |
0x02D | Microarchitectural | L2D_TLB_REFILL | Attributable Level 2 data or unified TLB refill |
0x02E | Microarchitectural | L2I_TLB_REFILL | Attributable Level 2 instruction TLB refill |
0x02F | Microarchitectural | L2D_TLB | Attributable Level 2 data or unified TLB access |
0x030 | Microarchitectural | L2I_TLB | Attributable Level 2 instruction TLB access |