summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta/recipes-kernel/lttng/lttng-modules/Fix-noargs-probes-should-calculate-alignment-and-eve.patch130
-rw-r--r--meta/recipes-kernel/lttng/lttng-modules/Update-kvm-instrumentation-compile-on-3.17-rc1.patch46
-rw-r--r--meta/recipes-kernel/lttng/lttng-modules/lttng-modules-replace-KERNELDIR-with-KERNEL_SRC.patch35
-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 @@
1Upstream-Status: Backport
2Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
3
4From d3de7f1468be0b18145ff85b3c1a7c7fb1d48c15 Mon Sep 17 00:00:00 2001
5From: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
6Date: Fri, 25 Jul 2014 12:30:43 -0400
7Subject: [PATCH 1/3] Fix: noargs probes should calculate alignment and event
8 length
9
10A noargs probe could have event fields. noargs just means that the probe
11does not receive any argument as parameter. However, it could very well
12serialize data into fields (global variables, constants, etc).
13
14It just happens that LTTng does not serialize any data in noargs events
15at the moment, but this may very well change.
16
17The if (0) with (void) variable access strategy to stop compiler from
18complaining from unused variables does not seem to work as expected with
19gcc 4.9.1. Use "unused" attribute instead.
20
21Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
22---
23 probes/lttng-events.h | 49 +++++++++++++++++++++++++++++++++++--------------
24 1 file changed, 35 insertions(+), 14 deletions(-)
25
26diff --git a/probes/lttng-events.h b/probes/lttng-events.h
27index 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--
1291.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 @@
1Upstream-Status: Backport
2Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
3
4From 458c2022e992c057bd21d02e4c77bcc7d4d6cd6c Mon Sep 17 00:00:00 2001
5From: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
6Date: Thu, 21 Aug 2014 11:15:50 -0400
7Subject: [PATCH 3/3] Update kvm instrumentation: compile on 3.17-rc1
8
9Signed-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
14diff --git a/instrumentation/events/lttng-module/arch/x86/kvm/trace.h b/instrumentation/events/lttng-module/arch/x86/kvm/trace.h
15index 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--
451.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
9Signed-off-by: Zumeng Chen <zumeng.chen@windriver.com> 9Signed-off-by: Zumeng Chen <zumeng.chen@windriver.com>
10 10
11diff --git a/Makefile b/Makefile 11Index: git/Makefile
12index 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
40diff --git a/README b/README 40Index: git/probes/Makefile
41index 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
55diff --git a/probes/Makefile b/probes/Makefile
56index 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
12inherit module 12inherit module
13 13
14SRCREV = "16d7431c3a78605ea598dbd3f081a2b1a8463f23" 14SRCREV = "9e8bcbf975844986f021e99e2a30ceedc41b46a8"
15 15
16COMPATIBLE_HOST = '(x86_64|i.86|powerpc|aarch64|mips|arm).*-linux' 16COMPATIBLE_HOST = '(x86_64|i.86|powerpc|aarch64|mips|arm).*-linux'
17 17
18SRC_URI = "git://git.lttng.org/lttng-modules.git;branch=stable-2.5 \ 18SRC_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
24export INSTALL_MOD_DIR="kernel/lttng-modules" 22export INSTALL_MOD_DIR="kernel/lttng-modules"