[GIT PULL v2] ARM ftrace fixes for Thumb2, Clang and the EABI unwinder

Ard Biesheuvel ardb at kernel.org
Mon Feb 28 04:46:26 PST 2022


On Mon, 14 Feb 2022 at 15:37, Ard Biesheuvel <ardb at kernel.org> wrote:
>
> The following changes since commit 2fa3948244939471bfc93fa2f7cf3a1aadf79822:
>
>   Merge tag 'arm-vmap-stacks-v6' of git://git.kernel.org/pub/scm/linux/kernel/git/ardb/linux into devel-stable (2022-01-31 15:26:45 +0000)
>
> are available in the Git repository at:
>
>   git://git.kernel.org/pub/scm/linux/kernel/git/ardb/linux.git tags/arm-ftrace-for-rmk
>
> for you to fetch changes up to d6800ca73a7d325627c045c16d7cfdc7465f4333:
>
>   Revert "ARM: 9144/1: forbid ftrace with clang and thumb2_kernel" (2022-02-10 09:55:05 +0100)
>
> PRv2: use rmk's current devel-stable as the start commit
>
> ----------------------------------------------------------------
> ARM: ftrace fixes and cleanups
>
> Make all flavors of ftrace available on all builds, regardless of ISA
> choice, unwinder choice or compiler:
> - use ADD not POP where possible
> - fix a couple of Thumb2 related issues
> - enable HAVE_FUNCTION_GRAPH_FP_TEST for robustness
> - enable the graph tracer with the EABI unwinder
> - avoid clobbering frame pointer registers to make Clang happy
>
> Link: https://lore.kernel.org/linux-arm-kernel/20220203082204.1176734-1-ardb@kernel.org/
>
> ----------------------------------------------------------------
> Ard Biesheuvel (12):
>       ARM: ftrace: ensure that ADR takes the Thumb bit into account
>       ARM: ftrace: use ADD not POP to counter PUSH at entry
>       ARM: ftrace: use trampolines to keep .init.text in branching range
>       ARM: ftrace: avoid redundant loads or clobbering IP
>       ARM: ftrace: avoid unnecessary literal loads
>       ARM: ftrace: enable HAVE_FUNCTION_GRAPH_FP_TEST
>       ARM: unwind: track location of LR value in stack frame
>       ARM: ftrace: enable the graph tracer with the EABI unwinder
>       ARM: kprobes: treat R7 as the frame pointer register in Thumb2 builds
>       ARM: cacheflush: avoid clobbering the frame pointer
>       ARM: mach-bcm: disable ftrace in SMC invocation routines
>       Revert "ARM: 9144/1: forbid ftrace with clang and thumb2_kernel"
>
>  arch/arm/Kconfig                         |   4 +-
>  arch/arm/Kconfig.debug                   |   2 +-
>  arch/arm/include/asm/cacheflush.h        |  12 +--
>  arch/arm/include/asm/ftrace.h            |  20 +----
>  arch/arm/include/asm/stacktrace.h        |   3 +
>  arch/arm/kernel/Makefile                 |   6 +-
>  arch/arm/kernel/entry-ftrace.S           | 128 +++++++++++++++++--------------
>  arch/arm/kernel/ftrace.c                 |  62 +++++++++++++--
>  arch/arm/kernel/unwind.c                 |   7 +-
>  arch/arm/mach-bcm/Makefile               |   1 +
>  arch/arm/mach-exynos/mcpm-exynos.c       |   6 +-
>  arch/arm/mm/cache-v7.S                   |  40 +++++-----
>  arch/arm/probes/kprobes/actions-common.c |   8 +-
>  arch/arm/probes/kprobes/actions-thumb.c  |  16 +++-
>  14 files changed, 182 insertions(+), 133 deletions(-)

Ping?



More information about the linux-arm-kernel mailing list