[PATCH] arm64/kprobes: Add support for KPROBES_ON_FTRACE

Will Deacon will at kernel.org
Mon Nov 7 06:49:31 PST 2022


[+Mark R]

On Thu, Jul 28, 2022 at 02:02:50AM +0000, Jianlin Lv wrote:
> This is the arm64 version of ftrace-based kprobes to avoid the overhead
> with regular kprobes, by using the ftrace infrastructure.
> 
> Signed-off-by: Jianlin Lv <iecedge at gmail.com>
> ---
>  .../debug/kprobes-on-ftrace/arch-support.txt  |  2 +-
>  arch/arm64/Kconfig                            |  1 +
>  arch/arm64/kernel/probes/Makefile             |  1 +
>  arch/arm64/kernel/probes/kprobes-ftrace.c     | 81 +++++++++++++++++++
>  include/linux/kprobes.h                       |  2 +
>  kernel/kprobes.c                              |  4 +-
>  6 files changed, 88 insertions(+), 3 deletions(-)
>  create mode 100644 arch/arm64/kernel/probes/kprobes-ftrace.c

Sorry for the slow reply on this, but I think this deserved to be split
into two patches: the first one reworking the core check_ftrace_location()
logic to work properly with branch-and-link style architectures, and the
second one adding support for arm64.

I'd also prefer that we don't just punt the whole of check_ftrace_location()
to the arch code using weak symbols. I'd have thought it would be cleaner
for architectures to specify the offset which needs to be applied to the
PC instead.

Having said that, how do architectures such as PowerPC and Risc-V handle
this today without changing the core code?

Will



More information about the linux-arm-kernel mailing list