Messages in this thread | | | Date | Thu, 1 Dec 2022 20:15:46 +0000 | From | Conor Dooley <> | Subject | Re: [PATCH V4 6/7] riscv: ftrace: Add DYNAMIC_FTRACE_WITH_DIRECT_CALLS support |
| |
On Thu, Dec 01, 2022 at 12:06:39PM -0800, Palmer Dabbelt wrote: > On Thu, 01 Dec 2022 12:02:56 PST (-0800), Conor Dooley wrote: > > On Mon, Nov 28, 2022 at 10:32:29PM -0500, guoren@kernel.org wrote: > > > From: Song Shuai <suagrfillet@gmail.com> > > > > > > This patch adds DYNAMIC_FTRACE_WITH_DIRECT_CALLS support for RISC-V. > > > > > > select the DYNAMIC_FTRACE_WITH_DIRECT_CALLS to provide the > > > register_ftrace_direct[_multi] interfaces allowing users to register > > > the customed trampoline (direct_caller) as the mcount for one or > > > more target functions. And modify_ftrace_direct[_multi] are also > > > provided for modifying direct_caller. > > > > > > To make the direct_caller and the other ftrace hooks (eg. function/fgraph > > > tracer, k[ret]probes) co-exist, a temporary register is nominated to > > > store the address of direct_caller in ftrace_regs_caller. After the > > > setting of the address direct_caller by direct_ops->func and the > > > RESTORE_REGS in ftrace_regs_caller, direct_caller will be jumped to > > > by the `jr` inst. > > > > > > Signed-off-by: Song Shuai <suagrfillet@gmail.com> > > > Tested-by: Guo Ren <guoren@kernel.org> > > > Signed-off-by: Guo Ren <guoren@kernel.org> > > > --- > > > arch/riscv/Kconfig | 1 + > > > arch/riscv/include/asm/ftrace.h | 6 ++++++ > > > arch/riscv/kernel/mcount-dyn.S | 4 ++++ > > > 3 files changed, 11 insertions(+) > > > > > > diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig > > > index 1d0e5838b11b..2828537abfcd 100644 > > > --- a/arch/riscv/Kconfig > > > +++ b/arch/riscv/Kconfig > > > @@ -278,6 +278,7 @@ config ARCH_RV64I > > > select ARCH_SUPPORTS_INT128 if CC_HAS_INT128 > > > select HAVE_DYNAMIC_FTRACE if !XIP_KERNEL && MMU && $(cc-option,-fpatchable-function-entry=8) > > > select HAVE_DYNAMIC_FTRACE_WITH_REGS if HAVE_DYNAMIC_FTRACE > > > + select HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS > > > select HAVE_FTRACE_MCOUNT_RECORD if !XIP_KERNEL > > > select HAVE_FUNCTION_GRAPH_TRACER > > > select HAVE_FUNCTION_TRACER if !XIP_KERNEL && !PREEMPTION > > > > Please sort new entries here in alphabetical order, so move the new > > entry up by one line :) > > IIRC whomever sorted these entrties orignially posted a script that does > that. Maybe that should be integrated into either checkpatch or one of the > patchwork robots so we don't have to manually remember the alphabet?
If it actually does *sorting* I am not sure it's a suitable inclusion as-is that'd seem better as a pre-commit hook. But maybe it can be co-opted somehow. I'll try to dig it up off of lore tomorrow.
Thanks, Conor.
| |