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

John Cabaj john.cabaj at canonical.com
Tue Apr 11 12:42:18 UTC 2023


On 4/11/23 3:58 AM, Andrei Gherzan wrote:
> 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.

Right, this was likely because a good portion of my bug submissions are from SF cases - those BugLinks require a bug title in parentheses following the bug link because we can't make the URL lookup to tag commits in the changelog.


Thanks,
John

> 
>>
>> [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>




More information about the kernel-team mailing list