[PATCHv3 0/4] x86/fgraph,bpf: Fix ORC stack unwind from return probe

Jiri Olsa
2025-11-04T21:54:15Z

hi,
sending fix for ORC stack unwind issue reported in here [1], where
the ORC unwinder won't go pass the return_to_handler function and
we get no stacktrace.

Sending fix for that together with unrelated stacktrace fix (patch 1),
so the attached test can work properly.

It's based on:
https://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace.git
probes/for-next

v1: https://lore.kernel.org/bpf/20251027131354.1984006-1-jolsa@kernel.org/
v2: https://lore.kernel.org/bpf/20251103220924.36371-3-jolsa@kernel.org/

v3 changes:
- fix assert condition in test

thanks,
jirka

[1] https://lore.kernel.org/bpf/aObSyt3qOnS_BMcy@krava/
---
Jiri Olsa (4):
Revert "perf/x86: Always store regs->ip in perf_callchain_kernel()"
x86/fgraph,bpf: Fix stack ORC unwind from kprobe_multi return probe
selftests/bpf: Add stacktrace ips test for kprobe_multi/kretprobe_multi
selftests/bpf: Add stacktrace ips test for raw_tp

arch/x86/events/core.c | 10 +++----
arch/x86/include/asm/ftrace.h | 5 ++++
arch/x86/kernel/ftrace_64.S | 8 +++++-
include/linux/ftrace.h | 10 ++++++-
tools/testing/selftests/bpf/prog_tests/stacktrace_ips.c | 150 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tools/testing/selftests/bpf/progs/stacktrace_ips.c | 49 +++++++++++++++++++++++++++++++
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c | 26 +++++++++++++++++
7 files changed, 251 insertions(+), 7 deletions(-)
create mode 100644 tools/testing/selftests/bpf/prog_tests/stacktrace_ips.c
create mode 100644 tools/testing/selftests/bpf/progs/stacktrace_ips.c