summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHe Zhe <zhe.he@windriver.com>2020-11-23 19:17:53 +0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2020-11-24 10:27:45 +0000
commit640c718c11028fdf233d72ef0289e2ed5cf62144 (patch)
treed7ec69bfed6fa5b2cc919fffe3746fb7cf90d60c
parent233177bd526977d8d86e8c7b2d580442e97a2f47 (diff)
downloadpoky-640c718c11028fdf233d72ef0289e2ed5cf62144.tar.gz
lttng-modules: Backport a patch to fix btrfs build failure
lttng-modules-2.12.3/probes/lttng-probe-btrfs.c:36: lttng-modules-2.12.3/probes/../probes/lttng-tracepoint-event-impl.h:131:6: error: conflicting types for 'trace_find_free_extent' (From OE-Core rev: 42c791ab3815b47188fdd98998cdcb3d2c62ef20) Signed-off-by: He Zhe <zhe.he@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/recipes-kernel/lttng/lttng-modules/0001-fix-btrfs-tracepoints-output-proper-root-owner-for-t.patch318
-rw-r--r--meta/recipes-kernel/lttng/lttng-modules_2.12.3.bb1
2 files changed, 319 insertions, 0 deletions
diff --git a/meta/recipes-kernel/lttng/lttng-modules/0001-fix-btrfs-tracepoints-output-proper-root-owner-for-t.patch b/meta/recipes-kernel/lttng/lttng-modules/0001-fix-btrfs-tracepoints-output-proper-root-owner-for-t.patch
new file mode 100644
index 0000000000..956f53d7b7
--- /dev/null
+++ b/meta/recipes-kernel/lttng/lttng-modules/0001-fix-btrfs-tracepoints-output-proper-root-owner-for-t.patch
@@ -0,0 +1,318 @@
1From e13a7d262928984154fcf89feb14098e0cd1ad31 Mon Sep 17 00:00:00 2001
2From: Michael Jeanson <mjeanson@efficios.com>
3Date: Tue, 27 Oct 2020 11:42:23 -0400
4Subject: [PATCH 04/11] fix: btrfs: tracepoints: output proper root owner for
5 trace_find_free_extent() (v5.10)
6
7See upstream commit :
8
9 commit 437490fed3b0c9ae21af8f70e0f338d34560842b
10 Author: Qu Wenruo <wqu@suse.com>
11 Date: Tue Jul 28 09:42:49 2020 +0800
12
13 btrfs: tracepoints: output proper root owner for trace_find_free_extent()
14
15 The current trace event always output result like this:
16
17 find_free_extent: root=2(EXTENT_TREE) len=16384 empty_size=0 flags=4(METADATA)
18 find_free_extent: root=2(EXTENT_TREE) len=16384 empty_size=0 flags=4(METADATA)
19 find_free_extent: root=2(EXTENT_TREE) len=8192 empty_size=0 flags=1(DATA)
20 find_free_extent: root=2(EXTENT_TREE) len=8192 empty_size=0 flags=1(DATA)
21 find_free_extent: root=2(EXTENT_TREE) len=4096 empty_size=0 flags=1(DATA)
22 find_free_extent: root=2(EXTENT_TREE) len=4096 empty_size=0 flags=1(DATA)
23
24 T's saying we're allocating data extent for EXTENT tree, which is not
25 even possible.
26
27 It's because we always use EXTENT tree as the owner for
28 trace_find_free_extent() without using the @root from
29 btrfs_reserve_extent().
30
31 This patch will change the parameter to use proper @root for
32 trace_find_free_extent():
33
34 Now it looks much better:
35
36 find_free_extent: root=5(FS_TREE) len=16384 empty_size=0 flags=36(METADATA|DUP)
37 find_free_extent: root=5(FS_TREE) len=8192 empty_size=0 flags=1(DATA)
38 find_free_extent: root=5(FS_TREE) len=16384 empty_size=0 flags=1(DATA)
39 find_free_extent: root=5(FS_TREE) len=4096 empty_size=0 flags=1(DATA)
40 find_free_extent: root=5(FS_TREE) len=8192 empty_size=0 flags=1(DATA)
41 find_free_extent: root=5(FS_TREE) len=16384 empty_size=0 flags=36(METADATA|DUP)
42 find_free_extent: root=7(CSUM_TREE) len=16384 empty_size=0 flags=36(METADATA|DUP)
43 find_free_extent: root=2(EXTENT_TREE) len=16384 empty_size=0 flags=36(METADATA|DUP)
44 find_free_extent: root=1(ROOT_TREE) len=16384 empty_size=0 flags=36(METADATA|DUP)
45
46Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
47Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
48Change-Id: I1d674064d29b31417e2acffdeb735f5052a87032
49
50Upstream-Status: Backport
51
52Signed-off-by: He Zhe <zhe.he@windriver.com>
53---
54 instrumentation/events/lttng-module/btrfs.h | 206 ++++++++++++--------
55 1 file changed, 122 insertions(+), 84 deletions(-)
56
57diff --git a/instrumentation/events/lttng-module/btrfs.h b/instrumentation/events/lttng-module/btrfs.h
58index 7b29008..52fcfd0 100644
59--- a/instrumentation/events/lttng-module/btrfs.h
60+++ b/instrumentation/events/lttng-module/btrfs.h
61@@ -1856,7 +1856,29 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs__reserved_extent, btrfs_reserved_extent_f
62
63 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)) */
64
65-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,5,0))
66+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,10,0) || \
67+ LTTNG_KERNEL_RANGE(5,9,6, 5,10,0) || \
68+ LTTNG_KERNEL_RANGE(5,4,78, 5,5,0))
69+LTTNG_TRACEPOINT_EVENT_MAP(find_free_extent,
70+
71+ btrfs_find_free_extent,
72+
73+ TP_PROTO(const struct btrfs_root *root, u64 num_bytes, u64 empty_size,
74+ u64 data),
75+
76+ TP_ARGS(root, num_bytes, empty_size, data),
77+
78+ TP_FIELDS(
79+ ctf_array(u8, fsid, root->lttng_fs_info_fsid, BTRFS_UUID_SIZE)
80+ ctf_integer(u64, root_objectid, root->root_key.objectid)
81+ ctf_integer(u64, num_bytes, num_bytes)
82+ ctf_integer(u64, empty_size, empty_size)
83+ ctf_integer(u64, data, data)
84+ )
85+)
86+
87+#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(5,5,0))
88+
89 LTTNG_TRACEPOINT_EVENT_MAP(find_free_extent,
90
91 btrfs_find_free_extent,
92@@ -1874,6 +1896,105 @@ LTTNG_TRACEPOINT_EVENT_MAP(find_free_extent,
93 )
94 )
95
96+#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,18,0))
97+
98+LTTNG_TRACEPOINT_EVENT_MAP(find_free_extent,
99+
100+ btrfs_find_free_extent,
101+
102+ TP_PROTO(const struct btrfs_fs_info *fs_info, u64 num_bytes, u64 empty_size,
103+ u64 data),
104+
105+ TP_ARGS(fs_info, num_bytes, empty_size, data),
106+
107+ TP_FIELDS(
108+ ctf_array(u8, fsid, lttng_fs_info_fsid, BTRFS_UUID_SIZE)
109+ ctf_integer(u64, num_bytes, num_bytes)
110+ ctf_integer(u64, empty_size, empty_size)
111+ ctf_integer(u64, data, data)
112+ )
113+)
114+
115+#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0))
116+
117+LTTNG_TRACEPOINT_EVENT_MAP(find_free_extent,
118+
119+ btrfs_find_free_extent,
120+
121+ TP_PROTO(const struct btrfs_fs_info *fs_info, u64 num_bytes, u64 empty_size,
122+ u64 data),
123+
124+ TP_ARGS(fs_info, num_bytes, empty_size, data),
125+
126+ TP_FIELDS(
127+ ctf_array(u8, fsid, lttng_fs_info_fsid, BTRFS_UUID_SIZE)
128+ ctf_integer(u64, num_bytes, num_bytes)
129+ ctf_integer(u64, empty_size, empty_size)
130+ ctf_integer(u64, data, data)
131+ )
132+)
133+
134+#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0))
135+
136+LTTNG_TRACEPOINT_EVENT_MAP(find_free_extent,
137+
138+ btrfs_find_free_extent,
139+
140+ TP_PROTO(struct btrfs_fs_info *fs_info, u64 num_bytes, u64 empty_size,
141+ u64 data),
142+
143+ TP_ARGS(fs_info, num_bytes, empty_size, data),
144+
145+ TP_FIELDS(
146+ ctf_array(u8, fsid, lttng_fs_info_fsid, BTRFS_UUID_SIZE)
147+ ctf_integer(u64, num_bytes, num_bytes)
148+ ctf_integer(u64, empty_size, empty_size)
149+ ctf_integer(u64, data, data)
150+ )
151+)
152+
153+#elif (LTTNG_SLE_KERNEL_RANGE(4,4,73,5,0,0, 4,4,73,6,0,0) || \
154+ LTTNG_SLE_KERNEL_RANGE(4,4,82,6,0,0, 4,4,82,7,0,0) || \
155+ LTTNG_SLE_KERNEL_RANGE(4,4,92,6,0,0, 4,4,92,7,0,0) || \
156+ LTTNG_SLE_KERNEL_RANGE(4,4,103,6,0,0, 4,5,0,0,0,0))
157+
158+LTTNG_TRACEPOINT_EVENT_MAP(find_free_extent,
159+
160+ btrfs_find_free_extent,
161+
162+ TP_PROTO(const struct btrfs_root *root, u64 num_bytes, u64 empty_size,
163+ u64 data),
164+
165+ TP_ARGS(root, num_bytes, empty_size, data),
166+
167+ TP_FIELDS(
168+ ctf_integer(u64, root_objectid, root->root_key.objectid)
169+ ctf_integer(u64, num_bytes, num_bytes)
170+ ctf_integer(u64, empty_size, empty_size)
171+ ctf_integer(u64, data, data)
172+ )
173+)
174+#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0))
175+
176+LTTNG_TRACEPOINT_EVENT_MAP(find_free_extent,
177+
178+ btrfs_find_free_extent,
179+
180+ TP_PROTO(struct btrfs_root *root, u64 num_bytes, u64 empty_size,
181+ u64 data),
182+
183+ TP_ARGS(root, num_bytes, empty_size, data),
184+
185+ TP_FIELDS(
186+ ctf_integer(u64, root_objectid, root->root_key.objectid)
187+ ctf_integer(u64, num_bytes, num_bytes)
188+ ctf_integer(u64, empty_size, empty_size)
189+ ctf_integer(u64, data, data)
190+ )
191+)
192+#endif
193+
194+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,5,0))
195 LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__reserve_extent,
196
197 TP_PROTO(const struct btrfs_block_group *block_group, u64 start,
198@@ -1907,22 +2028,6 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs__reserve_extent, btrfs_reserve_extent_clus
199 )
200
201 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,18,0))
202-LTTNG_TRACEPOINT_EVENT_MAP(find_free_extent,
203-
204- btrfs_find_free_extent,
205-
206- TP_PROTO(const struct btrfs_fs_info *fs_info, u64 num_bytes, u64 empty_size,
207- u64 data),
208-
209- TP_ARGS(fs_info, num_bytes, empty_size, data),
210-
211- TP_FIELDS(
212- ctf_array(u8, fsid, lttng_fs_info_fsid, BTRFS_UUID_SIZE)
213- ctf_integer(u64, num_bytes, num_bytes)
214- ctf_integer(u64, empty_size, empty_size)
215- ctf_integer(u64, data, data)
216- )
217-)
218
219 LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__reserve_extent,
220
221@@ -1957,22 +2062,6 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs__reserve_extent, btrfs_reserve_extent_clus
222 )
223
224 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0))
225-LTTNG_TRACEPOINT_EVENT_MAP(find_free_extent,
226-
227- btrfs_find_free_extent,
228-
229- TP_PROTO(const struct btrfs_fs_info *fs_info, u64 num_bytes, u64 empty_size,
230- u64 data),
231-
232- TP_ARGS(fs_info, num_bytes, empty_size, data),
233-
234- TP_FIELDS(
235- ctf_array(u8, fsid, lttng_fs_info_fsid, BTRFS_UUID_SIZE)
236- ctf_integer(u64, num_bytes, num_bytes)
237- ctf_integer(u64, empty_size, empty_size)
238- ctf_integer(u64, data, data)
239- )
240-)
241
242 LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__reserve_extent,
243
244@@ -2011,23 +2100,6 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs__reserve_extent, btrfs_reserve_extent_clus
245
246 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0))
247
248-LTTNG_TRACEPOINT_EVENT_MAP(find_free_extent,
249-
250- btrfs_find_free_extent,
251-
252- TP_PROTO(struct btrfs_fs_info *fs_info, u64 num_bytes, u64 empty_size,
253- u64 data),
254-
255- TP_ARGS(fs_info, num_bytes, empty_size, data),
256-
257- TP_FIELDS(
258- ctf_array(u8, fsid, lttng_fs_info_fsid, BTRFS_UUID_SIZE)
259- ctf_integer(u64, num_bytes, num_bytes)
260- ctf_integer(u64, empty_size, empty_size)
261- ctf_integer(u64, data, data)
262- )
263-)
264-
265 LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__reserve_extent,
266
267 TP_PROTO(struct btrfs_fs_info *fs_info,
268@@ -2066,23 +2138,6 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs__reserve_extent, btrfs_reserve_extent_clus
269 LTTNG_SLE_KERNEL_RANGE(4,4,92,6,0,0, 4,4,92,7,0,0) || \
270 LTTNG_SLE_KERNEL_RANGE(4,4,103,6,0,0, 4,5,0,0,0,0))
271
272-LTTNG_TRACEPOINT_EVENT_MAP(find_free_extent,
273-
274- btrfs_find_free_extent,
275-
276- TP_PROTO(const struct btrfs_root *root, u64 num_bytes, u64 empty_size,
277- u64 data),
278-
279- TP_ARGS(root, num_bytes, empty_size, data),
280-
281- TP_FIELDS(
282- ctf_integer(u64, root_objectid, root->root_key.objectid)
283- ctf_integer(u64, num_bytes, num_bytes)
284- ctf_integer(u64, empty_size, empty_size)
285- ctf_integer(u64, data, data)
286- )
287-)
288-
289 LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__reserve_extent,
290
291 TP_PROTO(const struct btrfs_root *root,
292@@ -2120,23 +2175,6 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs__reserve_extent, btrfs_reserve_extent_clus
293
294 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0))
295
296-LTTNG_TRACEPOINT_EVENT_MAP(find_free_extent,
297-
298- btrfs_find_free_extent,
299-
300- TP_PROTO(struct btrfs_root *root, u64 num_bytes, u64 empty_size,
301- u64 data),
302-
303- TP_ARGS(root, num_bytes, empty_size, data),
304-
305- TP_FIELDS(
306- ctf_integer(u64, root_objectid, root->root_key.objectid)
307- ctf_integer(u64, num_bytes, num_bytes)
308- ctf_integer(u64, empty_size, empty_size)
309- ctf_integer(u64, data, data)
310- )
311-)
312-
313 LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__reserve_extent,
314
315 TP_PROTO(struct btrfs_root *root,
316--
3172.17.1
318
diff --git a/meta/recipes-kernel/lttng/lttng-modules_2.12.3.bb b/meta/recipes-kernel/lttng/lttng-modules_2.12.3.bb
index 0b6a69ff5e..ca79e27df6 100644
--- a/meta/recipes-kernel/lttng/lttng-modules_2.12.3.bb
+++ b/meta/recipes-kernel/lttng/lttng-modules_2.12.3.bb
@@ -11,6 +11,7 @@ include lttng-platforms.inc
11SRC_URI = "https://lttng.org/files/${BPN}/${BPN}-${PV}.tar.bz2 \ 11SRC_URI = "https://lttng.org/files/${BPN}/${BPN}-${PV}.tar.bz2 \
12 file://Makefile-Do-not-fail-if-CONFIG_TRACEPOINTS-is-not-en.patch \ 12 file://Makefile-Do-not-fail-if-CONFIG_TRACEPOINTS-is-not-en.patch \
13 file://BUILD_RUNTIME_BUG_ON-vs-gcc7.patch \ 13 file://BUILD_RUNTIME_BUG_ON-vs-gcc7.patch \
14 file://0001-fix-btrfs-tracepoints-output-proper-root-owner-for-t.patch \
14 " 15 "
15 16
16SRC_URI[sha256sum] = "673ef85c9f03e9b8fed10795e09d4e68add39404b70068d08b10f7b85754d7f0" 17SRC_URI[sha256sum] = "673ef85c9f03e9b8fed10795e09d4e68add39404b70068d08b10f7b85754d7f0"