Re: [Patch v5 18/19] perf parse-regs: Support new SIMD sampling format
From: Ian Rogers
Date: Sat Jan 17 2026 - 00:50:37 EST
On Mon, Jan 5, 2026 at 11:27 PM Mi, Dapeng <dapeng1.mi@xxxxxxxxxxxxxxx> wrote:
> Ian,
>
> I looked at these perf regs __weak helpers again, like
> arch__intr_reg_mask()/arch__user_reg_mask(). It could be really hard to
> eliminate these __weak helpers and convert them into a generic function
> like perf_reg_name(). All these __weak helpers are arch-dependent and
> usually need to call perf_event_open sysctrl to get the required registers
> mask. So even we convert them into a generic function, we still have no way
> to get the registers mask of a different arch, like get x86 registers mask
> on arm machine. Another reason is that these __weak helpers may contain
> some arch-specific instructions. If we want to convert them into a general
> perf function like perf_reg_name(). It may cause building error since these
> arch-specific instructions may not exist on the building machine.
Hi Dapeng,
There was already a patch to better support cross architecture
libdw-unwind-ing and I've just sent out a series to clean this up so
that this is achieved by having mapping functions between perf and
dwarf register names. The functions use the e_machine of the binary to
determine how to map, etc. The series is here:
https://lore.kernel.org/lkml/20260117052849.2205545-1-irogers@xxxxxxxxxx/
and I think it can be the foundation for avoiding the weak functions.
I also noticed that I think we're sampling the XMM registers for dwarf
unwinding, but it seems unlikely the XMM registers will hold stack
frame information - so this is probably an x86 inefficiency.
Thanks,
Ian