Subject: Re: [PATCH v8 0/8] ftrace with regs + live patching for ppc64 LE (ABI v2)

From: Balbir Singh <[email-masked]>
Date: Thu, 11 Feb 2016 17:18:23 +1100

On Wed, 2016-02-10 at 18:29 +0100, Torsten Duwe wrote:
> 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
> 

Quick question - I presume these apply on top of 4.5.0-rc2?

Balbir Singh.