ACK/Cmnt: [SRU][jammy][PATCH v3 0/5] ftrace graph return address recovery support for s390x Livepatch

Andrei Gherzan andrei.gherzan at canonical.com
Tue Apr 11 08:58:44 UTC 2023


On 23/04/06 10:12AM, John Cabaj wrote:
> BugLink: https://bugs.launchpad.net/bugs/2013603 (Kernel livepatch ftrace graph fix)

The Buglink format here doesn't seem to be the standard one. And that is
the case for all patches included.

> 
> [Impact]
> * Additional patches required to support Livepatch for s390x
> * Fixes Livepatch transition issues when using ftrace graph tracing
> * Requisite functionality is introduced in "390/unwind: recover kretprobe modified return address in stacktrace" and "s390/unwind: fix fgraph return address recovery"
> * Additional patches to kprobes required to introduce is_kretprobe_trampoline() and kretprobe_find_ret_addr()
> 
> [Fix]
> c574883b9de8 ("kprobes: treewide: Remove trampoline_address from kretprobe_trampoline_handler()")
> 2726cf7071be ("kprobes: treewide: Make it harder to refer kretprobe_trampoline directly")
> d32f6425c25b ("kprobes: Add kretprobe_find_ret_addr() for searching return address")
> 3f5bf344cb0a ("390/unwind: recover kretprobe modified return address in stacktrace")
> faf9293c5088 ("s390/unwind: fix fgraph return address recovery")
> 
> [Test Case]
> * Compile tested
> * Boot tested
> * Tested a Livepatch (patch to /proc/meminfo module)
> * Tested Livepatch from ftrace graphed function (via https://github.com/SUSE/qa_test_klp/, klp_tc_10.sh)
> 
> [Other Info]
> * kprobes changes don't relate to Livepatch directly, but to the ftrace graph unwinding, which requires changes to fix return address recovery
> * kprobes changes largely required to implement new functionality (functions discussed above) and updating function signatures
> 
> [Where things could go wrong]
> * Functionality already exists upstream, kernel was boot and Livepatch tested
> * Adding functionality, and updating function signatures, issues would likely arise during build process
> * Regression potential is low
> 
> -v3:
> * Fixing application issues due to recent kprobes changes since previous patch submission, likely c3694073333c
> * Updating cover letter with more clarity
> 
> -v2:
> * Created new BugLink
> 
> Masami Hiramatsu (3):
>   kprobes: treewide: Remove trampoline_address from
>     kretprobe_trampoline_handler()
>   kprobes: treewide: Make it harder to refer kretprobe_trampoline
>     directly
>   kprobes: Add kretprobe_find_ret_addr() for searching return address
> 
> Sumanth Korikkar (1):
>   s390/unwind: fix fgraph return address recovery
> 
> Vasily Gorbik (1):
>   s390/unwind: recover kretprobe modified return address in stacktrace
> 
>  arch/arc/include/asm/kprobes.h                |   2 +-
>  arch/arc/kernel/kprobes.c                     |  13 +-
>  arch/arm/probes/kprobes/core.c                |   9 +-
>  arch/arm64/include/asm/kprobes.h              |   2 +-
>  arch/arm64/kernel/probes/kprobes.c            |   5 +-
>  arch/arm64/kernel/probes/kprobes_trampoline.S |   4 +-
>  arch/csky/include/asm/kprobes.h               |   2 +-
>  arch/csky/kernel/probes/kprobes.c             |   4 +-
>  arch/csky/kernel/probes/kprobes_trampoline.S  |   4 +-
>  arch/ia64/kernel/kprobes.c                    |  11 +-
>  arch/mips/kernel/kprobes.c                    |  15 ++-
>  arch/parisc/kernel/kprobes.c                  |   6 +-
>  arch/powerpc/include/asm/kprobes.h            |   2 +-
>  arch/powerpc/kernel/kprobes.c                 |  18 +--
>  arch/powerpc/kernel/optprobes.c               |   2 +-
>  arch/powerpc/kernel/stacktrace.c              |   2 +-
>  arch/riscv/include/asm/kprobes.h              |   2 +-
>  arch/riscv/kernel/probes/kprobes.c            |   4 +-
>  arch/riscv/kernel/probes/kprobes_trampoline.S |   4 +-
>  arch/s390/include/asm/kprobes.h               |   2 +-
>  arch/s390/include/asm/unwind.h                |  13 ++
>  arch/s390/kernel/kprobes.c                    |  12 +-
>  arch/s390/kernel/stacktrace.c                 |   2 +-
>  arch/s390/kernel/unwind_bc.c                  |   8 +-
>  arch/sh/include/asm/kprobes.h                 |   2 +-
>  arch/sh/kernel/kprobes.c                      |  12 +-
>  arch/sparc/include/asm/kprobes.h              |   2 +-
>  arch/sparc/kernel/kprobes.c                   |  12 +-
>  arch/x86/include/asm/kprobes.h                |   1 -
>  arch/x86/kernel/kprobes/core.c                |  20 ++--
>  include/linux/kprobes.h                       |  40 ++++++-
>  kernel/kprobes.c                              | 112 +++++++++++++-----
>  kernel/trace/trace_output.c                   |   2 +-
>  33 files changed, 221 insertions(+), 130 deletions(-)
> 
> -- 
> 2.34.1

Acked-by: Andrei Gherzan <andrei.gherzan at canonical.com>
-- 
Andrei Gherzan
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <https://lists.ubuntu.com/archives/kernel-team/attachments/20230411/9e22336a/attachment.sig>


More information about the kernel-team mailing list