diff options
Diffstat (limited to 'poky/meta/recipes-kernel/lttng')
8 files changed, 735 insertions, 9 deletions
diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules/0007-fix-objtool-Rename-frame.h-objtool.h-v5.10.patch b/poky/meta/recipes-kernel/lttng/lttng-modules/0007-fix-objtool-Rename-frame.h-objtool.h-v5.10.patch new file mode 100644 index 0000000000..fde9398394 --- /dev/null +++ b/poky/meta/recipes-kernel/lttng/lttng-modules/0007-fix-objtool-Rename-frame.h-objtool.h-v5.10.patch @@ -0,0 +1,88 @@ +From 37b9cb0e6cb92181b7a25583849a9d161a558982 Mon Sep 17 00:00:00 2001 +From: Michael Jeanson <mjeanson@efficios.com> +Date: Mon, 26 Oct 2020 13:41:02 -0400 +Subject: [PATCH 07/19] fix: objtool: Rename frame.h -> objtool.h (v5.10) + +See upstream commit : + + commit 00089c048eb4a8250325efb32a2724fd0da68cce + Author: Julien Thierry <jthierry@redhat.com> + Date: Fri Sep 4 16:30:25 2020 +0100 + + objtool: Rename frame.h -> objtool.h + + Header frame.h is getting more code annotations to help objtool analyze + object files. + + Rename the file to objtool.h. + +Upstream-Status: Backport + +Signed-off-by: Michael Jeanson <mjeanson@efficios.com> +Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> +Change-Id: Ic2283161bebcbf1e33b72805eb4d2628f4ae3e89 +--- + lttng-filter-interpreter.c | 2 +- + wrapper/{frame.h => objtool.h} | 19 ++++++++++++------- + 2 files changed, 13 insertions(+), 8 deletions(-) + rename wrapper/{frame.h => objtool.h} (50%) + +diff --git a/lttng-filter-interpreter.c b/lttng-filter-interpreter.c +index 21169f01..5d572437 100644 +--- a/lttng-filter-interpreter.c ++++ b/lttng-filter-interpreter.c +@@ -8,7 +8,7 @@ + */ + + #include <wrapper/uaccess.h> +-#include <wrapper/frame.h> ++#include <wrapper/objtool.h> + #include <wrapper/types.h> + #include <linux/swab.h> + +diff --git a/wrapper/frame.h b/wrapper/objtool.h +similarity index 50% +rename from wrapper/frame.h +rename to wrapper/objtool.h +index 6e6dc811..3b997cae 100644 +--- a/wrapper/frame.h ++++ b/wrapper/objtool.h +@@ -1,18 +1,23 @@ +-/* SPDX-License-Identifier: (GPL-2.0 or LGPL-2.1) ++/* SPDX-License-Identifier: (GPL-2.0-only or LGPL-2.1-only) + * +- * wrapper/frame.h ++ * wrapper/objtool.h + * + * Copyright (C) 2016 Mathieu Desnoyers <mathieu.desnoyers@efficios.com> + */ + +-#ifndef _LTTNG_WRAPPER_FRAME_H +-#define _LTTNG_WRAPPER_FRAME_H ++#ifndef _LTTNG_WRAPPER_OBJTOOL_H ++#define _LTTNG_WRAPPER_OBJTOOL_H + + #include <linux/version.h> + +-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,6,0)) +- ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,10,0)) ++#include <linux/objtool.h> ++#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,6,0)) + #include <linux/frame.h> ++#endif ++ ++ ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,6,0)) + + #define LTTNG_STACK_FRAME_NON_STANDARD(func) \ + STACK_FRAME_NON_STANDARD(func) +@@ -23,4 +28,4 @@ + + #endif + +-#endif /* _LTTNG_WRAPPER_FRAME_H */ ++#endif /* _LTTNG_WRAPPER_OBJTOOL_H */ +-- +2.19.1 + diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules/0009-fix-btrfs-make-ordered-extent-tracepoint-take-btrfs_.patch b/poky/meta/recipes-kernel/lttng/lttng-modules/0009-fix-btrfs-make-ordered-extent-tracepoint-take-btrfs_.patch new file mode 100644 index 0000000000..bc87c7174e --- /dev/null +++ b/poky/meta/recipes-kernel/lttng/lttng-modules/0009-fix-btrfs-make-ordered-extent-tracepoint-take-btrfs_.patch @@ -0,0 +1,179 @@ +From ddad4e82bc2cc48c0eb56d2daf69409026e8b31a Mon Sep 17 00:00:00 2001 +From: Michael Jeanson <mjeanson@efficios.com> +Date: Tue, 27 Oct 2020 12:10:05 -0400 +Subject: [PATCH 09/19] fix: btrfs: make ordered extent tracepoint take + btrfs_inode (v5.10) + +See upstream commit : + + commit acbf1dd0fcbd10c67826a19958f55a053b32f532 + Author: Nikolay Borisov <nborisov@suse.com> + Date: Mon Aug 31 14:42:40 2020 +0300 + + btrfs: make ordered extent tracepoint take btrfs_inode + +Upstream-Status: Backport + +Signed-off-by: Michael Jeanson <mjeanson@efficios.com> +Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> +Change-Id: I096d0801ffe0ad826cfe414cdd1c0857cbd2b624 +--- + instrumentation/events/lttng-module/btrfs.h | 120 +++++++++++++++----- + 1 file changed, 90 insertions(+), 30 deletions(-) + +diff --git a/instrumentation/events/lttng-module/btrfs.h b/instrumentation/events/lttng-module/btrfs.h +index 52fcfd0d..d47f3280 100644 +--- a/instrumentation/events/lttng-module/btrfs.h ++++ b/instrumentation/events/lttng-module/btrfs.h +@@ -346,7 +346,29 @@ LTTNG_TRACEPOINT_EVENT(btrfs_handle_em_exist, + ) + #endif + +-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,6,0)) ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,10,0)) ++LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__ordered_extent, ++ ++ TP_PROTO(const struct btrfs_inode *inode, ++ const struct btrfs_ordered_extent *ordered), ++ ++ TP_ARGS(inode, ordered), ++ ++ TP_FIELDS( ++ ctf_array(u8, fsid, inode->root->lttng_fs_info_fsid, BTRFS_UUID_SIZE) ++ ctf_integer(ino_t, ino, btrfs_ino(inode)) ++ ctf_integer(u64, file_offset, ordered->file_offset) ++ ctf_integer(u64, start, ordered->disk_bytenr) ++ ctf_integer(u64, len, ordered->num_bytes) ++ ctf_integer(u64, disk_len, ordered->disk_num_bytes) ++ ctf_integer(u64, bytes_left, ordered->bytes_left) ++ ctf_integer(unsigned long, flags, ordered->flags) ++ ctf_integer(int, compress_type, ordered->compress_type) ++ ctf_integer(int, refs, refcount_read(&ordered->refs)) ++ ctf_integer(u64, root_objectid, inode->root->root_key.objectid) ++ ) ++) ++#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(5,6,0)) + LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__ordered_extent, + + TP_PROTO(const struct inode *inode, +@@ -458,7 +480,39 @@ LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__ordered_extent, + ) + #endif + +-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0) || \ ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,10,0)) ++LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs__ordered_extent, btrfs_ordered_extent_add, ++ ++ TP_PROTO(const struct btrfs_inode *inode, ++ const struct btrfs_ordered_extent *ordered), ++ ++ TP_ARGS(inode, ordered) ++) ++ ++LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs__ordered_extent, btrfs_ordered_extent_remove, ++ ++ TP_PROTO(const struct btrfs_inode *inode, ++ const struct btrfs_ordered_extent *ordered), ++ ++ TP_ARGS(inode, ordered) ++) ++ ++LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs__ordered_extent, btrfs_ordered_extent_start, ++ ++ TP_PROTO(const struct btrfs_inode *inode, ++ const struct btrfs_ordered_extent *ordered), ++ ++ TP_ARGS(inode, ordered) ++) ++ ++LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs__ordered_extent, btrfs_ordered_extent_put, ++ ++ TP_PROTO(const struct btrfs_inode *inode, ++ const struct btrfs_ordered_extent *ordered), ++ ++ TP_ARGS(inode, ordered) ++) ++#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0) || \ + LTTNG_SLE_KERNEL_RANGE(4,4,73,5,0,0, 4,4,73,6,0,0) || \ + LTTNG_SLE_KERNEL_RANGE(4,4,82,6,0,0, 4,4,82,7,0,0) || \ + LTTNG_SLE_KERNEL_RANGE(4,4,92,6,0,0, 4,4,92,7,0,0) || \ +@@ -494,7 +548,41 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs__ordered_extent, btrfs_ordered_extent_put, + + TP_ARGS(inode, ordered) + ) ++#else ++LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs__ordered_extent, btrfs_ordered_extent_add, ++ ++ TP_PROTO(struct inode *inode, struct btrfs_ordered_extent *ordered), ++ ++ TP_ARGS(inode, ordered) ++) ++ ++LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs__ordered_extent, btrfs_ordered_extent_remove, ++ ++ TP_PROTO(struct inode *inode, struct btrfs_ordered_extent *ordered), ++ ++ TP_ARGS(inode, ordered) ++) ++ ++LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs__ordered_extent, btrfs_ordered_extent_start, ++ ++ TP_PROTO(struct inode *inode, struct btrfs_ordered_extent *ordered), ++ ++ TP_ARGS(inode, ordered) ++) + ++LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs__ordered_extent, btrfs_ordered_extent_put, ++ ++ TP_PROTO(struct inode *inode, struct btrfs_ordered_extent *ordered), ++ ++ TP_ARGS(inode, ordered) ++) ++#endif ++ ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0) || \ ++ LTTNG_SLE_KERNEL_RANGE(4,4,73,5,0,0, 4,4,73,6,0,0) || \ ++ LTTNG_SLE_KERNEL_RANGE(4,4,82,6,0,0, 4,4,82,7,0,0) || \ ++ LTTNG_SLE_KERNEL_RANGE(4,4,92,6,0,0, 4,4,92,7,0,0) || \ ++ LTTNG_SLE_KERNEL_RANGE(4,4,103,6,0,0, 4,5,0,0,0,0)) + LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__writepage, + + TP_PROTO(const struct page *page, const struct inode *inode, +@@ -563,34 +651,6 @@ LTTNG_TRACEPOINT_EVENT(btrfs_sync_file, + ) + ) + #else +-LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs__ordered_extent, btrfs_ordered_extent_add, +- +- TP_PROTO(struct inode *inode, struct btrfs_ordered_extent *ordered), +- +- TP_ARGS(inode, ordered) +-) +- +-LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs__ordered_extent, btrfs_ordered_extent_remove, +- +- TP_PROTO(struct inode *inode, struct btrfs_ordered_extent *ordered), +- +- TP_ARGS(inode, ordered) +-) +- +-LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs__ordered_extent, btrfs_ordered_extent_start, +- +- TP_PROTO(struct inode *inode, struct btrfs_ordered_extent *ordered), +- +- TP_ARGS(inode, ordered) +-) +- +-LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs__ordered_extent, btrfs_ordered_extent_put, +- +- TP_PROTO(struct inode *inode, struct btrfs_ordered_extent *ordered), +- +- TP_ARGS(inode, ordered) +-) +- + LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__writepage, + + TP_PROTO(struct page *page, struct inode *inode, +-- +2.19.1 + diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules/0010-fix-ext4-fast-commit-recovery-path-v5.10.patch b/poky/meta/recipes-kernel/lttng/lttng-modules/0010-fix-ext4-fast-commit-recovery-path-v5.10.patch new file mode 100644 index 0000000000..fb00a44b31 --- /dev/null +++ b/poky/meta/recipes-kernel/lttng/lttng-modules/0010-fix-ext4-fast-commit-recovery-path-v5.10.patch @@ -0,0 +1,99 @@ +From a28235f8ffa3c961640a835686dddb5ca600dfaf Mon Sep 17 00:00:00 2001 +From: Michael Jeanson <mjeanson@efficios.com> +Date: Mon, 26 Oct 2020 17:03:23 -0400 +Subject: [PATCH 10/19] fix: ext4: fast commit recovery path (v5.10) + +See upstream commit : + + commit 8016e29f4362e285f0f7e38fadc61a5b7bdfdfa2 + Author: Harshad Shirwadkar <harshadshirwadkar@gmail.com> + Date: Thu Oct 15 13:37:59 2020 -0700 + + ext4: fast commit recovery path + + This patch adds fast commit recovery path support for Ext4 file + system. We add several helper functions that are similar in spirit to + e2fsprogs journal recovery path handlers. Example of such functions + include - a simple block allocator, idempotent block bitmap update + function etc. Using these routines and the fast commit log in the fast + commit area, the recovery path (ext4_fc_replay()) performs fast commit + log recovery. + +Upstream-Status: Backport + +Signed-off-by: Michael Jeanson <mjeanson@efficios.com> +Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> +Change-Id: Ia65cf44e108f2df0b458f0d335f33a8f18f50baa +--- + instrumentation/events/lttng-module/ext4.h | 41 ++++++++++++++++++++++ + 1 file changed, 41 insertions(+) + +diff --git a/instrumentation/events/lttng-module/ext4.h b/instrumentation/events/lttng-module/ext4.h +index b172c8d9..6e74abad 100644 +--- a/instrumentation/events/lttng-module/ext4.h ++++ b/instrumentation/events/lttng-module/ext4.h +@@ -1274,6 +1274,18 @@ LTTNG_TRACEPOINT_EVENT(ext4_ext_load_extent, + ) + ) + ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,10,0)) ++LTTNG_TRACEPOINT_EVENT(ext4_load_inode, ++ TP_PROTO(struct super_block *sb, unsigned long ino), ++ ++ TP_ARGS(sb, ino), ++ ++ TP_FIELDS( ++ ctf_integer(dev_t, dev, sb->s_dev) ++ ctf_integer(ino_t, ino, ino) ++ ) ++) ++#else + LTTNG_TRACEPOINT_EVENT(ext4_load_inode, + TP_PROTO(struct inode *inode), + +@@ -1284,6 +1296,7 @@ LTTNG_TRACEPOINT_EVENT(ext4_load_inode, + ctf_integer(ino_t, ino, inode->i_ino) + ) + ) ++#endif + + #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,5,0)) + +@@ -1895,6 +1908,34 @@ LTTNG_TRACEPOINT_EVENT(ext4_es_shrink_exit, + + #endif + ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,10,0)) ++LTTNG_TRACEPOINT_EVENT(ext4_fc_replay_scan, ++ TP_PROTO(struct super_block *sb, int error, int off), ++ ++ TP_ARGS(sb, error, off), ++ ++ TP_FIELDS( ++ ctf_integer(dev_t, dev, sb->s_dev) ++ ctf_integer(int, error, error) ++ ctf_integer(int, off, off) ++ ) ++) ++ ++LTTNG_TRACEPOINT_EVENT(ext4_fc_replay, ++ TP_PROTO(struct super_block *sb, int tag, int ino, int priv1, int priv2), ++ ++ TP_ARGS(sb, tag, ino, priv1, priv2), ++ ++ TP_FIELDS( ++ ctf_integer(dev_t, dev, sb->s_dev) ++ ctf_integer(int, tag, tag) ++ ctf_integer(int, ino, ino) ++ ctf_integer(int, priv1, priv1) ++ ctf_integer(int, priv2, priv2) ++ ) ++) ++#endif ++ + #endif /* LTTNG_TRACE_EXT4_H */ + + /* This part must be outside protection */ +-- +2.19.1 + diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules/0012-fix-kvm-x86-mmu-Add-TDP-MMU-PF-handler-v5.10.patch b/poky/meta/recipes-kernel/lttng/lttng-modules/0012-fix-kvm-x86-mmu-Add-TDP-MMU-PF-handler-v5.10.patch new file mode 100644 index 0000000000..8651bded99 --- /dev/null +++ b/poky/meta/recipes-kernel/lttng/lttng-modules/0012-fix-kvm-x86-mmu-Add-TDP-MMU-PF-handler-v5.10.patch @@ -0,0 +1,82 @@ +From e30866f96b3ab02639f429e4bd34e59b3a336579 Mon Sep 17 00:00:00 2001 +From: Michael Jeanson <mjeanson@efficios.com> +Date: Mon, 26 Oct 2020 14:28:35 -0400 +Subject: [PATCH 12/19] fix: kvm: x86/mmu: Add TDP MMU PF handler (v5.10) + +See upstream commit : + + commit bb18842e21111a979e2e0e1c5d85c09646f18d51 + Author: Ben Gardon <bgardon@google.com> + Date: Wed Oct 14 11:26:50 2020 -0700 + + kvm: x86/mmu: Add TDP MMU PF handler + + Add functions to handle page faults in the TDP MMU. These page faults + are currently handled in much the same way as the x86 shadow paging + based MMU, however the ordering of some operations is slightly + different. Future patches will add eager NX splitting, a fast page fault + handler, and parallel page faults. + + Tested by running kvm-unit-tests and KVM selftests on an Intel Haswell + machine. This series introduced no new failures. + +Upstream-Status: Backport + +Signed-off-by: Michael Jeanson <mjeanson@efficios.com> +Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> +Change-Id: Ie56959cb6c77913d2f1188b0ca15da9114623a4e +--- + .../lttng-module/arch/x86/kvm/mmutrace.h | 20 ++++++++++++++++++- + probes/lttng-probe-kvm-x86-mmu.c | 5 +++++ + 2 files changed, 24 insertions(+), 1 deletion(-) + +diff --git a/instrumentation/events/lttng-module/arch/x86/kvm/mmutrace.h b/instrumentation/events/lttng-module/arch/x86/kvm/mmutrace.h +index e5470400..86717835 100644 +--- a/instrumentation/events/lttng-module/arch/x86/kvm/mmutrace.h ++++ b/instrumentation/events/lttng-module/arch/x86/kvm/mmutrace.h +@@ -163,7 +163,25 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(kvm_mmu_page_class, kvm_mmu_prepare_zap_page, + TP_ARGS(sp) + ) + +-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0)) ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,10,0)) ++ ++LTTNG_TRACEPOINT_EVENT_MAP( ++ mark_mmio_spte, ++ ++ kvm_mmu_mark_mmio_spte, ++ ++ TP_PROTO(u64 *sptep, gfn_t gfn, u64 spte), ++ TP_ARGS(sptep, gfn, spte), ++ ++ TP_FIELDS( ++ ctf_integer_hex(void *, sptep, sptep) ++ ctf_integer(gfn_t, gfn, gfn) ++ ctf_integer(unsigned, access, spte & ACC_ALL) ++ ctf_integer(unsigned int, gen, get_mmio_spte_generation(spte)) ++ ) ++) ++ ++#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0)) + + LTTNG_TRACEPOINT_EVENT_MAP( + mark_mmio_spte, +diff --git a/probes/lttng-probe-kvm-x86-mmu.c b/probes/lttng-probe-kvm-x86-mmu.c +index 8f981865..5043c776 100644 +--- a/probes/lttng-probe-kvm-x86-mmu.c ++++ b/probes/lttng-probe-kvm-x86-mmu.c +@@ -31,6 +31,11 @@ + #include <../../arch/x86/kvm/mmutrace.h> + #endif + ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,10,0)) ++#include <../arch/x86/kvm/mmu.h> ++#include <../arch/x86/kvm/mmu/spte.h> ++#endif ++ + #undef TRACE_INCLUDE_PATH + #undef TRACE_INCLUDE_FILE + +-- +2.19.1 + diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules/0014-fix-tracepoint-Optimize-using-static_call-v5.10.patch b/poky/meta/recipes-kernel/lttng/lttng-modules/0014-fix-tracepoint-Optimize-using-static_call-v5.10.patch new file mode 100644 index 0000000000..5892a408b3 --- /dev/null +++ b/poky/meta/recipes-kernel/lttng/lttng-modules/0014-fix-tracepoint-Optimize-using-static_call-v5.10.patch @@ -0,0 +1,196 @@ +From bb346792c2cb6995ffc08d2084121935c6384865 Mon Sep 17 00:00:00 2001 +From: Michael Jeanson <mjeanson@efficios.com> +Date: Mon, 26 Oct 2020 17:09:05 -0400 +Subject: [PATCH 14/19] fix: tracepoint: Optimize using static_call() (v5.10) + +See upstream commit : + + commit d25e37d89dd2f41d7acae0429039d2f0ae8b4a07 + Author: Steven Rostedt (VMware) <rostedt@goodmis.org> + Date: Tue Aug 18 15:57:52 2020 +0200 + + tracepoint: Optimize using static_call() + + Currently the tracepoint site will iterate a vector and issue indirect + calls to however many handlers are registered (ie. the vector is + long). + + Using static_call() it is possible to optimize this for the common + case of only having a single handler registered. In this case the + static_call() can directly call this handler. Otherwise, if the vector + is longer than 1, call a function that iterates the whole vector like + the current code. + +Upstream-Status: Backport + +Change-Id: I739dd84d62cc1a821b8bd8acff74fa29aa25d22f +Signed-off-by: Michael Jeanson <mjeanson@efficios.com> +Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> +--- + lttng-statedump-impl.c | 80 +++++++++++++++++++++++++++++++-------- + probes/lttng.c | 7 +++- + tests/probes/lttng-test.c | 7 +++- + wrapper/tracepoint.h | 8 ++++ + 4 files changed, 84 insertions(+), 18 deletions(-) + +diff --git a/lttng-statedump-impl.c b/lttng-statedump-impl.c +index a6fa71a5..67ecd33c 100644 +--- a/lttng-statedump-impl.c ++++ b/lttng-statedump-impl.c +@@ -55,26 +55,76 @@ + #define LTTNG_INSTRUMENTATION + #include <instrumentation/events/lttng-module/lttng-statedump.h> + +-DEFINE_TRACE(lttng_statedump_block_device); +-DEFINE_TRACE(lttng_statedump_end); +-DEFINE_TRACE(lttng_statedump_interrupt); +-DEFINE_TRACE(lttng_statedump_file_descriptor); +-DEFINE_TRACE(lttng_statedump_start); +-DEFINE_TRACE(lttng_statedump_process_state); +-DEFINE_TRACE(lttng_statedump_process_pid_ns); ++LTTNG_DEFINE_TRACE(lttng_statedump_block_device, ++ TP_PROTO(struct lttng_session *session, ++ dev_t dev, const char *diskname), ++ TP_ARGS(session, dev, diskname)); ++ ++LTTNG_DEFINE_TRACE(lttng_statedump_end, ++ TP_PROTO(struct lttng_session *session), ++ TP_ARGS(session)); ++ ++LTTNG_DEFINE_TRACE(lttng_statedump_interrupt, ++ TP_PROTO(struct lttng_session *session, ++ unsigned int irq, const char *chip_name, ++ struct irqaction *action), ++ TP_ARGS(session, irq, chip_name, action)); ++ ++LTTNG_DEFINE_TRACE(lttng_statedump_file_descriptor, ++ TP_PROTO(struct lttng_session *session, ++ struct files_struct *files, ++ int fd, const char *filename, ++ unsigned int flags, fmode_t fmode), ++ TP_ARGS(session, files, fd, filename, flags, fmode)); ++ ++LTTNG_DEFINE_TRACE(lttng_statedump_start, ++ TP_PROTO(struct lttng_session *session), ++ TP_ARGS(session)); ++ ++LTTNG_DEFINE_TRACE(lttng_statedump_process_state, ++ TP_PROTO(struct lttng_session *session, ++ struct task_struct *p, ++ int type, int mode, int submode, int status, ++ struct files_struct *files), ++ TP_ARGS(session, p, type, mode, submode, status, files)); ++ ++LTTNG_DEFINE_TRACE(lttng_statedump_process_pid_ns, ++ TP_PROTO(struct lttng_session *session, ++ struct task_struct *p, ++ struct pid_namespace *pid_ns), ++ TP_ARGS(session, p, pid_ns)); ++ + #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,6,0)) +-DEFINE_TRACE(lttng_statedump_process_cgroup_ns); ++LTTNG_DEFINE_TRACE(lttng_statedump_process_cgroup_ns, ++ TP_PROTO(struct lttng_session *session, ++ struct task_struct *p, ++ struct cgroup_namespace *cgroup_ns), ++ TP_ARGS(session, p, cgroup_ns)); + #endif +-DEFINE_TRACE(lttng_statedump_process_ipc_ns); ++ ++LTTNG_DEFINE_TRACE(lttng_statedump_process_ipc_ns, ++ TP_PROTO(struct lttng_session *session, ++ struct task_struct *p, ++ struct ipc_namespace *ipc_ns), ++ TP_ARGS(session, p, ipc_ns)); ++ + #ifndef LTTNG_MNT_NS_MISSING_HEADER +-DEFINE_TRACE(lttng_statedump_process_mnt_ns); ++LTTNG_DEFINE_TRACE(lttng_statedump_process_mnt_ns, ++ TP_PROTO(struct lttng_session *session, ++ struct task_struct *p, ++ struct mnt_namespace *mnt_ns), ++ TP_ARGS(session, p, mnt_ns)); + #endif +-DEFINE_TRACE(lttng_statedump_process_net_ns); +-DEFINE_TRACE(lttng_statedump_process_user_ns); +-DEFINE_TRACE(lttng_statedump_process_uts_ns); +-DEFINE_TRACE(lttng_statedump_network_interface); ++ ++LTTNG_DEFINE_TRACE(lttng_statedump_network_interface, ++ TP_PROTO(struct lttng_session *session, ++ struct net_device *dev, struct in_ifaddr *ifa), ++ TP_ARGS(session, dev, ifa)); ++ + #ifdef LTTNG_HAVE_STATEDUMP_CPU_TOPOLOGY +-DEFINE_TRACE(lttng_statedump_cpu_topology); ++LTTNG_DEFINE_TRACE(lttng_statedump_cpu_topology, ++ TP_PROTO(struct lttng_session *session, struct cpuinfo_x86 *c), ++ TP_ARGS(session, c)); + #endif + + struct lttng_fd_ctx { +diff --git a/probes/lttng.c b/probes/lttng.c +index 05bc1388..7ddaa69f 100644 +--- a/probes/lttng.c ++++ b/probes/lttng.c +@@ -8,7 +8,7 @@ + */ + + #include <linux/module.h> +-#include <linux/tracepoint.h> ++#include <wrapper/tracepoint.h> + #include <linux/uaccess.h> + #include <linux/gfp.h> + #include <linux/fs.h> +@@ -32,7 +32,10 @@ + #define LTTNG_LOGGER_COUNT_MAX 1024 + #define LTTNG_LOGGER_FILE "lttng-logger" + +-DEFINE_TRACE(lttng_logger); ++LTTNG_DEFINE_TRACE(lttng_logger, ++ PARAMS(const char __user *text, size_t len), ++ PARAMS(text, len) ++); + + static struct proc_dir_entry *lttng_logger_dentry; + +diff --git a/tests/probes/lttng-test.c b/tests/probes/lttng-test.c +index b450e7d7..a4fa0645 100644 +--- a/tests/probes/lttng-test.c ++++ b/tests/probes/lttng-test.c +@@ -25,7 +25,12 @@ + #define LTTNG_INSTRUMENTATION + #include <instrumentation/events/lttng-module/lttng-test.h> + +-DEFINE_TRACE(lttng_test_filter_event); ++LTTNG_DEFINE_TRACE(lttng_test_filter_event, ++ PARAMS(int anint, int netint, long *values, ++ char *text, size_t textlen, ++ char *etext, uint32_t * net_values), ++ PARAMS(anint, netint, values, text, textlen, etext, net_values) ++); + + #define LTTNG_TEST_FILTER_EVENT_FILE "lttng-test-filter-event" + +diff --git a/wrapper/tracepoint.h b/wrapper/tracepoint.h +index c4ba0123..bc19d8c1 100644 +--- a/wrapper/tracepoint.h ++++ b/wrapper/tracepoint.h +@@ -14,6 +14,14 @@ + #include <linux/tracepoint.h> + #include <linux/module.h> + ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,10,0)) ++#define LTTNG_DEFINE_TRACE(name, proto, args) \ ++ DEFINE_TRACE(name, PARAMS(proto), PARAMS(args)) ++#else ++#define LTTNG_DEFINE_TRACE(name, proto, args) \ ++ DEFINE_TRACE(name) ++#endif ++ + #ifndef HAVE_KABI_2635_TRACEPOINT + + #define kabi_2635_tracepoint_probe_register tracepoint_probe_register +-- +2.19.1 + diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules/0016-fix-statedump-undefined-symbols-caused-by-incorrect-.patch b/poky/meta/recipes-kernel/lttng/lttng-modules/0016-fix-statedump-undefined-symbols-caused-by-incorrect-.patch new file mode 100644 index 0000000000..e848e16f59 --- /dev/null +++ b/poky/meta/recipes-kernel/lttng/lttng-modules/0016-fix-statedump-undefined-symbols-caused-by-incorrect-.patch @@ -0,0 +1,55 @@ +From 31f8bf794172102e9758928b481856c4a8800a7f Mon Sep 17 00:00:00 2001 +From: He Zhe <zhe.he@windriver.com> +Date: Mon, 23 Nov 2020 18:14:25 +0800 +Subject: [PATCH 16/19] fix: statedump: undefined symbols caused by incorrect + patch backport + +bb346792c2cb ("fix: tracepoint: Optimize using static_call() (v5.10)") +misses three definitions and causes the following build failures. + +ERROR: "__tracepoint_lttng_statedump_process_net_ns" [lttng-statedump.ko] undefined! +ERROR: "__tracepoint_lttng_statedump_process_user_ns" [lttng-statedump.ko] undefined! +ERROR: "__tracepoint_lttng_statedump_process_uts_ns" [lttng-statedump.ko] undefined! + +Fixes: #1290 + +Upstream-Status: Backport + +Signed-off-by: He Zhe <zhe.he@windriver.com> +Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> +--- + lttng-statedump-impl.c | 18 ++++++++++++++++++ + 1 file changed, 18 insertions(+) + +diff --git a/lttng-statedump-impl.c b/lttng-statedump-impl.c +index 67ecd33c..cf803a73 100644 +--- a/lttng-statedump-impl.c ++++ b/lttng-statedump-impl.c +@@ -116,6 +116,24 @@ LTTNG_DEFINE_TRACE(lttng_statedump_process_mnt_ns, + TP_ARGS(session, p, mnt_ns)); + #endif + ++LTTNG_DEFINE_TRACE(lttng_statedump_process_net_ns, ++ TP_PROTO(struct lttng_session *session, ++ struct task_struct *p, ++ struct net *net_ns), ++ TP_ARGS(session, p, net_ns)); ++ ++LTTNG_DEFINE_TRACE(lttng_statedump_process_user_ns, ++ TP_PROTO(struct lttng_session *session, ++ struct task_struct *p, ++ struct user_namespace *user_ns), ++ TP_ARGS(session, p, user_ns)); ++ ++LTTNG_DEFINE_TRACE(lttng_statedump_process_uts_ns, ++ TP_PROTO(struct lttng_session *session, ++ struct task_struct *p, ++ struct uts_namespace *uts_ns), ++ TP_ARGS(session, p, uts_ns)); ++ + LTTNG_DEFINE_TRACE(lttng_statedump_network_interface, + TP_PROTO(struct lttng_session *session, + struct net_device *dev, struct in_ifaddr *ifa), +-- +2.19.1 + diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules_2.12.3.bb b/poky/meta/recipes-kernel/lttng/lttng-modules_2.12.3.bb index ca79e27df6..3515e4f51e 100644 --- a/poky/meta/recipes-kernel/lttng/lttng-modules_2.12.3.bb +++ b/poky/meta/recipes-kernel/lttng/lttng-modules_2.12.3.bb @@ -12,6 +12,12 @@ SRC_URI = "https://lttng.org/files/${BPN}/${BPN}-${PV}.tar.bz2 \ file://Makefile-Do-not-fail-if-CONFIG_TRACEPOINTS-is-not-en.patch \ file://BUILD_RUNTIME_BUG_ON-vs-gcc7.patch \ file://0001-fix-btrfs-tracepoints-output-proper-root-owner-for-t.patch \ + file://0007-fix-objtool-Rename-frame.h-objtool.h-v5.10.patch \ + file://0009-fix-btrfs-make-ordered-extent-tracepoint-take-btrfs_.patch \ + file://0010-fix-ext4-fast-commit-recovery-path-v5.10.patch \ + file://0012-fix-kvm-x86-mmu-Add-TDP-MMU-PF-handler-v5.10.patch \ + file://0014-fix-tracepoint-Optimize-using-static_call-v5.10.patch \ + file://0016-fix-statedump-undefined-symbols-caused-by-incorrect-.patch \ " SRC_URI[sha256sum] = "673ef85c9f03e9b8fed10795e09d4e68add39404b70068d08b10f7b85754d7f0" @@ -37,7 +43,7 @@ SRC_URI_class-devupstream = "git://git.lttng.org/lttng-modules;branch=stable-2.1 file://Makefile-Do-not-fail-if-CONFIG_TRACEPOINTS-is-not-en.patch \ file://BUILD_RUNTIME_BUG_ON-vs-gcc7.patch \ " -SRCREV_class-devupstream = "ad594e3a953db1b0c3c059fde45b5a5494f6be78" -PV_class-devupstream = "2.12.2+git${SRCPV}" +SRCREV_class-devupstream = "be71b60a327d7ad2588abc5cad2861177119972b" +PV_class-devupstream = "2.12.3+git${SRCPV}" S_class-devupstream = "${WORKDIR}/git" SRCREV_FORMAT ?= "lttng_git" diff --git a/poky/meta/recipes-kernel/lttng/lttng-tools/0001-tests-regression-disable-the-tools-live-tests.patch b/poky/meta/recipes-kernel/lttng/lttng-tools/0001-tests-regression-disable-the-tools-live-tests.patch index f2c14ecc94..08c1423310 100644 --- a/poky/meta/recipes-kernel/lttng/lttng-tools/0001-tests-regression-disable-the-tools-live-tests.patch +++ b/poky/meta/recipes-kernel/lttng/lttng-tools/0001-tests-regression-disable-the-tools-live-tests.patch @@ -1,4 +1,4 @@ -From c69b68e5c03f1d260025fb1dd9ab7345e31e15ef Mon Sep 17 00:00:00 2001 +From de9fc501e775cae05f1f87534b4237cd78e8d9a8 Mon Sep 17 00:00:00 2001 From: Alexander Kanavin <alex.kanavin@gmail.com> Date: Fri, 24 Jan 2020 18:03:25 +0100 Subject: [PATCH] tests/regression: disable the tools/live tests @@ -9,15 +9,16 @@ https://bugs.lttng.org/issues/1217 Upstream-Status: Inappropriate [upstream is working on a real fix] Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> + --- - tests/regression/Makefile.am | 4 ---- - 1 file changed, 4 deletions(-) + tests/regression/Makefile.am | 10 +--------- + 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/tests/regression/Makefile.am b/tests/regression/Makefile.am -index 73eb9f7..b92bdbd 100644 +index cbac90d..d467886 100644 --- a/tests/regression/Makefile.am +++ b/tests/regression/Makefile.am -@@ -9,14 +9,10 @@ TESTS = tools/filtering/test_invalid_filter \ +@@ -11,16 +11,10 @@ TESTS = tools/filtering/test_invalid_filter \ tools/filtering/test_valid_filter \ tools/streaming/test_ust \ tools/health/test_thread_ok \ @@ -26,9 +27,29 @@ index 73eb9f7..b92bdbd 100644 - tools/live/test_lttng_ust \ tools/tracefile-limits/test_tracefile_count \ tools/tracefile-limits/test_tracefile_size \ - tools/exclusion/test_exclusion \ +- tools/exclusion/test_exclusion \ tools/snapshots/test_ust_fast \ - tools/snapshots/test_ust_streaming \ tools/save-load/test_save \ - tools/save-load/test_load \ +- tools/save-load/test_load \ tools/save-load/test_autoload \ + tools/mi/test_mi \ + tools/wildcard/test_event_wildcard \ +@@ -38,8 +32,7 @@ TESTS = tools/filtering/test_invalid_filter \ + tools/working-directory/test_relayd_working_directory \ + tools/notification/test_notification_multi_app \ + tools/clear/test_ust \ +- tools/clear/test_kernel \ +- tools/tracker/test_event_tracker ++ tools/clear/test_kernel + + if HAVE_LIBLTTNG_UST_CTL + SUBDIRS += ust +@@ -60,7 +53,6 @@ TESTS += ust/before-after/test_before_after \ + ust/multi-lib/test_multi_lib \ + ust/rotation-destroy-flush/test_rotation_destroy_flush \ + ust/namespaces/test_ns_contexts \ +- ust/namespaces/test_ns_contexts_change \ + tools/metadata/test_ust \ + tools/relayd-grouping/test_ust + endif # HAVE_LIBLTTNG_UST_CTL |