This is a follow-on RFC to the patch I previously posted here: http://lore.kernel.org/20230519192600.2593506-1-nav...@kernel.org
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 -- 2.40.1