diff options
| author | Jiri Olsa <jolsa@kernel.org> | 2026-01-26 22:18:32 +0100 |
|---|---|---|
| committer | Andrii Nakryiko <andrii@kernel.org> | 2026-01-30 13:40:08 -0800 |
| commit | 8bc11700e0d23d4fdb7d8d5a73b2e95de427cabc (patch) | |
| tree | 7af86da6987989782fc1535c7edca5449cf86c71 /tools/perf/lib/Documentation/tutorial/git@git.tavy.me:linux.git | |
| parent | cd77618c418254b827f2a807b4c27b97088fdb52 (diff) | |
x86/fgraph: Fix return_to_handler regs.rsp value
The previous change (Fixes commit) messed up the rsp register value,
which is wrong because it's already adjusted with FRAME_SIZE, we need
the original rsp value.
This change does not affect fprobe current kernel unwind, the !perf_hw_regs
path perf_callchain_kernel:
if (perf_hw_regs(regs)) {
if (perf_callchain_store(entry, regs->ip))
return;
unwind_start(&state, current, regs, NULL);
} else {
unwind_start(&state, current, NULL, (void *)regs->sp);
}
which uses pt_regs.sp as first_frame boundary (FRAME_SIZE shift makes
no difference, unwind stil stops at the right frame).
This change fixes the other path when we want to unwind directly from
pt_regs sp/fp/ip state, which is coming in following change.
Fixes: 20a0bc10272f ("x86/fgraph,bpf: Fix stack ORC unwind from kprobe_multi return probe")
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Reviewed-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Link: https://lore.kernel.org/bpf/20260126211837.472802-2-jolsa@kernel.org
Diffstat (limited to 'tools/perf/lib/Documentation/tutorial/git@git.tavy.me:linux.git')
0 files changed, 0 insertions, 0 deletions
