diff options
Diffstat (limited to 'meta/recipes-kernel/lttng')
33 files changed, 2380 insertions, 965 deletions
diff --git a/meta/recipes-kernel/lttng/babeltrace/run-ptest b/meta/recipes-kernel/lttng/babeltrace/run-ptest new file mode 100755 index 0000000000..f4b7ce11e2 --- /dev/null +++ b/meta/recipes-kernel/lttng/babeltrace/run-ptest @@ -0,0 +1,9 @@ +#!/bin/sh +# use target=recheck if you want to recheck failing tests +[ "$target" = "" ] && target=check + +# Without --ignore-exit, the tap harness causes any FAILs within a +# test plan to raise ERRORs; this is just noise. +makeargs="LOG_DRIVER_FLAGS=--ignore-exit top_srcdir=$PWD top_builddir=$PWD" + +exec make -C tests -k -s $makeargs $target 2>/dev/null diff --git a/meta/recipes-kernel/lttng/babeltrace2/0001-Make-manpages-multilib-identical.patch b/meta/recipes-kernel/lttng/babeltrace2/0001-Make-manpages-multilib-identical.patch new file mode 100644 index 0000000000..2401b176e6 --- /dev/null +++ b/meta/recipes-kernel/lttng/babeltrace2/0001-Make-manpages-multilib-identical.patch @@ -0,0 +1,28 @@ +From 56986190e4b0c10945ce6aaa7ca10d6bd8a26a39 Mon Sep 17 00:00:00 2001 +From: Jeremy Puhlman <jpuhlman@mvista.com> +Date: Mon, 9 Mar 2020 21:10:35 +0000 +Subject: [PATCH] Make manpages multilib identical + +Upstream-Status: Pending +Signed-off-by: Jeremy Puhlman <jpuhlman@mvista.com> +--- + doc/man/asciidoc-attrs.conf.in | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/doc/man/asciidoc-attrs.conf.in b/doc/man/asciidoc-attrs.conf.in +index ad1183f1..e11c7031 100644 +--- a/doc/man/asciidoc-attrs.conf.in ++++ b/doc/man/asciidoc-attrs.conf.in +@@ -1,7 +1,7 @@ + [attributes] + # default values +-system_plugin_path="@LIBDIR@/babeltrace2/plugins" +-system_plugin_provider_path="@LIBDIR@/babeltrace2/plugin-providers" ++system_plugin_path="@prefix@/lib*/babeltrace2/plugins" ++system_plugin_provider_path="@prefix@/lib*/babeltrace2/plugin-providers" + babeltrace_version="@PACKAGE_VERSION@" + enable_debug_info="@ENABLE_DEBUG_INFO_VAL@" + defrdport=5344 +-- +2.24.1 + diff --git a/meta/recipes-kernel/lttng/babeltrace2/0001-tests-do-not-run-test-applications-from-.libs.patch b/meta/recipes-kernel/lttng/babeltrace2/0001-tests-do-not-run-test-applications-from-.libs.patch new file mode 100644 index 0000000000..805dde8064 --- /dev/null +++ b/meta/recipes-kernel/lttng/babeltrace2/0001-tests-do-not-run-test-applications-from-.libs.patch @@ -0,0 +1,28 @@ +From 582713cc9a013481eeef253195d644020f637ec4 Mon Sep 17 00:00:00 2001 +Message-Id: <582713cc9a013481eeef253195d644020f637ec4.1583403622.git.wallinux@gmail.com> +From: Anders Wallin <wallinux@gmail.com> +Date: Thu, 5 Mar 2020 11:20:04 +0100 +Subject: [PATCH] tests: do not run test applications from .libs + +Cross compile specific change + +Upstream-Status: Inappropriate [oe-core specific] + +Signed-off-by: Anders Wallin <wallinux@gmail.com> +--- + tests/lib/test_plugin | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tests/lib/test_plugin b/tests/lib/test_plugin +index 652c90cc..1f817c50 100755 +--- a/tests/lib/test_plugin ++++ b/tests/lib/test_plugin +@@ -26,4 +26,4 @@ fi + # shellcheck source=../utils/utils.sh + source "$UTILSSH" + +-"${BT_TESTS_BUILDDIR}/lib/plugin" "${BT_TESTS_BUILDDIR}/lib/test-plugin-plugins/.libs" ++"${BT_TESTS_BUILDDIR}/lib/plugin" "${BT_TESTS_BUILDDIR}/lib/test-plugin-plugins" +-- +2.25.1 + diff --git a/meta/recipes-kernel/lttng/babeltrace2/run-ptest b/meta/recipes-kernel/lttng/babeltrace2/run-ptest new file mode 100755 index 0000000000..71a9c81bfb --- /dev/null +++ b/meta/recipes-kernel/lttng/babeltrace2/run-ptest @@ -0,0 +1,19 @@ +#!/bin/sh +# use target=recheck if you want to recheck failing tests +[ "$target" = "" ] && target=check + +# Without --ignore-exit, the tap harness causes any FAILs within a +# test plan to raise ERRORs; this is just noise. +makeargs="LOG_DRIVER_FLAGS=--ignore-exit abs_top_srcdir=$PWD abs_top_builddir=$PWD GREP=grep SED=sed PYTHON=python3" + +exec 2> error.log +make -C tests -k -s $makeargs $target +exitcode=$? +if [ -e error.log ]; then + cat error.log +fi +if [ -e tests/test-suite.log ]; then + cat tests/test-suite.log +fi + +exit $exitcode
\ No newline at end of file diff --git a/meta/recipes-kernel/lttng/babeltrace2_2.0.6.bb b/meta/recipes-kernel/lttng/babeltrace2_2.0.6.bb new file mode 100644 index 0000000000..d6c75d7580 --- /dev/null +++ b/meta/recipes-kernel/lttng/babeltrace2_2.0.6.bb @@ -0,0 +1,95 @@ +SUMMARY = "Babeltrace2 - Trace Format Babel Tower" +DESCRIPTION = "Babeltrace provides trace read and write libraries in host side, as well as a trace converter, which used to convert LTTng 2.0 traces into human-readable log." +HOMEPAGE = "http://babeltrace.org/" +BUGTRACKER = "https://bugs.lttng.org/projects/babeltrace" +LICENSE = "MIT & GPL-2.0-only & LGPL-2.1-only & BSD-2-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=a6a458c13f18385b7bc5069a6d7b176e" + +DEPENDS = "glib-2.0 util-linux popt bison-native flex-native" + +SRC_URI = "git://git.efficios.com/babeltrace.git;branch=stable-2.0;protocol=https \ + file://run-ptest \ + file://0001-tests-do-not-run-test-applications-from-.libs.patch \ + file://0001-Make-manpages-multilib-identical.patch \ + " +SRCREV = "0a6632f77801f3218a288604c646f8a39cb0d2c4" +UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>2(\.\d+)+)$" + +S = "${WORKDIR}/git" + +inherit autotools pkgconfig ptest python3targetconfig + +EXTRA_OECONF = "--disable-debug-info --disable-Werror" + +PACKAGECONFIG ??= "manpages" +PACKAGECONFIG[manpages] = ", --disable-man-pages, asciidoc-native xmlto-native" + +FILES:${PN}-staticdev += "${libdir}/babeltrace2/plugins/*.a" +FILES:${PN} += "${libdir}/babeltrace2/plugins/*.so" + +ASNEEDED = "" +LDFLAGS:append = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-lld ptest', ' -fuse-ld=bfd ', '', d)}" + +# coreutils since we need full mktemp +RDEPENDS:${PN}-ptest += "bash gawk python3 make grep coreutils findutils" + +do_compile_ptest () { + make -C tests all +} + +do_install_ptest () { + install -d "${D}${PTEST_PATH}/tests" + + # Copy required files from source directory + for d in $(find "${S}/tests" -type d -printf '%P ') ; do + install -d "${D}${PTEST_PATH}/tests/$d" + find "${S}/tests/$d" -maxdepth 1 -executable -type f \ + -exec install -t "${D}${PTEST_PATH}/tests/$d" {} + + find "${S}/tests/$d" -maxdepth 1 -name *.sh \ + -exec install -t "${D}${PTEST_PATH}/tests/$d" {} \; + find "${S}/tests/$d" -maxdepth 1 -name *.py \ + -exec install -t "${D}${PTEST_PATH}/tests/$d" {} \; + find "${S}/tests/$d" -maxdepth 1 -name *.expect \ + -exec install -t "${D}${PTEST_PATH}/tests/$d" {} \; + done + install -d "${D}${PTEST_PATH}/tests/data/ctf-traces/" + cp -a ${S}/tests/data/ctf-traces/* ${D}${PTEST_PATH}/tests/data/ctf-traces/ + + # Copy the tests directory tree and the executables and + # Makefiles found within. + install -D "${B}/tests/Makefile" "${D}${PTEST_PATH}/tests/" + for d in $(find "${B}/tests" -type d -not -name .libs -printf '%P ') ; do + install -d "${D}${PTEST_PATH}/tests/$d" + find "${B}/tests/$d" -maxdepth 1 -executable -type f \ + -exec install -t "${D}${PTEST_PATH}/tests/$d" {} + + test -r "${B}/tests/$d/Makefile" && \ + install -t "${D}${PTEST_PATH}/tests/$d" "${B}/tests/$d/Makefile" + find "${B}/tests/$d" -maxdepth 1 -name *.sh \ + -exec install -t "${D}${PTEST_PATH}/tests/$d" {} \; + done + + for d in $(find "${B}/tests" -type d -name .libs -printf '%P ') ; do + for f in $(find "${B}/tests/$d" -maxdepth 1 -executable -type f -printf '%P ') ; do + cp ${B}/tests/$d/$f ${D}${PTEST_PATH}/tests/`dirname $d`/$f + done + done + + # Prevent attempts to update Makefiles during test runs, and + # silence "Making check in $SUBDIR" messages. + find "${D}${PTEST_PATH}" -name Makefile -type f -exec \ + sed -i \ + -e '/Makefile:/,/^$/d' \ + -e '/%: %.in/,/^$/d' \ + -e '/echo "Making $$target in $$subdir"; \\/d' \ + -e 's/^srcdir = \(.*\)/srcdir = ./' \ + -e 's/^builddir = \(.*\)/builddir = ./' \ + -e 's/^all-am:.*/all-am:/' \ + {} + + + # Substitute links to installed binaries. + install -d "${D}${PTEST_PATH}/src/cli/" + ln -s "${bindir}/babeltrace2" ${D}${PTEST_PATH}/src/cli/ + + # Remove architechture specific testfiles + rm -rf ${D}${PTEST_PATH}/tests/data/plugins/flt.lttng-utils.debug-info/* +} diff --git a/meta/recipes-kernel/lttng/babeltrace_1.5.11.bb b/meta/recipes-kernel/lttng/babeltrace_1.5.11.bb new file mode 100644 index 0000000000..f4d9b5e42a --- /dev/null +++ b/meta/recipes-kernel/lttng/babeltrace_1.5.11.bb @@ -0,0 +1,98 @@ +SUMMARY = "Babeltrace - Trace Format Babel Tower" +DESCRIPTION = "Babeltrace provides trace read and write libraries in host side, as well as a trace converter, which used to convert LTTng 2.0 traces into human-readable log." +HOMEPAGE = "http://babeltrace.org/" +BUGTRACKER = "https://bugs.lttng.org/projects/babeltrace" +LICENSE = "MIT & GPL-2.0-only & LGPL-2.1-only" +LIC_FILES_CHKSUM = "file://LICENSE;md5=76ba15dd76a248e1dd526bca0e2125fa" + +DEPENDS = "glib-2.0 util-linux popt bison-native flex-native" + +SRC_URI = "git://git.efficios.com/babeltrace.git;branch=stable-1.5;protocol=https \ + file://run-ptest \ + " +SRCREV = "91c00f70884887ff5c4849a8e3d47e311a22ba9d" +UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>1(\.\d+)+)$" + +S = "${WORKDIR}/git" + +inherit autotools pkgconfig ptest + +EXTRA_OECONF = "--disable-debug-info" + +ASNEEDED = "" + +RDEPENDS:${PN}-ptest += "bash gawk make" + +addtask do_patch_ptest_path after do_patch before do_configure +do_patch_ptest_path () { + for f in $(grep -l -r abs_top_srcdir ${S}/tests); do + sed -i 's:\@abs_top_srcdir\@:${PTEST_PATH}:' ${f} + done + + for f in $(grep -l -r abs_top_builddir ${S}/tests); do + sed -i 's:\@abs_top_builddir\@:${PTEST_PATH}:' ${f} + done + for f in $(grep -l -r GREP ${S}/tests); do + sed -i 's:\@GREP\@:grep:' ${f} + done + + for f in $(grep -l -r SED ${S}/tests); do + sed -i 's:\@SED\@:sed:' ${f} + done +} + +do_compile_ptest () { + make -C tests all +} + +do_install_ptest () { + # Copy required files from source directory + for f in config/tap-driver.sh config/test-driver; do + install -D "${S}/$f" "${D}${PTEST_PATH}/$f" + done + install -d "$f" "${D}${PTEST_PATH}/tests/ctf-traces/" + cp -a ${S}/tests/ctf-traces/* ${D}${PTEST_PATH}/tests/ctf-traces/ + + # Copy the tests directory tree and the executables and + # Makefiles found within. + install -D "${B}/tests/Makefile" "${D}${PTEST_PATH}/tests/" + for d in $(find "${B}/tests" -type d -not -name .libs -printf '%P ') ; do + install -d "${D}${PTEST_PATH}/tests/$d" + find "${B}/tests/$d" -maxdepth 1 -executable -type f \ + -exec install -t "${D}${PTEST_PATH}/tests/$d" {} + + test -r "${B}/tests/$d/Makefile" && \ + install -t "${D}${PTEST_PATH}/tests/$d" "${B}/tests/$d/Makefile" + find "${B}/tests/$d" -maxdepth 1 -name *.sh \ + -exec install -t "${D}${PTEST_PATH}/tests/$d" {} \; + done + + for d in $(find "${B}/tests" -type d -name .libs -printf '%P ') ; do + for f in $(find "${B}/tests/$d" -maxdepth 1 -executable -type f -printf '%P ') ; do + cp ${B}/tests/$d/$f ${D}${PTEST_PATH}/tests/`dirname $d`/$f + done + done + + install -D ${B}/formats/ctf/metadata/.libs/ctf-parser-test \ + ${D}${PTEST_PATH}/formats/ctf/metadata/ctf-parser-test + + # Prevent attempts to update Makefiles during test runs, and + # silence "Making check in $SUBDIR" messages. + find "${D}${PTEST_PATH}" -name Makefile -type f -exec \ + sed -i \ + -e '/Makefile:/,/^$/d' \ + -e '/$(check_SCRIPTS)/s/^/#/' \ + -e '/%: %.in/,/^$/d' \ + -e '/echo "Making $$target in $$subdir"; \\/d' \ + -e 's/^srcdir = \(.*\)/srcdir = ./' \ + -e 's/^builddir = \(.*\)/builddir = ./' \ + -e 's/^all-am:.*/all-am:/' \ + {} + + + # Remove path to babeltrace. + for f in $(grep -l -r "^BABELTRACE_BIN" ${D}${PTEST_PATH}); do + sed -i 's:^BABELTRACE_BIN.*:BABELTRACE_BIN=/usr/bin/babeltrace:' ${f} + done + for f in $(grep -l -r "^BTBIN" ${D}${PTEST_PATH}); do + sed -i 's:^BTBIN.*:BTBIN=/usr/bin/babeltrace:' ${f} + done +} diff --git a/meta/recipes-kernel/lttng/babeltrace_1.5.7.bb b/meta/recipes-kernel/lttng/babeltrace_1.5.7.bb deleted file mode 100644 index 05ef6d099c..0000000000 --- a/meta/recipes-kernel/lttng/babeltrace_1.5.7.bb +++ /dev/null @@ -1,20 +0,0 @@ -SUMMARY = "Babeltrace - Trace Format Babel Tower" -DESCRIPTION = "Babeltrace provides trace read and write libraries in host side, as well as a trace converter, which used to convert LTTng 2.0 traces into human-readable log." -HOMEPAGE = "http://www.efficios.com/babeltrace/" -BUGTRACKER = "https://bugs.lttng.org/projects/babeltrace" -LICENSE = "MIT & GPLv2" -LIC_FILES_CHKSUM = "file://LICENSE;md5=76ba15dd76a248e1dd526bca0e2125fa" - -DEPENDS = "glib-2.0 util-linux popt bison-native flex-native" - -SRC_URI = "git://git.linuxfoundation.org/diamon/babeltrace.git;branch=stable-1.5" -SRCREV = "d4014aeef4b89a4aaab1af42d7b0d143d62da0ff" -UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)$" - -S = "${WORKDIR}/git" - -inherit autotools pkgconfig - -EXTRA_OECONF = "--disable-debug-info" - -ASNEEDED = "" diff --git a/meta/recipes-kernel/lttng/lttng-modules/0001-fix-btrfs-simplify-delayed-ref-tracepoints-v6.10.patch b/meta/recipes-kernel/lttng/lttng-modules/0001-fix-btrfs-simplify-delayed-ref-tracepoints-v6.10.patch new file mode 100644 index 0000000000..c1e11f2bfb --- /dev/null +++ b/meta/recipes-kernel/lttng/lttng-modules/0001-fix-btrfs-simplify-delayed-ref-tracepoints-v6.10.patch @@ -0,0 +1,142 @@ +From db0f940136afd43ce5fcf87c4d4e9ca558db1d4f Mon Sep 17 00:00:00 2001 +From: Michael Jeanson <mjeanson@efficios.com> +Date: Mon, 27 May 2024 13:04:42 -0400 +Subject: [PATCH 1/3] fix: btrfs: simplify delayed ref tracepoints (v6.10) + +See upstream commit: + + commit 1bff6d4f873790cfc675afce9860208576508c5a + Author: Josef Bacik <josef@toxicpanda.com> + Date: Fri Apr 12 20:27:00 2024 -0400 + + btrfs: simplify delayed ref tracepoints + + Now that all of the delayed ref information is in the delayed ref node, + drastically simplify the delayed ref tracepoints by simply passing in + the btrfs_delayed_ref_node and populating the tracepoints with the + values from the structure itself. + +Upstream-Status: Backport [commit db0f9401 fix: btrfs: simplify delayed ref tracepoints (v6.10)] + +Change-Id: Ic90bc23d6aa558baec33adc33b4d21e052e83375 +Signed-off-by: Michael Jeanson <mjeanson@efficios.com> +Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> +--- + include/instrumentation/events/btrfs.h | 94 +++++++++++++++++++++++++- + 1 file changed, 92 insertions(+), 2 deletions(-) + +diff --git a/include/instrumentation/events/btrfs.h b/include/instrumentation/events/btrfs.h +index ffb1b646..d73c1ce5 100644 +--- a/include/instrumentation/events/btrfs.h ++++ b/include/instrumentation/events/btrfs.h +@@ -899,7 +899,51 @@ LTTNG_TRACEPOINT_EVENT(btrfs_add_block_group, + ) + #endif + +-#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,14,0) || \ ++#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(6,10,0)) ++LTTNG_TRACEPOINT_EVENT_CLASS(btrfs_delayed_tree_ref, ++ ++ TP_PROTO(const struct btrfs_fs_info *fs_info, ++ const struct btrfs_delayed_ref_node *ref), ++ ++ TP_ARGS(fs_info, ref), ++ ++ TP_FIELDS( ++ ctf_array(u8, fsid, lttng_fs_info_fsid, BTRFS_UUID_SIZE) ++ ctf_integer(u64, bytenr, ref->bytenr) ++ ctf_integer(u64, num_bytes, ref->num_bytes) ++ ctf_integer(int, action, ref->action) ++ ctf_integer(u64, parent, ref->tree_ref.parent) ++ ctf_integer(u64, ref_root, ref->tree_ref.root) ++ ctf_integer(int, level, ref->tree_ref.level) ++ ctf_integer(int, type, ref->type) ++ ctf_integer(u64, seq, ref->seq) ++ ) ++) ++ ++LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(btrfs_delayed_tree_ref, ++ ++ add_delayed_tree_ref, ++ ++ btrfs_add_delayed_tree_ref, ++ ++ TP_PROTO(const struct btrfs_fs_info *fs_info, ++ const struct btrfs_delayed_ref_node *ref), ++ ++ TP_ARGS(fs_info, ref) ++) ++ ++LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(btrfs_delayed_tree_ref, ++ ++ run_delayed_tree_ref, ++ ++ btrfs_run_delayed_tree_ref, ++ ++ TP_PROTO(const struct btrfs_fs_info *fs_info, ++ const struct btrfs_delayed_ref_node *ref), ++ ++ TP_ARGS(fs_info, ref) ++) ++#elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_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) || \ +@@ -1139,7 +1183,53 @@ LTTNG_TRACEPOINT_EVENT(btrfs_delayed_tree_ref, + ) + #endif + +-#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,14,0) || \ ++#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(6,10,0)) ++LTTNG_TRACEPOINT_EVENT_CLASS(btrfs_delayed_data_ref, ++ ++ TP_PROTO(const struct btrfs_fs_info *fs_info, ++ const struct btrfs_delayed_ref_node *ref), ++ ++ TP_ARGS(fs_info, ref), ++ ++ TP_FIELDS( ++ ctf_array(u8, fsid, lttng_fs_info_fsid, BTRFS_UUID_SIZE) ++ ctf_integer(u64, bytenr, ref->bytenr) ++ ctf_integer(u64, num_bytes, ref->num_bytes) ++ ctf_integer(int, action, ref->action) ++ ctf_integer(u64, parent, ref->data_ref.parent) ++ ctf_integer(u64, ref_root, ref->data_ref.root) ++ ctf_integer(u64, owner, ref->data_ref.objectid) ++ ctf_integer(u64, offset, ref->data_ref.offset) ++ ctf_integer(int, type, ref->type) ++ ctf_integer(u64, seq, ref->seq) ++ ) ++) ++ ++LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(btrfs_delayed_data_ref, ++ ++ add_delayed_data_ref, ++ ++ btrfs_add_delayed_data_ref, ++ ++ TP_PROTO(const struct btrfs_fs_info *fs_info, ++ const struct btrfs_delayed_ref_node *ref), ++ ++ TP_ARGS(fs_info, ref) ++) ++ ++LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(btrfs_delayed_data_ref, ++ ++ run_delayed_data_ref, ++ ++ btrfs_run_delayed_data_ref, ++ ++ TP_PROTO(const struct btrfs_fs_info *fs_info, ++ const struct btrfs_delayed_ref_node *ref), ++ ++ TP_ARGS(fs_info, ref) ++) ++ ++#elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_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) || \ +-- +2.39.2 + diff --git a/meta/recipes-kernel/lttng/lttng-modules/0001-fix-close_on_exec-pass-files_struct-instead-of-fdtab.patch b/meta/recipes-kernel/lttng/lttng-modules/0001-fix-close_on_exec-pass-files_struct-instead-of-fdtab.patch new file mode 100644 index 0000000000..bb659d5563 --- /dev/null +++ b/meta/recipes-kernel/lttng/lttng-modules/0001-fix-close_on_exec-pass-files_struct-instead-of-fdtab.patch @@ -0,0 +1,79 @@ +From c8adc20d19d853527a29411a03e114efdeff5f59 Mon Sep 17 00:00:00 2001 +From: Michael Jeanson <mjeanson@efficios.com> +Date: Mon, 27 May 2024 10:49:45 -0400 +Subject: [PATCH] fix: close_on_exec(): pass files_struct instead of fdtable + (v6.10) + +See upstream commit: + + commit f60d374d2cc88034385265d193a38e3f4a4b430c + Author: Al Viro <viro@zeniv.linux.org.uk> + Date: Thu Jan 4 21:35:38 2024 -0500 + + close_on_exec(): pass files_struct instead of fdtable + + both callers are happier that way... + +Upstream-Status: Backport [c8adc20d fix: close_on_exec(): pass files_struct instead of fdtable (v6.10)] + +Change-Id: I8cdabb073c2090842b27b74954d86cb486c43b3e +Signed-off-by: Michael Jeanson <mjeanson@efficios.com> +Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> +--- + include/wrapper/fdtable.h | 14 ++++++++++++++ + src/lttng-statedump-impl.c | 3 +-- + 2 files changed, 15 insertions(+), 2 deletions(-) + +Index: lttng-modules-2.13.13/include/wrapper/fdtable.h +=================================================================== +--- lttng-modules-2.13.13.orig/include/wrapper/fdtable.h ++++ lttng-modules-2.13.13/include/wrapper/fdtable.h +@@ -69,20 +69,18 @@ int lttng_iterate_fd(struct files_struct + + #endif + +-#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,4,0)) +- +-static inline bool lttng_close_on_exec(int fd, const struct fdtable *fdt) ++#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(6,10,0)) ++static inline ++bool lttng_close_on_exec(unsigned int fd, const struct files_struct *files) + { +- return close_on_exec(fd, fdt); ++ return close_on_exec(fd, files); + } +- + #else +- +-static inline bool lttng_close_on_exec(int fd, const struct fdtable *fdt) ++static inline ++bool lttng_close_on_exec(unsigned int fd, const struct files_struct *files) + { +- return FD_ISSET(fd, fdt->close_on_exec); ++ return close_on_exec(fd, files_fdtable(files)); + } +- + #endif + + #endif /* _LTTNG_WRAPPER_FDTABLE_H */ +Index: lttng-modules-2.13.13/src/lttng-statedump-impl.c +=================================================================== +--- lttng-modules-2.13.13.orig/src/lttng-statedump-impl.c ++++ lttng-modules-2.13.13/src/lttng-statedump-impl.c +@@ -44,7 +44,6 @@ + #include <wrapper/tracepoint.h> + #include <wrapper/genhd.h> + #include <wrapper/file.h> +-#include <wrapper/fdtable.h> + #include <wrapper/sched.h> + + #ifdef CONFIG_LTTNG_HAS_LIST_IRQ +@@ -451,7 +450,7 @@ int lttng_dump_one_fd(const void *p, str + * the lock is taken, but we are not aware whether this is + * guaranteed or not, so play safe. + */ +- if (fd < fdt->max_fds && lttng_close_on_exec(fd, fdt)) ++ if (fd < fdt->max_fds && lttng_close_on_exec(fd, ctx->files)) + flags |= O_CLOEXEC; + if (IS_ERR(s)) { + struct dentry *dentry = file->f_path.dentry; diff --git a/meta/recipes-kernel/lttng/lttng-modules/0001-src-Kbuild-change-missing-CONFIG_TRACEPOINTS-to-warn.patch b/meta/recipes-kernel/lttng/lttng-modules/0001-src-Kbuild-change-missing-CONFIG_TRACEPOINTS-to-warn.patch new file mode 100644 index 0000000000..120528bf9c --- /dev/null +++ b/meta/recipes-kernel/lttng/lttng-modules/0001-src-Kbuild-change-missing-CONFIG_TRACEPOINTS-to-warn.patch @@ -0,0 +1,46 @@ +From 878f89b6136ff7b870a19e04901cc6f316bbe10a Mon Sep 17 00:00:00 2001 +From: Bruce Ashfield <bruce.ashfield@gmail.com> +Date: Sat, 15 May 2021 10:26:38 -0400 +Subject: [PATCH] src/Kbuild: change missing CONFIG_TRACEPOINTS to warning + +Taken from a previous patch to the main lttng-modules Makefile, by +Otavio Salvador: + + The lttng-modules are being pulled by the tools-profile image feature, + however, not every kernel has the CONFIG_TRACEPOINTS feature enabled. + + This change makes the build do not fail when CONFIG_TRACEPOINTS is not + available, allowing it to be kept being pulled by default. + +Upstream-Status: Inappropriate [embedded specific] + +Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com> +--- + src/Kbuild | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +Index: lttng-modules-2.13.10/src/Kbuild +=================================================================== +--- lttng-modules-2.13.10.orig/src/Kbuild ++++ lttng-modules-2.13.10/src/Kbuild +@@ -2,10 +2,13 @@ + + ifdef CONFIG_LOCALVERSION # Check if dot-config is included. + ifeq ($(CONFIG_TRACEPOINTS),) +- $(error The option CONFIG_TRACEPOINTS needs to be enabled in your kernel configuration) ++ $(warning The option CONFIG_TRACEPOINTS needs to be enabled in your kernel configuration) ++ DISABLE_MODULE = y + endif # CONFIG_TRACEPOINTS + endif # ifdef CONFIG_LOCALVERSION + ++ifneq ($(DISABLE_MODULE),y) ++ + TOP_LTTNG_MODULES_DIR := $(shell dirname $(lastword $(MAKEFILE_LIST)))/.. + + lttng_check_linux_version = $(shell pwd)/include/linux/version.h +@@ -150,3 +153,5 @@ lttng-statedump-objs := lttng-statedump- + obj-$(CONFIG_LTTNG) += probes/ + obj-$(CONFIG_LTTNG) += lib/ + obj-$(CONFIG_LTTNG) += tests/ ++ ++endif # DISABLE_MODULE diff --git a/meta/recipes-kernel/lttng/lttng-modules/0002-fix-btrfs-move-parent-and-ref_root-into-btrfs_delaye.patch b/meta/recipes-kernel/lttng/lttng-modules/0002-fix-btrfs-move-parent-and-ref_root-into-btrfs_delaye.patch new file mode 100644 index 0000000000..5d0d1fb314 --- /dev/null +++ b/meta/recipes-kernel/lttng/lttng-modules/0002-fix-btrfs-move-parent-and-ref_root-into-btrfs_delaye.patch @@ -0,0 +1,58 @@ +From 9bb17e292631f54fb5af4be4fae32ccd3d3d15c7 Mon Sep 17 00:00:00 2001 +From: Michael Jeanson <mjeanson@efficios.com> +Date: Mon, 27 May 2024 13:13:15 -0400 +Subject: [PATCH 2/3] fix: btrfs: move ->parent and ->ref_root into + btrfs_delayed_ref_node (v6.10) + +See upstream commit: + + commit cf4f04325b2b27efa5697ba0ea4c1abdee0035b4 + Author: Josef Bacik <josef@toxicpanda.com> + Date: Fri Apr 12 22:57:13 2024 -0400 + + btrfs: move ->parent and ->ref_root into btrfs_delayed_ref_node + + These two members are shared by both the tree refs and data refs, so + move them into btrfs_delayed_ref_node proper. This allows us to greatly + simplify the comparison code, as the shared refs always only sort on + parent, and the non shared refs always sort first on ref_root, and then + only data refs sort on their specific fields. + +Upstream-Status: Backport [9bb17e29 fix: btrfs: move ->parent and ->ref_root into btrfs_delayed_ref_node (v6.10)] + +Change-Id: Ib7c92cc4bb8d674ac66ccfa25c03476f7adaaf90 +Signed-off-by: Michael Jeanson <mjeanson@efficios.com> +Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> +--- + include/instrumentation/events/btrfs.h | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/include/instrumentation/events/btrfs.h b/include/instrumentation/events/btrfs.h +index d73c1ce5..c0c746e2 100644 +--- a/include/instrumentation/events/btrfs.h ++++ b/include/instrumentation/events/btrfs.h +@@ -912,8 +912,8 @@ LTTNG_TRACEPOINT_EVENT_CLASS(btrfs_delayed_tree_ref, + ctf_integer(u64, bytenr, ref->bytenr) + ctf_integer(u64, num_bytes, ref->num_bytes) + ctf_integer(int, action, ref->action) +- ctf_integer(u64, parent, ref->tree_ref.parent) +- ctf_integer(u64, ref_root, ref->tree_ref.root) ++ ctf_integer(u64, parent, ref->parent) ++ ctf_integer(u64, ref_root, ref->ref_root) + ctf_integer(int, level, ref->tree_ref.level) + ctf_integer(int, type, ref->type) + ctf_integer(u64, seq, ref->seq) +@@ -1196,8 +1196,8 @@ LTTNG_TRACEPOINT_EVENT_CLASS(btrfs_delayed_data_ref, + ctf_integer(u64, bytenr, ref->bytenr) + ctf_integer(u64, num_bytes, ref->num_bytes) + ctf_integer(int, action, ref->action) +- ctf_integer(u64, parent, ref->data_ref.parent) +- ctf_integer(u64, ref_root, ref->data_ref.root) ++ ctf_integer(u64, parent, ref->parent) ++ ctf_integer(u64, ref_root, ref->ref_root) + ctf_integer(u64, owner, ref->data_ref.objectid) + ctf_integer(u64, offset, ref->data_ref.offset) + ctf_integer(int, type, ref->type) +-- +2.39.2 + diff --git a/meta/recipes-kernel/lttng/lttng-modules/0003-fix-net-udp-add-IP-port-data-to-the-tracepoint-udp-u.patch b/meta/recipes-kernel/lttng/lttng-modules/0003-fix-net-udp-add-IP-port-data-to-the-tracepoint-udp-u.patch new file mode 100644 index 0000000000..ab28f870c5 --- /dev/null +++ b/meta/recipes-kernel/lttng/lttng-modules/0003-fix-net-udp-add-IP-port-data-to-the-tracepoint-udp-u.patch @@ -0,0 +1,79 @@ +From 4ae0d960e149d1205d0cc167e44c120148c7f4f0 Mon Sep 17 00:00:00 2001 +From: Michael Jeanson <mjeanson@efficios.com> +Date: Mon, 27 May 2024 11:11:21 -0400 +Subject: [PATCH 3/3] fix: net: udp: add IP/port data to the tracepoint + udp/udp_fail_queue_rcv_skb (v6.10) + +See upstream commit: + + commit e9669a00bba79442dd4862c57761333d6a020c24 + Author: Balazs Scheidler <bazsi77@gmail.com> + Date: Tue Mar 26 19:05:47 2024 +0100 + + net: udp: add IP/port data to the tracepoint udp/udp_fail_queue_rcv_skb + + The udp_fail_queue_rcv_skb() tracepoint lacks any details on the source + and destination IP/port whereas this information can be critical in case + of UDP/syslog. + +Upstream-Status: Backport [4ae0d960 fix: net: udp: add IP/port data to the tracepoint udp/udp_fail_queue_rcv_skb (v6.10)] + +Change-Id: I0c337c5817b0a120298cbf5088d60671d9625b0d +Signed-off-by: Michael Jeanson <mjeanson@efficios.com> +Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> +--- + include/instrumentation/events/udp.h | 30 ++++++++++++++++++++++++++++ + 1 file changed, 30 insertions(+) + +diff --git a/include/instrumentation/events/udp.h b/include/instrumentation/events/udp.h +index b63a1bb5..0a94b466 100644 +--- a/include/instrumentation/events/udp.h ++++ b/include/instrumentation/events/udp.h +@@ -7,7 +7,36 @@ + + #include <lttng/tracepoint-event.h> + #include <linux/udp.h> ++#include <lttng/kernel-version.h> + ++#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(6,10,0)) ++LTTNG_TRACEPOINT_ENUM(lttng_sk_family, ++ TP_ENUM_VALUES( ++ ctf_enum_value("AF_INET", AF_INET) ++ ctf_enum_value("AF_INET6", AF_INET6) ++ ) ++) ++ ++LTTNG_TRACEPOINT_EVENT(udp_fail_queue_rcv_skb, ++ ++ TP_PROTO(int rc, struct sock *sk, struct sk_buff *skb), ++ ++ TP_ARGS(rc, sk, skb), ++ ++ TP_FIELDS( ++ ctf_integer(int, rc, rc) ++ ctf_integer(__u16, sport, ntohs(udp_hdr(skb)->source)) ++ ctf_integer(__u16, dport, ntohs(udp_hdr(skb)->dest)) ++ ctf_enum(lttng_sk_family, __u16, family, sk->sk_family) ++ /* ++ * The 'saddr' and 'daddr' fields from the upstream tracepoint ++ * are currently not extracted. It is recommended to use a ++ * tracepoint from the 'net' probe instead which includes all ++ * fields from the IP header. ++ */ ++ ) ++) ++#else + LTTNG_TRACEPOINT_EVENT(udp_fail_queue_rcv_skb, + + TP_PROTO(int rc, struct sock *sk), +@@ -19,6 +48,7 @@ LTTNG_TRACEPOINT_EVENT(udp_fail_queue_rcv_skb, + ctf_integer(__u16, lport, inet_sk(sk)->inet_num) + ) + ) ++#endif + + #endif /* LTTNG_TRACE_UDP_H */ + +-- +2.39.2 + diff --git a/meta/recipes-kernel/lttng/lttng-modules/BUILD_RUNTIME_BUG_ON-vs-gcc7.patch b/meta/recipes-kernel/lttng/lttng-modules/BUILD_RUNTIME_BUG_ON-vs-gcc7.patch deleted file mode 100644 index 76063607a8..0000000000 --- a/meta/recipes-kernel/lttng/lttng-modules/BUILD_RUNTIME_BUG_ON-vs-gcc7.patch +++ /dev/null @@ -1,43 +0,0 @@ -From ab07574ef90fa510f293c37897d577066a88fe0d Mon Sep 17 00:00:00 2001 -From: Nathan Lynch <nathan_lynch@mentor.com> -Date: Tue, 25 Apr 2017 16:26:57 -0500 -Subject: [PATCH] BUILD_RUNTIME_BUG_ON vs gcc7 - -Avoid using LTTng's BUILD_RUNTIME_BUG_ON macro, as it appears to run -into a similar problem as Linux experienced with ilog2. - -See: -https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=474c90156c8dcc2fa815e6716cc9394d7930cb9c -https://gcc.gnu.org/bugzilla/show_bug.cgi?id=72785 - -Upstream-Status: Pending -Signed-off-by: Nathan Lynch <nathan_lynch@mentor.com> ---- - lib/align.h | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/lib/align.h b/lib/align.h -index 5b91ae87410b..5e134cd485fe 100644 ---- a/lib/align.h -+++ b/lib/align.h -@@ -48,7 +48,7 @@ - */ - #define offset_align(align_drift, alignment) \ - ({ \ -- BUILD_RUNTIME_BUG_ON((alignment) == 0 \ -+ BUG_ON((alignment) == 0 \ - || ((alignment) & ((alignment) - 1))); \ - (((alignment) - (align_drift)) & ((alignment) - 1)); \ - }) -@@ -63,7 +63,7 @@ - */ - #define offset_align_floor(align_drift, alignment) \ - ({ \ -- BUILD_RUNTIME_BUG_ON((alignment) == 0 \ -+ BUG_ON((alignment) == 0 \ - || ((alignment) & ((alignment) - 1))); \ - (((align_drift) - (alignment)) & ((alignment) - 1)); \ - }) --- -2.9.3 - diff --git a/meta/recipes-kernel/lttng/lttng-modules/Makefile-Do-not-fail-if-CONFIG_TRACEPOINTS-is-not-en.patch b/meta/recipes-kernel/lttng/lttng-modules/Makefile-Do-not-fail-if-CONFIG_TRACEPOINTS-is-not-en.patch deleted file mode 100644 index e411242272..0000000000 --- a/meta/recipes-kernel/lttng/lttng-modules/Makefile-Do-not-fail-if-CONFIG_TRACEPOINTS-is-not-en.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 1b0e574d680101105a6c1e8931c78824f5a97a42 Mon Sep 17 00:00:00 2001 -From: Otavio Salvador <otavio@ossystems.com.br> -Date: Mon, 5 Sep 2016 17:08:56 +0000 -Subject: [PATCH] Makefile: Do not fail if CONFIG_TRACEPOINTS is not enabled -Organization: O.S. Systems Software LTDA. - -The lttng-modules are being pulled by the tools-profile image feature, -however, not every kernel has the CONFIG_TRACEPOINTS feature enabled. - -This change makes the build do not fail when CONFIG_TRACEPOINTS is not -available, allowing it to be kept being pulled by default. - -Upstream-Status: Inappropriate [embedded specific] - -Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> ---- - Makefile | 9 +++++---- - 1 file changed, 5 insertions(+), 4 deletions(-) - -diff --git a/Makefile b/Makefile -index 8602649..75550cc 100644 ---- a/Makefile -+++ b/Makefile -@@ -8,10 +8,7 @@ ifneq ($(KERNELRELEASE),) - # and defines the modules to be built. - - ifdef CONFIG_LOCALVERSION # Check if dot-config is included. -- ifeq ($(CONFIG_TRACEPOINTS),) -- $(error The option CONFIG_TRACEPOINTS needs to be enabled in your kernel configuration) -- endif # CONFIG_TRACEPOINTS -- endif # ifdef CONFIG_LOCALVERSION -+ ifneq ($(CONFIG_TRACEPOINTS),) - - TOP_LTTNG_MODULES_DIR := $(shell dirname $(lastword $(MAKEFILE_LIST))) - -@@ -94,6 +91,10 @@ ifneq ($(KERNELRELEASE),) - obj-$(CONFIG_LTTNG) += lib/ - obj-$(CONFIG_LTTNG) += tests/ - -+ else -+ $(warning The option CONFIG_TRACEPOINTS needs to be enabled in your kernel configuration) -+ endif # CONFIG_TRACEPOINTS -+ endif # ifdef CONFIG_LOCALVERSION - else # KERNELRELEASE - - # This part of the Makefile is used when the 'make' command is runned in the --- -2.1.4 - diff --git a/meta/recipes-kernel/lttng/lttng-modules_2.10.11.bb b/meta/recipes-kernel/lttng/lttng-modules_2.10.11.bb deleted file mode 100644 index 789a3be850..0000000000 --- a/meta/recipes-kernel/lttng/lttng-modules_2.10.11.bb +++ /dev/null @@ -1,46 +0,0 @@ -SECTION = "devel" -SUMMARY = "Linux Trace Toolkit KERNEL MODULE" -DESCRIPTION = "The lttng-modules 2.0 package contains the kernel tracer modules" -LICENSE = "LGPLv2.1 & GPLv2 & MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=c4613d1f8a9587bd7b366191830364b3 \ - file://gpl-2.0.txt;md5=751419260aa954499f7abaabaa882bbe \ - file://lgpl-2.1.txt;md5=243b725d71bb5df4a1e5920b344b86ad \ - " - -inherit module - -COMPATIBLE_HOST = '(x86_64|i.86|powerpc|aarch64|mips|nios2|arm|riscv).*-linux' - -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 \ - " - -SRC_URI[md5sum] = "c618fb646514dfc1bf910cfd7cda4256" -SRC_URI[sha256sum] = "7f91e39b2e8e46d8bbba2b4c8c1614f1fb380611cd1a1fccc1d1859be26112f1" - -export INSTALL_MOD_DIR="kernel/lttng-modules" - -EXTRA_OEMAKE += "KERNELDIR='${STAGING_KERNEL_DIR}'" - -do_install_append() { - # Delete empty directories to avoid QA failures if no modules were built - find ${D}/${nonarch_base_libdir} -depth -type d -empty -exec rmdir {} \; -} - -python do_package_prepend() { - if not os.path.exists(os.path.join(d.getVar('D'), d.getVar('nonarch_base_libdir')[1:], 'modules')): - bb.warn("%s: no modules were created; this may be due to CONFIG_TRACEPOINTS not being enabled in your kernel." % d.getVar('PN')) -} - -BBCLASSEXTEND = "devupstream:target" -LIC_FILES_CHKSUM_class-devupstream = "file://LICENSE;md5=c4613d1f8a9587bd7b366191830364b3" -DEFAULT_PREFERENCE_class-devupstream = "-1" -SRC_URI_class-devupstream = "git://git.lttng.org/lttng-modules;branch=stable-2.10 \ - file://Makefile-Do-not-fail-if-CONFIG_TRACEPOINTS-is-not-en.patch \ - file://BUILD_RUNTIME_BUG_ON-vs-gcc7.patch \ - " -SRCREV_class-devupstream = "624aca5d7507fbd11ea4a1a474c3aa1031bd9a31" -PV_class-devupstream = "2.10.10+git${SRCPV}" -S_class-devupstream = "${WORKDIR}/git" -SRCREV_FORMAT ?= "lttng_git" diff --git a/meta/recipes-kernel/lttng/lttng-modules_2.13.13.bb b/meta/recipes-kernel/lttng/lttng-modules_2.13.13.bb new file mode 100644 index 0000000000..75b144757a --- /dev/null +++ b/meta/recipes-kernel/lttng/lttng-modules_2.13.13.bb @@ -0,0 +1,45 @@ +SECTION = "devel" +SUMMARY = "Linux Trace Toolkit KERNEL MODULE" +DESCRIPTION = "The lttng-modules 2.0 package contains the kernel tracer modules" +HOMEPAGE = "https://lttng.org/" +LICENSE = "LGPL-2.1-only & GPL-2.0-only & MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=0464cff101a009c403cd2ed65d01d4c4" + +inherit module + +include lttng-platforms.inc + +SRC_URI = "https://lttng.org/files/${BPN}/${BPN}-${PV}.tar.bz2 \ + file://0001-fix-btrfs-simplify-delayed-ref-tracepoints-v6.10.patch \ + file://0002-fix-btrfs-move-parent-and-ref_root-into-btrfs_delaye.patch \ + file://0003-fix-net-udp-add-IP-port-data-to-the-tracepoint-udp-u.patch \ + file://0001-fix-close_on_exec-pass-files_struct-instead-of-fdtab.patch \ + " + +# Use :append here so that the patch is applied also when using devupstream +SRC_URI:append = " file://0001-src-Kbuild-change-missing-CONFIG_TRACEPOINTS-to-warn.patch" + +SRC_URI[sha256sum] = "7d26c07a5e80b66aa7bdcfdaaf4857f00fc9a5cdde79226b2528676700d50228" + +export INSTALL_MOD_DIR="kernel/lttng-modules" + +EXTRA_OEMAKE += "KERNELDIR='${STAGING_KERNEL_DIR}'" + +MODULES_MODULE_SYMVERS_LOCATION = "src" + +do_install:append() { + # Delete empty directories to avoid QA failures if no modules were built + if [ -d ${D}/${nonarch_base_libdir} ]; then + find ${D}/${nonarch_base_libdir} -depth -type d -empty -exec rmdir {} \; + fi +} + +python do_package:prepend() { + if not os.path.exists(os.path.join(d.getVar('D'), d.getVar('nonarch_base_libdir')[1:], 'modules')): + bb.warn("%s: no modules were created; this may be due to CONFIG_TRACEPOINTS not being enabled in your kernel." % d.getVar('PN')) +} + +BBCLASSEXTEND = "devupstream:target" +SRC_URI:class-devupstream = "git://git.lttng.org/lttng-modules;branch=stable-2.13;protocol=https" +SRCREV:class-devupstream = "7584cfc04914cb0842a986e9808686858b9c8630" +SRCREV_FORMAT ?= "lttng_git" diff --git a/meta/recipes-kernel/lttng/lttng-platforms.inc b/meta/recipes-kernel/lttng/lttng-platforms.inc new file mode 100644 index 0000000000..900e36df82 --- /dev/null +++ b/meta/recipes-kernel/lttng/lttng-platforms.inc @@ -0,0 +1,21 @@ +# +# Whether the platform supports kernel tracing +# +LTTNGMODULES = "lttng-modules" +LTTNGMODULES:arc = "" +LTTNGMODULES:riscv64 = "" + +COMPATIBLE_HOST:riscv64:pn-lttng-modules = "null" +COMPATIBLE_HOST:arc:pn-lttng-modules = "null" + +# Whether the platform supports userspace tracing +# lttng-ust uses sched_getcpu() which is not there on for some platforms. +LTTNGUST = "lttng-ust" +LTTNGUST:arc = "" + +COMPATIBLE_HOST:arc:pn-lttng-ust = "null" + +# Whether the platform supports lttng-tools +# lttng-tools requires SYS_ppoll and SYS_pselect6 which are not supported on riscv32. +# It's also turned off for riscv32 in meta-riscv. See https://github.com/riscv/meta-riscv/blob/master/conf/layer.conf +COMPATIBLE_HOST:riscv32:pn-lttng-tools = "null" diff --git a/meta/recipes-kernel/lttng/lttng-tools/0001-Fix-rotation-destroy-flush-fix-session-daemon-abort-.patch b/meta/recipes-kernel/lttng/lttng-tools/0001-Fix-rotation-destroy-flush-fix-session-daemon-abort-.patch new file mode 100644 index 0000000000..3286dfb5c1 --- /dev/null +++ b/meta/recipes-kernel/lttng/lttng-tools/0001-Fix-rotation-destroy-flush-fix-session-daemon-abort-.patch @@ -0,0 +1,56 @@ +From 6b45c5f80d20e7bbf3d98c1fa17d2cf8716af3bb Mon Sep 17 00:00:00 2001 +From: Xiangyu Chen <xiangyu.chen@windriver.com> +Date: Mon, 25 Mar 2024 18:20:14 +0800 +Subject: [PATCH] Fix: rotation-destroy-flush: fix session daemon abort if no + kernel module present + +Testing rotation-destroy-flush when no lttng kernel modules present, it would +be failed with error message: + + Error: Unable to load required module lttng-ring-buffer-client-discard + not ok 1 - Start session daemon + Failed test 'Start session daemon' + not ok 2 - Create session rotation_destroy_flush in -o /tmp/tmp.test_rot ... + ... + +This because test script that sets the LTTNG_ABORT_ON_ERROR environment +variable. It's this environment variable that causes the sessiond to handle the +kernel module loading failure as an abort rather than a warning. + +Using "check_skip_kernel_test" to detect whether the kernel module fails to +load is expected or not. If the failure is expected, the script won't set that +environment variable any more. + +Fixes: 3a174400 +("tests:add check_skip_kernel_test to check root user and lttng kernel modules") + +Upstream-Status: Submitted [https://review.lttng.org/c/lttng-tools/+/12155] + +Change-Id: I371e9ba717613e2940186f710cf3cccd35baed6c +Signed-off-by: Xiangyu Chen <xiangyu.chen@windriver.com> +--- + .../ust/rotation-destroy-flush/test_rotation_destroy_flush | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/tests/regression/ust/rotation-destroy-flush/test_rotation_destroy_flush b/tests/regression/ust/rotation-destroy-flush/test_rotation_destroy_flush +index 669bcbc43..64161768f 100755 +--- a/tests/regression/ust/rotation-destroy-flush/test_rotation_destroy_flush ++++ b/tests/regression/ust/rotation-destroy-flush/test_rotation_destroy_flush +@@ -23,11 +23,11 @@ SIZE_LIMIT=$PAGE_SIZE + NR_ITER=10 + NUM_TESTS=$((15*$NR_ITER)) + +-# Ensure the daemons invoke abort on error. +-export LTTNG_ABORT_ON_ERROR=1 +- + source $TESTDIR/utils/utils.sh + ++# Ensure the daemons invoke abort on error. ++check_skip_kernel_test || export LTTNG_ABORT_ON_ERROR=1 ++ + # MUST set TESTDIR before calling those functions + function run_app() + { +-- +2.25.1 + diff --git a/meta/recipes-kernel/lttng/lttng-tools/0001-Skip-when-testapp-is-not-present.patch b/meta/recipes-kernel/lttng/lttng-tools/0001-Skip-when-testapp-is-not-present.patch deleted file mode 100644 index 6c9f7e462c..0000000000 --- a/meta/recipes-kernel/lttng/lttng-tools/0001-Skip-when-testapp-is-not-present.patch +++ /dev/null @@ -1,610 +0,0 @@ -From 95c27e6acceaeda55c729b9e92e594322adef13f Mon Sep 17 00:00:00 2001 -From: Jonathan Rajotte <jonathan.rajotte-julien@efficios.com> -Date: Wed, 3 Apr 2019 16:31:18 -0400 -Subject: [PATCH lttng-tools] Skip when testapp is not present - -We expect lttng-ust do be present, this is a wrong assumptions. - -This is a quick fix. The real fix is to either detect at runtime -lttng-ust support or at build time (HAVE_LIBLTTNG_UST_CTL). - -This prevent hang for make check done on a build configured with ---without-lttng-ust. - -Upstream-Status: Inappropriate [other] -Reason: This patch is inappropriate for upstream for 2.10 stable release -since we do not backport "superficial" fix to the test suite. We do -backport when a test is broken. The fact that on --without-lttng-ust -hang is not a "broken" test per-see. Still, a variation of this fix will -be upstreamed in our master branch and possibly 2.11. The upstreamed -version will split the test in kernel/ust test and skip them at the -build system level. This patch is more succinct. - -Signed-off-by: Jonathan Rajotte <jonathan.rajotte-julien@efficios.com> ---- - tests/regression/tools/crash/test_crash | 4 ++ - .../regression/tools/exclusion/test_exclusion | 4 ++ - .../tools/filtering/test_valid_filter | 21 ++++-- - tests/regression/tools/health/test_thread_ok | 29 +++++--- - tests/regression/tools/live/Makefile.am | 2 - - tests/regression/tools/live/test_lttng_ust | 4 ++ - tests/regression/tools/live/test_ust | 4 ++ - .../tools/live/test_ust_tracefile_count | 4 ++ - tests/regression/tools/mi/test_mi | 4 ++ - .../notification/test_notification_multi_app | 18 +++-- - .../tools/notification/test_notification_ust | 4 ++ - .../regression/tools/regen-metadata/test_ust | 2 +- - .../regression/tools/regen-statedump/test_ust | 2 +- - .../regression/tools/save-load/test_autoload | 7 ++ - tests/regression/tools/save-load/test_load | 8 +++ - tests/regression/tools/save-load/test_save | 7 ++ - .../regression/tools/snapshots/test_ust_fast | 2 +- - .../regression/tools/snapshots/test_ust_long | 2 +- - .../tools/snapshots/test_ust_streaming | 2 +- - tests/regression/tools/snapshots/ust_test | 2 +- - .../streaming/test_high_throughput_limits | 2 +- - tests/regression/tools/streaming/test_ust | 2 +- - .../tracefile-limits/test_tracefile_count | 2 +- - .../tracefile-limits/test_tracefile_size | 2 +- - .../tools/wildcard/test_event_wildcard | 67 ++++++++++--------- - 25 files changed, 147 insertions(+), 60 deletions(-) - -diff --git a/tests/regression/tools/crash/test_crash b/tests/regression/tools/crash/test_crash -index 8c62c513d..3cbe97688 100755 ---- a/tests/regression/tools/crash/test_crash -+++ b/tests/regression/tools/crash/test_crash -@@ -35,6 +35,10 @@ NUM_TESTS=77 - - source $TESTDIR/utils/utils.sh - -+if [ ! -x "$TESTAPP_BIN" ]; then -+ plan_skip_all "No UST events binary detected." -+fi -+ - # Global declaration for simplification - LTTNG_CRASH=$TESTDIR/../src/bin/lttng-crash/$CRASH_BIN - -diff --git a/tests/regression/tools/exclusion/test_exclusion b/tests/regression/tools/exclusion/test_exclusion -index 949cd41df..42e4d72fb 100755 ---- a/tests/regression/tools/exclusion/test_exclusion -+++ b/tests/regression/tools/exclusion/test_exclusion -@@ -30,6 +30,10 @@ NUM_TESTS=149 - - source $TESTDIR/utils/utils.sh - -+if [ ! -x "$TESTAPP_BIN" ]; then -+ plan_skip_all "No UST events binary detected." -+fi -+ - function enable_ust_lttng_all_event_exclusion() - { - sess_name="$1" -diff --git a/tests/regression/tools/filtering/test_valid_filter b/tests/regression/tools/filtering/test_valid_filter -index 163b32182..1e8da630b 100755 ---- a/tests/regression/tools/filtering/test_valid_filter -+++ b/tests/regression/tools/filtering/test_valid_filter -@@ -418,12 +418,18 @@ issue_356_filter+="intfield > 4 && intfield > 5 && " - issue_356_filter+="intfield > 6 && intfield > 7 && " - issue_356_filter+="intfield > 8 || intfield > 0" - -+BIN_NAME="gen-ust-events" -+ -+skip_ust=1 -+if [ ! -x "$CURDIR/$BIN_NAME" ]; then -+ skip_ust=0 -+ skip 0 "No UST nevents binary detected." $NUM_UST_TESTS -+fi -+ - start_lttng_sessiond - - ### UST TESTS - --BIN_NAME="gen-ust-events" -- - KIRK_KRAUSS_TESTS=( - # the tests below were written by Kirk Krauss in this article: - # http://www.drdobbs.com/architecture-and-design/matching-wildcards-an-empirical-way-to-t/240169123 -@@ -897,9 +903,6 @@ UST_STR_FILTERS=( - END - ) - --if [ ! -x "$CURDIR/$BIN_NAME" ]; then -- BAIL_OUT "No UST nevents binary detected." --fi - - IFS="$OLDIFS" - -@@ -910,6 +913,10 @@ i=0 - while true; do - validator="${UST_FILTERS[$i]}" - -+ if [ $skip_ust -eq 0 ]; then -+ break -+ fi -+ - if [ "$validator" = END ]; then - break - fi -@@ -929,6 +936,10 @@ i=0 - while true; do - validator="${UST_STR_FILTERS[$i]}" - -+ if [ $skip_ust -eq 0 ]; then -+ break -+ fi -+ - if [ "$validator" = END ]; then - break - fi -diff --git a/tests/regression/tools/health/test_thread_ok b/tests/regression/tools/health/test_thread_ok -index e81d6ed24..849b7e71f 100755 ---- a/tests/regression/tools/health/test_thread_ok -+++ b/tests/regression/tools/health/test_thread_ok -@@ -27,6 +27,9 @@ CHANNEL_NAME="testchan" - HEALTH_CHECK_BIN="health_check" - NUM_TESTS=17 - SLEEP_TIME=30 -+TESTAPP_PATH="$TESTDIR/utils/testapp" -+TESTAPP_NAME="gen-ust-events" -+TESTAPP_BIN="$TESTAPP_PATH/$TESTAPP_NAME/$TESTAPP_NAME" - - source $TESTDIR/utils/utils.sh - -@@ -76,15 +79,19 @@ function test_thread_ok - $CURDIR/$HEALTH_CHECK_BIN > ${STDOUT_PATH} 2> ${STDERR_PATH} - report_errors - -- diag "With UST consumer daemons" -- create_lttng_session_no_output $SESSION_NAME -- enable_ust_lttng_event_ok $SESSION_NAME $UST_EVENT_NAME $CHANNEL_NAME -- start_lttng_tracing_ok $SESSION_NAME -- destroy_lttng_session_ok $SESSION_NAME -+ skip $skip_ust "Ust does not seems to be supported" "5" || -+ { -+ diag "With UST consumer daemons" -+ create_lttng_session_no_output $SESSION_NAME -+ enable_ust_lttng_event_ok $SESSION_NAME $UST_EVENT_NAME $CHANNEL_NAME -+ start_lttng_tracing_ok $SESSION_NAME -+ destroy_lttng_session_ok $SESSION_NAME - -- # Check health status -- $CURDIR/$HEALTH_CHECK_BIN > ${STDOUT_PATH} 2> ${STDERR_PATH} -- report_errors -+ -+ # Check health status -+ $CURDIR/$HEALTH_CHECK_BIN > ${STDOUT_PATH} 2> ${STDERR_PATH} -+ report_errors -+ } - - skip $isroot "Root access is needed. Skipping kernel consumer health check test." "5" || - { -@@ -141,6 +148,12 @@ else - isroot=0 - fi - -+if [ ! -x "$TESTAPP_BIN" ]; then -+ skip_ust=0 -+else -+ skip_ust=1 -+fi -+ - test_thread_ok - - rm -rf ${HEALTH_PATH} -diff --git a/tests/regression/tools/live/Makefile.am b/tests/regression/tools/live/Makefile.am -index 46186d383..db74de8d5 100644 ---- a/tests/regression/tools/live/Makefile.am -+++ b/tests/regression/tools/live/Makefile.am -@@ -16,9 +16,7 @@ LIVE=$(top_builddir)/src/bin/lttng-sessiond/session.$(OBJEXT) \ - noinst_PROGRAMS = live_test - EXTRA_DIST = test_kernel test_lttng_kernel - --if HAVE_LIBLTTNG_UST_CTL - EXTRA_DIST += test_ust test_ust_tracefile_count test_lttng_ust --endif - - live_test_SOURCES = live_test.c - live_test_LDADD = $(LIBTAP) $(LIBCOMMON) $(LIBRELAYD) $(LIBSESSIOND_COMM) \ -diff --git a/tests/regression/tools/live/test_lttng_ust b/tests/regression/tools/live/test_lttng_ust -index 06017d01d..be9b3d7f7 100755 ---- a/tests/regression/tools/live/test_lttng_ust -+++ b/tests/regression/tools/live/test_lttng_ust -@@ -38,6 +38,10 @@ NUM_TESTS=12 - - source $TESTDIR/utils/utils.sh - -+if [ ! -x "$TESTAPP_BIN" ]; then -+ plan_skip_all "No UST events binary detected." -+fi -+ - # MUST set TESTDIR before calling those functions - plan_tests $NUM_TESTS - -diff --git a/tests/regression/tools/live/test_ust b/tests/regression/tools/live/test_ust -index 0384a706f..add521bfc 100755 ---- a/tests/regression/tools/live/test_ust -+++ b/tests/regression/tools/live/test_ust -@@ -36,6 +36,10 @@ DIR=$(readlink -f $TESTDIR) - - source $TESTDIR/utils/utils.sh - -+if [ ! -x "$TESTAPP_BIN" ]; then -+ plan_skip_all "No UST events binary detected." -+fi -+ - echo "$TEST_DESC" - - function setup_live_tracing() -diff --git a/tests/regression/tools/live/test_ust_tracefile_count b/tests/regression/tools/live/test_ust_tracefile_count -index 6da368fc6..10504f8c6 100755 ---- a/tests/regression/tools/live/test_ust_tracefile_count -+++ b/tests/regression/tools/live/test_ust_tracefile_count -@@ -36,6 +36,10 @@ DIR=$(readlink -f $TESTDIR) - - source $TESTDIR/utils/utils.sh - -+if [ ! -x "$TESTAPP_BIN" ]; then -+ plan_skip_all "No UST events binary detected." -+fi -+ - echo "$TEST_DESC" - - function setup_live_tracing() -diff --git a/tests/regression/tools/mi/test_mi b/tests/regression/tools/mi/test_mi -index 48dda7da6..2cc30b29a 100755 ---- a/tests/regression/tools/mi/test_mi -+++ b/tests/regression/tools/mi/test_mi -@@ -61,6 +61,10 @@ NUM_TESTS=228 - - source $TESTDIR/utils/utils.sh - -+if [ ! -x "$TESTAPP_BIN" ]; then -+ plan_skip_all "No UST events binary detected." -+fi -+ - #Overwrite the lttng_bin to get mi output - LTTNG_BIN="lttng --mi xml" - -diff --git a/tests/regression/tools/notification/test_notification_multi_app b/tests/regression/tools/notification/test_notification_multi_app -index 0a05ea6a0..29b0f62fa 100755 ---- a/tests/regression/tools/notification/test_notification_multi_app -+++ b/tests/regression/tools/notification/test_notification_multi_app -@@ -52,6 +52,11 @@ plan_tests $NUM_TESTS - - print_test_banner "$TEST_DESC" - -+skip_ust=1 -+if [ ! -x "$TESTAPP_BIN" ]; then -+ skip_ust=0 -+fi -+ - app_pids=() - - function kernel_event_generator_toogle_state -@@ -468,10 +473,15 @@ function test_on_register_evaluation () - } - - --TESTS=( -- test_multi_app_ust -- test_on_register_evaluation_ust --) -+TESTS=() -+if [ $skip_ust -eq "1" ]; then -+ TESTS+=( -+ test_multi_app_ust -+ test_on_register_evaluation_ust -+ ) -+else -+ skip 0 "No UST events binary detected." $NUM_TEST_UST -+fi - - if [ "$(id -u)" == "0" ]; then - TESTS+=( -diff --git a/tests/regression/tools/notification/test_notification_ust b/tests/regression/tools/notification/test_notification_ust -index 8941e476d..eb2e15cad 100755 ---- a/tests/regression/tools/notification/test_notification_ust -+++ b/tests/regression/tools/notification/test_notification_ust -@@ -46,6 +46,10 @@ DIR=$(readlink -f $TESTDIR) - - source $TESTDIR/utils/utils.sh - -+if [ ! -x "$TESTAPP_BIN" ]; then -+ plan_skip_all "No UST events binary detected." -+fi -+ - function ust_event_generator_toogle_state - { - ust_event_generator_suspended=$((ust_event_generator_suspended==0)) -diff --git a/tests/regression/tools/regen-metadata/test_ust b/tests/regression/tools/regen-metadata/test_ust -index b7f1af1d8..312c8a40d 100755 ---- a/tests/regression/tools/regen-metadata/test_ust -+++ b/tests/regression/tools/regen-metadata/test_ust -@@ -34,7 +34,7 @@ NUM_TESTS=33 - source $TESTDIR/utils/utils.sh - - if [ ! -x "$TESTAPP_BIN" ]; then -- BAIL_OUT "No UST events binary detected." -+ plan_skip_all "No UST events binary detected." - fi - - function lttng_create_session_uri -diff --git a/tests/regression/tools/regen-statedump/test_ust b/tests/regression/tools/regen-statedump/test_ust -index 486b9a560..8d455b26a 100755 ---- a/tests/regression/tools/regen-statedump/test_ust -+++ b/tests/regression/tools/regen-statedump/test_ust -@@ -34,7 +34,7 @@ NUM_TESTS=11 - source $TESTDIR/utils/utils.sh - - if [ ! -x "$TESTAPP_BIN" ]; then -- BAIL_OUT "No UST events binary detected." -+ plan_skip_all "No UST events binary detected." - fi - - function test_ust_local () -diff --git a/tests/regression/tools/save-load/test_autoload b/tests/regression/tools/save-load/test_autoload -index 7ee5e9906..ec376cfb3 100755 ---- a/tests/regression/tools/save-load/test_autoload -+++ b/tests/regression/tools/save-load/test_autoload -@@ -21,6 +21,9 @@ CURDIR=$(dirname $0)/ - CONFIG_DIR="${CURDIR}/configuration" - TESTDIR=$CURDIR/../../../ - export LTTNG_SESSION_CONFIG_XSD_PATH=$(readlink -m ${TESTDIR}../src/common/config/) -+TESTAPP_PATH="$TESTDIR/utils/testapp" -+TESTAPP_NAME="gen-ust-events" -+TESTAPP_BIN="$TESTAPP_PATH/$TESTAPP_NAME/$TESTAPP_NAME" - - DIR=$(readlink -f $TESTDIR) - -@@ -28,6 +31,10 @@ NUM_TESTS=9 - - source $TESTDIR/utils/utils.sh - -+if [ ! -x "$TESTAPP_BIN" ]; then -+ plan_skip_all "No UST events binary detected." -+fi -+ - # MUST set TESTDIR before calling those functions - plan_tests $NUM_TESTS - -diff --git a/tests/regression/tools/save-load/test_load b/tests/regression/tools/save-load/test_load -index 5e38b46b6..b6fdd8192 100755 ---- a/tests/regression/tools/save-load/test_load -+++ b/tests/regression/tools/save-load/test_load -@@ -20,6 +20,10 @@ TEST_DESC="Load session(s)" - CURDIR=$(dirname $0)/ - CONFIG_DIR="${CURDIR}/configuration" - TESTDIR=$CURDIR/../../../ -+TESTAPP_PATH="$TESTDIR/utils/testapp" -+TESTAPP_NAME="gen-ust-events" -+TESTAPP_BIN="$TESTAPP_PATH/$TESTAPP_NAME/$TESTAPP_NAME" -+ - export LTTNG_SESSION_CONFIG_XSD_PATH=$(readlink -m ${TESTDIR}../src/common/config/) - - SESSION_NAME="load-42" -@@ -31,6 +35,10 @@ NUM_TESTS=67 - - source $TESTDIR/utils/utils.sh - -+if [ ! -x "$TESTAPP_BIN" ]; then -+ plan_skip_all "No UST events binary detected." -+fi -+ - # MUST set TESTDIR before calling those functions - plan_tests $NUM_TESTS - -diff --git a/tests/regression/tools/save-load/test_save b/tests/regression/tools/save-load/test_save -index c5f6b1341..cfaf67b7a 100755 ---- a/tests/regression/tools/save-load/test_save -+++ b/tests/regression/tools/save-load/test_save -@@ -23,6 +23,9 @@ TESTDIR=$CURDIR/../../../ - SESSION_NAME="save-42" - CHANNEL_NAME="chan-save" - EVENT_NAME="tp:tptest" -+TESTAPP_PATH="$TESTDIR/utils/testapp" -+TESTAPP_NAME="gen-ust-events" -+TESTAPP_BIN="$TESTAPP_PATH/$TESTAPP_NAME/$TESTAPP_NAME" - - DIR=$(readlink -f $TESTDIR) - -@@ -30,6 +33,10 @@ NUM_TESTS=41 - - source $TESTDIR/utils/utils.sh - -+if [ ! -x "TESTAPP_BIN" ]; then -+ plan_skip_all "No UST events binary detected." -+fi -+ - # MUST set TESTDIR before calling those functions - plan_tests $NUM_TESTS - -diff --git a/tests/regression/tools/snapshots/test_ust_fast b/tests/regression/tools/snapshots/test_ust_fast -index edb435c52..5a68ec56d 100755 ---- a/tests/regression/tools/snapshots/test_ust_fast -+++ b/tests/regression/tools/snapshots/test_ust_fast -@@ -23,7 +23,7 @@ TEST_BIN="ust_test" - source $TESTDIR/utils/utils.sh - - if [ ! -x "$CURDIR/$TEST_BIN" ]; then -- BAIL_OUT "No UST test found: $TEST_BIN" -+ plan_skip_all "No UST test found: $TEST_BIN" - fi - - ./$CURDIR/$TEST_BIN $NR_SNAPSHOT -diff --git a/tests/regression/tools/snapshots/test_ust_long b/tests/regression/tools/snapshots/test_ust_long -index 9e1a0c262..afa019f6a 100755 ---- a/tests/regression/tools/snapshots/test_ust_long -+++ b/tests/regression/tools/snapshots/test_ust_long -@@ -23,7 +23,7 @@ TEST_BIN="ust_test" - source $TESTDIR/utils/utils.sh - - if [ ! -x "$CURDIR/$TEST_BIN" ]; then -- BAIL_OUT "No UST test found: $TEST_BIN" -+ plan_skip_all "No UST test found: $TEST_BIN" - fi - - ./$CURDIR/$TEST_BIN $NR_SNAPSHOT -diff --git a/tests/regression/tools/snapshots/test_ust_streaming b/tests/regression/tools/snapshots/test_ust_streaming -index 93b0957f3..69291ab4d 100755 ---- a/tests/regression/tools/snapshots/test_ust_streaming -+++ b/tests/regression/tools/snapshots/test_ust_streaming -@@ -37,7 +37,7 @@ NUM_TESTS=75 - source $TESTDIR/utils/utils.sh - - if [ ! -x "$TESTAPP_BIN" ]; then -- BAIL_OUT "No UST events binary detected." -+ plan_skip_all "No UST events binary detected." - fi - - function snapshot_add_output () -diff --git a/tests/regression/tools/snapshots/ust_test b/tests/regression/tools/snapshots/ust_test -index 755cef9e0..92f9f6cff 100755 ---- a/tests/regression/tools/snapshots/ust_test -+++ b/tests/regression/tools/snapshots/ust_test -@@ -34,7 +34,7 @@ TRACE_PATH=$(mktemp -d) - source $TESTDIR/utils/utils.sh - - if [ ! -x "$TESTAPP_BIN" ]; then -- BAIL_OUT "No UST events binary detected." -+ plan_skip_all "No UST events binary detected." - fi - - # Need the number of snapshot to do. -diff --git a/tests/regression/tools/streaming/test_high_throughput_limits b/tests/regression/tools/streaming/test_high_throughput_limits -index 32c3f1f2b..f54178923 100755 ---- a/tests/regression/tools/streaming/test_high_throughput_limits -+++ b/tests/regression/tools/streaming/test_high_throughput_limits -@@ -38,7 +38,7 @@ NUM_TESTS=104 - source $TESTDIR/utils/utils.sh - - if [ ! -x "$TESTAPP_BIN" ]; then -- BAIL_OUT "No UST events binary detected." -+ plan_skip_all "No UST events binary detected." - fi - - function set_bw_limit -diff --git a/tests/regression/tools/streaming/test_ust b/tests/regression/tools/streaming/test_ust -index a5d5b5e92..e1dd98ee7 100755 ---- a/tests/regression/tools/streaming/test_ust -+++ b/tests/regression/tools/streaming/test_ust -@@ -34,7 +34,7 @@ NUM_TESTS=16 - source $TESTDIR/utils/utils.sh - - if [ ! -x "$TESTAPP_BIN" ]; then -- BAIL_OUT "No UST events binary detected." -+ plan_skip_all "No UST events binary detected." - fi - - function lttng_create_session_uri -diff --git a/tests/regression/tools/tracefile-limits/test_tracefile_count b/tests/regression/tools/tracefile-limits/test_tracefile_count -index 6ada8580f..7553c7d1f 100755 ---- a/tests/regression/tools/tracefile-limits/test_tracefile_count -+++ b/tests/regression/tools/tracefile-limits/test_tracefile_count -@@ -33,7 +33,7 @@ PAGE_SIZE=$(getconf PAGE_SIZE) - source $TESTDIR/utils/utils.sh - - if [ ! -x "$TESTAPP_BIN" ]; then -- BAIL_OUT "No UST events binary detected." -+ plan_skip_all "No UST events binary detected." - fi - - function enable_lttng_channel_count_limit () -diff --git a/tests/regression/tools/tracefile-limits/test_tracefile_size b/tests/regression/tools/tracefile-limits/test_tracefile_size -index 3dddbe613..1089487ff 100755 ---- a/tests/regression/tools/tracefile-limits/test_tracefile_size -+++ b/tests/regression/tools/tracefile-limits/test_tracefile_size -@@ -33,7 +33,7 @@ NUM_TESTS=66 - source $TESTDIR/utils/utils.sh - - if [ ! -x "$TESTAPP_BIN" ]; then -- BAIL_OUT "No UST events binary detected." -+ plan_skip_all "No UST events binary detected." - fi - - function enable_lttng_channel_size_limit () -diff --git a/tests/regression/tools/wildcard/test_event_wildcard b/tests/regression/tools/wildcard/test_event_wildcard -index 61ea67a72..921a2301d 100755 ---- a/tests/regression/tools/wildcard/test_event_wildcard -+++ b/tests/regression/tools/wildcard/test_event_wildcard -@@ -97,42 +97,47 @@ print_test_banner "$TEST_DESC" - - start_lttng_sessiond - --diag "Test UST wildcard" -- - if [ ! -x "$TESTAPP_BIN" ]; then -- BAIL_OUT "No UST nevents binary detected." -+ skip_ust=0 -+else -+ skip_ust=1 - fi - --EVENT_NAME="tp:tptest" -+skip $skip_ust "No UST nevents binary detected." $NUM_UST_TESTS || -+{ -+ diag "Test UST wildcard" - --# non-matching --test_event_wildcard ust 0 'tp:abc*' --test_event_wildcard ust 0 '*abc' --test_event_wildcard ust 0 '*z*' --test_event_wildcard ust 0 '*\**' --test_event_wildcard ust 0 '*\*' --test_event_wildcard ust 0 '\**' --test_event_wildcard ust 0 '*:*tpte*s' --test_event_wildcard ust 0 'tp**tpTest' -+ EVENT_NAME="tp:tptest" - --# matching --test_event_wildcard ust 1 'tp:tp*' --test_event_wildcard ust 1 '*' --test_event_wildcard ust 1 'tp:tptest*' --test_event_wildcard ust 1 '**' --test_event_wildcard ust 1 '***' --test_event_wildcard ust 1 '*tptest' --test_event_wildcard ust 1 '**tptest' --test_event_wildcard ust 1 '*tpte*' --test_event_wildcard ust 1 '*tp*' --test_event_wildcard ust 1 '*tp**' --test_event_wildcard ust 1 '*:*tptest' --test_event_wildcard ust 1 '*:*tpte*t' --test_event_wildcard ust 1 't*p*:*t*e*s*t' --test_event_wildcard ust 1 '*t*p*:*t*e*s*t*' --test_event_wildcard ust 1 'tp*tptest' --test_event_wildcard ust 1 'tp**tptest' --test_event_wildcard ust 1 'tp*test' -+ # non-matching -+ test_event_wildcard ust 0 'tp:abc*' -+ test_event_wildcard ust 0 '*abc' -+ test_event_wildcard ust 0 '*z*' -+ test_event_wildcard ust 0 '*\**' -+ test_event_wildcard ust 0 '*\*' -+ test_event_wildcard ust 0 '\**' -+ test_event_wildcard ust 0 '*:*tpte*s' -+ test_event_wildcard ust 0 'tp**tpTest' -+ -+ # matching -+ test_event_wildcard ust 1 'tp:tp*' -+ test_event_wildcard ust 1 '*' -+ test_event_wildcard ust 1 'tp:tptest*' -+ test_event_wildcard ust 1 '**' -+ test_event_wildcard ust 1 '***' -+ test_event_wildcard ust 1 '*tptest' -+ test_event_wildcard ust 1 '**tptest' -+ test_event_wildcard ust 1 '*tpte*' -+ test_event_wildcard ust 1 '*tp*' -+ test_event_wildcard ust 1 '*tp**' -+ test_event_wildcard ust 1 '*:*tptest' -+ test_event_wildcard ust 1 '*:*tpte*t' -+ test_event_wildcard ust 1 't*p*:*t*e*s*t' -+ test_event_wildcard ust 1 '*t*p*:*t*e*s*t*' -+ test_event_wildcard ust 1 'tp*tptest' -+ test_event_wildcard ust 1 'tp**tptest' -+ test_event_wildcard ust 1 'tp*test' -+} - - if [ "$(id -u)" == "0" ]; then - isroot=1 --- -2.17.1 - diff --git a/meta/recipes-kernel/lttng/lttng-tools/0001-check-for-gettid-API-during-configure.patch b/meta/recipes-kernel/lttng/lttng-tools/0001-check-for-gettid-API-during-configure.patch deleted file mode 100644 index c494cee604..0000000000 --- a/meta/recipes-kernel/lttng/lttng-tools/0001-check-for-gettid-API-during-configure.patch +++ /dev/null @@ -1,55 +0,0 @@ -From 69c62f5f3cc424b7dd0c8e4097743b39a9c48306 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Sat, 27 Jul 2019 08:48:13 -0700 -Subject: [lttng-tools][PATCH] check for gettid API during configure - -Add support for gettid() provided by glibc 2.30+ - -Since version 2.30 glibc provides gettid and it causes conflicts with -locally defined gettid(). Use the local definition of -gettid only if system gettid is not available. - -https://sourceware.org/git/?p=glibc.git;a=blob_plain;f=NEWS;hb=HEAD<Paste> - -Upstream-Status: Pending -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - configure.ac | 2 +- - src/common/compat/tid.h | 3 ++- - 2 files changed, 3 insertions(+), 2 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 7b99f5c..e4bd82c 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -190,7 +190,7 @@ AC_CHECK_HEADERS([ \ - # Basic functions check - AC_CHECK_FUNCS([ \ - atexit bzero clock_gettime dup2 fdatasync fls ftruncate \ -- gethostbyname gethostname getpagesize localtime_r memchr memset \ -+ gethostbyname gethostname getpagesize gettid localtime_r memchr memset \ - mkdir munmap putenv realpath rmdir socket strchr strcspn strdup \ - strncasecmp strndup strnlen strpbrk strrchr strstr strtol strtoul \ - strtoull dirfd gethostbyname2 getipnodebyname epoll_create1 \ -diff --git a/src/common/compat/tid.h b/src/common/compat/tid.h -index 40f562f..aa07a85 100644 ---- a/src/common/compat/tid.h -+++ b/src/common/compat/tid.h -@@ -25,6 +25,7 @@ - #ifndef LTTNG_TID_H - #define LTTNG_TID_H - -+#if !HAVE_GETTID - #ifdef __linux__ - #include <syscall.h> - #endif -@@ -47,5 +48,5 @@ static inline pid_t gettid(void) - return getpid(); - } - #endif -- -+#endif /* HAVE_GETTID */ - #endif /* LTTNG_TID_H */ --- -2.22.0 - diff --git a/meta/recipes-kernel/lttng/lttng-tools/0001-compat-Define-off64_t-as-off_t-on-linux.patch b/meta/recipes-kernel/lttng/lttng-tools/0001-compat-Define-off64_t-as-off_t-on-linux.patch new file mode 100644 index 0000000000..4e21d1e9f1 --- /dev/null +++ b/meta/recipes-kernel/lttng/lttng-tools/0001-compat-Define-off64_t-as-off_t-on-linux.patch @@ -0,0 +1,74 @@ +From 74b3844737b03492756b4f896c938b504b069f14 Mon Sep 17 00:00:00 2001 +From: Jérémie Galarneau <jeremie.galarneau@efficios.com> +Date: Tue, 17 Jan 2023 16:57:35 -0500 +Subject: [PATCH] compat: off64_t is not defined by musl + +This helps compile with latest musl, where off64_t is not defined unless +_LARGEFILE64_SOURCE is defined. On glibc, _LARGEFILE64_SOURCE is defined +if _GNU_SOURCE is defined, so the problem is only seen with musl. + +Since the project uses AC_SYS_LARGEFILE, which from the autoconf doc: +"arrange for 64-bit file offsets, known as large-file support." + +As such, it is safe to assume off_t is 64-bit wide. This is checked by a +static_assert to catch any platform where autoconf would let a 32-bit +off_t slip. + +Upstream-Status: Submitted [https://review.lttng.org/c/lttng-tools/+/9268] +Reported-by: Khem Raj <raj.khem@gmail.com> +Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com> +Change-Id: If2c6007a8c85bc3f3065002af8a7538b882fb4a8 +--- + +--- a/src/common/compat/compat-fcntl.c ++++ b/src/common/compat/compat-fcntl.c +@@ -8,14 +8,17 @@ + #define _LGPL_SOURCE + #include <common/compat/fcntl.h> + #include <common/macros.h> ++#include <common/bug.h> ++#include <stdint.h> + #include <unistd.h> + + #ifdef __linux__ + + LTTNG_HIDDEN +-int compat_sync_file_range(int fd, off64_t offset, off64_t nbytes, ++int compat_sync_file_range(int fd, off_t offset, off_t nbytes, + unsigned int flags) + { ++ LTTNG_BUILD_BUG_ON(sizeof(off_t) != sizeof(int64_t)); + #ifdef HAVE_SYNC_FILE_RANGE + return sync_file_range(fd, offset, nbytes, flags); + #else +--- a/src/common/compat/fcntl.h ++++ b/src/common/compat/fcntl.h +@@ -13,16 +13,12 @@ + + #include <common/compat/errno.h> + +-#if (defined(__CYGWIN__)) +-typedef long long off64_t; +-#endif +- + #if (defined(__FreeBSD__) || defined(__sun__)) + typedef off64_t loff_t; + #endif + + #ifdef __linux__ +-extern int compat_sync_file_range(int fd, off64_t offset, off64_t nbytes, ++extern int compat_sync_file_range(int fd, off_t offset, off_t nbytes, + unsigned int flags); + #define lttng_sync_file_range(fd, offset, nbytes, flags) \ + compat_sync_file_range(fd, offset, nbytes, flags) +@@ -37,8 +33,8 @@ extern int compat_sync_file_range(int fd + #define SYNC_FILE_RANGE_WAIT_BEFORE 0 + #define SYNC_FILE_RANGE_WRITE 0 + +-static inline int lttng_sync_file_range(int fd, off64_t offset, +- off64_t nbytes, unsigned int flags) ++static inline int lttng_sync_file_range(int fd, off_t offset, ++ off_t nbytes, unsigned int flags) + { + return -ENOSYS; + } diff --git a/meta/recipes-kernel/lttng/lttng-tools/0001-tests-add-check_skip_kernel_test-to-check-root-user-.patch b/meta/recipes-kernel/lttng/lttng-tools/0001-tests-add-check_skip_kernel_test-to-check-root-user-.patch new file mode 100644 index 0000000000..2671a1908e --- /dev/null +++ b/meta/recipes-kernel/lttng/lttng-tools/0001-tests-add-check_skip_kernel_test-to-check-root-user-.patch @@ -0,0 +1,1246 @@ +From cf558f802b259a33605fe0ede4d74ae2ff6be699 Mon Sep 17 00:00:00 2001 +From: Xiangyu Chen <xiangyu.chen@windriver.com> +Date: Mon, 12 Feb 2024 09:23:54 -0500 +Subject: [PATCH] tests: add check_skip_kernel_test to check root user and + lttng kernel modules +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The current tests will run both userspace and kernel testing. Some of +use cases only use lttng for one kind of tracing on an embedded +device (e.g. userspace), so in this scenario, the kernel modules might +not install to target rootfs, the test cases would be fail and exit. + +Add LTTNG_TOOLS_DISABLE_KERNEL_TESTS to skip the lttng kernel features +test, this flag can be set via "make": + + make check LTTNG_TOOLS_DISABLE_KERNEL_TESTS=1 + +When this flag was set, all kernel related testcases would be marked as +SKIP in result. + +Since the the LTTNG_TOOLS_DISABLE_KERNEL_TESTS was checked in function +check_skip_kernel_test, lots of testcases also need to check root +permission, so merging the root permission checking into +check_skip_kernel_test. + +Upstream-Status: Backport from +[https://git.lttng.org/?p=lttng-tools.git;a=commit;h=3a1744008331a0604479d3d7461f77056fad3a64] + +Change-Id: I49a1f642a9869c21a69e0186c296fd917bd7b525 +Signed-off-by: Xiangyu Chen <xiangyu.chen@windriver.com> +Signed-off-by: Michael Jeanson <mjeanson@efficios.com> +Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com> +--- + tests/destructive/metadata-regeneration | 8 +---- + tests/perf/test_perf_raw.in | 8 +---- + tests/regression/kernel/test_all_events | 8 +---- + tests/regression/kernel/test_callstack | 8 +---- + tests/regression/kernel/test_channel | 8 +---- + tests/regression/kernel/test_clock_override | 8 +---- + tests/regression/kernel/test_event_basic | 8 +---- + tests/regression/kernel/test_kernel_function | 8 +---- + tests/regression/kernel/test_lttng_logger | 8 +---- + tests/regression/kernel/test_ns_contexts | 8 +---- + .../regression/kernel/test_ns_contexts_change | 9 +---- + .../kernel/test_rotation_destroy_flush | 8 +---- + .../regression/kernel/test_select_poll_epoll | 8 +---- + tests/regression/kernel/test_syscall | 8 +---- + tests/regression/kernel/test_userspace_probe | 8 +---- + tests/regression/tools/clear/test_kernel | 8 +---- + .../tools/filtering/test_invalid_filter | 8 +---- + .../tools/filtering/test_unsupported_op | 8 +---- + .../tools/filtering/test_valid_filter | 8 +---- + tests/regression/tools/health/test_health.sh | 10 ++---- + tests/regression/tools/health/test_thread_ok | 9 +---- + tests/regression/tools/live/test_kernel | 10 +++--- + tests/regression/tools/live/test_lttng_kernel | 8 +---- + tests/regression/tools/metadata/test_kernel | 8 +---- + .../test_notification_kernel_buffer_usage | 36 +++++++++---------- + .../test_notification_kernel_capture | 23 ++++++------ + .../test_notification_kernel_error | 23 ++++++------ + .../test_notification_kernel_instrumentation | 23 ++++++------ + .../test_notification_kernel_syscall | 19 +++++----- + .../test_notification_kernel_userspace_probe | 20 +++++------ + .../notification/test_notification_multi_app | 14 +++----- + ...test_notification_notifier_discarded_count | 9 +++-- + .../tools/regen-metadata/test_kernel | 8 +---- + .../tools/regen-statedump/test_kernel | 8 +---- + tests/regression/tools/rotation/test_kernel | 8 +---- + tests/regression/tools/snapshots/test_kernel | 8 +---- + .../tools/snapshots/test_kernel_streaming | 8 +---- + .../streaming/test_high_throughput_limits | 8 +---- + tests/regression/tools/streaming/test_kernel | 8 +---- + .../tools/tracker/test_event_tracker | 8 +---- + .../tools/trigger/test_add_trigger_cli | 12 ++----- + .../tools/trigger/test_list_triggers_cli | 26 +++++--------- + .../tools/wildcard/test_event_wildcard | 8 +---- + .../test_relayd_working_directory | 4 +-- + .../ust/namespaces/test_ns_contexts_change | 7 +--- + tests/regression/ust/test_event_perf | 8 +---- + tests/utils/utils.sh | 35 ++++++++++++++++++ + 47 files changed, 166 insertions(+), 363 deletions(-) + +diff --git a/tests/destructive/metadata-regeneration b/tests/destructive/metadata-regeneration +index b81e7af32..36b130d17 100755 +--- a/tests/destructive/metadata-regeneration ++++ b/tests/destructive/metadata-regeneration +@@ -185,19 +185,13 @@ function test_ust_streaming () + rm -f ${file_sync_before_last} + } + +-if [ "$(id -u)" == "0" ]; then +- isroot=1 +-else +- isroot=0 +-fi +- + if ! destructive_tests_enabled ; then + echo 'You need to set the LTTNG_ENABLE_DESTRUCTIVE_TESTS to "will-break-my-system" as argument to run this test' + echo 'Moreover, please make sure that ntp is not running while executing this test' + exit 0 + fi + +-skip $isroot "Root access is needed. Skipping all tests." $NUM_TESTS || ++check_skip_kernel_test $NUM_TESTS "Skipping all tests." || + { + start_lttng_relayd "-o $TRACE_PATH" + start_lttng_sessiond +diff --git a/tests/perf/test_perf_raw.in b/tests/perf/test_perf_raw.in +index f293ccd71..d35529a87 100644 +--- a/tests/perf/test_perf_raw.in ++++ b/tests/perf/test_perf_raw.in +@@ -137,12 +137,6 @@ function test_kernel_raw() + rm -rf $TRACE_PATH + } + +-if [ "$(id -u)" == "0" ]; then +- isroot=1 +-else +- isroot=0 +-fi +- + # MUST set TESTDIR before calling those functions + plan_tests $NUM_TESTS + +@@ -154,7 +148,7 @@ have_libpfm + + test_ust_raw + +-skip $isroot "Root access is needed for kernel testing, skipping." 9 || ++check_skip_kernel_test 9 || + { + modprobe lttng-test + test_kernel_raw +diff --git a/tests/regression/kernel/test_all_events b/tests/regression/kernel/test_all_events +index 2e20888df..044f9b65f 100755 +--- a/tests/regression/kernel/test_all_events ++++ b/tests/regression/kernel/test_all_events +@@ -43,13 +43,7 @@ plan_tests $NUM_TESTS + + print_test_banner "$TEST_DESC" + +-if [ "$(id -u)" == "0" ]; then +- isroot=1 +-else +- isroot=0 +-fi +- +-skip $isroot "Root access is needed. Skipping all tests." $NUM_TESTS || ++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." || + { + validate_lttng_modules_present + start_lttng_sessiond +diff --git a/tests/regression/kernel/test_callstack b/tests/regression/kernel/test_callstack +index a4477fd7c..d8d6b5e0f 100755 +--- a/tests/regression/kernel/test_callstack ++++ b/tests/regression/kernel/test_callstack +@@ -134,13 +134,7 @@ plan_tests $NUM_TESTS + + print_test_banner "$TEST_DESC" + +-if [ "$(id -u)" == "0" ]; then +- isroot=1 +-else +- isroot=0 +-fi +- +-skip $isroot "Root access is needed. Skipping all tests." "$NUM_TESTS" || ++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." || + { + validate_lttng_modules_present + start_lttng_sessiond +diff --git a/tests/regression/kernel/test_channel b/tests/regression/kernel/test_channel +index 9cc74c4e8..4c377bd2a 100755 +--- a/tests/regression/kernel/test_channel ++++ b/tests/regression/kernel/test_channel +@@ -47,13 +47,7 @@ function test_channel_buffer_too_large() + plan_tests $NUM_TESTS + print_test_banner "$TEST_DESC" + +-if [ "$(id -u)" == "0" ]; then +- isroot=1 +-else +- isroot=0 +-fi +- +-skip $isroot "Root access is needed. Skipping all tests." $NUM_TESTS || ++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." || + { + start_lttng_sessiond + +diff --git a/tests/regression/kernel/test_clock_override b/tests/regression/kernel/test_clock_override +index 72892898b..48a3f926a 100755 +--- a/tests/regression/kernel/test_clock_override ++++ b/tests/regression/kernel/test_clock_override +@@ -172,13 +172,7 @@ TESTS=( + TEST_COUNT=${#TESTS[@]} + i=0 + +-if [ "$(id -u)" == "0" ]; then +- isroot=1 +-else +- isroot=0 +-fi +- +-skip $isroot "Root access is needed. Skipping all tests." $NUM_TESTS || ++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." || + { + validate_lttng_modules_present + trap signal_cleanup SIGTERM SIGINT +diff --git a/tests/regression/kernel/test_event_basic b/tests/regression/kernel/test_event_basic +index ac9ec0549..387e2f733 100755 +--- a/tests/regression/kernel/test_event_basic ++++ b/tests/regression/kernel/test_event_basic +@@ -73,13 +73,7 @@ plan_tests $NUM_TESTS + + print_test_banner "$TEST_DESC" + +-if [ "$(id -u)" == "0" ]; then +- isroot=1 +-else +- isroot=0 +-fi +- +-skip $isroot "Root access is needed. Skipping all tests." $NUM_TESTS || ++check_skip_kernel_test $NUM_TESTS "Skipping all tests." || + { + validate_lttng_modules_present + start_lttng_sessiond +diff --git a/tests/regression/kernel/test_kernel_function b/tests/regression/kernel/test_kernel_function +index b1d5491fc..ea16cdeef 100755 +--- a/tests/regression/kernel/test_kernel_function ++++ b/tests/regression/kernel/test_kernel_function +@@ -43,13 +43,7 @@ plan_tests $NUM_TESTS + + print_test_banner "$TEST_DESC" + +-if [ "$(id -u)" == "0" ]; then +- isroot=1 +-else +- isroot=0 +-fi +- +-skip $isroot "Root access is needed. Skipping all tests." $NUM_TESTS || ++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." || + { + start_lttng_sessiond_notap + validate_lttng_modules_present +diff --git a/tests/regression/kernel/test_lttng_logger b/tests/regression/kernel/test_lttng_logger +index b8f7ded82..00eaae823 100755 +--- a/tests/regression/kernel/test_lttng_logger ++++ b/tests/regression/kernel/test_lttng_logger +@@ -110,13 +110,7 @@ plan_tests $NUM_TESTS + + print_test_banner "$TEST_DESC" + +-if [ "$(id -u)" == "0" ]; then +- isroot=1 +-else +- isroot=0 +-fi +- +-skip $isroot "Root access is needed. Skipping all tests." $NUM_TESTS || ++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." || + { + validate_lttng_modules_present + start_lttng_sessiond +diff --git a/tests/regression/kernel/test_ns_contexts b/tests/regression/kernel/test_ns_contexts +index 0c8718d78..59e2568f6 100755 +--- a/tests/regression/kernel/test_ns_contexts ++++ b/tests/regression/kernel/test_ns_contexts +@@ -108,13 +108,7 @@ plan_tests $NUM_TESTS + print_test_banner "$TEST_DESC" + + +-isroot=0 +-if [ "$(id -u)" == "0" ]; then +- isroot=1 +-fi +- +-skip $isroot "Root access is needed. Skipping all tests." "$NUM_TESTS" && exit 0 +- ++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." && exit 0 + + system_has_ns=0 + if [ -d "/proc/$$/ns" ]; then +diff --git a/tests/regression/kernel/test_ns_contexts_change b/tests/regression/kernel/test_ns_contexts_change +index 42a61276b..3f5e4eeab 100755 +--- a/tests/regression/kernel/test_ns_contexts_change ++++ b/tests/regression/kernel/test_ns_contexts_change +@@ -162,14 +162,7 @@ plan_tests $NUM_TESTS + + print_test_banner "$TEST_DESC" + +- +-isroot=0 +-if [ "$(id -u)" == "0" ]; then +- isroot=1 +-fi +- +-skip $isroot "Root access is needed. Skipping all tests." "$NUM_TESTS" && exit 0 +- ++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." && exit 0 + + system_has_ns=0 + if [ -d "/proc/$$/ns" ]; then +diff --git a/tests/regression/kernel/test_rotation_destroy_flush b/tests/regression/kernel/test_rotation_destroy_flush +index cb773d7df..0af514b49 100755 +--- a/tests/regression/kernel/test_rotation_destroy_flush ++++ b/tests/regression/kernel/test_rotation_destroy_flush +@@ -120,13 +120,7 @@ TESTS=( + TEST_COUNT=${#TESTS[@]} + i=0 + +-if [ "$(id -u)" == "0" ]; then +- isroot=1 +-else +- isroot=0 +-fi +- +-skip $isroot "Root access is needed. Skipping all tests." $NUM_TESTS || ++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." || + { + validate_lttng_modules_present + trap signal_cleanup SIGTERM SIGINT +diff --git a/tests/regression/kernel/test_select_poll_epoll b/tests/regression/kernel/test_select_poll_epoll +index d8245a0e7..20f0ef0ae 100755 +--- a/tests/regression/kernel/test_select_poll_epoll ++++ b/tests/regression/kernel/test_select_poll_epoll +@@ -374,13 +374,7 @@ if test $? != 0; then + exit 0 + fi + +-if [ "$(id -u)" == "0" ]; then +- isroot=1 +-else +- isroot=0 +-fi +- +-skip $isroot "Root access is needed. Skipping all tests." $NUM_TESTS || ++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." || + { + validate_lttng_modules_present + +diff --git a/tests/regression/kernel/test_syscall b/tests/regression/kernel/test_syscall +index 401a18a8d..219d94703 100755 +--- a/tests/regression/kernel/test_syscall ++++ b/tests/regression/kernel/test_syscall +@@ -664,13 +664,7 @@ plan_tests $NUM_TESTS + + print_test_banner "$TEST_DESC" + +-if [ "$(id -u)" == "0" ]; then +- isroot=1 +-else +- isroot=0 +-fi +- +-skip $isroot "Root access is needed. Skipping all tests." $NUM_TESTS || ++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." || + { + validate_lttng_modules_present + start_lttng_sessiond +diff --git a/tests/regression/kernel/test_userspace_probe b/tests/regression/kernel/test_userspace_probe +index 1091ee65e..5d984d666 100755 +--- a/tests/regression/kernel/test_userspace_probe ++++ b/tests/regression/kernel/test_userspace_probe +@@ -815,13 +815,7 @@ fi + plan_tests $NUM_TESTS + print_test_banner "$TEST_DESC" + +-if [ "$(id -u)" == "0" ]; then +- isroot=1 +-else +- isroot=0 +-fi +- +-skip $isroot "Root access is needed. Skipping all tests." $NUM_TESTS || ++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." || + { + validate_lttng_modules_present + start_lttng_sessiond +diff --git a/tests/regression/tools/clear/test_kernel b/tests/regression/tools/clear/test_kernel +index 06fb1c368..48250a742 100755 +--- a/tests/regression/tools/clear/test_kernel ++++ b/tests/regression/tools/clear/test_kernel +@@ -536,12 +536,6 @@ plan_tests $NUM_TESTS + + print_test_banner "$TEST_DESC" + +-if [ "$(id -u)" == "0" ]; then +- isroot=1 +-else +- isroot=0 +-fi +- + streaming_tests=(test_kernel_streaming + test_kernel_streaming_rotate_clear + test_kernel_streaming_clear_rotate +@@ -563,7 +557,7 @@ snapshot_tests=(test_kernel_streaming_snapshot + test_kernel_local_snapshot + ) + +-skip $isroot "Root access is needed. Skipping all kernel streaming tests." $NUM_TESTS || ++check_skip_kernel_test "$NUM_TESTS" "Skipping kernel streaming tests." || + { + trap signal_cleanup SIGTERM SIGINT + +diff --git a/tests/regression/tools/filtering/test_invalid_filter b/tests/regression/tools/filtering/test_invalid_filter +index 7d9e524d9..8435e5546 100755 +--- a/tests/regression/tools/filtering/test_invalid_filter ++++ b/tests/regression/tools/filtering/test_invalid_filter +@@ -168,13 +168,7 @@ done + + test_bytecode_limit -u + +-if [ "$(id -u)" == "0" ]; then +- isroot=1 +-else +- isroot=0 +-fi +- +-skip $isroot "Root access is needed. Skipping all kernel invalid filter tests." $NUM_KERNEL_TESTS || ++check_skip_kernel_test "$NUM_KERNEL_TESTS" "Skipping kernel invalid filter tests." || + { + diag "Test kernel filters" + i=0 +diff --git a/tests/regression/tools/filtering/test_unsupported_op b/tests/regression/tools/filtering/test_unsupported_op +index 299247a3c..91eb86d21 100755 +--- a/tests/regression/tools/filtering/test_unsupported_op ++++ b/tests/regression/tools/filtering/test_unsupported_op +@@ -103,13 +103,7 @@ while [ "$i" -lt "$OP_COUNT" ]; do + let "i++" + done + +-if [ "$(id -u)" == "0" ]; then +- isroot=1 +-else +- isroot=0 +-fi +- +-skip $isroot "Root access is needed. Skipping all kernel unsupported filter operations tests." $NUM_KERNEL_TESTS || ++check_skip_kernel_test $NUM_KERNEL_TESTS "Skipping kernel unsupported filter operations tests." || + { + diag "Test kernel unsupported filter operations" + +diff --git a/tests/regression/tools/filtering/test_valid_filter b/tests/regression/tools/filtering/test_valid_filter +index e76ffa25f..1ba7c79bb 100755 +--- a/tests/regression/tools/filtering/test_valid_filter ++++ b/tests/regression/tools/filtering/test_valid_filter +@@ -1452,13 +1452,7 @@ KERNEL_FILTERS=( + + IFS=$OLDIFS + +-if [ "$(id -u)" == "0" ]; then +- isroot=1 +-else +- isroot=0 +-fi +- +-skip $isroot "Root access is needed. Skipping all kernel valid filter tests." $NUM_KERNEL_TESTS || ++check_skip_kernel_test "$NUM_KERNEL_TESTS" "Skipping kernel valid filter tests." || + { + diag "Test kernel valid filters" + +diff --git a/tests/regression/tools/health/test_health.sh b/tests/regression/tools/health/test_health.sh +index b3d6419d2..68716e6b9 100644 +--- a/tests/regression/tools/health/test_health.sh ++++ b/tests/regression/tools/health/test_health.sh +@@ -82,7 +82,7 @@ function test_health + diag "With UST consumer daemons" + enable_ust_lttng_event_ok $SESSION_NAME $UST_EVENT_NAME $CHANNEL_NAME + +- skip $isroot "Root access is needed. Skipping kernel consumer health check test." "1" || ++ check_skip_kernel_test "1" "Skipping kernel consumer health check test." || + { + diag "With kernel consumer daemon" + lttng_enable_kernel_event $SESSION_NAME $KERNEL_EVENT_NAME $CHANNEL_NAME +@@ -113,7 +113,7 @@ function test_health + + + if [ ${test_needs_root} -eq 1 ]; then +- skip ${isroot} "Root access needed for test \"${test_thread_name}\"." "1" || ++ check_skip_kernel_test "1" "Skipping \"${test_thread_name}\"." || + { + report_errors "${test_thread_error_string}" "${test_relayd}" + } +@@ -276,12 +276,6 @@ STDERR_PATH=$(mktemp --tmpdir tmp.test_health_stderr_path.XXXXXX) + TRACE_PATH=$(mktemp --tmpdir -d tmp.test_health_trace_path.XXXXXX) + HEALTH_PATH=$(mktemp --tmpdir -d tmp.test_health_trace_path.XXXXXX) + +-if [ "$(id -u)" == "0" ]; then +- isroot=1 +-else +- isroot=0 +-fi +- + THREAD_COUNT=${#THREAD[@]} + i=0 + while [ "$i" -lt "$THREAD_COUNT" ]; do +diff --git a/tests/regression/tools/health/test_thread_ok b/tests/regression/tools/health/test_thread_ok +index e84adb611..e5e23543f 100755 +--- a/tests/regression/tools/health/test_thread_ok ++++ b/tests/regression/tools/health/test_thread_ok +@@ -67,7 +67,7 @@ function test_thread_ok + $CURDIR/$HEALTH_CHECK_BIN > ${STDOUT_PATH} 2> ${STDERR_PATH} + report_errors + +- skip $isroot "Root access is needed. Skipping kernel consumer health check test." "5" || ++ check_skip_kernel_test "5" "Skipping kernel consumer health check test." || + { + diag "With kernel consumer daemon" + create_lttng_session_no_output $SESSION_NAME +@@ -115,13 +115,6 @@ STDERR_PATH=$(mktemp --tmpdir tmp.test_thread_ok_stderr_path.XXXXXX) + TRACE_PATH=$(mktemp --tmpdir -d tmp.test_thread_ok_trace_path.XXXXXX) + HEALTH_PATH=$(mktemp --tmpdir -d tmp.test_thread_ok_trace_path.XXXXXX) + +-# The manage kernel thread is only spawned if we are root +-if [ "$(id -u)" == "0" ]; then +- isroot=1 +-else +- isroot=0 +-fi +- + test_thread_ok + + rm -rf ${HEALTH_PATH} +diff --git a/tests/regression/tools/live/test_kernel b/tests/regression/tools/live/test_kernel +index b622b5214..fdaa09f0d 100755 +--- a/tests/regression/tools/live/test_kernel ++++ b/tests/regression/tools/live/test_kernel +@@ -39,13 +39,11 @@ function clean_live_tracing() + rm -rf $TRACE_PATH + } + +-# Need root access for kernel tracing. +-if [ "$(id -u)" == "0" ]; then +- isroot=1 +-else +- plan_skip_all "Root access is needed. Skipping all tests." ++check_skip_kernel_test && ++{ ++ plan_skip_all "Skipping all tests." + exit 0 +-fi ++} + + modprobe lttng-test + +diff --git a/tests/regression/tools/live/test_lttng_kernel b/tests/regression/tools/live/test_lttng_kernel +index a23d9373a..1b933648f 100755 +--- a/tests/regression/tools/live/test_lttng_kernel ++++ b/tests/regression/tools/live/test_lttng_kernel +@@ -45,13 +45,7 @@ function clean_live_tracing() + } + + # Need root access for kernel tracing. +-if [ "$(id -u)" == "0" ]; then +- isroot=1 +-else +- isroot=0 +-fi +- +-skip $isroot "Root access is needed. Skipping all tests." $NUM_TESTS || ++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." || + { + modprobe lttng-test + +diff --git a/tests/regression/tools/metadata/test_kernel b/tests/regression/tools/metadata/test_kernel +index 57cace6ea..26e95d93a 100755 +--- a/tests/regression/tools/metadata/test_kernel ++++ b/tests/regression/tools/metadata/test_kernel +@@ -91,13 +91,7 @@ plan_tests $NUM_TESTS + print_test_banner "$TEST_DESC" + + +-if [ "$(id -u)" == "0" ]; then +- isroot=1 +-else +- isroot=0 +-fi +- +-skip $isroot "Root access is needed. Skipping all kernel metadata tests." $NUM_TESTS || ++check_skip_kernel_test "$NUM_TESTS" "Skipping kernel metadata tests." || + { + validate_lttng_modules_present + modprobe lttng-test +diff --git a/tests/regression/tools/notification/test_notification_kernel_buffer_usage b/tests/regression/tools/notification/test_notification_kernel_buffer_usage +index 76e69a77e..8fdaabb3e 100755 +--- a/tests/regression/tools/notification/test_notification_kernel_buffer_usage ++++ b/tests/regression/tools/notification/test_notification_kernel_buffer_usage +@@ -60,29 +60,27 @@ function test_buffer_usage_notification + wait $APP_PID 2> /dev/null + } + +-if [ "$(id -u)" == "0" ]; then +- +- validate_lttng_modules_present +- ++check_skip_kernel_test && ++{ ++ plan_skip_all "Skipping all tests." ++ rm -rf "$TEST_TMPDIR" ++ exit 0 ++} + +- modprobe lttng-test ++validate_lttng_modules_present + +- # Used on sessiond launch. +- LTTNG_SESSIOND_ENV_VARS="LTTNG_TESTPOINT_ENABLE=1 \ +- CONSUMER_PAUSE_PIPE_PATH=${TESTPOINT_PIPE_PATH} \ +- LD_PRELOAD=${TESTPOINT}" +- start_lttng_sessiond_notap ++modprobe lttng-test + +- test_buffer_usage_notification ++# Used on sessiond launch. ++LTTNG_SESSIOND_ENV_VARS="LTTNG_TESTPOINT_ENABLE=1 \ ++ CONSUMER_PAUSE_PIPE_PATH=${TESTPOINT_PIPE_PATH} \ ++ LD_PRELOAD=${TESTPOINT}" ++start_lttng_sessiond_notap + +- stop_lttng_sessiond_notap +- rmmod lttng-test ++test_buffer_usage_notification + +- rm -rf "${consumerd_pipe[@]}" 2> /dev/null +-else +- # Kernel tests are skipped. +- plan_tests $NUM_TESTS +- skip 0 "Root access is needed. Skipping all kernel notification tests." $NUM_TESTS +-fi ++stop_lttng_sessiond_notap ++rmmod lttng-test + ++rm -rf "${consumerd_pipe[@]}" 2> /dev/null + rm -rf "$TEST_TMPDIR" +diff --git a/tests/regression/tools/notification/test_notification_kernel_capture b/tests/regression/tools/notification/test_notification_kernel_capture +index 88f123d3d..0f8a2bc6f 100755 +--- a/tests/regression/tools/notification/test_notification_kernel_capture ++++ b/tests/regression/tools/notification/test_notification_kernel_capture +@@ -31,22 +31,21 @@ function test_basic_error_path + } + + +-if [ "$(id -u)" == "0" ]; then +- validate_lttng_modules_present ++check_skip_kernel_test && ++{ ++ plan_skip_all "Skipping all tests." ++ exit 0 ++} + +- modprobe lttng-test ++validate_lttng_modules_present + +- start_lttng_sessiond_notap ++modprobe lttng-test + +- test_basic_error_path ++start_lttng_sessiond_notap + +- stop_lttng_sessiond_notap +- rmmod lttng-test ++test_basic_error_path + +-else +- # Kernel tests are skipped. +- plan_tests $NUM_TESTS +- skip 0 "Root access is needed. Skipping all kernel notification tests." $NUM_TESTS +-fi ++stop_lttng_sessiond_notap ++rmmod lttng-test + + rm -f "$TESTAPP_STATE_PATH" +diff --git a/tests/regression/tools/notification/test_notification_kernel_error b/tests/regression/tools/notification/test_notification_kernel_error +index 80fe6e5b5..b757ec2b4 100755 +--- a/tests/regression/tools/notification/test_notification_kernel_error ++++ b/tests/regression/tools/notification/test_notification_kernel_error +@@ -30,23 +30,22 @@ function test_basic_error_path + wait $APP_PID 2> /dev/null + } + ++check_skip_kernel_test && ++{ ++ plan_skip_all "Skipping all tests." ++ exit 0 ++} + +-if [ "$(id -u)" == "0" ]; then +- validate_lttng_modules_present ++validate_lttng_modules_present + +- modprobe lttng-test ++modprobe lttng-test + +- start_lttng_sessiond_notap ++start_lttng_sessiond_notap + +- test_basic_error_path ++test_basic_error_path + +- stop_lttng_sessiond_notap +- rmmod lttng-test ++stop_lttng_sessiond_notap ++rmmod lttng-test + +-else +- # Kernel tests are skipped. +- plan_tests $NUM_TESTS +- skip 0 "Root access is needed. Skipping all kernel notification tests." $NUM_TESTS +-fi + + rm -f "$TESTAPP_STATE_PATH" +diff --git a/tests/regression/tools/notification/test_notification_kernel_instrumentation b/tests/regression/tools/notification/test_notification_kernel_instrumentation +index 90545a541..705f7703d 100755 +--- a/tests/regression/tools/notification/test_notification_kernel_instrumentation ++++ b/tests/regression/tools/notification/test_notification_kernel_instrumentation +@@ -28,22 +28,21 @@ function test_kernel_instrumentation_notification + wait $APP_PID 2> /dev/null + } + +-if [ "$(id -u)" == "0" ]; then +- validate_lttng_modules_present ++check_skip_kernel_test && ++{ ++ plan_skip_all "Skipping all tests." ++ exit 0 ++} + +- modprobe lttng-test ++validate_lttng_modules_present + +- start_lttng_sessiond_notap ++modprobe lttng-test + +- test_kernel_instrumentation_notification ++start_lttng_sessiond_notap + +- stop_lttng_sessiond_notap +- rmmod lttng-test ++test_kernel_instrumentation_notification + +-else +- # Kernel tests are skipped. +- plan_tests $NUM_TESTS +- skip 0 "Root access is needed. Skipping all kernel notification tests." $NUM_TESTS +-fi ++stop_lttng_sessiond_notap ++rmmod lttng-test + + rm -f "$TESTAPP_STATE_PATH" +diff --git a/tests/regression/tools/notification/test_notification_kernel_syscall b/tests/regression/tools/notification/test_notification_kernel_syscall +index d273cb55d..7fa235388 100755 +--- a/tests/regression/tools/notification/test_notification_kernel_syscall ++++ b/tests/regression/tools/notification/test_notification_kernel_syscall +@@ -31,19 +31,18 @@ function test_kernel_syscall_notification + wait $APP_PID 2> /dev/null + } + +-if [ "$(id -u)" == "0" ]; then +- validate_lttng_modules_present ++check_skip_kernel_test && ++{ ++ plan_skip_all "Skipping all tests." ++ exit 0 ++} + +- start_lttng_sessiond_notap ++validate_lttng_modules_present + +- test_kernel_syscall_notification ++start_lttng_sessiond_notap + +- stop_lttng_sessiond_notap ++test_kernel_syscall_notification + +-else +- # Kernel tests are skipped. +- plan_tests $NUM_TESTS +- skip 0 "Root access is needed. Skipping all kernel notification tests." $NUM_TESTS +-fi ++stop_lttng_sessiond_notap + + rm -f "$TESTAPP_STATE_PATH" +diff --git a/tests/regression/tools/notification/test_notification_kernel_userspace_probe b/tests/regression/tools/notification/test_notification_kernel_userspace_probe +index 8ef8d708d..abddd9be7 100755 +--- a/tests/regression/tools/notification/test_notification_kernel_userspace_probe ++++ b/tests/regression/tools/notification/test_notification_kernel_userspace_probe +@@ -29,18 +29,18 @@ function test_kernel_userspace_probe_notification + wait $APP_PID 2> /dev/null + } + +-if [ "$(id -u)" == "0" ]; then +- validate_lttng_modules_present ++check_skip_kernel_test && ++{ ++ plan_skip_all "Skipping all tests." ++ exit 0 ++} ++ ++validate_lttng_modules_present + +- start_lttng_sessiond_notap ++start_lttng_sessiond_notap + +- test_kernel_userspace_probe_notification ++test_kernel_userspace_probe_notification + +- stop_lttng_sessiond_notap +-else +- # Kernel tests are skipped. +- plan_tests $NUM_TESTS +- skip 0 "Root access is needed. Skipping all kernel notification tests." $NUM_TESTS +-fi ++stop_lttng_sessiond_notap + + rm -f "$TESTAPP_STATE_PATH" +diff --git a/tests/regression/tools/notification/test_notification_multi_app b/tests/regression/tools/notification/test_notification_multi_app +index d8b639225..61891b56f 100755 +--- a/tests/regression/tools/notification/test_notification_multi_app ++++ b/tests/regression/tools/notification/test_notification_multi_app +@@ -411,22 +411,18 @@ function test_on_register_evaluation () + rm -rf "$output_dir" + } + +- + TESTS=( + test_multi_app_ust + test_on_register_evaluation_ust + ) + +-if [ "$(id -u)" == "0" ]; then ++check_skip_kernel_test "$NUM_TEST_KERNEL" "Skipping kernel multi-app notification tests." || { + validate_lttng_modules_present + TESTS+=( +- test_multi_app_kernel +- test_on_register_evaluation_kernel +-) +-else +- skip 0 "Root access is needed. Skipping all kernel multi-app notification tests." $NUM_TEST_KERNEL +-fi +- ++ test_multi_app_kernel ++ test_on_register_evaluation_kernel ++ ) ++} + + for fct_test in ${TESTS[@]}; + do +diff --git a/tests/regression/tools/notification/test_notification_notifier_discarded_count b/tests/regression/tools/notification/test_notification_notifier_discarded_count +index c9235393e..a6c31a728 100755 +--- a/tests/regression/tools/notification/test_notification_notifier_discarded_count ++++ b/tests/regression/tools/notification/test_notification_notifier_discarded_count +@@ -391,7 +391,8 @@ function test_ust_notifier_discarded_regardless_trigger_owner + test_ust_notifier_discarded_count + test_ust_notifier_discarded_count_max_bucket + +-if [ "$(id -u)" == "0" ]; then ++check_skip_kernel_test "$KERNEL_NUM_TESTS" "Skipping kernel notification tests." || ++{ + + validate_lttng_modules_present + +@@ -413,9 +414,7 @@ if [ "$(id -u)" == "0" ]; then + modprobe --remove lttng-test + + rm -rf "${sessiond_pipe[@]}" 2> /dev/null +-else +- # Kernel tests are skipped. +- skip 0 "Root access is needed. Skipping all kernel notification tests." $KERNEL_NUM_TESTS +-fi ++ ++} + + rm -rf "$TEST_TMPDIR" +diff --git a/tests/regression/tools/regen-metadata/test_kernel b/tests/regression/tools/regen-metadata/test_kernel +index 49eea32a7..555a4e2ce 100755 +--- a/tests/regression/tools/regen-metadata/test_kernel ++++ b/tests/regression/tools/regen-metadata/test_kernel +@@ -99,13 +99,7 @@ plan_tests $NUM_TESTS + + print_test_banner "$TEST_DESC" + +-if [ "$(id -u)" == "0" ]; then +- isroot=1 +-else +- isroot=0 +-fi +- +-skip $isroot "Root access is needed. Skipping all kernel streaming tests." $NUM_TESTS || ++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." || + { + validate_lttng_modules_present + +diff --git a/tests/regression/tools/regen-statedump/test_kernel b/tests/regression/tools/regen-statedump/test_kernel +index 8a261355d..bbbac3942 100755 +--- a/tests/regression/tools/regen-statedump/test_kernel ++++ b/tests/regression/tools/regen-statedump/test_kernel +@@ -39,13 +39,7 @@ plan_tests $NUM_TESTS + + print_test_banner "$TEST_DESC" + +-if [ "$(id -u)" == "0" ]; then +- isroot=1 +-else +- isroot=0 +-fi +- +-skip $isroot "Root access is needed. Skipping all kernel streaming tests." $NUM_TESTS || ++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." || + { + validate_lttng_modules_present + start_lttng_sessiond +diff --git a/tests/regression/tools/rotation/test_kernel b/tests/regression/tools/rotation/test_kernel +index f5f1f5553..efe3fd359 100755 +--- a/tests/regression/tools/rotation/test_kernel ++++ b/tests/regression/tools/rotation/test_kernel +@@ -82,13 +82,7 @@ plan_tests $NUM_TESTS + + print_test_banner "$TEST_DESC" + +-if [ "$(id -u)" == "0" ]; then +- isroot=1 +-else +- isroot=0 +-fi +- +-skip $isroot "Root access is needed. Skipping all kernel streaming tests." $NUM_TESTS || ++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." || + { + validate_lttng_modules_present + +diff --git a/tests/regression/tools/snapshots/test_kernel b/tests/regression/tools/snapshots/test_kernel +index abb243563..d91876867 100755 +--- a/tests/regression/tools/snapshots/test_kernel ++++ b/tests/regression/tools/snapshots/test_kernel +@@ -217,13 +217,7 @@ plan_tests $NUM_TESTS + + print_test_banner "$TEST_DESC" + +-if [ "$(id -u)" == "0" ]; then +- isroot=1 +-else +- isroot=0 +-fi +- +-skip $isroot "Root access is needed. Skipping all kernel snapshot tests" $NUM_TESTS || ++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." || + { + + validate_lttng_modules_present +diff --git a/tests/regression/tools/snapshots/test_kernel_streaming b/tests/regression/tools/snapshots/test_kernel_streaming +index 0c92dc710..dd965afee 100755 +--- a/tests/regression/tools/snapshots/test_kernel_streaming ++++ b/tests/regression/tools/snapshots/test_kernel_streaming +@@ -145,13 +145,7 @@ plan_tests $NUM_TESTS + + print_test_banner "$TEST_DESC" + +-if [ "$(id -u)" == "0" ]; then +- isroot=1 +-else +- isroot=0 +-fi +- +-skip $isroot "Root access is needed. Skipping all kernel streaming tests" $NUM_TESTS || ++check_skip_kernel_test $NUM_TESTS "Skipping all tests." || + { + validate_lttng_modules_present + +diff --git a/tests/regression/tools/streaming/test_high_throughput_limits b/tests/regression/tools/streaming/test_high_throughput_limits +index 2b9e3ad39..c55d51098 100755 +--- a/tests/regression/tools/streaming/test_high_throughput_limits ++++ b/tests/regression/tools/streaming/test_high_throughput_limits +@@ -170,13 +170,7 @@ plan_tests $NUM_TESTS + + print_test_banner "$TEST_DESC" + +-if [ "$(id -u)" == "0" ]; then +- isroot=1 +-else +- isroot=0 +-fi +- +-skip $isroot "Root access is needed to set bandwith limits. Skipping all tests." $NUM_TESTS || ++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." || + { + + # Catch sigint and try to cleanup limits +diff --git a/tests/regression/tools/streaming/test_kernel b/tests/regression/tools/streaming/test_kernel +index 33334229f..113eea7bf 100755 +--- a/tests/regression/tools/streaming/test_kernel ++++ b/tests/regression/tools/streaming/test_kernel +@@ -47,13 +47,7 @@ plan_tests $NUM_TESTS + + print_test_banner "$TEST_DESC" + +-if [ "$(id -u)" == "0" ]; then +- isroot=1 +-else +- isroot=0 +-fi +- +-skip $isroot "Root access is needed. Skipping all kernel streaming tests." $NUM_TESTS || ++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." || + { + validate_lttng_modules_present + +diff --git a/tests/regression/tools/tracker/test_event_tracker b/tests/regression/tools/tracker/test_event_tracker +index cc0f698d2..de0c79d36 100755 +--- a/tests/regression/tools/tracker/test_event_tracker ++++ b/tests/regression/tools/tracker/test_event_tracker +@@ -466,13 +466,7 @@ test_event_track_untrack ust 0 "${EVENT_NAME}" "--pid --all" # backward compat + test_event_tracker ust 1 "${EVENT_NAME}" "--pid --all" # backward compat + test_event_pid_tracker ust 1 "${EVENT_NAME}" + +-if [ "$(id -u)" == "0" ]; then +- isroot=1 +-else +- isroot=0 +-fi +- +-skip $isroot "Root access is needed. Skipping all kernel tracker tests." $NUM_KERNEL_TESTS || ++check_skip_kernel_test "$NUM_KERNEL_TESTS" "Skipping kernel tracker tests." || + { + diag "Test kernel tracker" + +diff --git a/tests/regression/tools/trigger/test_add_trigger_cli b/tests/regression/tools/trigger/test_add_trigger_cli +index 98ecf6272..d1763aa2e 100755 +--- a/tests/regression/tools/trigger/test_add_trigger_cli ++++ b/tests/regression/tools/trigger/test_add_trigger_cli +@@ -34,12 +34,6 @@ tmp_stdout=$(mktemp --tmpdir -t test_parse_cli_trigger_stdout.XXXXXX) + tmp_stderr=$(mktemp --tmpdir -t test_parse_cli_trigger_stderr.XXXXXX) + uprobe_elf_binary="${TESTDIR}/utils/testapp/userspace-probe-elf-binary/.libs/userspace-probe-elf-binary" + +-if [ "$(id -u)" == "0" ]; then +- ist_root=1 +-else +- ist_root=0 +-fi +- + function test_success () + { + local test_name="$1" +@@ -223,7 +217,7 @@ test_success "--exclude-name two" "trigger5" \ + --condition event-rule-matches --type=user --name='jean-*' --exclude-name jean-chretien -x jean-charest \ + --action notify + +-skip $ist_root "non-root user: skipping kprobe tests" 18 || { ++check_skip_kernel_test 18 "Skipping kprobe tests." || { + i=0 + + for type in kprobe kernel:kprobe; do +@@ -262,7 +256,7 @@ skip $ist_root "non-root user: skipping kprobe tests" 18 || { + done + } + +-skip $ist_root "non-root user: skipping uprobe tests" 6 || { ++check_skip_kernel_test 6 "Skipping uprobe tests." || { + test_success "--condition event-rule-matches uprobe" "uprobe-trigger-0" \ + --name="uprobe-trigger-0" \ + --condition event-rule-matches --type=kernel:uprobe --location=${uprobe_elf_binary}:test_function --event-name=ma-probe \ +@@ -274,7 +268,7 @@ skip $ist_root "non-root user: skipping uprobe tests" 6 || { + --action notify + } + +-skip $ist_root "non-root user: skipping syscall tests" 30 || { ++check_skip_kernel_test 30 "Skipping syscall tests." || { + test_success "--condition event-rule-matches one syscall" "syscall-trigger-0" \ + --name="syscall-trigger-0" \ + --condition event-rule-matches --type=syscall --name=open \ +diff --git a/tests/regression/tools/trigger/test_list_triggers_cli b/tests/regression/tools/trigger/test_list_triggers_cli +index a04018013..02c3de3e9 100755 +--- a/tests/regression/tools/trigger/test_list_triggers_cli ++++ b/tests/regression/tools/trigger/test_list_triggers_cli +@@ -36,22 +36,12 @@ uprobe_sdt_binary=$(realpath "${TESTDIR}/utils/testapp/userspace-probe-sdt-binar + register_some_triggers_bin=$(realpath "${CURDIR}/utils/register-some-triggers") + + uid=$(id --user) +-gid=$(id --group) + +-if [ "$uid" == "0" ]; then +- ist_root=1 +- ls "$uprobe_sdt_binary" >/dev/null 2>&1 +- if test $? == 0; then +- hast_sdt_binary=1 +- else +- hast_sdt_binary=0 +- fi +-else +- ist_root=0 +- hast_sdt_binary=0 ++sdt_binary_present=0 ++if [ -f "$uprobe_sdt_binary" ]; then ++ sdt_binary_present=1 + fi + +- + test_top_level_options () + { + diag "Listing top level options" +@@ -2695,10 +2685,12 @@ start_lttng_sessiond_notap + + test_top_level_options + test_event_rule_matches_tracepoint +-skip $ist_root "non-root user: skipping kprobe tests" 13 || test_event_rule_matches_probe +-skip $ist_root "non-root user: skipping uprobe tests" 9 || test_event_rule_matches_userspace_probe_elf +-skip $(($ist_root && $hast_sdt_binary)) "skipping userspace probe SDT tests" 9 || test_event_rule_matches_userspace_probe_sdt +-skip $ist_root "non-root user: skipping syscall tests" 17 || test_event_rule_matches_syscall ++check_skip_kernel_test 48 "Skipping kprobe, uprobe, SDT and syscall tests." || { ++ test_event_rule_matches_probe ++ test_event_rule_matches_userspace_probe_elf ++ skip $sdt_binary_present "No SDT binary. Skipping userspace probe SDT tests" 9 || test_event_rule_matches_userspace_probe_sdt ++ test_event_rule_matches_syscall ++} + test_session_consumed_size_condition + test_buffer_usage_conditions + test_session_rotation_conditions +diff --git a/tests/regression/tools/wildcard/test_event_wildcard b/tests/regression/tools/wildcard/test_event_wildcard +index f69baffc4..14d9bb88a 100755 +--- a/tests/regression/tools/wildcard/test_event_wildcard ++++ b/tests/regression/tools/wildcard/test_event_wildcard +@@ -124,13 +124,7 @@ test_event_wildcard ust 1 'tp*tptest' + test_event_wildcard ust 1 'tp**tptest' + test_event_wildcard ust 1 'tp*test' + +-if [ "$(id -u)" == "0" ]; then +- isroot=1 +-else +- isroot=0 +-fi +- +-skip $isroot "Root access is needed. Skipping all kernel wildcard tests." $NUM_KERNEL_TESTS || ++check_skip_kernel_test "$NUM_KERNEL_TESTS" "Skipping kernel wildcard tests." || + { + diag "Test kernel wildcards" + +diff --git a/tests/regression/tools/working-directory/test_relayd_working_directory b/tests/regression/tools/working-directory/test_relayd_working_directory +index c7e784cca..6bd1e504a 100755 +--- a/tests/regression/tools/working-directory/test_relayd_working_directory ++++ b/tests/regression/tools/working-directory/test_relayd_working_directory +@@ -145,9 +145,9 @@ function test_relayd_debug_permission() + diag "Test lttng-relayd change working directory on non writable directory" + + if [ "$(id -u)" == "0" ]; then +- is_user=0 ++ is_user=0 + else +- is_user=1 ++ is_user=1 + fi + + skip $is_user "Skipping permission debug output test; operation can't fail as root" 6 || +diff --git a/tests/regression/ust/namespaces/test_ns_contexts_change b/tests/regression/ust/namespaces/test_ns_contexts_change +index 8a4b62ce3..622241f7b 100755 +--- a/tests/regression/ust/namespaces/test_ns_contexts_change ++++ b/tests/regression/ust/namespaces/test_ns_contexts_change +@@ -101,12 +101,7 @@ plan_tests $NUM_TESTS + + print_test_banner "$TEST_DESC" + +-isroot=0 +-if [ "$(id -u)" == "0" ]; then +- isroot=1 +-fi +- +-skip $isroot "Root access is needed. Skipping all tests." "$NUM_TESTS" && exit 0 ++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." && exit 0 + + system_has_ns=0 + if [ -d "/proc/$$/ns" ]; then +diff --git a/tests/regression/ust/test_event_perf b/tests/regression/ust/test_event_perf +index 33aab2981..178959a19 100755 +--- a/tests/regression/ust/test_event_perf ++++ b/tests/regression/ust/test_event_perf +@@ -119,17 +119,11 @@ plan_tests $NUM_TESTS + + print_test_banner "$TEST_DESC" + +-if [ "$(id -u)" == "0" ]; then +- isroot=1 +-else +- isroot=0 +-fi +- + start_lttng_sessiond + + test_parsing_raw + +-skip $isroot "Root access is needed. Skipping UST perf tests." 8 || ++check_skip_kernel_test 8 "Skipping UST perf tests." || + { + test_event_basic + } +diff --git a/tests/utils/utils.sh b/tests/utils/utils.sh +index faa87e783..da0e0569d 100644 +--- a/tests/utils/utils.sh ++++ b/tests/utils/utils.sh +@@ -318,6 +318,41 @@ function conf_proc_count() + echo + } + ++# Usage: ++# check_skip_kernel_test [NB_TESTS] [SKIP_MESSAGE] ++# Return 0 if LTTNG_TOOLS_DISABLE_KERNEL_TESTS was set or the current user is not a root user ++# If NB_TESTS is set, call skip() to skip number of tests. ++# If NB_TESTS is empty, just output a reason with diag. ++# An optional message can be added. ++ ++function check_skip_kernel_test () ++{ ++ local num_tests="$1" ++ local skip_message="$2" ++ ++ # Check for skip test kernel flag ++ if [ "$LTTNG_TOOLS_DISABLE_KERNEL_TESTS" == "1" ]; then ++ if ! test -z "$num_tests"; then ++ skip 0 "LTTNG_TOOLS_DISABLE_KERNEL_TESTS was set.${skip_message+ }${skip_message}" "$num_tests" ++ else ++ diag "LTTNG_TOOLS_DISABLE_KERNEL_TESTS was set.${skip_message+ }${skip_message}" ++ fi ++ return 0 ++ fi ++ ++ # Check if we are running as root ++ if [ "$(id -u)" != "0" ]; then ++ if ! test -z "$num_tests"; then ++ skip 0 "Root access is needed for kernel testing.${skip_message+ }${skip_message}" "$num_tests" ++ else ++ diag "Root access is needed for kernel testing.${skip_message+ }${skip_message}" ++ fi ++ return 0 ++ fi ++ ++ return 1 ++} ++ + # Check if base lttng-modules are present. + # Bail out on failure + function validate_lttng_modules_present () +-- +2.25.1 + diff --git a/meta/recipes-kernel/lttng/lttng-tools/0001-tests-do-not-strip-a-helper-library.patch b/meta/recipes-kernel/lttng/lttng-tools/0001-tests-do-not-strip-a-helper-library.patch new file mode 100644 index 0000000000..2f95889c4b --- /dev/null +++ b/meta/recipes-kernel/lttng/lttng-tools/0001-tests-do-not-strip-a-helper-library.patch @@ -0,0 +1,24 @@ +From 2237748af00467ad8250a7ccd944200f811db69a Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <alex.kanavin@gmail.com> +Date: Thu, 12 Dec 2019 16:52:07 +0100 +Subject: [PATCH] tests: do not strip a helper library + +Upstream-Status: Inappropriate [oe-core specific] +Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> +--- + tests/utils/testapp/userspace-probe-elf-binary/Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tests/utils/testapp/userspace-probe-elf-binary/Makefile.am b/tests/utils/testapp/userspace-probe-elf-binary/Makefile.am +index 836f13e..e19a554 100644 +--- a/tests/utils/testapp/userspace-probe-elf-binary/Makefile.am ++++ b/tests/utils/testapp/userspace-probe-elf-binary/Makefile.am +@@ -14,7 +14,7 @@ userspace_probe_elf_binary_LDADD = libfoo.la + libfoo.strip: libfoo.la + $(OBJCOPY) --strip-all .libs/libfoo.so + +-all-local: libfoo.strip ++all-local: + @if [ x"$(srcdir)" != x"$(builddir)" ]; then \ + for script in $(EXTRA_DIST); do \ + cp -f $(srcdir)/$$script $(builddir); \ diff --git a/meta/recipes-kernel/lttng/lttng-tools/0002-Fix-check-for-lttng-modules-presence-before-testing.patch b/meta/recipes-kernel/lttng/lttng-tools/0002-Fix-check-for-lttng-modules-presence-before-testing.patch deleted file mode 100644 index 784a07940a..0000000000 --- a/meta/recipes-kernel/lttng/lttng-tools/0002-Fix-check-for-lttng-modules-presence-before-testing.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 58e4dcce48b48b68b65bffc0cd51d9e26b44c75d Mon Sep 17 00:00:00 2001 -From: Jonathan Rajotte <jonathan.rajotte-julien@efficios.com> -Date: Wed, 22 May 2019 16:44:54 -0400 -Subject: [PATCH] Fix: check for lttng modules presence before testing - -Upstream-Status: Submitted [https://lists.lttng.org/pipermail/lttng-dev/2019-May/028987.html] - -Signed-off-by: Jonathan Rajotte <jonathan.rajotte-julien@efficios.com> ---- - tests/regression/tools/notification/test_notification_multi_app | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/tests/regression/tools/notification/test_notification_multi_app b/tests/regression/tools/notification/test_notification_multi_app -index 29b0f62..a6baf65 100755 ---- a/tests/regression/tools/notification/test_notification_multi_app -+++ b/tests/regression/tools/notification/test_notification_multi_app -@@ -484,6 +484,7 @@ else - fi - - if [ "$(id -u)" == "0" ]; then -+ validate_lttng_modules_present - TESTS+=( - test_multi_app_kernel - test_on_register_evaluation_kernel diff --git a/meta/recipes-kernel/lttng/lttng-tools/disable-tests.patch b/meta/recipes-kernel/lttng/lttng-tools/disable-tests.patch new file mode 100644 index 0000000000..3a77ea2e43 --- /dev/null +++ b/meta/recipes-kernel/lttng/lttng-tools/disable-tests.patch @@ -0,0 +1,34 @@ +Upstream-Status: Inappropriate [need to root cause the test hangs] + +We keep seeing hangs in the tools/notifications tests on x86 and arm for +a variety of distros. Exclude them for now to work out if this is the +only place we see them and give SWAT/triage a break from the stream +of them. + +https://bugzilla.yoctoproject.org/show_bug.cgi?id=14263 + +Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> + +Index: lttng-tools-2.13.1/tests/regression/Makefile.am +=================================================================== +--- lttng-tools-2.13.1.orig/tests/regression/Makefile.am ++++ lttng-tools-2.13.1/tests/regression/Makefile.am +@@ -29,18 +29,6 @@ TESTS = tools/base-path/test_ust \ + tools/crash/test_crash \ + tools/regen-metadata/test_ust \ + tools/regen-statedump/test_ust \ +- tools/notification/test_notification_ust_error \ +- tools/notification/test_notification_ust_buffer_usage \ +- tools/notification/test_notification_ust_capture \ +- tools/notification/test_notification_ust_event_rule_condition_exclusion \ +- tools/notification/test_notification_kernel_error \ +- tools/notification/test_notification_kernel_buffer_usage \ +- tools/notification/test_notification_kernel_capture \ +- tools/notification/test_notification_kernel_instrumentation \ +- tools/notification/test_notification_kernel_syscall \ +- tools/notification/test_notification_notifier_discarded_count \ +- tools/notification/test_notification_kernel_userspace_probe \ +- tools/notification/test_notification_multi_app \ + tools/rotation/test_ust \ + tools/rotation/test_kernel \ + tools/rotation/test_save_load_mi \ diff --git a/meta/recipes-kernel/lttng/lttng-tools/run-ptest b/meta/recipes-kernel/lttng/lttng-tools/run-ptest index eaa2e7b29d..39d93e2bbf 100755 --- a/meta/recipes-kernel/lttng/lttng-tools/run-ptest +++ b/meta/recipes-kernel/lttng/lttng-tools/run-ptest @@ -1,6 +1,45 @@ #!/bin/sh # Without --ignore-exit, the tap harness causes any FAILs within a # test plan to raise ERRORs; this is just noise. -makeargs="LOG_DRIVER_FLAGS=--ignore-exit top_srcdir=$PWD top_builddir=$PWD" -make -k -t all >/dev/null 2>&1 -exec make -k -s $makeargs check 2>/dev/null | sed -e 's#/tmp/tmp\...........#/tmp/tmp.XXXXXXXXXX#g' + +#Detecting whether current system has lttng kernel modules +LTTNG_KMOD_PATH=/lib/modules/$(uname -r)/kernel/lttng-modules/lttng-tracer.ko +function validate_lttng_modules_present() +{ + # Check for loadable modules. + if [ -f "$LTTNG_KMOD_PATH" ]; then + return 0 + fi + + # Check for builtin modules. + ls /proc/lttng > /dev/null 2>&1 + if [ $? -eq 0 ]; then + return 0 + fi + + return 1 +} + +export LD_LIBRARY_PATH=FIXMEPTESTPATH/tests/utils/testapp/userspace-probe-elf-binary/.libs +makeargs="LOG_DRIVER_FLAGS=--ignore-exit top_srcdir=FIXMEPTESTPATH top_builddir=FIXMEPTESTPATH" + +#If current system doesn't have lttng kernel modules, disable lttng kernel related tests. +validate_lttng_modules_present || { + makeargs="$makeargs LTTNG_TOOLS_DISABLE_KERNEL_TESTS=1" +} + +make -k -t all >error.log 2>&1 +# Can specify a test e.g.: +# -C tests/regression/ check TESTS='kernel/test_callstack' +make -k -s $makeargs check 2>error.log | sed -e 's#/tmp/tmp\...........#/tmp/tmp.XXXXXXXXXX#g' +exitcode=$? +if [ -e error.log ]; then + cat error.log +fi +if [ -e tests/unit/test-suite.log ]; then + cat tests/unit/test-suite.log +fi +if [ -e tests/regression/test-suite.log ]; then + cat tests/regression/test-suite.log +fi +exit $exitcode diff --git a/meta/recipes-kernel/lttng/lttng-tools/x32.patch b/meta/recipes-kernel/lttng/lttng-tools/x32.patch deleted file mode 100644 index 42cebf94ac..0000000000 --- a/meta/recipes-kernel/lttng/lttng-tools/x32.patch +++ /dev/null @@ -1,36 +0,0 @@ -Fix build for x32 - -Signed-off-by: Christopher Larson <chris_larson@mentor.com> - -Fix build error of src/common/utils.c for x32. - -Upstream-Status: Submitted [https://github.com/lttng/lttng-tools/pull/150] - -Signed-off-by: Kai Kang <kai.kang@windriver.com> - -diff --git a/src/bin/lttng/utils.c b/src/bin/lttng/utils.c -index 0e96ef0c..5c79c8c7 100644 ---- a/src/bin/lttng/utils.c -+++ b/src/bin/lttng/utils.c -@@ -158,7 +158,7 @@ unsigned int fls_u32(uint32_t x) - #define HAS_FLS_U32 - #endif - --#if defined(__x86_64) -+#if defined(__x86_64) && !defined(__ILP32__) - static inline - unsigned int fls_u64(uint64_t x) - { -diff --git a/src/common/utils.c b/src/common/utils.c -index 08139e5e..3c389981 100644 ---- a/src/common/utils.c -+++ b/src/common/utils.c -@@ -1223,7 +1223,7 @@ static inline unsigned int fls_u32(uint32_t x) - #define HAS_FLS_U32 - #endif - --#if defined(__x86_64) -+#if defined(__x86_64) && !defined(__ILP32__) - static inline - unsigned int fls_u64(uint64_t x) - { diff --git a/meta/recipes-kernel/lttng/lttng-tools_2.10.7.bb b/meta/recipes-kernel/lttng/lttng-tools_2.13.13.bb index aa6d19d0fa..e73dd4801a 100644 --- a/meta/recipes-kernel/lttng/lttng-tools_2.10.7.bb +++ b/meta/recipes-kernel/lttng/lttng-tools_2.13.13.bb @@ -3,77 +3,91 @@ SUMMARY = "Linux Trace Toolkit Control" DESCRIPTION = "The Linux trace toolkit is a suite of tools designed \ to extract program execution details from the Linux operating system \ and interpret them." +HOMEPAGE = "https://github.com/lttng/lttng-tools" -LICENSE = "GPLv2 & LGPLv2.1" -LIC_FILES_CHKSUM = "file://LICENSE;md5=01d7fc4496aacf37d90df90b90b0cac1 \ - file://gpl-2.0.txt;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ - file://lgpl-2.1.txt;md5=0f0d71500e6a57fd24d825f33242b9ca" +LICENSE = "GPL-2.0-only & LGPL-2.1-only" +LIC_FILES_CHKSUM = "file://LICENSE;md5=40ef17463fbd6f377db3c47b1cbaded8 \ + file://LICENSES/GPL-2.0;md5=e68f69a54b44ba526ad7cb963e18fbce \ + file://LICENSES/LGPL-2.1;md5=9920968d0f2ff585ce61fae30344dd95" -DEPENDS = "liburcu popt libxml2 util-linux" -RDEPENDS_${PN} = "libgcc" -RDEPENDS_${PN}-ptest += "make perl bash gawk babeltrace procps perl-module-overloading coreutils util-linux kmod lttng-modules sed" -RDEPENDS_${PN}-ptest_append_libc-glibc = " glibc-utils" -RDEPENDS_${PN}-ptest_append_libc-musl = " musl-utils" +include lttng-platforms.inc + +DEPENDS = "liburcu popt libxml2 util-linux bison-native" +RDEPENDS:${PN} = "libgcc" +RRECOMMENDS:${PN} += "${LTTNGMODULES}" +RDEPENDS:${PN}-ptest += "make perl bash gawk babeltrace procps perl-module-overloading coreutils util-linux kmod ${LTTNGMODULES} sed python3-core grep binutils" +RDEPENDS:${PN}-ptest:append:libc-glibc = " glibc-utils" +RDEPENDS:${PN}-ptest:append:libc-musl = " musl-utils" # babelstats.pl wants getopt-long -RDEPENDS_${PN}-ptest += "perl-module-getopt-long" +RDEPENDS:${PN}-ptest += "perl-module-getopt-long" PYTHON_OPTION = "am_cv_python_pyexecdir='${PYTHON_SITEPACKAGES_DIR}' \ am_cv_python_pythondir='${PYTHON_SITEPACKAGES_DIR}' \ PYTHON_INCLUDE='-I${STAGING_INCDIR}/python${PYTHON_BASEVERSION}${PYTHON_ABI}' \ " -PACKAGECONFIG ??= "lttng-ust" +PACKAGECONFIG ??= "${LTTNGUST} kmod" PACKAGECONFIG[python] = "--enable-python-bindings ${PYTHON_OPTION},,python3 swig-native" PACKAGECONFIG[lttng-ust] = "--with-lttng-ust, --without-lttng-ust, lttng-ust" PACKAGECONFIG[kmod] = "--with-kmod, --without-kmod, kmod" PACKAGECONFIG[manpages] = "--enable-man-pages, --disable-man-pages, asciidoc-native xmlto-native libxslt-native" -PACKAGECONFIG_remove_arc = "lttng-ust" SRC_URI = "https://lttng.org/files/lttng-tools/lttng-tools-${PV}.tar.bz2 \ - file://x32.patch \ + file://0001-tests-do-not-strip-a-helper-library.patch \ file://run-ptest \ file://lttng-sessiond.service \ - file://0001-Skip-when-testapp-is-not-present.patch \ - file://0002-Fix-check-for-lttng-modules-presence-before-testing.patch \ - file://0001-check-for-gettid-API-during-configure.patch \ + file://disable-tests.patch \ + file://0001-compat-Define-off64_t-as-off_t-on-linux.patch \ + file://0001-tests-add-check_skip_kernel_test-to-check-root-user-.patch \ + file://0001-Fix-rotation-destroy-flush-fix-session-daemon-abort-.patch \ " -SRC_URI[md5sum] = "e7804d10e4cade381e241601f6047373" -SRC_URI[sha256sum] = "ed71ebe00c5d985c74f30e97b614e909573cbd9276c85e05d9557a0b817a1312" +SRC_URI[sha256sum] = "ff5f4f00b081dac66092afe8e72b7c790670931cf1c1ee0deaa7f80fbc53883e" inherit autotools ptest pkgconfig useradd python3-dir manpages systemd -SYSTEMD_SERVICE_${PN} = "lttng-sessiond.service" +CACHED_CONFIGUREVARS = "PGREP=/usr/bin/pgrep" + +SYSTEMD_SERVICE:${PN} = "lttng-sessiond.service" SYSTEMD_AUTO_ENABLE = "disable" USERADD_PACKAGES = "${PN}" -GROUPADD_PARAM_${PN} = "tracing" +GROUPADD_PARAM:${PN} = "tracing" -FILES_${PN} += "${libdir}/lttng/libexec/* ${datadir}/xml/lttng \ +FILES:${PN} += "${libdir}/lttng/libexec/* ${datadir}/xml/lttng \ ${PYTHON_SITEPACKAGES_DIR}/*" -FILES_${PN}-staticdev += "${PYTHON_SITEPACKAGES_DIR}/*.a" -FILES_${PN}-dev += "${PYTHON_SITEPACKAGES_DIR}/*.la" +FILES:${PN}-staticdev += "${PYTHON_SITEPACKAGES_DIR}/*.a" +FILES:${PN}-dev += "${PYTHON_SITEPACKAGES_DIR}/*.la" # Since files are installed into ${libdir}/lttng/libexec we match # the libexec insane test so skip it. # Python module needs to keep _lttng.so -INSANE_SKIP_${PN} = "libexec dev-so" -INSANE_SKIP_${PN}-dbg = "libexec" +INSANE_SKIP:${PN} = "libexec dev-so" +INSANE_SKIP:${PN}-dbg = "libexec" -do_install_append () { +PRIVATE_LIBS:${PN}-ptest = "libfoo.so" + +do_install:append () { # install systemd unit file - install -d ${D}${systemd_unitdir}/system - install -m 0644 ${WORKDIR}/lttng-sessiond.service ${D}${systemd_unitdir}/system + install -d ${D}${systemd_system_unitdir} + install -m 0644 ${UNPACKDIR}/lttng-sessiond.service ${D}${systemd_system_unitdir} } do_install_ptest () { - for f in Makefile tests/Makefile tests/utils/utils.sh tests/regression/tools/save-load/load-42*.lttng tests/regression/tools/save-load/configuration/load-42*.lttng ; do + for f in Makefile tests/Makefile tests/utils/utils.sh tests/regression/tools/save-load/*.lttng \ + tests/regression/tools/save-load/configuration/load-42*.lttng tests/regression/tools/health/test_health.sh \ + tests/regression/tools/metadata/utils.sh tests/regression/tools/rotation/rotate_utils.sh \ + tests/regression/tools/notification/util_event_generator.sh \ + tests/regression/tools/base-path/*.lttng; do install -D "${B}/$f" "${D}${PTEST_PATH}/$f" done - for f in config/tap-driver.sh config/test-driver src/common/config/session.xsd src/common/mi-lttng-3.0.xsd; do + for f in tests/utils/tap-driver.sh config/test-driver src/common/config/session.xsd src/common/mi-lttng-4.1.xsd; do install -D "${S}/$f" "${D}${PTEST_PATH}/$f" done + # Patch in the correct path for the custom libraries a helper executable needs + sed -i -e 's!FIXMEPTESTPATH!${PTEST_PATH}!g' "${D}${PTEST_PATH}/run-ptest" + # Prevent 'make check' from recursing into non-test subdirectories. sed -i -e 's!^SUBDIRS = .*!SUBDIRS = tests!' "${D}${PTEST_PATH}/Makefile" @@ -101,7 +115,7 @@ do_install_ptest () { for f in $(find "${B}/tests/$d" -maxdepth 1 -executable -type f -printf '%P ') ; do cp ${B}/tests/$d/$f ${D}${PTEST_PATH}/tests/`dirname $d`/$f case $f in - *.so) + *.so|userspace-probe-elf-*) install -d ${D}${PTEST_PATH}/tests/$d/ ln -s ../$f ${D}${PTEST_PATH}/tests/$d/$f # Remove any rpath/runpath to pass QA check. @@ -111,6 +125,11 @@ do_install_ptest () { done done + chrpath --delete ${D}${PTEST_PATH}/tests/utils/testapp/userspace-probe-elf-binary/userspace-probe-elf-binary + chrpath --delete ${D}${PTEST_PATH}/tests/utils/testapp/userspace-probe-elf-cxx-binary/userspace-probe-elf-cxx-binary + chrpath --delete ${D}${PTEST_PATH}/tests/regression/ust/ust-dl/libbar.so + chrpath --delete ${D}${PTEST_PATH}/tests/regression/ust/ust-dl/libfoo.so + # # Use the versioned libs of liblttng-ust-dl. # @@ -147,6 +166,10 @@ do_install_ptest () { -e 's#\(^test.*LDADD.=\)#disable\1#g' \ -i ${D}${PTEST_PATH}/tests/unit/Makefile + # Fix hardcoded build path + sed -e 's#TESTAPP_PATH=.*/tests/regression/#TESTAPP_PATH="${PTEST_PATH}/tests/regression/#' \ + -i ${D}${PTEST_PATH}/tests/regression/ust/python-logging/test_python_logging + # Substitute links to installed binaries. for prog in lttng lttng-relayd lttng-sessiond lttng-consumerd lttng-crash; do exedir="${D}${PTEST_PATH}/src/bin/${prog}" @@ -161,3 +184,14 @@ do_install_ptest () { esac done } + +INHIBIT_PACKAGE_STRIP_FILES = "\ + ${PKGD}${PTEST_PATH}/tests/utils/testapp/userspace-probe-elf-binary/userspace-probe-elf-binary \ + ${PKGD}${PTEST_PATH}/tests/utils/testapp/userspace-probe-elf-binary/.libs/userspace-probe-elf-binary \ + ${PKGD}${PTEST_PATH}/tests/utils/testapp/userspace-probe-elf-cxx-binary/userspace-probe-elf-cxx-binary \ + ${PKGD}${PTEST_PATH}/tests/utils/testapp/userspace-probe-elf-cxx-binary/.libs/userspace-probe-elf-cxx-binary \ + ${PKGD}${PTEST_PATH}/tests/utils/testapp/gen-syscall-events/gen-syscall-events \ + ${PKGD}${PTEST_PATH}/tests/utils/testapp/gen-syscall-events/.libs/gen-syscall-events \ + ${PKGD}${PTEST_PATH}/tests/utils/testapp/gen-syscall-events-callstack/gen-syscall-events-callstack \ + ${PKGD}${PTEST_PATH}/tests/utils/testapp/gen-syscall-events-callstack/.libs/gen-syscall-events-callstack \ + " diff --git a/meta/recipes-kernel/lttng/lttng-ust/0001-Makefile.am-update-rpath-link.patch b/meta/recipes-kernel/lttng/lttng-ust/0001-Makefile.am-update-rpath-link.patch new file mode 100644 index 0000000000..6aca8f85fa --- /dev/null +++ b/meta/recipes-kernel/lttng/lttng-ust/0001-Makefile.am-update-rpath-link.patch @@ -0,0 +1,33 @@ +From 7d053804ab3823d40ae10d90f4efc49dbfb4cb66 Mon Sep 17 00:00:00 2001 +From: Changqing Li <changqing.li@windriver.com> +Date: Wed, 22 Sep 2021 16:33:10 +0800 +Subject: [PATCH] Makefile.am: update rpath link + +since commit 6339062 Move liblttng-ust to 'src/lib/', +liblttng-ust.so/liblttng-ust-common.so/liblttng-ust-tracepoint.so +'s location changed from one dir to multiple dirs. which make below +error: +ld: warning: liblttng-ust-common.so.1, needed by ../../../src/lib/lttng-ust/.libs/liblttng-ust.so, not found (try using -rpath or -rpath-link) +ld: warning: liblttng-ust-tracepoint.so.1, needed by ../../../src/lib/lttng-ust/.libs/liblttng-ust.so, not found (try using -rpath or -rpath-link) + +Upstream-Status: Submitted [https://github.com/lttng/lttng-ust/pull/61] + +Signed-off-by: Changqing Li <changqing.li@windriver.com> + +--- + doc/examples/Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/doc/examples/Makefile.am b/doc/examples/Makefile.am +index 57782cc..d46caa6 100644 +--- a/doc/examples/Makefile.am ++++ b/doc/examples/Makefile.am +@@ -167,7 +167,7 @@ all-local: + CFLAGS='$(CFLAGS)' \ + AM_CFLAGS='$(AM_CFLAGS)' \ + LDFLAGS="$(LDFLAGS)" \ +- AM_LDFLAGS='$(AM_LDFLAGS) -L../../../src/lib/lttng-ust/.libs -Wl,-rpath="$(PWD)/../../src/lib/lttng-ust/.libs/" -Wl,-rpath-link="$(PWD)/../../src/lib/lttng-ust/.libs/"' \ ++ AM_LDFLAGS='$(AM_LDFLAGS) -L../../../src/lib/lttng-ust/.libs -Wl,-rpath="$(PWD)/../../src/lib/lttng-ust/.libs/" -Wl,-rpath-link="$(PWD)/../../src/lib/lttng-ust/.libs/:$(PWD)/../../src/lib/lttng-ust-tracepoint/.libs:$(PWD)/../../src/lib/lttng-ust-common/.libs/"' \ + LTTNG_GEN_TP_PATH="$$rel_src_subdir$(top_srcdir)/tools/" \ + AM_V_P="$(AM_V_P)" \ + AM_V_at="$(AM_V_at)" \ diff --git a/meta/recipes-kernel/lttng/lttng-ust/0001-lttng-ust-common-link-with-liburcu-explicitly.patch b/meta/recipes-kernel/lttng/lttng-ust/0001-lttng-ust-common-link-with-liburcu-explicitly.patch new file mode 100644 index 0000000000..e85dbdb439 --- /dev/null +++ b/meta/recipes-kernel/lttng/lttng-ust/0001-lttng-ust-common-link-with-liburcu-explicitly.patch @@ -0,0 +1,26 @@ +From 27402453f25fbdb5a9fb1a1b88d1c4d9852187d2 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <alex@linutronix.de> +Date: Sun, 5 Sep 2021 10:44:19 +0200 +Subject: [PATCH] lttng-ust-common: link with liburcu explicitly + +Otherwise linking errors are seen on x86-32. + +Upstream-Status: Submitted [by email to lttng-dev, Francis, Jonathan] +Signed-off-by: Alexander Kanavin <alex@linutronix.de> + +--- + src/lib/lttng-ust-common/Makefile.am | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/lib/lttng-ust-common/Makefile.am b/src/lib/lttng-ust-common/Makefile.am +index 1ccc290..6531fa0 100644 +--- a/src/lib/lttng-ust-common/Makefile.am ++++ b/src/lib/lttng-ust-common/Makefile.am +@@ -16,6 +16,7 @@ liblttng_ust_common_la_SOURCES = \ + + liblttng_ust_common_la_LIBADD = \ + $(top_builddir)/src/common/libcommon.la \ ++ $(URCU_LIBS) \ + $(DL_LIBS) + + liblttng_ust_common_la_LDFLAGS = -no-undefined -version-info $(LTTNG_UST_LIBRARY_VERSION) diff --git a/meta/recipes-kernel/lttng/lttng-ust/0001-python-lttngust-Makefile.am-Add-install-lib-to-setup.patch b/meta/recipes-kernel/lttng/lttng-ust/0001-python-lttngust-Makefile.am-Add-install-lib-to-setup.patch index c2028d0e1a..7c49583e0d 100644 --- a/meta/recipes-kernel/lttng/lttng-ust/0001-python-lttngust-Makefile.am-Add-install-lib-to-setup.patch +++ b/meta/recipes-kernel/lttng/lttng-ust/0001-python-lttngust-Makefile.am-Add-install-lib-to-setup.patch @@ -1,6 +1,6 @@ -From f79dac30af9adda12996da7f6aa6667d3b580537 Mon Sep 17 00:00:00 2001 -From: Robert Yang <liezhi.yang@windriver.com> -Date: Thu, 26 Sep 2019 17:54:00 +0800 +From f65efd963e52de51d35e2e03fb773f33dd64f565 Mon Sep 17 00:00:00 2001 +From: Richard Purdie <richard.purdie@linuxfoundation.org> +Date: Tue, 20 Feb 2024 12:19:06 +0000 Subject: [PATCH] python-lttngust/Makefile.am: Add --install-lib to setup.py Otherwise it may install to /usr/lib, but should be /usr/lib64 when cross @@ -9,23 +9,21 @@ building. Upstream-Status: Submitted [https://github.com/lttng/lttng-ust/pull/59] Signed-off-by: Robert Yang <liezhi.yang@windriver.com> + --- - python-lttngust/Makefile.am | 2 +- + src/python-lttngust/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/python-lttngust/Makefile.am b/python-lttngust/Makefile.am -index 6c0d20d..38b51b8 100644 ---- a/python-lttngust/Makefile.am -+++ b/python-lttngust/Makefile.am -@@ -9,7 +9,7 @@ install-exec-local: +diff --git a/src/python-lttngust/Makefile.am b/src/python-lttngust/Makefile.am +index d53e21d..283901e 100644 +--- a/src/python-lttngust/Makefile.am ++++ b/src/python-lttngust/Makefile.am +@@ -45,7 +45,7 @@ install-exec-local: build-python-bindings.stamp if [ "$(DESTDIR)" != "" ]; then \ opts="$$opts --root=$(DESTDIR)"; \ fi; \ -- $(PYTHON) setup.py install $$opts; -+ $(PYTHON) setup.py install $$opts --install-lib=$(pythondir); +- $(PYTHON) $(builddir)/setup.py install $(PY_INSTALL_OPTS) $$opts; ++ $(PYTHON) $(builddir)/setup.py install $(PY_INSTALL_OPTS) $$opts --install-lib=$(pythondir); clean-local: rm -rf $(builddir)/build --- -2.7.4 - diff --git a/meta/recipes-kernel/lttng/lttng-ust/lttng-ust-doc-examples-disable.patch b/meta/recipes-kernel/lttng/lttng-ust/lttng-ust-doc-examples-disable.patch deleted file mode 100644 index bff852799d..0000000000 --- a/meta/recipes-kernel/lttng/lttng-ust/lttng-ust-doc-examples-disable.patch +++ /dev/null @@ -1,17 +0,0 @@ -Upstream-Status: Inappropriate [embedded specific] - -Don't build the doc examples - we don't need them and in fact they -never successfully built in previous iterations of the lttng-ust -recipe anyway. - -Signed-off-by: Tom Zanussi <tom.zanussi@intel.com> - -Index: lttng-ust-2.9.1/doc/Makefile.am -=================================================================== ---- lttng-ust-2.9.1.orig/doc/Makefile.am -+++ lttng-ust-2.9.1/doc/Makefile.am -@@ -1,3 +1,3 @@ --SUBDIRS = . man examples -+SUBDIRS = . man - - dist_doc_DATA = java-agent.txt diff --git a/meta/recipes-kernel/lttng/lttng-ust_2.10.5.bb b/meta/recipes-kernel/lttng/lttng-ust_2.13.8.bb index cfaad30b69..dddd3a5004 100644 --- a/meta/recipes-kernel/lttng/lttng-ust_2.10.5.bb +++ b/meta/recipes-kernel/lttng/lttng-ust_2.13.8.bb @@ -3,46 +3,50 @@ DESCRIPTION = "The LTTng UST 2.x package contains the userspace tracer library t HOMEPAGE = "http://lttng.org/ust" BUGTRACKER = "https://bugs.lttng.org/projects/lttng-ust" -LICENSE = "LGPLv2.1+ & MIT & GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=c963eb366b781252b0bf0fdf1624d9e9 \ - file://snprintf/snprintf.c;endline=32;md5=d3d544959d8a3782b2e07451be0a903c \ - file://snprintf/various.h;endline=31;md5=89f2509b6b4682c4fc95255eec4abe44" +LICENSE = "LGPL-2.1-or-later & MIT & GPL-2.0-only" +LIC_FILES_CHKSUM = "file://LICENSE;md5=a46577a38ad0c36ff6ff43ccf40c480f" PYTHON_OPTION = "am_cv_python_pyexecdir='${PYTHON_SITEPACKAGES_DIR}' \ am_cv_python_pythondir='${PYTHON_SITEPACKAGES_DIR}' \ PYTHON_INCLUDE='-I${STAGING_INCDIR}/python${PYTHON_BASEVERSION}${PYTHON_ABI}' \ " -inherit autotools lib_package manpages python3native +inherit autotools lib_package manpages python3native pkgconfig + +include lttng-platforms.inc + +EXTRA_OECONF = "--disable-numa" +CPPFLAGS:append:arm = "${@oe.utils.vartrue('DEBUG_BUILD', '-DUATOMIC_NO_LINK_ERROR', '', d)}" DEPENDS = "liburcu util-linux" -RDEPENDS_${PN}-bin = "python3-core" +RDEPENDS:${PN}-bin = "python3-core" # For backwards compatibility after rename -RPROVIDES_${PN} = "lttng2-ust" -RREPLACES_${PN} = "lttng2-ust" -RCONFLICTS_${PN} = "lttng2-ust" +RPROVIDES:${PN} = "lttng2-ust" +RREPLACES:${PN} = "lttng2-ust" +RCONFLICTS:${PN} = "lttng2-ust" PE = "2" SRC_URI = "https://lttng.org/files/lttng-ust/lttng-ust-${PV}.tar.bz2 \ - file://lttng-ust-doc-examples-disable.patch \ file://0001-python-lttngust-Makefile.am-Add-install-lib-to-setup.patch \ - " + file://0001-lttng-ust-common-link-with-liburcu-explicitly.patch \ + file://0001-Makefile.am-update-rpath-link.patch \ + " -SRC_URI[md5sum] = "f0c86a9fa7dcfd0205fb42584a310b1c" -SRC_URI[sha256sum] = "06f9ed9b2198855b1c7fcbf15fe57297ee259409ffa1b3bad87321412d98bc35" +SRC_URI[sha256sum] = "d4ef98dab9a37ad4f524ccafdfd50af4f266039b528dd5afabce78e49024d937" CVE_PRODUCT = "ust" +PACKAGECONFIG[examples] = "--enable-examples, --disable-examples," PACKAGECONFIG[manpages] = "--enable-man-pages, --disable-man-pages, asciidoc-native xmlto-native libxslt-native" PACKAGECONFIG[python3-agent] = "--enable-python-agent ${PYTHON_OPTION}, --disable-python-agent, python3, python3" -FILES_${PN} += " ${PYTHON_SITEPACKAGES_DIR}/*" -FILES_${PN}-staticdev += " ${PYTHON_SITEPACKAGES_DIR}/*.a" -FILES_${PN}-dev += " ${PYTHON_SITEPACKAGES_DIR}/*.la" +FILES:${PN} += " ${PYTHON_SITEPACKAGES_DIR}/*" +FILES:${PN}-staticdev += " ${PYTHON_SITEPACKAGES_DIR}/*.a" +FILES:${PN}-dev += " ${PYTHON_SITEPACKAGES_DIR}/*.la" -do_install_append() { +do_install:append() { # Patch python tools to use Python 3; they should be source compatible, but # still refer to Python 2 in the shebang sed -i -e '1s,#!.*python.*,#!${bindir}/python3,' ${D}${bindir}/lttng-gen-tp |