Re: [PATCH 0/8] arm64: ftrace cleanup + FTRACE_WITH_REGS
From: Ard Biesheuvel
Date: Thu Oct 24 2019 - 12:32:36 EST
On Mon, 21 Oct 2019 at 18:34, Mark Rutland <mark.rutland@xxxxxxx> wrote:
>
> Hi,
>
> This series is a reworked version of Torsten's v8 FTRACE_WITH_REGS
> series [1]. I've tried to rework the existing code in preparatory
> patches so that the patchable-function-entry bits slot in with fewer
> surprises. This version is based on v5.4-rc3, and can be found in my
> arm64/ftrace-with-regs branch [2].
>
> I've added an (optional) ftrace_init_nop(), which the core code uses to
> initialize callsites. This allows us to avoid a synthetic MCOUNT_ADDR
> symbol, and more cleanly separates the one-time initialization of the
> callsite from dynamic NOP<->CALL modification. Architectures which don't
> implement this get the existing ftrace_make_nop() with MCOUNT_ADDR.
>
> I've moved the module PLT initialization to module load time, which
> simplifies runtime callsite modification. This also means that we don't
> transitently mark the module text RW, and will allow for the removal of
> module_disable_ro().
>
> Since the last posting, parisc gained ftrace support using
> patchable-function-entry. I've made the handling of module callsite
> locations common in kernel/module.c with a new FTRACE_CALLSITE_SECTION
> definition, and removed the newly redundant bits from arch/parisc.
>
> Thanks,
> Mark.
>
> [1] https://lore.kernel.org/r/20190208150826.44EBC68DD2@xxxxxxxxxxxxxxxx
> [2] git://git.kernel.org/pub/scm/linux/kernel/git/mark/linux.git arm64/ftrace-with-regs
>
> Mark Rutland (7):
> ftrace: add ftrace_init_nop()
> module/ftrace: handle patchable-function-entry
> arm64: module: rework special section handling
> arm64: module/ftrace: intialize PLT at load time
> arm64: insn: add encoder for MOV (register)
> arm64: asm-offsets: add S_FP
> arm64: ftrace: minimize ifdeffery
>
> Torsten Duwe (1):
> arm64: implement ftrace with regs
>
For the series,
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@xxxxxxxxxx>
> arch/arm64/Kconfig | 2 +
> arch/arm64/Makefile | 5 ++
> arch/arm64/include/asm/ftrace.h | 23 +++++++
> arch/arm64/include/asm/insn.h | 3 +
> arch/arm64/include/asm/module.h | 2 +-
> arch/arm64/kernel/asm-offsets.c | 1 +
> arch/arm64/kernel/entry-ftrace.S | 140 +++++++++++++++++++++++++++++++++++++--
> arch/arm64/kernel/ftrace.c | 123 ++++++++++++++++++++--------------
> arch/arm64/kernel/insn.c | 13 ++++
> arch/arm64/kernel/module-plts.c | 3 +-
> arch/arm64/kernel/module.c | 57 +++++++++++++---
> arch/parisc/Makefile | 1 -
> arch/parisc/kernel/module.c | 10 ++-
> arch/parisc/kernel/module.lds | 7 --
> include/linux/ftrace.h | 5 ++
> kernel/module.c | 2 +-
> kernel/trace/ftrace.c | 13 +++-
> 17 files changed, 330 insertions(+), 80 deletions(-)
> delete mode 100644 arch/parisc/kernel/module.lds
>
> --
> 2.11.0
>