Skip to content

RFC powerpc/ftrace: refactoring and support for -fpatchable-function-entry

Naveen N Rao linuxppc-dev 1 version New

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 RFC Latest15 patches 0 repliesNew

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/15powerpc/module: Remove unused .ftrace.tramp sectionarch/powerpc/include/asm/module.h+0 -40 replies
2/15powerpc64/ftrace: Move ELFv1 and -pg support code into a separate filearch/powerpc/kernel/trace/Makefile arch/powerpc/kernel/trace/ftrace.c arch/powerpc/kernel/trace/ftrace_pg.c+855 -140 replies
3/15powerpc/ftrace: Simplify function_graph support in ftrace.carch/powerpc/kernel/trace/ftrace.c+7 -570 replies
4/15powerpc/ftrace: Use FTRACE_REGS_ADDR to identify the correct ftrace trampolinearch/powerpc/kernel/trace/ftrace.c+1 -60 replies
5/15powerpc/ftrace: Extend ftrace support for large kernels to ppc32arch/powerpc/include/asm/ftrace.h arch/powerpc/include/asm/sections.h arch/powerpc/kernel/trace/ftrace.c +2 more+32 -290 replies
6/15powerpc/ftrace: Consolidate ftrace support into fewer filesarch/powerpc/kernel/trace/Makefile arch/powerpc/kernel/trace/ftrace_64_pg.S arch/powerpc/kernel/trace/ftrace_64_pg.c +2 more+130 -770 replies
7/15powerpc/ftrace: Refactor ftrace_modify_code()arch/powerpc/kernel/trace/ftrace.c+29 -220 replies
8/15powerpc/ftrace: Stop re-purposing linker generated long branches for ftracearch/powerpc/kernel/trace/ftrace.c+17 -930 replies
9/15powerpc/ftrace: Add separate ftrace_init_nop() with additional validationarch/powerpc/include/asm/ftrace.h arch/powerpc/kernel/trace/ftrace.c+77 -00 replies
10/15powerpc/ftrace: Simplify ftrace_make_nop()arch/powerpc/kernel/trace/ftrace.c+32 -1880 replies
11/15powerpc/ftrace: Simplify ftrace_make_call()arch/powerpc/kernel/trace/ftrace.c+31 -1560 replies
12/15powerpc/ftrace: Simplify ftrace_modify_call()arch/powerpc/kernel/trace/ftrace.c+21 -1400 replies
13/15powerpc/ftrace: Replace use of ftrace_call_replace() with ftrace_create_branch_inst()arch/powerpc/kernel/trace/ftrace.c+2 -150 replies
14/15powerpc/ftrace: Implement ftrace_replace_code()arch/powerpc/kernel/trace/ftrace.c+96 -770 replies
15/15powerpc/ftrace: Add support for -fpatchable-function-entryarch/powerpc/Kconfig arch/powerpc/Makefile arch/powerpc/include/asm/ftrace.h +5 more+64 -90 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [RFC PATCH 00/15] powerpc/ftrace: refactoring and support for -fpatchable-function-entry

This is a follow-on RFC to the patch I previously posted here:
http://lore.kernel.org/[email protected]

Since then, I have split up the patches, picked up a few more changes and given this more testing. More details in the individual patches.

- Naveen

Naveen N Rao (15):
powerpc/module: Remove unused .ftrace.tramp section powerpc64/ftrace: Move ELFv1 and -pg support code into a separate file powerpc/ftrace: Simplify function_graph support in ftrace.c powerpc/ftrace: Use FTRACE_REGS_ADDR to identify the correct ftrace
trampoline
powerpc/ftrace: Extend ftrace support for large kernels to ppc32 powerpc/ftrace: Consolidate ftrace support into fewer files powerpc/ftrace: Refactor ftrace_modify_code() powerpc/ftrace: Stop re-purposing linker generated long branches for
ftrace
powerpc/ftrace: Add separate ftrace_init_nop() with additional
validation
powerpc/ftrace: Simplify ftrace_make_nop()
powerpc/ftrace: Simplify ftrace_make_call() powerpc/ftrace: Simplify ftrace_modify_call() powerpc/ftrace: Replace use of ftrace_call_replace() with
ftrace_create_branch_inst()
powerpc/ftrace: Implement ftrace_replace_code() powerpc/ftrace: Add support for -fpatchable-function-entry

 arch/powerpc/Kconfig                          |  14 +-
 arch/powerpc/Makefile                         |   5 +
 arch/powerpc/include/asm/ftrace.h             |  22 +-
 arch/powerpc/include/asm/module.h             |   4 -
 arch/powerpc/include/asm/sections.h           |   2 +
 arch/powerpc/include/asm/vermagic.h           |   4 +-
 arch/powerpc/kernel/module_64.c               |   2 +-
 arch/powerpc/kernel/trace/Makefile            |  12 +-
 arch/powerpc/kernel/trace/ftrace.c            | 908 +++++-------------
 arch/powerpc/kernel/trace/ftrace_64_pg.S      |  67 --
 arch/powerpc/kernel/trace/ftrace_64_pg.c      | 846 ++++++++++++++++
 .../{ftrace_low.S => ftrace_64_pg_entry.S}    |  64 +-
 .../{ftrace_mprofile.S => ftrace_entry.S}     |  67 ++
 arch/powerpc/kernel/vmlinux.lds.S             |   4 -
 .../gcc-check-fpatchable-function-entry.sh    |  26 +
 15 files changed, 1277 insertions(+), 770 deletions(-)
 delete mode 100644 arch/powerpc/kernel/trace/ftrace_64_pg.S
 create mode 100644 arch/powerpc/kernel/trace/ftrace_64_pg.c
 rename arch/powerpc/kernel/trace/{ftrace_low.S => ftrace_64_pg_entry.S} (54%)
 rename arch/powerpc/kernel/trace/{ftrace_mprofile.S => ftrace_entry.S} (83%)
 create mode 100755 arch/powerpc/tools/gcc-check-fpatchable-function-entry.sh

base-commit: bd517a8442b6c6646a136421cd4c1b95bf4ce32b

Signature · 1 line
2.40.1