[PATCH v3 0/6] powerpc64/ftrace: Add support for ftrace_modify_call() and a few other fixes
Naveen N. Rao
naveen.n.rao at linux.vnet.ibm.com
Thu Mar 22 21:25:20 AEDT 2018
This is v3 of the patches posted at:
https://www.mail-archive.com/linuxppc-dev@lists.ozlabs.org/msg130652.html
This series has been tested using mambo for p8 (hash) and p9 (radix).
The first two patches fix a kernel oops when function tracing is enabled
while using KVM.
Patch 3 is new and changes how ftrace is disabled before kexec.
Patch 4 tightens how we detect _mcount() call sites for -mprofile-kernel
during module loading.
The last two patches implement support for ftrace_caller() to
conditionally save the register state. This speeds up the function
tracer a bit. The existing ftrace_caller() is renamed to
ftrace_regs_caller() since we save the entire pt_regs today. A new
implementation of ftrace_caller() that saves the minimum register state
is provided. We switch between the two variants through
ftrace_modify_call(). The necessary support to call into the two
different variants from modules is also added.
- Naveen
Naveen N. Rao (6):
powerpc64/ftrace: Add a field in paca to disable ftrace in unsafe code
paths
powerpc64/ftrace: Disable ftrace during kvm guest entry/exit
powerpc/kexec: Disable ftrace before switching to the new kernel
powerpc64/module: Tighten detection of mcount call sites with
-mprofile-kernel
powerpc64/ftrace: Use the generic version of ftrace_replace_code()
powerpc64/ftrace: Implement support for ftrace_regs_caller()
arch/powerpc/include/asm/ftrace.h | 2 -
arch/powerpc/include/asm/module.h | 3 +
arch/powerpc/include/asm/paca.h | 1 +
arch/powerpc/kernel/asm-offsets.c | 1 +
arch/powerpc/kernel/machine_kexec.c | 6 +-
arch/powerpc/kernel/module_64.c | 43 +++--
arch/powerpc/kernel/trace/ftrace.c | 210 ++++++++++++++++++++-----
arch/powerpc/kernel/trace/ftrace_64_mprofile.S | 85 +++++++++-
arch/powerpc/kernel/trace/ftrace_64_pg.S | 4 +
arch/powerpc/kvm/book3s_hv_rmhandlers.S | 8 +
10 files changed, 296 insertions(+), 67 deletions(-)
--
2.16.2
More information about the Linuxppc-dev
mailing list