[PATCH 0/7] powerpc/ftrace: Patch out -mprofile-kernel instructions
From: Naveen N. Rao
Date: Tue Jun 18 2019 - 10:53:42 EST
Changes since RFC:
- Patches 1 and 2: No changes
- Patch 3: rename function to ftrace_replace_code_rec() to signify that
it acts on a ftrace record.
- Patch 4: numerous small changes, including those suggested by Nick
Piggin.
- Patch 4: additionally handle scenario where __ftrace_make_call() can
be invoked without having called __ftrace_make_call_prep(), when a
kernel module is loaded while function tracing is active.
- Patch 5 to 7: new, to have ftrace claim ownership of two instructions,
and to have kprobes work properly with this.
--
On powerpc64, -mprofile-kernel results in two instructions being
emitted: 'mflr r0' and 'bl _mcount'. So far, we were only nop'ing out
the branch to _mcount(). This series implements an approach to also nop
out the preceding mflr.
- Naveen
Naveen N. Rao (7):
ftrace: Expose flags used for ftrace_replace_code()
x86/ftrace: Fix use of flags in ftrace_replace_code()
ftrace: Expose __ftrace_replace_code()
powerpc/ftrace: Additionally nop out the preceding mflr with
-mprofile-kernel
powerpc/ftrace: Update ftrace_location() for powerpc -mprofile-kernel
kprobes/ftrace: Use ftrace_location() when [dis]arming probes
powerpc/kprobes: Allow probing on any ftrace address
arch/powerpc/kernel/kprobes-ftrace.c | 30 +++
arch/powerpc/kernel/trace/ftrace.c | 272 ++++++++++++++++++++++++---
arch/x86/kernel/ftrace.c | 3 +-
include/linux/ftrace.h | 7 +
kernel/kprobes.c | 10 +-
kernel/trace/ftrace.c | 17 +-
6 files changed, 300 insertions(+), 39 deletions(-)
--
2.22.0