On Sun, Apr 5, 2026, at 8:25 PM, Aaron Merey wrote:
>> + /* TODO(REVIEW) The existing code in arm_initreg.c has to unpack a
>> + register file of 32-bit words into Dwarf_Word array, but here
>> + this should have happened already, probably in whatever code
>> + unpacks the PERF_RECORD_SAMPLE; or perf_events already provides
>> + an array of 64-bit regs? */
>
> kernel/events/core.c:perf_output_sample_regs() looks like it
> exclusively outputs u64 values so I don't think you need to deal with
> unpacking 32-bit values here.
Ok, thanks for checking. Revising the patch to use the default implementation.
>> + eh->perf_frame_regs_mask = PERF_FRAME_REGISTERS_AARCH64 |
>> PERF_FRAME_REGISTERS_ARM;
>> +*/
>
> Seems plausible that for compat processes, perf maps arm regs onto
> aarch64 regs but I wasn't able to verify this.
Ok, I'll keep the comment discussing this issue but amend
eh->perf_frame_regs_mask
on aarch64 as the comment suggests. I'll test a 32-bit compat binary on aarch64
tomorrow.
--
All the best,
Serhei
http://serhei.io