Re: [PATCH v4 0/9] bpf: fprobe: rethook: Use ftrace_regs instead of pt_regs
From: Florent Revest <hidden>
Date: 2023-08-25 16:13:09
Also in:
bpf, lkml
On Wed, Aug 23, 2023 at 5:15 PM Masami Hiramatsu (Google) [off-list ref] wrote:
Hi, Here is the 4th version of the series to use ftrace_regs instead of pt_regs in fprobe. The previous version is here; https://lore.kernel.org/all/169181859570.505132.10136520092011157898.stgit@devnote2/ (local) This version fixes the issues pointed in the previous series; fix document description, keep CONFIG_FPROBE dependency for multi-kprobe, add static_assert check for ftrace_regs size, reorder the ftrace_partial_regs() patch for perf fprobe event support, introduce per-cpu pt_regs stack for perf fprobe event and add Florent's Ack (Thanks!). Also this adds a new documentation patch to clarify that the $argN and $retval is best effort. - Document fix for the current fprobe callback prototype - Simply replace pt_regs in fprobe_entry_handler with ftrace_regs. - Expose ftrace_regs even if CONFIG_FUNCTION_TRACER=n. - Introduce ftrace_partial_regs(). (This changes ARM64 which needs a custom implementation) - Replace pt_regs in rethook and fprobe_exit_handler with ftrace_regs. This introduce a new HAVE_PT_REGS_TO_FTRACE_REGS_CAST which means ftrace_regs is just a wrapper of pt_regs (except for arm64, other architectures do this) - Update fprobe-events to use ftrace_regs natively. - Update bpf multi-kprobe handler use ftrace_partial_regs(). - Update document for new fprobe callbacks. - Add notes for the $argN and $retval. This series can be applied against the probes/core branch on linux-trace tree. This series can also be found below branch. https://git.kernel.org/pub/scm/linux/kernel/git/mhiramat/linux.git/log/?h=topic/fprobe-ftrace-regs Thank you,
FWIW, I verified that I could implement BPF multi_kprobe on arm64 on top of this series so the BPF multi_kprobe usecase is tested but I haven't tested the "trace_fprobe" or perf use cases.