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