[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20160210174221.EBBEC692C8@newverein.lst.de>
Date: Wed, 10 Feb 2016 18:29:57 +0100
From: Torsten Duwe <duwe@....de>
To: Michael Ellerman <mpe@...erman.id.au>
Cc: Jiri Kosina <jkosina@...e.cz>, Miroslav Benes <mbenes@...e.cz>,
Petr Mladek <pmladek@...e.com>, Jessica Yu <jeyu@...hat.com>,
Steven Rostedt <rostedt@...dmis.org>,
linuxppc-dev@...ts.ozlabs.org, linux-kernel@...r.kernel.org,
live-patching@...r.kernel.org
Subject: [PATCH v8 0/8] ftrace with regs + live patching for ppc64 LE (ABI v2)
Changes since V7:
* drop "notrace" attribute for MMU-aiding functions
and their callees.
* merge "-mprofile-kernel"-stripping patches into one.
Changes since v6:
* include Petr's patch, on popular demand ;)
* move #ifdefs out of functions for readability;
introduce static helper functions instead.
* No more literal binary instructions in hex,
at least not added by this patch set.
* add compile time checker to detect the presence
of known-good -mprofile-kernel support.
* limit Kconfig / compile to the configurations really supported:
+ (static) FTRACE with -pg
+ DYNAMIC_FTRACE with -pg with or without -mprofile-kernel
(depending on the compiler)
+ DYNAMIC_FTRACE_WITH_REGS only with -mprofile-kernel
(will error out if the compiler is broken)
Changes since v5:
* extra "std r0,LRSAVE(r1)" for gcc-6
This makes the code compiler-agnostic.
* Follow Petr Mladek's suggestion to avoid
redefinition of HAVE_LIVEPATCH
Changes since v4:
* change comment style in entry_64.S to C89
(nobody is using assembler syntax comments there).
* the bool function restore_r2 shouldn't return 2,
that's a little confusing.
* Test whether the compiler supports -mprofile-kernel
and only then define CC_USING_MPROFILE_KERNEL
* also make the return value of klp_check_compiler_support
depend on that.
Major changes since v3:
* the graph tracer works now.
It turned out the stack frame it tried to manipulate does not
exist at that point.
* changes only needed in order to support -mprofile-kernel are now
in a separate patch, prepended.
* Kconfig cleanup so this is only selectable on ppc64le.
Petr Mladek (1):
livepatch: Detect offset for the ftrace location during build
Torsten Duwe (7):
ppc64 (le): prepare for -mprofile-kernel
ppc64le FTRACE_WITH_REGS implementation
ppc use ftrace_modify_all_code default
ppc64 ftrace_with_regs configuration variables
ppc64 ftrace_with_regs: disable profiling for some files
Implement kernel live patching for ppc64le (ABIv2)
Enable LIVEPATCH to be configured on ppc64le and add livepatch.o if it
is selected
arch/powerpc/Kconfig | 6 +
arch/powerpc/Makefile | 17 +++
arch/powerpc/gcc-mprofile-kernel-notrace.sh | 33 ++++++
arch/powerpc/include/asm/code-patching.h | 24 ++++
arch/powerpc/include/asm/ftrace.h | 5 +
arch/powerpc/include/asm/livepatch.h | 45 ++++++++
arch/powerpc/kernel/Makefile | 13 ++-
arch/powerpc/kernel/entry_64.S | 169 +++++++++++++++++++++++++++-
arch/powerpc/kernel/ftrace.c | 129 ++++++++++++++++-----
arch/powerpc/kernel/livepatch.c | 38 +++++++
arch/powerpc/kernel/module_64.c | 56 ++++++++-
arch/powerpc/lib/Makefile | 4 +-
arch/s390/Kconfig | 1 +
kernel/livepatch/Makefile | 13 +++
kernel/livepatch/core.c | 12 +-
kernel/livepatch/ftrace-test.c | 6 +
kernel/trace/Kconfig | 5 +
scripts/recordmcount.c | 6 +-
scripts/recordmcount.h | 17 ++-
19 files changed, 552 insertions(+), 47 deletions(-)
create mode 100755 arch/powerpc/gcc-mprofile-kernel-notrace.sh
create mode 100644 arch/powerpc/include/asm/livepatch.h
create mode 100644 arch/powerpc/kernel/livepatch.c
create mode 100644 kernel/livepatch/ftrace-test.c
--
1.8.5.6
Powered by blists - more mailing lists