[RFC 0/4] arm64: add livepatch support

From
Li Bin <hidden>
Date
2015-04-24 03:25:15
Also in
lkml
Reply to
AKASHI Takahiro, 2015-04-24
On 2015/4/24 10:44, AKASHI Takahiro wrote:
This patchset enables livepatch support on arm64.

Livepatch was merged in v4.0, and allows replacying a function dynamically
based on ftrace framework, but it also requires -mfentry option of gcc.
Currently arm64 gcc doesn't support it, but by adding a helper function to
ftrace, we will be able to support livepatch on arch's which don't support
this option.
This is not correct for the case that the prologue of the old and new function
is different.
Thanks,
	Li Bin
I submit this patchset as RFC since I'm not quite sure that I'm doing
in the right way, or we should definitely support -fentry instead.

Please note that I tested the feature only with livepatch-sample, and
the code for DYNAMIC_TRACE_WITH_REGS is still rough-edged.

To: Steven Rostedt <rostedt@goodmis.org>
To: Ingo Molnar <mingo@kernel.org>
To: Josh Poimboeuf <redacted>
To: Seth Jennings <redacted>
To: Jiri Kosina <redacted>
To: Vojtech Pavlik <redacted>
To: Catalin Marinas <catalin.marinas@arm.com>
To: Will Deacon <redacted>

AKASHI Takahiro (4):
  ftrace: add a helper function for livepatch
  livepatch: adjust a patched function's address
  arm64: ftrace: add DYNAMIC_TRACE_WITH_REGS version
  arm64: add livepatch support

 arch/arm64/Kconfig                 |    4 ++
 arch/arm64/include/asm/ftrace.h    |    4 ++
 arch/arm64/include/asm/livepatch.h |   38 +++++++++++
 arch/arm64/kernel/Makefile         |    1 +
 arch/arm64/kernel/entry-ftrace.S   |  124 ++++++++++++++++++++++++++++++++++++
 arch/arm64/kernel/ftrace.c         |   24 ++++++-
 arch/arm64/kernel/livepatch.c      |   68 ++++++++++++++++++++
 arch/x86/include/asm/livepatch.h   |    5 ++
 include/linux/ftrace.h             |    2 +
 include/linux/livepatch.h          |    2 +
 kernel/livepatch/core.c            |   16 +++--
 kernel/trace/ftrace.c              |   26 ++++++++
 12 files changed, 309 insertions(+), 5 deletions(-)
 create mode 100644 arch/arm64/include/asm/livepatch.h
 create mode 100644 arch/arm64/kernel/livepatch.c
Thread (18 messages) 18 messages, 6 authors, last reply 2015-05-28
Keyboard shortcuts
hback out one level
jnext message in thread / next series-diff position
kprevious message in thread / previous series-diff position
ldrill in
Escclose help / fold thread tree
?toggle this help