Skip to contentSkip to conversation

ARM ftrace fixes for Thumb2, Clang and the EABI unwinder

GIT PULL Ard Biesheuvel 2 participants 6 messages Feb 14, 2022 – Feb 28, 2022

lore
Share & tools
lore
#0 lore raw

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

----------------------------------------------------------------
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(-)

_______________________________________________
linux-arm-kernel mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

#1 lore raw
Quoted 43 lines · Ard Biesheuvel

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

----------------------------------------------------------------
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"

Quoted 15 lines
 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?

_______________________________________________
linux-arm-kernel mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

#2 lore raw
Quoted 60 lines · Ard Biesheuvel
Quoted 43 lines · Ard Biesheuvel

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

----------------------------------------------------------------
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"

Quoted 15 lines
 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(-)
Quoted 1 line

Ping?

Unsurprisingly, this increases the amount of conflicts (both arch/arm/Kconfig* files) when merging it with v5.17-rc1.

Signature · 7 lines
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 40Mbps down 10Mbps up. Decent connectivity at last!

_______________________________________________
linux-arm-kernel mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
#3 lore raw
Quoted 62 lines · Russell King (Oracle)
Quoted 60 lines · Ard Biesheuvel
Quoted 58 lines · Ard Biesheuvel

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

----------------------------------------------------------------
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(-)
Quoted 5 lines
Quoted 1 line

Ping?

Unsurprisingly, this increases the amount of conflicts (both arch/arm/Kconfig* files) when merging it with v5.17-rc1.

Right, that does not surprise me either.

Does this mean this needs to wait for v5.19? Not the end of the world, but not great either ...

_______________________________________________
linux-arm-kernel mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

#4 lore raw
Quoted 8 lines · Ard Biesheuvel
Quoted 2 lines · Russell King (Oracle)

Unsurprisingly, this increases the amount of conflicts (both arch/arm/Kconfig* files) when merging it with v5.17-rc1.

Right, that does not surprise me either.

Does this mean this needs to wait for v5.19?

No, I've merged it now, just noting the additional conflicts, and through the power of git rerere...

Signature · 7 lines
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 40Mbps down 10Mbps up. Decent connectivity at last!

_______________________________________________
linux-arm-kernel mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
#5 lore raw
Quoted 7 lines · Russell King (Oracle)
Quoted 5 lines · Ard Biesheuvel
Quoted 2 lines · Russell King (Oracle)

Unsurprisingly, this increases the amount of conflicts (both arch/arm/Kconfig* files) when merging it with v5.17-rc1.

Quoted 7 lines
Quoted 3 lines

Right, that does not surprise me either.

Does this mean this needs to wait for v5.19?

No, I've merged it now, just noting the additional conflicts, and through the power of git rerere...

Excellent, thanks.

_______________________________________________
linux-arm-kernel mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel