From 76668418a63d4c0618c63bd9d13970df35e736eb Mon Sep 17 00:00:00 2001 From: Bruce Ashfield Date: Fri, 30 Jan 2015 14:20:49 -0500 Subject: lttng: update to 2.6.0-stable To fix build issues against the v3.19 kernel, we can safely update to the lttng 2.6 stable branches. This allows us to drop two backported patches that are already part of this update. Signed-off-by: Bruce Ashfield --- ...probes-should-calculate-alignment-and-eve.patch | 130 --------------------- ...e-kvm-instrumentation-compile-on-3.17-rc1.patch | 46 -------- ...modules-replace-KERNELDIR-with-KERNEL_SRC.patch | 35 ++---- meta/recipes-kernel/lttng/lttng-modules_2.5.2.bb | 39 ------- meta/recipes-kernel/lttng/lttng-modules_2.6.0.bb | 37 ++++++ 5 files changed, 47 insertions(+), 240 deletions(-) delete mode 100644 meta/recipes-kernel/lttng/lttng-modules/Fix-noargs-probes-should-calculate-alignment-and-eve.patch delete mode 100644 meta/recipes-kernel/lttng/lttng-modules/Update-kvm-instrumentation-compile-on-3.17-rc1.patch delete mode 100644 meta/recipes-kernel/lttng/lttng-modules_2.5.2.bb create mode 100644 meta/recipes-kernel/lttng/lttng-modules_2.6.0.bb (limited to 'meta/recipes-kernel') diff --git a/meta/recipes-kernel/lttng/lttng-modules/Fix-noargs-probes-should-calculate-alignment-and-eve.patch b/meta/recipes-kernel/lttng/lttng-modules/Fix-noargs-probes-should-calculate-alignment-and-eve.patch deleted file mode 100644 index 9c3dc9c1e1..0000000000 --- a/meta/recipes-kernel/lttng/lttng-modules/Fix-noargs-probes-should-calculate-alignment-and-eve.patch +++ /dev/null @@ -1,130 +0,0 @@ -Upstream-Status: Backport -Signed-off-by: Bruce Ashfield - -From d3de7f1468be0b18145ff85b3c1a7c7fb1d48c15 Mon Sep 17 00:00:00 2001 -From: Mathieu Desnoyers -Date: Fri, 25 Jul 2014 12:30:43 -0400 -Subject: [PATCH 1/3] Fix: noargs probes should calculate alignment and event - length - -A noargs probe could have event fields. noargs just means that the probe -does not receive any argument as parameter. However, it could very well -serialize data into fields (global variables, constants, etc). - -It just happens that LTTng does not serialize any data in noargs events -at the moment, but this may very well change. - -The if (0) with (void) variable access strategy to stop compiler from -complaining from unused variables does not seem to work as expected with -gcc 4.9.1. Use "unused" attribute instead. - -Signed-off-by: Mathieu Desnoyers ---- - probes/lttng-events.h | 49 +++++++++++++++++++++++++++++++++++-------------- - 1 file changed, 35 insertions(+), 14 deletions(-) - -diff --git a/probes/lttng-events.h b/probes/lttng-events.h -index 596b70608584..ba9563b15cf9 100644 ---- a/probes/lttng-events.h -+++ b/probes/lttng-events.h -@@ -456,10 +456,19 @@ static __used struct lttng_probe_desc TP_ID(__probe_desc___, TRACE_SYSTEM) = { - static inline size_t __event_get_size__##_name(size_t *__dynamic_len, _proto) \ - { \ - size_t __event_len = 0; \ -- unsigned int __dynamic_len_idx = 0; \ -+ unsigned int __dynamic_len_idx __attribute__((unused)) = 0; \ -+ \ -+ _tstruct \ -+ return __event_len; \ -+} -+ -+#undef DECLARE_EVENT_CLASS_NOARGS -+#define DECLARE_EVENT_CLASS_NOARGS(_name, _tstruct, _assign, _print) \ -+static inline size_t __event_get_size__##_name(size_t *__dynamic_len) \ -+{ \ -+ size_t __event_len = 0; \ -+ unsigned int __dynamic_len_idx __attribute__((unused)) = 0; \ - \ -- if (0) \ -- (void) __dynamic_len_idx; /* don't warn if unused */ \ - _tstruct \ - return __event_len; \ - } -@@ -514,6 +523,15 @@ static inline size_t __event_get_align__##_name(_proto) \ - return __event_align; \ - } - -+#undef DECLARE_EVENT_CLASS_NOARGS -+#define DECLARE_EVENT_CLASS_NOARGS(_name, _tstruct, _assign, _print) \ -+static inline size_t __event_get_align__##_name(void) \ -+{ \ -+ size_t __event_align = 1; \ -+ _tstruct \ -+ return __event_align; \ -+} -+ - #include TRACE_INCLUDE(TRACE_INCLUDE_FILE) - - -@@ -553,12 +571,16 @@ static inline size_t __event_get_align__##_name(_proto) \ - #undef TP_STRUCT__entry - #define TP_STRUCT__entry(args...) args - --#undef DECLARE_EVENT_CLASS --#define DECLARE_EVENT_CLASS(_name, _proto, _args, _tstruct, _assign, _print) \ -+#undef DECLARE_EVENT_CLASS_NOARGS -+#define DECLARE_EVENT_CLASS_NOARGS(_name, _tstruct, _assign, _print) \ - struct __event_typemap__##_name { \ - _tstruct \ - }; - -+#undef DECLARE_EVENT_CLASS -+#define DECLARE_EVENT_CLASS(_name, _proto, _args, _tstruct, _assign, _print) \ -+ DECLARE_EVENT_CLASS_NOARGS(_name, _tstruct, _assign, _print) -+ - #include TRACE_INCLUDE(TRACE_INCLUDE_FILE) - - -@@ -760,15 +782,11 @@ static void __event_probe__##_name(void *__data, _proto) \ - struct lttng_channel *__chan = __event->chan; \ - struct lib_ring_buffer_ctx __ctx; \ - size_t __event_len, __event_align; \ -- size_t __dynamic_len_idx = 0; \ -- size_t __dynamic_len[2 * ARRAY_SIZE(__event_fields___##_name)]; \ -- struct __event_typemap__##_name __typemap; \ -+ size_t __dynamic_len_idx __attribute__((unused)) = 0; \ -+ size_t __dynamic_len[2 * ARRAY_SIZE(__event_fields___##_name)] __attribute__((unused)); \ -+ struct __event_typemap__##_name __typemap __attribute__((unused)); \ - int __ret; \ - \ -- if (0) { \ -- (void) __dynamic_len_idx; /* don't warn if unused */ \ -- (void) __typemap; /* don't warn if unused */ \ -- } \ - if (!_TP_SESSION_CHECK(session, __chan->session)) \ - return; \ - if (unlikely(!ACCESS_ONCE(__chan->session->active))) \ -@@ -800,6 +818,9 @@ static void __event_probe__##_name(void *__data) \ - struct lttng_channel *__chan = __event->chan; \ - struct lib_ring_buffer_ctx __ctx; \ - size_t __event_len, __event_align; \ -+ size_t __dynamic_len_idx __attribute__((unused)) = 0; \ -+ size_t __dynamic_len[2 * ARRAY_SIZE(__event_fields___##_name)] __attribute__((unused)); \ -+ struct __event_typemap__##_name __typemap __attribute__((unused)); \ - int __ret; \ - \ - if (!_TP_SESSION_CHECK(session, __chan->session)) \ -@@ -810,8 +831,8 @@ static void __event_probe__##_name(void *__data) \ - return; \ - if (unlikely(!ACCESS_ONCE(__event->enabled))) \ - return; \ -- __event_len = 0; \ -- __event_align = 1; \ -+ __event_len = __event_get_size__##_name(__dynamic_len); \ -+ __event_align = __event_get_align__##_name(); \ - lib_ring_buffer_ctx_init(&__ctx, __chan->chan, __event, __event_len, \ - __event_align, -1); \ - __ret = __chan->ops->event_reserve(&__ctx, __event->id); \ --- -1.8.1.2 - diff --git a/meta/recipes-kernel/lttng/lttng-modules/Update-kvm-instrumentation-compile-on-3.17-rc1.patch b/meta/recipes-kernel/lttng/lttng-modules/Update-kvm-instrumentation-compile-on-3.17-rc1.patch deleted file mode 100644 index 3541b50b79..0000000000 --- a/meta/recipes-kernel/lttng/lttng-modules/Update-kvm-instrumentation-compile-on-3.17-rc1.patch +++ /dev/null @@ -1,46 +0,0 @@ -Upstream-Status: Backport -Signed-off-by: Bruce Ashfield - -From 458c2022e992c057bd21d02e4c77bcc7d4d6cd6c Mon Sep 17 00:00:00 2001 -From: Mathieu Desnoyers -Date: Thu, 21 Aug 2014 11:15:50 -0400 -Subject: [PATCH 3/3] Update kvm instrumentation: compile on 3.17-rc1 - -Signed-off-by: Mathieu Desnoyers ---- - instrumentation/events/lttng-module/arch/x86/kvm/trace.h | 12 +++++++++++- - 1 file changed, 11 insertions(+), 1 deletion(-) - -diff --git a/instrumentation/events/lttng-module/arch/x86/kvm/trace.h b/instrumentation/events/lttng-module/arch/x86/kvm/trace.h -index 2354884074eb..3c299c58a1cf 100644 ---- a/instrumentation/events/lttng-module/arch/x86/kvm/trace.h -+++ b/instrumentation/events/lttng-module/arch/x86/kvm/trace.h -@@ -724,7 +724,7 @@ TRACE_EVENT(kvm_emulate_insn, - tp_memcpy(insn, - vcpu->arch.emulate_ctxt.decode.fetch.data, - 15) --#else -+#elif (LINUX_VERSION_CODE < KERNEL_VERSION(3,17,0)) - tp_assign(rip, vcpu->arch.emulate_ctxt.fetch.start) - tp_assign(csbase, kvm_x86_ops->get_segment_base(vcpu, VCPU_SREG_CS)) - tp_assign(len, vcpu->arch.emulate_ctxt._eip -@@ -732,6 +732,16 @@ TRACE_EVENT(kvm_emulate_insn, - tp_memcpy(insn, - vcpu->arch.emulate_ctxt.fetch.data, - 15) -+#else -+ tp_assign(rip, vcpu->arch.emulate_ctxt._eip - -+ (vcpu->arch.emulate_ctxt.fetch.ptr - -+ vcpu->arch.emulate_ctxt.fetch.data)) -+ tp_assign(csbase, kvm_x86_ops->get_segment_base(vcpu, VCPU_SREG_CS)) -+ tp_assign(len, vcpu->arch.emulate_ctxt.fetch.ptr - -+ vcpu->arch.emulate_ctxt.fetch.data) -+ tp_memcpy(insn, -+ vcpu->arch.emulate_ctxt.fetch.data, -+ 15) - #endif - tp_assign(flags, kei_decode_mode(vcpu->arch.emulate_ctxt.mode)) - tp_assign(failed, failed) --- -1.8.1.2 - diff --git a/meta/recipes-kernel/lttng/lttng-modules/lttng-modules-replace-KERNELDIR-with-KERNEL_SRC.patch b/meta/recipes-kernel/lttng/lttng-modules/lttng-modules-replace-KERNELDIR-with-KERNEL_SRC.patch index 30f825c414..bbfa38a0b5 100644 --- a/meta/recipes-kernel/lttng/lttng-modules/lttng-modules-replace-KERNELDIR-with-KERNEL_SRC.patch +++ b/meta/recipes-kernel/lttng/lttng-modules/lttng-modules-replace-KERNELDIR-with-KERNEL_SRC.patch @@ -8,11 +8,11 @@ it as-is. Signed-off-by: Zumeng Chen -diff --git a/Makefile b/Makefile -index a9d1cb1..c1b65b9 100644 ---- a/Makefile -+++ b/Makefile -@@ -43,19 +43,19 @@ obj-m += lib/ +Index: git/Makefile +=================================================================== +--- git.orig/Makefile ++++ git/Makefile +@@ -62,19 +62,19 @@ obj-m += lib/ endif # CONFIG_TRACEPOINTS else # KERNELRELEASE @@ -37,26 +37,11 @@ index a9d1cb1..c1b65b9 100644 - $(MAKE) -C $(KERNELDIR) M=$(PWD) $@ + $(MAKE) -C $(KERNEL_SRC) M=$(PWD) $@ endif # KERNELRELEASE -diff --git a/README b/README -index 8c5dd46..6bd3334 100644 ---- a/README -+++ b/README -@@ -27,8 +27,8 @@ access to your full kernel source tree), and use: - If you need to specify the target directory to the kernel you want to build - against, use: - --% KERNELDIR=path_to_kernel_dir make --# KERNELDIR=path_to_kernel_dir make modules_install -+% KERNEL_SRC=path_to_kernel_dir make -+# KERNEL_SRC=path_to_kernel_dir make modules_install - # depmod -a kernel_version - - Use lttng-tools to control the tracer. LTTng tools should automatically load -diff --git a/probes/Makefile b/probes/Makefile -index 225803c..3449866 100644 ---- a/probes/Makefile -+++ b/probes/Makefile -@@ -212,18 +212,18 @@ endif +Index: git/probes/Makefile +=================================================================== +--- git.orig/probes/Makefile ++++ git/probes/Makefile +@@ -231,18 +231,18 @@ endif endif else diff --git a/meta/recipes-kernel/lttng/lttng-modules_2.5.2.bb b/meta/recipes-kernel/lttng/lttng-modules_2.5.2.bb deleted file mode 100644 index 6ec83d090a..0000000000 --- a/meta/recipes-kernel/lttng/lttng-modules_2.5.2.bb +++ /dev/null @@ -1,39 +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=1412caf5a1aa90d6a48588a4794c0eac \ - file://gpl-2.0.txt;md5=751419260aa954499f7abaabaa882bbe \ - file://lgpl-2.1.txt;md5=243b725d71bb5df4a1e5920b344b86ad" - -DEPENDS = "virtual/kernel" -do_configure[depends] += "virtual/kernel:do_shared_workdir" - -inherit module - -SRCREV = "16d7431c3a78605ea598dbd3f081a2b1a8463f23" - -COMPATIBLE_HOST = '(x86_64|i.86|powerpc|aarch64|mips|arm).*-linux' - -SRC_URI = "git://git.lttng.org/lttng-modules.git;branch=stable-2.5 \ - file://lttng-modules-replace-KERNELDIR-with-KERNEL_SRC.patch \ - file://Fix-noargs-probes-should-calculate-alignment-and-eve.patch \ - file://Update-kvm-instrumentation-compile-on-3.17-rc1.patch \ - " - -export INSTALL_MOD_DIR="kernel/lttng-modules" -export KERNEL_SRC="${STAGING_KERNEL_DIR}" - - -S = "${WORKDIR}/git" - -do_install_append() { - # Delete empty directories to avoid QA failures if no modules were built - find ${D}/lib -depth -type d -empty -exec rmdir {} \; -} - -python do_package_prepend() { - if not os.path.exists(os.path.join(d.getVar('D', True), 'lib/modules')): - bb.warn("%s: no modules were created; this may be due to CONFIG_TRACEPOINTS not being enabled in your kernel." % d.getVar('PN', True)) -} - diff --git a/meta/recipes-kernel/lttng/lttng-modules_2.6.0.bb b/meta/recipes-kernel/lttng/lttng-modules_2.6.0.bb new file mode 100644 index 0000000000..d0039b3b14 --- /dev/null +++ b/meta/recipes-kernel/lttng/lttng-modules_2.6.0.bb @@ -0,0 +1,37 @@ +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=1412caf5a1aa90d6a48588a4794c0eac \ + file://gpl-2.0.txt;md5=751419260aa954499f7abaabaa882bbe \ + file://lgpl-2.1.txt;md5=243b725d71bb5df4a1e5920b344b86ad" + +DEPENDS = "virtual/kernel" +do_configure[depends] += "virtual/kernel:do_shared_workdir" + +inherit module + +SRCREV = "9e8bcbf975844986f021e99e2a30ceedc41b46a8" + +COMPATIBLE_HOST = '(x86_64|i.86|powerpc|aarch64|mips|arm).*-linux' + +SRC_URI = "git://git.lttng.org/lttng-modules.git;branch=stable-2.6 \ + file://lttng-modules-replace-KERNELDIR-with-KERNEL_SRC.patch \ + " + +export INSTALL_MOD_DIR="kernel/lttng-modules" +export KERNEL_SRC="${STAGING_KERNEL_DIR}" + + +S = "${WORKDIR}/git" + +do_install_append() { + # Delete empty directories to avoid QA failures if no modules were built + find ${D}/lib -depth -type d -empty -exec rmdir {} \; +} + +python do_package_prepend() { + if not os.path.exists(os.path.join(d.getVar('D', True), 'lib/modules')): + bb.warn("%s: no modules were created; this may be due to CONFIG_TRACEPOINTS not being enabled in your kernel." % d.getVar('PN', True)) +} + -- cgit 1.2.3-korg