Messages in this thread | | | From | Linus Walleij <> | Date | Thu, 22 Sep 2022 10:57:11 +0200 | Subject | Re: [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
| |