[PATCH v4 00/10] powerpc64/ftrace: Add support for ftrace_modify_call() and a few other fixes

Naveen N. Rao naveen.n.rao at linux.vnet.ibm.com
Wed Apr 4 06:12:15 AEST 2018


This is v4 of the patches posted at:
https://www.mail-archive.com/linuxppc-dev@lists.ozlabs.org/msg130739.html

This series has been tested using mambo for p8 (hash) and p9 (radix).


v4 changes:
- flip the paca field from 'ftrace_disabled' to 'ftrace_enabled' to 
  signify a default disable policy to address early boot
- add and use helpers to disable/enable ftrace, which addresses 32-bit 
  build issues
- a new patch to address issues with function_graph tracing during cpu 
  hotplug.

The last three patches are unchanged from the previous series, for the 
most part (except for the ftrace_disabled -> ftrace_enabled adjustment).

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 (10):
  powerpc64/ftrace: Add a field in paca to disable ftrace in unsafe code
    paths
  powerpc64/ftrace: Disable ftrace during kvm guest entry/exit
  powerpc64/ftrace: Rearrange #ifdef sections in ftrace.h
  powerpc64/ftrace: Add helpers to hard disable ftrace
  powerpc64/ftrace: Delay enabling ftrace on secondary cpus
  powerpc64/ftrace: Disable ftrace during hotplug
  powerpc64/kexec: Hard 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              |  27 +++-
 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            |   2 +
 arch/powerpc/kernel/module_64.c                |  43 +++--
 arch/powerpc/kernel/setup_64.c                 |   7 +
 arch/powerpc/kernel/smp.c                      |  12 ++
 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 +
 12 files changed, 336 insertions(+), 67 deletions(-)

-- 
2.16.2



More information about the Linuxppc-dev mailing list