diff options
| author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2022-11-02 09:26:49 +0000 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2022-11-24 15:30:00 +0000 |
| commit | b3fbe08078a7b757d88b92ce29dcd6ed308ae6f5 (patch) | |
| tree | f8c266d1148f10035fed9bf4f730297b262fc6d5 | |
| parent | bb3757620c2c2f643f8b6f979e961d18b1f3032f (diff) | |
| download | poky-b3fbe08078a7b757d88b92ce29dcd6ed308ae6f5.tar.gz | |
lttng-modules: upgrade 2.13.5 -> 2.13.7
2022-09-30 (National Day for Truth and Reconciliation) LTTng modules 2.13.7
* Fix: handle integer capture page faults as skip field
2022-09-30 (National Day for Truth and Reconciliation) LTTng modules 2.13.6
* Fix: bytecode validator: reject specialized load field/context ref instructions
* Fix: bytecode validator: reject specialized load instructions
* Fix: honor "user" attribute for array/sequence of user integers
* wrapper: powerpc64: fix kernel crash caused by do_get_kallsyms
* Fix: event notification: Remove duplicate event enabled check
* Fix: event notification capture: validate buffer length
* Fix: handle capture page faults as skip field
* Fix: event notification capture error handling
* Fix: capture_sequence_element_{un,}signed: handle user-space input
* Fix: notification capture: handle userspace strings
* Implement lttng_msgpack_write_user_str
* Fix: bytecode interpreter: LOAD_FIELD: handle user fields
* Fix: move "user" attribute from field to type
* Introduce lttng_copy_from_user_check_nofault
* fix: adjust range v5.10.137 in block probe
Remove "fix: adjust range v5.10.137 in block probe" and "wrapper: powerpc64: fix kernel
crash caused by do_get_kallsyms" since they are included in this version bump.
(From OE-Core rev: 7f5ec92b3865fcd094898f4cd2d7daba76464a5e)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
(cherry picked from commit 1243d6afc075e3c89ca69af214e70c0d159cb832)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
| -rw-r--r-- | meta/recipes-kernel/lttng/lttng-modules/0001-fix-adjust-range-v5.10.137-in-block-probe.patch | 92 | ||||
| -rw-r--r-- | meta/recipes-kernel/lttng/lttng-modules/0001-wrapper-powerpc64-fix-kernel-crash-caused-by-do_get_.patch | 94 | ||||
| -rw-r--r-- | meta/recipes-kernel/lttng/lttng-modules_2.13.7.bb (renamed from meta/recipes-kernel/lttng/lttng-modules_2.13.5.bb) | 4 |
3 files changed, 1 insertions, 189 deletions
diff --git a/meta/recipes-kernel/lttng/lttng-modules/0001-fix-adjust-range-v5.10.137-in-block-probe.patch b/meta/recipes-kernel/lttng/lttng-modules/0001-fix-adjust-range-v5.10.137-in-block-probe.patch deleted file mode 100644 index 1c3918be5c..0000000000 --- a/meta/recipes-kernel/lttng/lttng-modules/0001-fix-adjust-range-v5.10.137-in-block-probe.patch +++ /dev/null | |||
| @@ -1,92 +0,0 @@ | |||
| 1 | From 5dab3d515b6f5c5ac80c8e7674628495e3bf4ac6 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Michael Jeanson <mjeanson@efficios.com> | ||
| 3 | Date: Mon, 22 Aug 2022 14:16:27 -0400 | ||
| 4 | Subject: [PATCH] fix: adjust range v5.10.137 in block probe | ||
| 5 | |||
| 6 | See upstream commit, backported in v5.10.137 : | ||
| 7 | |||
| 8 | commit 1cb3032406423b25aa984854b4d78e0100d292dd | ||
| 9 | Author: Christoph Hellwig <hch@lst.de> | ||
| 10 | Date: Thu Dec 3 17:21:39 2020 +0100 | ||
| 11 | |||
| 12 | block: remove the request_queue to argument request based tracepoints | ||
| 13 | |||
| 14 | [ Upstream commit a54895fa057c67700270777f7661d8d3c7fda88a ] | ||
| 15 | |||
| 16 | The request_queue can trivially be derived from the request. | ||
| 17 | |||
| 18 | Change-Id: I01f96a437641421faf993b4b031171c372bd0374 | ||
| 19 | Signed-off-by: Michael Jeanson <mjeanson@efficios.com> | ||
| 20 | Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> | ||
| 21 | |||
| 22 | Upstream-Status: Backport [https://github.com/lttng/lttng-modules/commit/5dab3d515b6f5c5ac80c8e7674628495e3bf4ac6] | ||
| 23 | Signed-off-by: Steve Sakoman <steve@sakoman.com> | ||
| 24 | |||
| 25 | --- | ||
| 26 | include/instrumentation/events/block.h | 18 ++++++++++++------ | ||
| 27 | 1 file changed, 12 insertions(+), 6 deletions(-) | ||
| 28 | |||
| 29 | diff --git a/include/instrumentation/events/block.h b/include/instrumentation/events/block.h | ||
| 30 | index 882e6e08..d4821c12 100644 | ||
| 31 | --- a/include/instrumentation/events/block.h | ||
| 32 | +++ b/include/instrumentation/events/block.h | ||
| 33 | @@ -366,7 +366,8 @@ LTTNG_TRACEPOINT_EVENT(block_rq_requeue, | ||
| 34 | lttng_req_op(rq), lttng_req_rw(rq), blk_rq_bytes(rq)) | ||
| 35 | ) | ||
| 36 | ) | ||
| 37 | -#elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,11,0)) | ||
| 38 | +#elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,11,0) \ | ||
| 39 | + || LTTNG_KERNEL_RANGE(5,10,137, 5,11,0)) | ||
| 40 | /** | ||
| 41 | * block_rq_requeue - place block IO request back on a queue | ||
| 42 | * @rq: block IO operation request | ||
| 43 | @@ -611,7 +612,8 @@ LTTNG_TRACEPOINT_EVENT_CLASS(block_rq, | ||
| 44 | ctf_array_text(char, comm, current->comm, TASK_COMM_LEN) | ||
| 45 | ) | ||
| 46 | ) | ||
| 47 | -#elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,11,0)) | ||
| 48 | +#elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,11,0) \ | ||
| 49 | + || LTTNG_KERNEL_RANGE(5,10,137, 5,11,0)) | ||
| 50 | LTTNG_TRACEPOINT_EVENT_CLASS(block_rq, | ||
| 51 | |||
| 52 | TP_PROTO(struct request *rq), | ||
| 53 | @@ -746,7 +748,8 @@ LTTNG_TRACEPOINT_EVENT_CLASS_CODE(block_rq, | ||
| 54 | ) | ||
| 55 | #endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,11,0)) */ | ||
| 56 | |||
| 57 | -#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,11,0)) | ||
| 58 | +#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,11,0) \ | ||
| 59 | + || LTTNG_KERNEL_RANGE(5,10,137, 5,11,0)) | ||
| 60 | /** | ||
| 61 | * block_rq_insert - insert block operation request into queue | ||
| 62 | * @rq: block IO operation request | ||
| 63 | @@ -781,7 +784,8 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(block_rq, block_rq_insert, | ||
| 64 | ) | ||
| 65 | #endif | ||
| 66 | |||
| 67 | -#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,11,0)) | ||
| 68 | +#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,11,0) \ | ||
| 69 | + || LTTNG_KERNEL_RANGE(5,10,137, 5,11,0)) | ||
| 70 | /** | ||
| 71 | * block_rq_issue - issue pending block IO request operation to device driver | ||
| 72 | * @rq: block IO operation operation request | ||
| 73 | @@ -812,7 +816,8 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(block_rq, block_rq_issue, | ||
| 74 | ) | ||
| 75 | #endif | ||
| 76 | |||
| 77 | -#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,11,0)) | ||
| 78 | +#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,11,0) \ | ||
| 79 | + || LTTNG_KERNEL_RANGE(5,10,137, 5,11,0)) | ||
| 80 | /** | ||
| 81 | * block_rq_merge - merge request with another one in the elevator | ||
| 82 | * @rq: block IO operation operation request | ||
| 83 | @@ -1632,7 +1637,8 @@ LTTNG_TRACEPOINT_EVENT(block_rq_remap, | ||
| 84 | lttng_req_op(rq), lttng_req_rw(rq), blk_rq_bytes(rq)) | ||
| 85 | ) | ||
| 86 | ) | ||
| 87 | -#elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,11,0)) | ||
| 88 | +#elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,11,0) \ | ||
| 89 | + || LTTNG_KERNEL_RANGE(5,10,137, 5,11,0)) | ||
| 90 | /** | ||
| 91 | * block_rq_remap - map request for a block operation request | ||
| 92 | * @rq: block IO operation request | ||
diff --git a/meta/recipes-kernel/lttng/lttng-modules/0001-wrapper-powerpc64-fix-kernel-crash-caused-by-do_get_.patch b/meta/recipes-kernel/lttng/lttng-modules/0001-wrapper-powerpc64-fix-kernel-crash-caused-by-do_get_.patch deleted file mode 100644 index b3b191c7ac..0000000000 --- a/meta/recipes-kernel/lttng/lttng-modules/0001-wrapper-powerpc64-fix-kernel-crash-caused-by-do_get_.patch +++ /dev/null | |||
| @@ -1,94 +0,0 @@ | |||
| 1 | From 480cce4315ce5bf59a509e8a53a52545f393de68 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: He Zhe <zhe.he@windriver.com> | ||
| 3 | Date: Tue, 27 Sep 2022 15:59:42 +0800 | ||
| 4 | Subject: [PATCH] wrapper: powerpc64: fix kernel crash caused by | ||
| 5 | do_get_kallsyms | ||
| 6 | |||
| 7 | Kernel crashes on powerpc64 ABIv2 as follow when lttng_tracer initializes, | ||
| 8 | since do_get_kallsyms in lttng_wrapper fails to return a proper address of | ||
| 9 | kallsyms_lookup_name. | ||
| 10 | |||
| 11 | root@qemuppc64:~# lttng create trace_session --live -U net://127.0.0.1 | ||
| 12 | Spawning a session daemon | ||
| 13 | lttng_kretprobes: loading out-of-tree module taints kernel. | ||
| 14 | BUG: Unable to handle kernel data access on read at 0xfffffffffffffff8 | ||
| 15 | Faulting instruction address: 0xc0000000001f6fd0 | ||
| 16 | Oops: Kernel access of bad area, sig: 11 [#1] | ||
| 17 | <snip> | ||
| 18 | NIP [c0000000001f6fd0] module_kallsyms_lookup_name+0xf0/0x180 | ||
| 19 | LR [c0000000001f6f28] module_kallsyms_lookup_name+0x48/0x180 | ||
| 20 | Call Trace: | ||
| 21 | module_kallsyms_lookup_name+0x34/0x180 (unreliable) | ||
| 22 | kallsyms_lookup_name+0x258/0x2b0 | ||
| 23 | wrapper_kallsyms_lookup_name+0x4c/0xd0 [lttng_wrapper] | ||
| 24 | wrapper_get_pfnblock_flags_mask_init+0x28/0x60 [lttng_wrapper] | ||
| 25 | lttng_events_init+0x40/0x344 [lttng_tracer] | ||
| 26 | do_one_initcall+0x78/0x340 | ||
| 27 | do_init_module+0x6c/0x2f0 | ||
| 28 | __do_sys_finit_module+0xd0/0x120 | ||
| 29 | system_call_exception+0x194/0x2f0 | ||
| 30 | system_call_vectored_common+0xe8/0x278 | ||
| 31 | <snip> | ||
| 32 | |||
| 33 | do_get_kallsyms makes use of kprobe_register and in turn kprobe_lookup_name | ||
| 34 | to get the address of the kernel function kallsyms_lookup_name. In case of | ||
| 35 | PPC64_ELF_ABI_v2, when kprobes are placed at function entry, | ||
| 36 | kprobe_lookup_name adjusts the global entry point of the function returned | ||
| 37 | by kallsyms_lookup_name to the local entry point(at some fixed offset of | ||
| 38 | global one). This adjustment is all for kprobes to be able to work properly. | ||
| 39 | Global and local entry point are defined in powerpc64 ABIv2. | ||
| 40 | |||
| 41 | When the local entry point is given, some instructions at the beginning of | ||
| 42 | the function are skipped and thus causes the above kernel crash. We just | ||
| 43 | want to make a simple function call which needs global entry point. | ||
| 44 | |||
| 45 | This patch adds 4 bytes which is the length of one instruction to | ||
| 46 | kallsyms_lookup_name so that it will not trigger the global to local | ||
| 47 | adjustment, and then substracts 4 bytes from the returned address. See the | ||
| 48 | following kernel change for more details. | ||
| 49 | |||
| 50 | https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=290e3070762ac80e5fc4087d8c4de7e3f1d90aca | ||
| 51 | |||
| 52 | Upstream-Status: Backport | ||
| 53 | |||
| 54 | Signed-off-by: He Zhe <zhe.he@windriver.com> | ||
| 55 | Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> | ||
| 56 | Change-Id: I34e68e886b97e3976d0b5e25be295a8bb866c1a4 | ||
| 57 | --- | ||
| 58 | src/wrapper/kallsyms.c | 16 ++++++++++++++++ | ||
| 59 | 1 file changed, 16 insertions(+) | ||
| 60 | |||
| 61 | diff --git a/src/wrapper/kallsyms.c b/src/wrapper/kallsyms.c | ||
| 62 | index d2848764..93017adc 100644 | ||
| 63 | --- a/src/wrapper/kallsyms.c | ||
| 64 | +++ b/src/wrapper/kallsyms.c | ||
| 65 | @@ -39,10 +39,26 @@ unsigned long do_get_kallsyms(void) | ||
| 66 | memset(&probe, 0, sizeof(probe)); | ||
| 67 | probe.pre_handler = dummy_kprobe_handler; | ||
| 68 | probe.symbol_name = "kallsyms_lookup_name"; | ||
| 69 | +#ifdef PPC64_ELF_ABI_v2 | ||
| 70 | + /* | ||
| 71 | + * With powerpc64 ABIv2, we need the global entry point of | ||
| 72 | + * kallsyms_lookup_name to call it later, while kprobe_register would | ||
| 73 | + * automatically adjust the global entry point to the local entry point, | ||
| 74 | + * when a kprobe was registered at a function entry. So we add 4 bytes | ||
| 75 | + * which is the length of one instruction to kallsyms_lookup_name to | ||
| 76 | + * avoid the adjustment. | ||
| 77 | + */ | ||
| 78 | + probe.offset = 4; | ||
| 79 | +#endif | ||
| 80 | ret = register_kprobe(&probe); | ||
| 81 | if (ret) | ||
| 82 | return 0; | ||
| 83 | +#ifdef PPC64_ELF_ABI_v2 | ||
| 84 | + /* Substract 4 bytes to get what we originally want */ | ||
| 85 | + addr = (unsigned long)(((char *)probe.addr) - 4); | ||
| 86 | +#else | ||
| 87 | addr = (unsigned long)probe.addr; | ||
| 88 | +#endif | ||
| 89 | #ifdef CONFIG_ARM | ||
| 90 | #ifdef CONFIG_THUMB2_KERNEL | ||
| 91 | if (addr) | ||
| 92 | -- | ||
| 93 | 2.17.1 | ||
| 94 | |||
diff --git a/meta/recipes-kernel/lttng/lttng-modules_2.13.5.bb b/meta/recipes-kernel/lttng/lttng-modules_2.13.7.bb index 307fb912cf..49c584dff4 100644 --- a/meta/recipes-kernel/lttng/lttng-modules_2.13.5.bb +++ b/meta/recipes-kernel/lttng/lttng-modules_2.13.7.bb | |||
| @@ -11,14 +11,12 @@ include lttng-platforms.inc | |||
| 11 | 11 | ||
| 12 | SRC_URI = "https://lttng.org/files/${BPN}/${BPN}-${PV}.tar.bz2 \ | 12 | SRC_URI = "https://lttng.org/files/${BPN}/${BPN}-${PV}.tar.bz2 \ |
| 13 | file://0009-Rename-genhd-wrapper-to-blkdev.patch \ | 13 | file://0009-Rename-genhd-wrapper-to-blkdev.patch \ |
| 14 | file://0001-fix-adjust-range-v5.10.137-in-block-probe.patch \ | ||
| 15 | file://0001-wrapper-powerpc64-fix-kernel-crash-caused-by-do_get_.patch \ | ||
| 16 | " | 14 | " |
| 17 | 15 | ||
| 18 | # Use :append here so that the patch is applied also when using devupstream | 16 | # Use :append here so that the patch is applied also when using devupstream |
| 19 | SRC_URI:append = " file://0001-src-Kbuild-change-missing-CONFIG_TRACEPOINTS-to-warn.patch" | 17 | SRC_URI:append = " file://0001-src-Kbuild-change-missing-CONFIG_TRACEPOINTS-to-warn.patch" |
| 20 | 18 | ||
| 21 | SRC_URI[sha256sum] = "eceb3428d80e85a9f008425beb9526195c9f7f02b302f28add56df53aef3e708" | 19 | SRC_URI[sha256sum] = "5a99679df7903160cbde3918fee5af90ffafc90fc96ccdefaa57cf230492b234" |
| 22 | 20 | ||
| 23 | export INSTALL_MOD_DIR="kernel/lttng-modules" | 21 | export INSTALL_MOD_DIR="kernel/lttng-modules" |
| 24 | 22 | ||
