lkml.org 
[lkml]   [2020]   [Aug]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Subject[RFC PATCH 00/14] kprobes: Unify kretprobe trampoline handlers
Date
Hi Peter,

Here is the series of patches to unify the kretprobe trampoline handler
implementation across all architectures which are currently kprobes supported.
Also, this finally removes the in_nmi() check from pre_kretprobe_handler()
since we can avoid double-lock deadlock from NMI by kprobe_busy_begin/end().

The unified generic kretprobe trampoline handler is based on x86 code, which
already support frame-pointer checker. I've enabled it on the arm and
arm64 which I can test. For other architecutres, currently the frame-pointer
checker does not work. If someone wants to enable it, please set the correct
frame pointer to ri->fp and pass it to kretprobe_trampoline_handler() as the
3rd parameter, instead of NULL.

Peter's lockless patch is not included yet because there seems more isses
to be solved. It seems that the cleanup_rp_inst() will be the biggest piece
of this pazzle.


Thank you,

---

Masami Hiramatsu (14):
kprobes: Add generic kretprobe trampoline handler
x86/kprobes: Use generic kretprobe trampoline handler
arm: kprobes: Use generic kretprobe trampoline handler
arm64: kprobes: Use generic kretprobe trampoline handler
arc: kprobes: Use generic kretprobe trampoline handler
csky: kprobes: Use generic kretprobe trampoline handler
ia64: kprobes: Use generic kretprobe trampoline handler
mips: kprobes: Use generic kretprobe trampoline handler
parisc: kprobes: Use generic kretprobe trampoline handler
powerpc: kprobes: Use generic kretprobe trampoline handler
s390: kprobes: Use generic kretprobe trampoline handler
sh: kprobes: Use generic kretprobe trampoline handler
sparc: kprobes: Use generic kretprobe trampoline handler
kprobes: Remove NMI context check


arch/arc/kernel/kprobes.c | 55 +----------------
arch/arm/probes/kprobes/core.c | 79 +-----------------------
arch/arm64/kernel/probes/kprobes.c | 79 +-----------------------
arch/csky/kernel/probes/kprobes.c | 78 +-----------------------
arch/ia64/kernel/kprobes.c | 79 +-----------------------
arch/mips/kernel/kprobes.c | 55 +----------------
arch/parisc/kernel/kprobes.c | 78 ++----------------------
arch/powerpc/kernel/kprobes.c | 55 ++---------------
arch/s390/kernel/kprobes.c | 81 +------------------------
arch/sh/kernel/kprobes.c | 59 +-----------------
arch/sparc/kernel/kprobes.c | 52 +---------------
arch/x86/kernel/kprobes/core.c | 109 +---------------------------------
include/linux/kprobes.h | 32 +++++++++-
kernel/kprobes.c | 117 ++++++++++++++++++++++++++++++++----
14 files changed, 182 insertions(+), 826 deletions(-)

--
Masami Hiramatsu (Linaro) <mhiramat@kernel.org>

\
 
 \ /
  Last update: 2020-08-26 15:46    [W:0.097 / U:0.632 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site