On Mon, Jan 4, 2021 at 9:26 PM Khem Raj <[email protected]> wrote: > > it seems vboxguestdrivers 6.1.16 also needs some love to work with 5.10 see > > https://autobuilder.yoctoproject.org/typhoon/#/builders/88/builds/844/steps/12/logs/stdio >
I went ahead and backported some patches for this, and have it building against 5.10. I'll send the patch to oe-devel shortly. Bruce > On Tue, Dec 8, 2020 at 7:53 AM Bruce Ashfield <[email protected]> > wrote: > > > > From: Bruce Ashfield <[email protected]> > > > > lttng-modules doesn't currently build against the lastest 5.10-rc > > versions. > > > > Upstream lttng does have fixes for the issues, but hasn't done a > > release that contains them yet. There are other patches on the > > 2.12.x branch, but I've skipped them for now as they aren't > > necessary for 5.10 builds, and can be picked up with the next > > full update. > > > > We also bump the dev-upstream hash to make them easier to pickup > > for those building from git. > > > > Signed-off-by: Bruce Ashfield <[email protected]> > > --- > > > > As part of my prep for v5.10 to be the next reference kernel, I'm > > building all the coupled packages. lttng blew up (as usual). We'll > > likely have a release of lttng before the next project release, but > > I'd rather not leave it broken until then! > > > > Bruce > > > > ...jtool-Rename-frame.h-objtool.h-v5.10.patch | 88 ++++++++ > > ...rdered-extent-tracepoint-take-btrfs_.patch | 179 ++++++++++++++++ > > ...ext4-fast-commit-recovery-path-v5.10.patch | 99 +++++++++ > > ...x86-mmu-Add-TDP-MMU-PF-handler-v5.10.patch | 82 ++++++++ > > ...int-Optimize-using-static_call-v5.10.patch | 196 ++++++++++++++++++ > > ...defined-symbols-caused-by-incorrect-.patch | 55 +++++ > > .../lttng/lttng-modules_2.12.3.bb | 10 +- > > 7 files changed, 707 insertions(+), 2 deletions(-) > > create mode 100644 > > meta/recipes-kernel/lttng/lttng-modules/0007-fix-objtool-Rename-frame.h-objtool.h-v5.10.patch > > create mode 100644 > > meta/recipes-kernel/lttng/lttng-modules/0009-fix-btrfs-make-ordered-extent-tracepoint-take-btrfs_.patch > > create mode 100644 > > meta/recipes-kernel/lttng/lttng-modules/0010-fix-ext4-fast-commit-recovery-path-v5.10.patch > > create mode 100644 > > meta/recipes-kernel/lttng/lttng-modules/0012-fix-kvm-x86-mmu-Add-TDP-MMU-PF-handler-v5.10.patch > > create mode 100644 > > meta/recipes-kernel/lttng/lttng-modules/0014-fix-tracepoint-Optimize-using-static_call-v5.10.patch > > create mode 100644 > > meta/recipes-kernel/lttng/lttng-modules/0016-fix-statedump-undefined-symbols-caused-by-incorrect-.patch > > > > diff --git > > a/meta/recipes-kernel/lttng/lttng-modules/0007-fix-objtool-Rename-frame.h-objtool.h-v5.10.patch > > > > b/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/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 <[email protected]> > > +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 <[email protected]> > > + 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 <[email protected]> > > +Signed-off-by: Mathieu Desnoyers <[email protected]> > > +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 <[email protected]> > > + */ > > + > > +-#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/meta/recipes-kernel/lttng/lttng-modules/0009-fix-btrfs-make-ordered-extent-tracepoint-take-btrfs_.patch > > > > b/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/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 <[email protected]> > > +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 <[email protected]> > > + 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 <[email protected]> > > +Signed-off-by: Mathieu Desnoyers <[email protected]> > > +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/meta/recipes-kernel/lttng/lttng-modules/0010-fix-ext4-fast-commit-recovery-path-v5.10.patch > > > > b/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/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 <[email protected]> > > +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 <[email protected]> > > + 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 <[email protected]> > > +Signed-off-by: Mathieu Desnoyers <[email protected]> > > +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/meta/recipes-kernel/lttng/lttng-modules/0012-fix-kvm-x86-mmu-Add-TDP-MMU-PF-handler-v5.10.patch > > > > b/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/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 <[email protected]> > > +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 <[email protected]> > > + 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 <[email protected]> > > +Signed-off-by: Mathieu Desnoyers <[email protected]> > > +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/meta/recipes-kernel/lttng/lttng-modules/0014-fix-tracepoint-Optimize-using-static_call-v5.10.patch > > > > b/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/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 <[email protected]> > > +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) <[email protected]> > > + 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 <[email protected]> > > +Signed-off-by: Mathieu Desnoyers <[email protected]> > > +--- > > + 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/meta/recipes-kernel/lttng/lttng-modules/0016-fix-statedump-undefined-symbols-caused-by-incorrect-.patch > > > > b/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/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 <[email protected]> > > +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 <[email protected]> > > +Signed-off-by: Mathieu Desnoyers <[email protected]> > > +--- > > + 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/meta/recipes-kernel/lttng/lttng-modules_2.12.3.bb > > b/meta/recipes-kernel/lttng/lttng-modules_2.12.3.bb > > index ca79e27df6..3515e4f51e 100644 > > --- a/meta/recipes-kernel/lttng/lttng-modules_2.12.3.bb > > +++ b/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" > > -- > > 2.19.1 > > > > > > > > -- - Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end - "Use the force Harry" - Gandalf, Star Trek II
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#146407): https://lists.openembedded.org/g/openembedded-core/message/146407 Mute This Topic: https://lists.openembedded.org/mt/78806228/21656 Group Owner: [email protected] Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
