[SRU][jammy][PATCH v3 0/5] ftrace graph return address recovery support for s390x Livepatch
Stefan Bader
stefan.bader at canonical.com
Tue Apr 11 08:10:29 UTC 2023
On 11.04.23 09:28, Stefan Bader wrote:
> On 06.04.23 17:12, John Cabaj wrote:
>> BugLink: https://bugs.launchpad.net/bugs/2013603 (Kernel livepatch
>> ftrace graph fix)
>
> Why is this form of BugLink used? This is a public bug report for a
> stock distro kernel. It should use the standard format for bugs.
To clarify, this is not to reject but we should fix this when applying
and to have future submissions right.
>
> - Stefan
>>
>> [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(-)
>>
>
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_0xE8675DEECBEECEA3.asc
Type: application/pgp-keys
Size: 44613 bytes
Desc: OpenPGP public key
URL: <https://lists.ubuntu.com/archives/kernel-team/attachments/20230411/632d680b/attachment-0001.key>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <https://lists.ubuntu.com/archives/kernel-team/attachments/20230411/632d680b/attachment-0001.sig>
More information about the kernel-team
mailing list