LinuxPPC-Dev Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/3] ARM: Implement MODULE_PLT support in FTRACE
@ 2018-02-23 16:58 Alexander Sverdlin
  2018-02-23 16:58 ` [PATCH 1/3] ftrace: Add module to ftrace_make_call() parameters Alexander Sverdlin
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Alexander Sverdlin @ 2018-02-23 16:58 UTC (permalink / raw)
  To: Steven Rostedt, Ingo Molnar, linux-arm-kernel, linux-kernel
  Cc: Alexander Sverdlin, Russell King, Catalin Marinas, Will Deacon,
	Steven Miao, Tony Luck, Fenghua Yu, James Hogan, Michal Simek,
	Ralf Baechle, Benjamin Herrenschmidt, Paul Mackerras,
	Michael Ellerman, Martin Schwidefsky, Heiko Carstens,
	Yoshinori Sato, Rich Felker, David S. Miller, Chris Metcalf,
	Thomas Gleixner, H. Peter Anvin, x86, adi-buildroot-devel,
	linux-ia64, linux-metag, linux-mips, linuxppc-dev, linux-s390,
	linux-sh, sparclinux

FTRACE's function tracer currently doesn't always work on ARM with
MODULE_PLT option enabled. If the module is loaded too far, FTRACE's
code modifier cannot cope with introduced veneers and turns the
function tracer off globally.

ARM64 already has a solution for the problem, refer to the following
patches:

arm64: ftrace: emit ftrace-mod.o contents through code
arm64: module-plts: factor out PLT generation code for ftrace
arm64: ftrace: fix !CONFIG_ARM64_MODULE_PLTS kernels
arm64: ftrace: fix building without CONFIG_MODULES
arm64: ftrace: add support for far branches to dynamic ftrace
arm64: ftrace: don't validate branch via PLT in ftrace_make_nop()

But the presented ARM variant has just a half of the footprint in terms of
the changed LoCs. It also retains the code validation-before-modification
instead of switching it off.

Alexander Sverdlin (3):
  ftrace: Add module to ftrace_make_call() parameters
  ARM: PLT: Move struct plt_entries definition to header
  ftrace: Add MODULE_PLTS support

 arch/arm/include/asm/module.h      | 10 ++++++
 arch/arm/kernel/ftrace.c           | 73 ++++++++++++++++++++++++++++++++------
 arch/arm/kernel/module-plts.c      | 58 +++++++++++++++++++-----------
 arch/arm64/kernel/ftrace.c         |  3 +-
 arch/blackfin/kernel/ftrace.c      |  3 +-
 arch/ia64/kernel/ftrace.c          |  3 +-
 arch/metag/kernel/ftrace.c         |  3 +-
 arch/microblaze/kernel/ftrace.c    |  3 +-
 arch/mips/kernel/ftrace.c          |  3 +-
 arch/powerpc/kernel/trace/ftrace.c |  3 +-
 arch/s390/kernel/ftrace.c          |  3 +-
 arch/sh/kernel/ftrace.c            |  3 +-
 arch/sparc/kernel/ftrace.c         |  3 +-
 arch/tile/kernel/ftrace.c          |  3 +-
 arch/x86/kernel/ftrace.c           |  3 +-
 include/linux/ftrace.h             |  4 ++-
 kernel/trace/ftrace.c              |  6 ++--
 17 files changed, 140 insertions(+), 47 deletions(-)

-- 
2.4.6

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2018-02-25 14:58 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-02-23 16:58 [PATCH 0/3] ARM: Implement MODULE_PLT support in FTRACE Alexander Sverdlin
2018-02-23 16:58 ` [PATCH 1/3] ftrace: Add module to ftrace_make_call() parameters Alexander Sverdlin
2018-02-25 11:53   ` kbuild test robot
2018-02-25 14:57   ` kbuild test robot
2018-02-23 16:58 ` [PATCH 2/3] ARM: PLT: Move struct plt_entries definition to header Alexander Sverdlin
2018-02-23 16:58 ` [PATCH 3/3] ftrace: Add MODULE_PLTS support Alexander Sverdlin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox