Hi Naveen, Sorry, I might miss to add you on CC list. Could you test and review this on powerpc? Thank you, On Mon, 28 May 2018 15:59:09 +0900 Masami Hiramatsu <mhiramat@xxxxxxxxxx> wrote: > Hello, > > Since we decided to remove jprobe from kernel last year, > its APIs are disabled and we worked on moving in-kernel > jprobe users to kprobes or trace-events. And now no jprobe > users are here anymore. > > This is the 4th version of the series for removing jprobe. > Previous version is here: > > https://lkml.org/lkml/2018/5/16/1052 > > Unlike previous versions, this version removes jprobe from > all architectures, as Ingo asked me in the previous thread. > > I marked this as RFC again because it introduced changes for > many arch. It should be reviewed by some arch which is not > simply removing code (e.g. powerpc, arm). > > BTW, this series are based on -tip tree as same as its > previous version, and I'm sure it can be applied to > linus tree/linux-next too. > > Series structure > ===== > Basically this series introduces 3 major changes; > > - Remove jprobe implementation ([2/27] - [12/27]) > > - Remove break_handler() related code ([13/27] - [23/27]) > This should be done after (or with) removing jprobe > because break_handler is only used by jprobe. > (I'm not so sure, should I merge above patches into one > arch-wide patch as next one does?) > > - Clean current_kprobe and enable preempt if pre_handler() > returns !0 ([24/27] and [25/27]<- x86 specific update) > This also depends on above patches because those > current_kprobe and preemption are expected to be adjusted > by jprobe implementation via break_handler. > > And some minor changes; > > - Document cleanup and update ([1/27], [26/27]) > > And finally remove jprobe stub APIs and break_handler > from kprobes.h ([27/27]). Of course this depends on > above patches. > > Since removing jprobes and break_handler related code > involve archtecture specific changes in some archs, > I splitted it for each arch. But "clean current_kprobe and > enable preempt if pre_handler() returns !0" patch modifies > all architectures, since it changes expected kprobe > handler behavior. I think this would be better done in > one patch for consistency. > > Result > ===== > I've tested it with kprobe sanity test on x86-64, and arm64 > but for other archs, I just did cross-build test. > > With this series, we finally cleanup all jprobe code > and break_handler as below. > > $ git grep -wi break_handler | wc -l > 0 > $ git grep -wi jprobe | wc -l > 0 > > Actually, there is one place where mentioning jprobe, > Documentation/kprobes.txt explains jprobe is deprecated > and how to migrate jprobe user to ftrace or kprobe. > I didn't remove it because it might be useful for > some users. > > Thank you, > > --- > > Masami Hiramatsu (27): > Documentation/kprobes: Fix to remove remaining jprobe > kprobes: Remove jprobe API implementation > kprobes/x86: Remove jprobe implementation > ARC: kprobes: Remove jprobe implementation > ARM: kprobes: Remove jprobe arm implementation > arm64: kprobes: Remove jprobe implementation > powerpc/kprobes: Remove jprobe powerpc implementation > ia64: kprobes: Remove jprobe implementation > MIPS: kprobes: Remove jprobe implementation > s390/kprobes: Remove jprobe implementation > sh: kprobes: Remove jprobe implementation > sparc64: kprobes: Remove jprobe implementation > kprobes: Don't check the ->break_handler() in generic kprobes code > kprobes/x86: Don't call ->break_handler() in x86 kprobes > ARC: kprobes: Don't call the ->break_handler() in ARC kprobes code > ARM: kprobes: Don't call the ->break_handler() in arm kprobes code > arm64: kprobes: Don't call the ->break_handler() in arm kprobes code > powerpc/kprobes: Don't call the ->break_handler() in arm kprobes code > ia64: kprobes: Don't call the ->break_handler() in ia64 kprobes code > MIPS: kprobes: Don't call the ->break_handler() in MIPS kprobes code > s390/kprobes: Don't call the ->break_handler() in s390 kprobes code > sh: kprobes: Don't call the ->break_handler() in SH kprobes code > sparc64: kprobes: Don't call the ->break_handler() in sparc64 kprobes code > bpf: error-inject: kprobes: Clear current_kprobe and enable preempt in kprobe > x86: kprobes: Do not disable preempt on int3 path > Documentation: kprobes: Add how to change the execution path > kprobes: Remove jprobe stub API > > > Documentation/kprobes.txt | 35 +++++- > arch/arc/include/asm/kprobes.h | 2 > arch/arc/kernel/kprobes.c | 50 +-------- > arch/arm/include/asm/kprobes.h | 2 > arch/arm/include/asm/probes.h | 1 > arch/arm/probes/kprobes/core.c | 135 +----------------------- > arch/arm64/include/asm/kprobes.h | 1 > arch/arm64/kernel/probes/kprobes.c | 86 +-------------- > arch/ia64/include/asm/kprobes.h | 2 > arch/ia64/include/uapi/asm/break.h | 1 > arch/ia64/kernel/Makefile | 2 > arch/ia64/kernel/jprobes.S | 90 ---------------- > arch/ia64/kernel/kprobes.c | 93 +---------------- > arch/mips/include/asm/kprobes.h | 13 -- > arch/mips/kernel/kprobes.c | 70 ++---------- > arch/powerpc/include/asm/kprobes.h | 12 -- > arch/powerpc/kernel/kprobes-ftrace.c | 31 +----- > arch/powerpc/kernel/kprobes.c | 92 +++------------- > arch/powerpc/kernel/trace/ftrace_64_mprofile.S | 39 +------ > arch/s390/include/asm/kprobes.h | 2 > arch/s390/kernel/kprobes.c | 86 +-------------- > arch/sh/include/asm/kprobes.h | 4 - > arch/sh/kernel/kprobes.c | 72 +------------ > arch/sparc/include/asm/kprobes.h | 1 > arch/sparc/kernel/kprobes.c | 65 +----------- > arch/x86/include/asm/kprobes.h | 5 - > arch/x86/kernel/kprobes/common.h | 10 -- > arch/x86/kernel/kprobes/core.c | 119 +-------------------- > arch/x86/kernel/kprobes/ftrace.c | 31 ++---- > arch/x86/kernel/kprobes/opt.c | 1 > include/linux/kprobes.h | 53 --------- > kernel/fail_function.c | 3 - > kernel/kprobes.c | 115 +------------------- > kernel/test_kprobes.c | 94 ----------------- > kernel/trace/trace_kprobe.c | 11 +- > lib/Kconfig.debug | 2 > 36 files changed, 125 insertions(+), 1306 deletions(-) > delete mode 100644 arch/ia64/kernel/jprobes.S > > -- > Masami Hiramatsu (Linaro) -- Masami Hiramatsu <mhiramat@xxxxxxxxxx>