ftrace with regs + live patching for ppc64 LE (ABI v2)
Get series with b4
b4 am [email protected]Versions newest first · linked by author and title
- v8 Latest8 patches 35 repliesIn review
- v79 of 10 patches 15 repliesSuperseded
- v69 patches 32 repliesSuperseded
Earlier versions · 6
| Version | Posted | Patches | Replies | Status |
|---|---|---|---|---|
| v5 | 9 patches | 12 replies | Superseded | |
| v4 | 9 patches | 14 replies | Superseded | |
| v3 | 8 patches | 1 reply | Superseded | |
| v2 | 4 patches | 0 replies | Superseded | |
| v1 posting 2/2 | 0 of 4 patches | 8 replies | Superseded | |
| v1 posting 1/2 | 4 patches | 3 replies | Superseded |
Changes in v8 from the cover letter
* drop "notrace" attribute for MMU-aiding functions and their callees.
* merge "-mprofile-kernel"-stripping patches into one.
Patches in v8 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/8 | ppc64 (le): prepare for -mprofile-kernelarch/ arch/ arch/ +1 more | +133 | 3 replies | |
| 2/8 | ppc64le FTRACE_WITH_REGS implementationarch/ arch/ arch/ +1 more | +165 | 0 replies | |
| 3/8 | ppc use ftrace_modify_all_code defaultarch/ | +4 | 0 replies | |
| 4/8 | ppc64 ftrace_with_regs configuration variablesarch/ arch/ arch/ +2 more | +62 | 14 replies | |
| 5/8 | ppc64 ftrace_with_regs: disable profiling for some filesarch/ arch/ | +8 | 0 replies | |
| 6/8 | Implement kernel live patching for ppc64le (ABIv2)arch/ arch/ arch/ | +130 | 1 reply | |
| 7/8 | Enable LIVEPATCH to be configured on ppc64le and add livepatch.o if it is selectedarch/ arch/ | +4 | 0 replies | |
| 8/8 | livepatch: Detect offset for the ftrace location during buildarch/ arch/ kernel/ +4 more | +50 | 15 replies |
Reviews trailers per patch
No Reviewed-by, Acked-by or Tested-by trailers for v8 yet.
Cover letter [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
Signature · 1 line
1.8.5.6