Re: [PATCH v2 5/5] alpha: fill in pc for software event samples
From: Magnus Lindholm
Date: Sun Oct 18 2026 - 04:18:30 EST
Hi Matt,
On Sat, Oct 17, 2026 at 3:56 AM Matt Turner <mattst88@xxxxxxxxx> wrote:
>
> Context switch and tracepoint events have no trap frame, so perf builds
> one with perf_fetch_caller_regs(). Alpha does not define
> perf_arch_fetch_caller_regs(), which leaves that pt_regs zeroed, and
> these samples report pc as 0.
>
> Record the caller's address as pc. The zero ps already marks the frame
> as kernel mode, and pt_regs has nowhere to keep sp, so pc is all that
> can be filled in.
>
> Reported-by: Magnus Lindholm <linmag7@xxxxxxxxx>
> Closes: https://lore.kernel.org/all/CA%2B%3DFv5S8-Zk8-LUpZnWiBfTGSQXthepmRc_-a9O%2BpEPmVW0mRA@xxxxxxxxxxxxxx/
> Assisted-by: Claude:claude-opus-5-5
> Signed-off-by: Matt Turner <mattst88@xxxxxxxxx>
> ---
> arch/alpha/include/asm/perf_event.h | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/arch/alpha/include/asm/perf_event.h b/arch/alpha/include/asm/perf_event.h
> index 5996e7a6757e..72536566014a 100644
> --- a/arch/alpha/include/asm/perf_event.h
> +++ b/arch/alpha/include/asm/perf_event.h
> @@ -1,4 +1,11 @@
> #ifndef __ASM_ALPHA_PERF_EVENT_H
> #define __ASM_ALPHA_PERF_EVENT_H
>
> +/*
> + * Software events have no trap frame, so perf_fetch_caller_regs() fills
> + * in a zeroed pt_regs. A zero ps already means kernel mode; only pc is
> + * missing.
> + */
> +#define perf_arch_fetch_caller_regs(regs, __ip) ((regs)->pc = (__ip))
> +
> #endif /* __ASM_ALPHA_PERF_EVENT_H */
>
> --
> 2.55.0
>
Thanks, this looks good to me.
Reviewed-by: Magnus Lindholm <linmag7@xxxxxxxxx>