lkml.org 
[lkml]   [2022]   [Sep]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Date
SubjectRe: [PATCH] ARM: perf: Fix stacktraces for tracepoint events in THUMB2 kernels
On Wed, Sep 21, 2022 at 1:19 AM Tomislav Novak <tnovak@fb.com> wrote:

> Store the frame address where arm_get_current_stackframe() looks for it
> (ARM_r7 instead of ARM_fp if CONFIG_THUMB2_KERNEL=y). Otherwise frame->fp
> gets set to 0, causing unwind_frame() to fail.
>
> # bpftrace -e 't:sched:sched_switch { @[kstack] = count(); exit(); }'
> Attaching 1 probe...
> @[
> __schedule+1059
> ]: 1
>
> A typical first unwind instruction is 0x97 (SP = R7), so after executing
> it SP ends up being 0 and -URC_FAILURE is returned.
>
> unwind_frame(pc = ac9da7d7 lr = 00000000 sp = c69bdda0 fp = 00000000)
> unwind_find_idx(ac9da7d7)
> unwind_exec_insn: insn = 00000097
> unwind_exec_insn: fp = 00000000 sp = 00000000 lr = 00000000 pc = 00000000
>
> With this patch:
>
> # bpftrace -e 't:sched:sched_switch { @[kstack] = count(); exit(); }'
> Attaching 1 probe...
> @[
> __schedule+1059
> __schedule+1059
> schedule+79
> schedule_hrtimeout_range_clock+163
> schedule_hrtimeout_range+17
> ep_poll+471
> SyS_epoll_wait+111
> sys_epoll_pwait+231
> __ret_fast_syscall+1
> ]: 1
>
> Signed-off-by: Tomislav Novak <tnovak@fb.com>

Reviewed-by: Linus Walleij <linus.walleij@linaro.org>

Can you put this patch into Russell's patch tracker please?
https://www.armlinux.org.uk/developer/patches/

BTW: what is this interesting CONFIG_THUMB2_KERNEL target
that Facebook/Meta is working on? (It's OK if you can't tell, just
curious.)

Yours,
Linus Walleij

\
 
 \ /
  Last update: 2022-09-22 10:58    [W:0.027 / U:0.032 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site