When SVE registers are pushed onto the stack the VG register is required to unwind because the stack offsets would vary by the SVE register width at the time when the sample was taken. The first two patches add support for sampling the VG register to the kernel and the docs. The remaining patches add the support to userspace perf. A small change is also required to libunwind or libdw depending on which unwinder is used, and these will be published later. Without these changes Perf continues to work with both libraries, although the VG register is still not used for unwinding. James Clark (6): perf: arm64: Add SVE vector granule register to user regs arm64/sve: Add Perf extensions documentation perf tools: arm64: Copy perf_regs.h from the kernel perf tools: Use dynamic register set for Dwarf unwind perf tools: arm64: Decouple Libunwind register names from Perf perf tools: arm64: Add support for VG register Documentation/arm64/sve.rst | 20 +++++ arch/arm64/include/uapi/asm/perf_regs.h | 7 +- arch/arm64/kernel/perf_regs.c | 30 +++++++- drivers/perf/arm_pmu.c | 2 +- tools/arch/arm64/include/uapi/asm/perf_regs.h | 7 +- tools/perf/arch/arm64/util/perf_regs.c | 34 +++++++++ tools/perf/arch/arm64/util/unwind-libunwind.c | 73 +------------------ tools/perf/util/evsel.c | 2 +- tools/perf/util/perf_regs.c | 2 + 9 files changed, 100 insertions(+), 77 deletions(-) -- 2.28.0