diff options
Diffstat (limited to 'meta/recipes-kernel/lttng/lttng-modules')
3 files changed, 10 insertions, 201 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 |