Re: [PATCH v3 0/5] perf: arm64: Tools support for Dwarf unwinding through SVE functions

From: James Clark
Date: Fri Sep 23 2022 - 06:35:15 EST




On 26/05/2022 16:23, Arnaldo Carvalho de Melo wrote:
> Em Wed, May 25, 2022 at 04:41:09PM +0100, James Clark escreveu:
>> Changes since v2:
>> * Add commit to fix header include path to use Perf's copy
>> * Apply Leo's review tags
>>
>> 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 patches ("[PATCH v2 0/2] perf: arm64: Kernel support for Dwarf unwinding
>> through SVE functions") add support for sampling the VG register to the kernel
>> and the docs. This is the patchset to add 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.
>
> Thanks, applied.
>
> - Arnaldo

Hi Arnaldo,

Will has applied the kernel side here:
https://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git/commit/?h=for-next/perf&id=cbb0c02caf4bd98b9e0cd6d7420734b8e9a35703

There was a small change in the formatting in perf_regs.h, but the
values are all the same. So in theory it's fine to leave Perf's copy
until the next update, although it is a bit weird.

Thanks
James

>
>
>> Thanks
>> James
>>
>> James Clark (5):
>> perf tools: arm64: Use perf's copy of kernel headers
>> 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
>>
>> 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/libunwind/arm64.c | 2 +-
>> tools/perf/util/perf_regs.c | 2 +
>> 6 files changed, 46 insertions(+), 74 deletions(-)
>>
>> --
>> 2.28.0
>