diff options
| -rw-r--r-- | meta/recipes-kernel/lttng/lttng-modules/Fix-noargs-probes-should-calculate-alignment-and-eve.patch | 130 | ||||
| -rw-r--r-- | meta/recipes-kernel/lttng/lttng-modules/Update-kvm-instrumentation-compile-on-3.17-rc1.patch | 46 | ||||
| -rw-r--r-- | meta/recipes-kernel/lttng/lttng-modules/lttng-modules-replace-KERNELDIR-with-KERNEL_SRC.patch | 35 | ||||
| -rw-r--r-- | meta/recipes-kernel/lttng/lttng-modules_2.6.0.bb (renamed from meta/recipes-kernel/lttng/lttng-modules_2.5.2.bb) | 6 | 
4 files changed, 12 insertions, 205 deletions
| 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 @@ | |||
| 1 | Upstream-Status: Backport | ||
| 2 | Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> | ||
| 3 | |||
| 4 | From d3de7f1468be0b18145ff85b3c1a7c7fb1d48c15 Mon Sep 17 00:00:00 2001 | ||
| 5 | From: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> | ||
| 6 | Date: Fri, 25 Jul 2014 12:30:43 -0400 | ||
| 7 | Subject: [PATCH 1/3] Fix: noargs probes should calculate alignment and event | ||
| 8 | length | ||
| 9 | |||
| 10 | A noargs probe could have event fields. noargs just means that the probe | ||
| 11 | does not receive any argument as parameter. However, it could very well | ||
| 12 | serialize data into fields (global variables, constants, etc). | ||
| 13 | |||
| 14 | It just happens that LTTng does not serialize any data in noargs events | ||
| 15 | at the moment, but this may very well change. | ||
| 16 | |||
| 17 | The if (0) with (void) variable access strategy to stop compiler from | ||
| 18 | complaining from unused variables does not seem to work as expected with | ||
| 19 | gcc 4.9.1. Use "unused" attribute instead. | ||
| 20 | |||
| 21 | Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> | ||
| 22 | --- | ||
| 23 | probes/lttng-events.h | 49 +++++++++++++++++++++++++++++++++++-------------- | ||
| 24 | 1 file changed, 35 insertions(+), 14 deletions(-) | ||
| 25 | |||
| 26 | diff --git a/probes/lttng-events.h b/probes/lttng-events.h | ||
| 27 | index 596b70608584..ba9563b15cf9 100644 | ||
| 28 | --- a/probes/lttng-events.h | ||
| 29 | +++ b/probes/lttng-events.h | ||
| 30 | @@ -456,10 +456,19 @@ static __used struct lttng_probe_desc TP_ID(__probe_desc___, TRACE_SYSTEM) = { | ||
| 31 | static inline size_t __event_get_size__##_name(size_t *__dynamic_len, _proto) \ | ||
| 32 | { \ | ||
| 33 | size_t __event_len = 0; \ | ||
| 34 | - unsigned int __dynamic_len_idx = 0; \ | ||
| 35 | + unsigned int __dynamic_len_idx __attribute__((unused)) = 0; \ | ||
| 36 | + \ | ||
| 37 | + _tstruct \ | ||
| 38 | + return __event_len; \ | ||
| 39 | +} | ||
| 40 | + | ||
| 41 | +#undef DECLARE_EVENT_CLASS_NOARGS | ||
| 42 | +#define DECLARE_EVENT_CLASS_NOARGS(_name, _tstruct, _assign, _print) \ | ||
| 43 | +static inline size_t __event_get_size__##_name(size_t *__dynamic_len) \ | ||
| 44 | +{ \ | ||
| 45 | + size_t __event_len = 0; \ | ||
| 46 | + unsigned int __dynamic_len_idx __attribute__((unused)) = 0; \ | ||
| 47 | \ | ||
| 48 | - if (0) \ | ||
| 49 | - (void) __dynamic_len_idx; /* don't warn if unused */ \ | ||
| 50 | _tstruct \ | ||
| 51 | return __event_len; \ | ||
| 52 | } | ||
| 53 | @@ -514,6 +523,15 @@ static inline size_t __event_get_align__##_name(_proto) \ | ||
| 54 | return __event_align; \ | ||
| 55 | } | ||
| 56 | |||
| 57 | +#undef DECLARE_EVENT_CLASS_NOARGS | ||
| 58 | +#define DECLARE_EVENT_CLASS_NOARGS(_name, _tstruct, _assign, _print) \ | ||
| 59 | +static inline size_t __event_get_align__##_name(void) \ | ||
| 60 | +{ \ | ||
| 61 | + size_t __event_align = 1; \ | ||
| 62 | + _tstruct \ | ||
| 63 | + return __event_align; \ | ||
| 64 | +} | ||
| 65 | + | ||
| 66 | #include TRACE_INCLUDE(TRACE_INCLUDE_FILE) | ||
| 67 | |||
| 68 | |||
| 69 | @@ -553,12 +571,16 @@ static inline size_t __event_get_align__##_name(_proto) \ | ||
| 70 | #undef TP_STRUCT__entry | ||
| 71 | #define TP_STRUCT__entry(args...) args | ||
| 72 | |||
| 73 | -#undef DECLARE_EVENT_CLASS | ||
| 74 | -#define DECLARE_EVENT_CLASS(_name, _proto, _args, _tstruct, _assign, _print) \ | ||
| 75 | +#undef DECLARE_EVENT_CLASS_NOARGS | ||
| 76 | +#define DECLARE_EVENT_CLASS_NOARGS(_name, _tstruct, _assign, _print) \ | ||
| 77 | struct __event_typemap__##_name { \ | ||
| 78 | _tstruct \ | ||
| 79 | }; | ||
| 80 | |||
| 81 | +#undef DECLARE_EVENT_CLASS | ||
| 82 | +#define DECLARE_EVENT_CLASS(_name, _proto, _args, _tstruct, _assign, _print) \ | ||
| 83 | + DECLARE_EVENT_CLASS_NOARGS(_name, _tstruct, _assign, _print) | ||
| 84 | + | ||
| 85 | #include TRACE_INCLUDE(TRACE_INCLUDE_FILE) | ||
| 86 | |||
| 87 | |||
| 88 | @@ -760,15 +782,11 @@ static void __event_probe__##_name(void *__data, _proto) \ | ||
| 89 | struct lttng_channel *__chan = __event->chan; \ | ||
| 90 | struct lib_ring_buffer_ctx __ctx; \ | ||
| 91 | size_t __event_len, __event_align; \ | ||
| 92 | - size_t __dynamic_len_idx = 0; \ | ||
| 93 | - size_t __dynamic_len[2 * ARRAY_SIZE(__event_fields___##_name)]; \ | ||
| 94 | - struct __event_typemap__##_name __typemap; \ | ||
| 95 | + size_t __dynamic_len_idx __attribute__((unused)) = 0; \ | ||
| 96 | + size_t __dynamic_len[2 * ARRAY_SIZE(__event_fields___##_name)] __attribute__((unused)); \ | ||
| 97 | + struct __event_typemap__##_name __typemap __attribute__((unused)); \ | ||
| 98 | int __ret; \ | ||
| 99 | \ | ||
| 100 | - if (0) { \ | ||
| 101 | - (void) __dynamic_len_idx; /* don't warn if unused */ \ | ||
| 102 | - (void) __typemap; /* don't warn if unused */ \ | ||
| 103 | - } \ | ||
| 104 | if (!_TP_SESSION_CHECK(session, __chan->session)) \ | ||
| 105 | return; \ | ||
| 106 | if (unlikely(!ACCESS_ONCE(__chan->session->active))) \ | ||
| 107 | @@ -800,6 +818,9 @@ static void __event_probe__##_name(void *__data) \ | ||
| 108 | struct lttng_channel *__chan = __event->chan; \ | ||
| 109 | struct lib_ring_buffer_ctx __ctx; \ | ||
| 110 | size_t __event_len, __event_align; \ | ||
| 111 | + size_t __dynamic_len_idx __attribute__((unused)) = 0; \ | ||
| 112 | + size_t __dynamic_len[2 * ARRAY_SIZE(__event_fields___##_name)] __attribute__((unused)); \ | ||
| 113 | + struct __event_typemap__##_name __typemap __attribute__((unused)); \ | ||
| 114 | int __ret; \ | ||
| 115 | \ | ||
| 116 | if (!_TP_SESSION_CHECK(session, __chan->session)) \ | ||
| 117 | @@ -810,8 +831,8 @@ static void __event_probe__##_name(void *__data) \ | ||
| 118 | return; \ | ||
| 119 | if (unlikely(!ACCESS_ONCE(__event->enabled))) \ | ||
| 120 | return; \ | ||
| 121 | - __event_len = 0; \ | ||
| 122 | - __event_align = 1; \ | ||
| 123 | + __event_len = __event_get_size__##_name(__dynamic_len); \ | ||
| 124 | + __event_align = __event_get_align__##_name(); \ | ||
| 125 | lib_ring_buffer_ctx_init(&__ctx, __chan->chan, __event, __event_len, \ | ||
| 126 | __event_align, -1); \ | ||
| 127 | __ret = __chan->ops->event_reserve(&__ctx, __event->id); \ | ||
| 128 | -- | ||
| 129 | 1.8.1.2 | ||
| 130 | |||
| 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 @@ | |||
| 1 | Upstream-Status: Backport | ||
| 2 | Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> | ||
| 3 | |||
| 4 | From 458c2022e992c057bd21d02e4c77bcc7d4d6cd6c Mon Sep 17 00:00:00 2001 | ||
| 5 | From: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> | ||
| 6 | Date: Thu, 21 Aug 2014 11:15:50 -0400 | ||
| 7 | Subject: [PATCH 3/3] Update kvm instrumentation: compile on 3.17-rc1 | ||
| 8 | |||
| 9 | Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> | ||
| 10 | --- | ||
| 11 | instrumentation/events/lttng-module/arch/x86/kvm/trace.h | 12 +++++++++++- | ||
| 12 | 1 file changed, 11 insertions(+), 1 deletion(-) | ||
| 13 | |||
| 14 | diff --git a/instrumentation/events/lttng-module/arch/x86/kvm/trace.h b/instrumentation/events/lttng-module/arch/x86/kvm/trace.h | ||
| 15 | index 2354884074eb..3c299c58a1cf 100644 | ||
| 16 | --- a/instrumentation/events/lttng-module/arch/x86/kvm/trace.h | ||
| 17 | +++ b/instrumentation/events/lttng-module/arch/x86/kvm/trace.h | ||
| 18 | @@ -724,7 +724,7 @@ TRACE_EVENT(kvm_emulate_insn, | ||
| 19 | tp_memcpy(insn, | ||
| 20 | vcpu->arch.emulate_ctxt.decode.fetch.data, | ||
| 21 | 15) | ||
| 22 | -#else | ||
| 23 | +#elif (LINUX_VERSION_CODE < KERNEL_VERSION(3,17,0)) | ||
| 24 | tp_assign(rip, vcpu->arch.emulate_ctxt.fetch.start) | ||
| 25 | tp_assign(csbase, kvm_x86_ops->get_segment_base(vcpu, VCPU_SREG_CS)) | ||
| 26 | tp_assign(len, vcpu->arch.emulate_ctxt._eip | ||
| 27 | @@ -732,6 +732,16 @@ TRACE_EVENT(kvm_emulate_insn, | ||
| 28 | tp_memcpy(insn, | ||
| 29 | vcpu->arch.emulate_ctxt.fetch.data, | ||
| 30 | 15) | ||
| 31 | +#else | ||
| 32 | + tp_assign(rip, vcpu->arch.emulate_ctxt._eip - | ||
| 33 | + (vcpu->arch.emulate_ctxt.fetch.ptr - | ||
| 34 | + vcpu->arch.emulate_ctxt.fetch.data)) | ||
| 35 | + tp_assign(csbase, kvm_x86_ops->get_segment_base(vcpu, VCPU_SREG_CS)) | ||
| 36 | + tp_assign(len, vcpu->arch.emulate_ctxt.fetch.ptr - | ||
| 37 | + vcpu->arch.emulate_ctxt.fetch.data) | ||
| 38 | + tp_memcpy(insn, | ||
| 39 | + vcpu->arch.emulate_ctxt.fetch.data, | ||
| 40 | + 15) | ||
| 41 | #endif | ||
| 42 | tp_assign(flags, kei_decode_mode(vcpu->arch.emulate_ctxt.mode)) | ||
| 43 | tp_assign(failed, failed) | ||
| 44 | -- | ||
| 45 | 1.8.1.2 | ||
| 46 | |||
| 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. | |||
| 8 | 8 | ||
| 9 | Signed-off-by: Zumeng Chen <zumeng.chen@windriver.com> | 9 | Signed-off-by: Zumeng Chen <zumeng.chen@windriver.com> | 
| 10 | 10 | ||
| 11 | diff --git a/Makefile b/Makefile | 11 | Index: git/Makefile | 
| 12 | index a9d1cb1..c1b65b9 100644 | 12 | =================================================================== | 
| 13 | --- a/Makefile | 13 | --- git.orig/Makefile | 
| 14 | +++ b/Makefile | 14 | +++ git/Makefile | 
| 15 | @@ -43,19 +43,19 @@ obj-m += lib/ | 15 | @@ -62,19 +62,19 @@ obj-m += lib/ | 
| 16 | endif # CONFIG_TRACEPOINTS | 16 | endif # CONFIG_TRACEPOINTS | 
| 17 | 17 | ||
| 18 | else # KERNELRELEASE | 18 | else # KERNELRELEASE | 
| @@ -37,26 +37,11 @@ index a9d1cb1..c1b65b9 100644 | |||
| 37 | - $(MAKE) -C $(KERNELDIR) M=$(PWD) $@ | 37 | - $(MAKE) -C $(KERNELDIR) M=$(PWD) $@ | 
| 38 | + $(MAKE) -C $(KERNEL_SRC) M=$(PWD) $@ | 38 | + $(MAKE) -C $(KERNEL_SRC) M=$(PWD) $@ | 
| 39 | endif # KERNELRELEASE | 39 | endif # KERNELRELEASE | 
| 40 | diff --git a/README b/README | 40 | Index: git/probes/Makefile | 
| 41 | index 8c5dd46..6bd3334 100644 | 41 | =================================================================== | 
| 42 | --- a/README | 42 | --- git.orig/probes/Makefile | 
| 43 | +++ b/README | 43 | +++ git/probes/Makefile | 
| 44 | @@ -27,8 +27,8 @@ access to your full kernel source tree), and use: | 44 | @@ -231,18 +231,18 @@ endif | 
| 45 | If you need to specify the target directory to the kernel you want to build | ||
| 46 | against, use: | ||
| 47 | |||
| 48 | -% KERNELDIR=path_to_kernel_dir make | ||
| 49 | -# KERNELDIR=path_to_kernel_dir make modules_install | ||
| 50 | +% KERNEL_SRC=path_to_kernel_dir make | ||
| 51 | +# KERNEL_SRC=path_to_kernel_dir make modules_install | ||
| 52 | # depmod -a kernel_version | ||
| 53 | |||
| 54 | Use lttng-tools to control the tracer. LTTng tools should automatically load | ||
| 55 | diff --git a/probes/Makefile b/probes/Makefile | ||
| 56 | index 225803c..3449866 100644 | ||
| 57 | --- a/probes/Makefile | ||
| 58 | +++ b/probes/Makefile | ||
| 59 | @@ -212,18 +212,18 @@ endif | ||
| 60 | endif | 45 | endif | 
| 61 | 46 | ||
| 62 | else | 47 | else | 
| diff --git a/meta/recipes-kernel/lttng/lttng-modules_2.5.2.bb b/meta/recipes-kernel/lttng/lttng-modules_2.6.0.bb index 6ec83d090a..d0039b3b14 100644 --- a/meta/recipes-kernel/lttng/lttng-modules_2.5.2.bb +++ b/meta/recipes-kernel/lttng/lttng-modules_2.6.0.bb | |||
| @@ -11,14 +11,12 @@ do_configure[depends] += "virtual/kernel:do_shared_workdir" | |||
| 11 | 11 | ||
| 12 | inherit module | 12 | inherit module | 
| 13 | 13 | ||
| 14 | SRCREV = "16d7431c3a78605ea598dbd3f081a2b1a8463f23" | 14 | SRCREV = "9e8bcbf975844986f021e99e2a30ceedc41b46a8" | 
| 15 | 15 | ||
| 16 | COMPATIBLE_HOST = '(x86_64|i.86|powerpc|aarch64|mips|arm).*-linux' | 16 | COMPATIBLE_HOST = '(x86_64|i.86|powerpc|aarch64|mips|arm).*-linux' | 
| 17 | 17 | ||
| 18 | SRC_URI = "git://git.lttng.org/lttng-modules.git;branch=stable-2.5 \ | 18 | SRC_URI = "git://git.lttng.org/lttng-modules.git;branch=stable-2.6 \ | 
| 19 | file://lttng-modules-replace-KERNELDIR-with-KERNEL_SRC.patch \ | 19 | file://lttng-modules-replace-KERNELDIR-with-KERNEL_SRC.patch \ | 
| 20 | file://Fix-noargs-probes-should-calculate-alignment-and-eve.patch \ | ||
| 21 | file://Update-kvm-instrumentation-compile-on-3.17-rc1.patch \ | ||
| 22 | " | 20 | " | 
| 23 | 21 | ||
| 24 | export INSTALL_MOD_DIR="kernel/lttng-modules" | 22 | export INSTALL_MOD_DIR="kernel/lttng-modules" | 
