[PATCH 00/17] powerpc/ftrace: refactor and add support for -fpatchable-function-entry
Naveen N Rao
naveen at kernel.org
Mon Jun 19 19:47:18 AEST 2023
Since RFC (*):
- Patches 1 and 17 have been included in this series due to
dependencies. Both had been posted out separately.
- Patch 10 has a small change to not throw errors when checking
instruction sequence generated by older toolchains.
This has had more testing since and this looks good to me. Christophe
mentioned that this results in a slowdown with ftrace [de-]activation on
ppc32, but that isn't performance critical and we can address that
separately.
(*) http://lore.kernel.org/cover.1686151854.git.naveen@kernel.org
- Naveen
Naveen N Rao (17):
powerpc/ftrace: Fix dropping weak symbols with older toolchains
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
powerpc/ftrace: Create a dummy stackframe to fix stack unwind
arch/powerpc/Kconfig | 14 +-
arch/powerpc/Makefile | 5 +
arch/powerpc/include/asm/ftrace.h | 24 +-
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 | 910 +++++-------------
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} | 78 +-
arch/powerpc/kernel/vmlinux.lds.S | 4 -
.../gcc-check-fpatchable-function-entry.sh | 26 +
15 files changed, 1288 insertions(+), 774 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} (79%)
create mode 100755 arch/powerpc/tools/gcc-check-fpatchable-function-entry.sh
base-commit: 12ffddc6444780aec83fa5086673ec005c0bace4
--
2.40.1
More information about the Linuxppc-dev
mailing list