summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBruce Ashfield <bruce.ashfield@gmail.com>2022-02-03 23:16:34 -0500
committerRichard Purdie <richard.purdie@linuxfoundation.org>2022-02-10 10:32:07 +0000
commitc45ed6eda9c736b38d1c64b8242aebe97109886e (patch)
treeba1babac7a33354353683a46232b67ed8105901f
parentc4fa1d994e26f905df39731eb975b9f453fb11ab (diff)
downloadpoky-c45ed6eda9c736b38d1c64b8242aebe97109886e.tar.gz
lttng-modules: fix build against v5.17+
To fix the build against v5.17+ kernels, we backport 7 patches from the lttng-modules upstream repository. If a 2.13.2 lttng-modules release is done before the upcoming release, we'll obviously drop these patches. (From OE-Core rev: 4783a0fd9f86a0247a44b07bdb7e733e57c6664f) Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/recipes-kernel/lttng/lttng-modules/0001-fix-block-remove-GENHD_FL_SUPPRESS_PARTITION_INFO-v5.patch63
-rw-r--r--meta/recipes-kernel/lttng/lttng-modules/0002-fix-block-remove-the-rq_disk-field-in-struct-request.patch157
-rw-r--r--meta/recipes-kernel/lttng/lttng-modules/0003-fix-mm-compaction-fix-the-migration-stats-in-trace_m.patch61
-rw-r--r--meta/recipes-kernel/lttng/lttng-modules/0004-fix-btrfs-pass-fs_info-to-trace_btrfs_transaction_co.patch103
-rw-r--r--meta/recipes-kernel/lttng/lttng-modules/0005-fix-random-rather-than-entropy_store-abstraction-use.patch147
-rw-r--r--meta/recipes-kernel/lttng/lttng-modules/0006-fix-net-skb-introduce-kfree_skb_reason-v5.17.patch88
-rw-r--r--meta/recipes-kernel/lttng/lttng-modules/0007-fix-net-socket-rename-SKB_DROP_REASON_SOCKET_FILTER-.patch47
-rw-r--r--meta/recipes-kernel/lttng/lttng-modules_2.13.1.bb7
8 files changed, 673 insertions, 0 deletions
diff --git a/meta/recipes-kernel/lttng/lttng-modules/0001-fix-block-remove-GENHD_FL_SUPPRESS_PARTITION_INFO-v5.patch b/meta/recipes-kernel/lttng/lttng-modules/0001-fix-block-remove-GENHD_FL_SUPPRESS_PARTITION_INFO-v5.patch
new file mode 100644
index 0000000000..61c56c84ce
--- /dev/null
+++ b/meta/recipes-kernel/lttng/lttng-modules/0001-fix-block-remove-GENHD_FL_SUPPRESS_PARTITION_INFO-v5.patch
@@ -0,0 +1,63 @@
1From a88ee460b93c67ca756bd91ee9a8660813f65bd8 Mon Sep 17 00:00:00 2001
2From: Michael Jeanson <mjeanson@efficios.com>
3Date: Sun, 23 Jan 2022 13:04:47 -0500
4Subject: [PATCH 1/7] fix: block: remove GENHD_FL_SUPPRESS_PARTITION_INFO
5 (v5.17)
6
7See upstream commit :
8
9 commit 3b5149ac50970669ee0ddb9629ec77ffd5c0622d
10 Author: Christoph Hellwig <hch@lst.de>
11 Date: Mon Nov 22 14:06:21 2021 +0100
12
13 block: remove GENHD_FL_SUPPRESS_PARTITION_INFO
14
15 This flag is not set directly anywhere and only inherited from
16 GENHD_FL_HIDDEN. Just check for GENHD_FL_HIDDEN instead.
17
18 Link: https://lore.kernel.org/r/20211122130625.1136848-11-hch@lst.de
19
20
21Upstream-Status: Backport [lttng-modules commit a88ee460b93c67ca756bd91ee9a8660813f65bd8]
22
23Change-Id: Ide92bdaaff7d16e96be23aaf00cebeaa601235b7
24Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
25Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
26---
27 include/wrapper/genhd.h | 6 ++++++
28 src/lttng-statedump-impl.c | 2 +-
29 2 files changed, 7 insertions(+), 1 deletion(-)
30
31diff --git a/include/wrapper/genhd.h b/include/wrapper/genhd.h
32index 68980388..3c6dbcbe 100644
33--- a/include/wrapper/genhd.h
34+++ b/include/wrapper/genhd.h
35@@ -14,6 +14,12 @@
36
37 #include <linux/genhd.h>
38
39+#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,17,0))
40+#define LTTNG_GENHD_FL_HIDDEN GENHD_FL_HIDDEN
41+#else
42+#define LTTNG_GENHD_FL_HIDDEN GENHD_FL_SUPPRESS_PARTITION_INFO
43+#endif
44+
45 #ifdef CONFIG_KALLSYMS_ALL
46
47 #include <linux/kallsyms.h>
48diff --git a/src/lttng-statedump-impl.c b/src/lttng-statedump-impl.c
49index c5fca89d..4d7b2921 100644
50--- a/src/lttng-statedump-impl.c
51+++ b/src/lttng-statedump-impl.c
52@@ -334,7 +334,7 @@ int lttng_enumerate_block_devices(struct lttng_kernel_session *session)
53 * suppressed
54 */
55 if (get_capacity(disk) == 0 ||
56- (disk->flags & GENHD_FL_SUPPRESS_PARTITION_INFO))
57+ (disk->flags & LTTNG_GENHD_FL_HIDDEN))
58 continue;
59
60 ret = lttng_statedump_each_block_device(session, disk);
61--
622.19.1
63
diff --git a/meta/recipes-kernel/lttng/lttng-modules/0002-fix-block-remove-the-rq_disk-field-in-struct-request.patch b/meta/recipes-kernel/lttng/lttng-modules/0002-fix-block-remove-the-rq_disk-field-in-struct-request.patch
new file mode 100644
index 0000000000..37a169a2e9
--- /dev/null
+++ b/meta/recipes-kernel/lttng/lttng-modules/0002-fix-block-remove-the-rq_disk-field-in-struct-request.patch
@@ -0,0 +1,157 @@
1From 4b1945d3c055de4b49e310f799e6f92c57546349 Mon Sep 17 00:00:00 2001
2From: Michael Jeanson <mjeanson@efficios.com>
3Date: Sun, 23 Jan 2022 13:11:47 -0500
4Subject: [PATCH 2/7] fix: block: remove the ->rq_disk field in struct request
5 (v5.17)
6
7See upstream commit :
8
9 commit f3fa33acca9f0058157214800f68b10d8e71ab7a
10 Author: Christoph Hellwig <hch@lst.de>
11 Date: Fri Nov 26 13:18:00 2021 +0100
12
13 block: remove the ->rq_disk field in struct request
14
15 Just use the disk attached to the request_queue instead.
16
17 Link: https://lore.kernel.org/r/20211126121802.2090656-4-hch@lst.de
18
19Upstream-Status: Backport [lttng-modules commit 4b1945d3c055de4b49e310f799e6f92c57546349]
20
21Change-Id: I24263be519d1b51f4b00bd95f14a9aeb8457889a
22Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
23Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
24---
25 include/instrumentation/events/block.h | 95 ++++++++++++++++++++++++--
26 1 file changed, 91 insertions(+), 4 deletions(-)
27
28diff --git a/include/instrumentation/events/block.h b/include/instrumentation/events/block.h
29index 6782c36f..3e1104d7 100644
30--- a/include/instrumentation/events/block.h
31+++ b/include/instrumentation/events/block.h
32@@ -310,7 +310,31 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(block_rq_with_error, block_rq_abort,
33 )
34 #endif
35
36-#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,11,0))
37+#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,17,0))
38+/**
39+ * block_rq_requeue - place block IO request back on a queue
40+ * @rq: block IO operation request
41+ *
42+ * The block operation request @rq is being placed back into queue
43+ * @q. For some reason the request was not completed and needs to be
44+ * put back in the queue.
45+ */
46+LTTNG_TRACEPOINT_EVENT(block_rq_requeue,
47+
48+ TP_PROTO(struct request *rq),
49+
50+ TP_ARGS(rq),
51+
52+ TP_FIELDS(
53+ ctf_integer(dev_t, dev,
54+ rq->q->disk ? disk_devt(rq->q->disk) : 0)
55+ ctf_integer(sector_t, sector, blk_rq_trace_sector(rq))
56+ ctf_integer(unsigned int, nr_sector, blk_rq_trace_nr_sectors(rq))
57+ blk_rwbs_ctf_integer(unsigned int, rwbs,
58+ lttng_req_op(rq), lttng_req_rw(rq), blk_rq_bytes(rq))
59+ )
60+)
61+#elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,11,0))
62 /**
63 * block_rq_requeue - place block IO request back on a queue
64 * @rq: block IO operation request
65@@ -380,7 +404,24 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(block_rq_with_error, block_rq_requeue,
66 * do for the request. If @rq->bio is non-NULL then there is
67 * additional work required to complete the request.
68 */
69-#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,16,0))
70+#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,17,0))
71+LTTNG_TRACEPOINT_EVENT(block_rq_complete,
72+
73+ TP_PROTO(struct request *rq, blk_status_t error, unsigned int nr_bytes),
74+
75+ TP_ARGS(rq, error, nr_bytes),
76+
77+ TP_FIELDS(
78+ ctf_integer(dev_t, dev,
79+ rq->q->disk ? disk_devt(rq->q->disk) : 0)
80+ ctf_integer(sector_t, sector, blk_rq_pos(rq))
81+ ctf_integer(unsigned int, nr_sector, nr_bytes >> 9)
82+ ctf_integer(int, error, blk_status_to_errno(error))
83+ blk_rwbs_ctf_integer(unsigned int, rwbs,
84+ lttng_req_op(rq), lttng_req_rw(rq), nr_bytes)
85+ )
86+)
87+#elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,16,0))
88 LTTNG_TRACEPOINT_EVENT(block_rq_complete,
89
90 TP_PROTO(struct request *rq, blk_status_t error, unsigned int nr_bytes),
91@@ -519,7 +560,26 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(block_rq_with_error, block_rq_complete,
92
93 #endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,15,0)) */
94
95-#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,11,0))
96+#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,17,0))
97+LTTNG_TRACEPOINT_EVENT_CLASS(block_rq,
98+
99+ TP_PROTO(struct request *rq),
100+
101+ TP_ARGS(rq),
102+
103+ TP_FIELDS(
104+ ctf_integer(dev_t, dev,
105+ rq->q->disk ? disk_devt(rq->q->disk) : 0)
106+ ctf_integer(sector_t, sector, blk_rq_trace_sector(rq))
107+ ctf_integer(unsigned int, nr_sector, blk_rq_trace_nr_sectors(rq))
108+ ctf_integer(unsigned int, bytes, blk_rq_bytes(rq))
109+ ctf_integer(pid_t, tid, current->pid)
110+ blk_rwbs_ctf_integer(unsigned int, rwbs,
111+ lttng_req_op(rq), lttng_req_rw(rq), blk_rq_bytes(rq))
112+ ctf_array_text(char, comm, current->comm, TASK_COMM_LEN)
113+ )
114+)
115+#elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,11,0))
116 LTTNG_TRACEPOINT_EVENT_CLASS(block_rq,
117
118 TP_PROTO(struct request *rq),
119@@ -1513,7 +1573,34 @@ LTTNG_TRACEPOINT_EVENT(block_bio_remap,
120 )
121 #endif
122
123-#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,11,0))
124+#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,17,0))
125+/**
126+ * block_rq_remap - map request for a block operation request
127+ * @rq: block IO operation request
128+ * @dev: device for the operation
129+ * @from: original sector for the operation
130+ *
131+ * The block operation request @rq in @q has been remapped. The block
132+ * operation request @rq holds the current information and @from hold
133+ * the original sector.
134+ */
135+LTTNG_TRACEPOINT_EVENT(block_rq_remap,
136+
137+ TP_PROTO(struct request *rq, dev_t dev, sector_t from),
138+
139+ TP_ARGS(rq, dev, from),
140+
141+ TP_FIELDS(
142+ ctf_integer(dev_t, dev, disk_devt(rq->q->disk))
143+ ctf_integer(sector_t, sector, blk_rq_pos(rq))
144+ ctf_integer(unsigned int, nr_sector, blk_rq_sectors(rq))
145+ ctf_integer(dev_t, old_dev, dev)
146+ ctf_integer(sector_t, old_sector, from)
147+ blk_rwbs_ctf_integer(unsigned int, rwbs,
148+ lttng_req_op(rq), lttng_req_rw(rq), blk_rq_bytes(rq))
149+ )
150+)
151+#elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,11,0))
152 /**
153 * block_rq_remap - map request for a block operation request
154 * @rq: block IO operation request
155--
1562.19.1
157
diff --git a/meta/recipes-kernel/lttng/lttng-modules/0003-fix-mm-compaction-fix-the-migration-stats-in-trace_m.patch b/meta/recipes-kernel/lttng/lttng-modules/0003-fix-mm-compaction-fix-the-migration-stats-in-trace_m.patch
new file mode 100644
index 0000000000..522753be28
--- /dev/null
+++ b/meta/recipes-kernel/lttng/lttng-modules/0003-fix-mm-compaction-fix-the-migration-stats-in-trace_m.patch
@@ -0,0 +1,61 @@
1From afc4fe8905620a3eb14a5ed16146dac1db0f8111 Mon Sep 17 00:00:00 2001
2From: Michael Jeanson <mjeanson@efficios.com>
3Date: Sun, 23 Jan 2022 13:26:17 -0500
4Subject: [PATCH 3/7] fix: mm: compaction: fix the migration stats in
5 trace_mm_compaction_migratepages() (v5.17)
6
7See upstream commit :
8
9 commit 84b328aa81216e08804d8875d63f26bda1298788
10 Author: Baolin Wang <baolin.wang@linux.alibaba.com>
11 Date: Fri Jan 14 14:08:40 2022 -0800
12
13 mm: compaction: fix the migration stats in trace_mm_compaction_migratepages()
14
15 Now the migrate_pages() has changed to return the number of {normal
16 page, THP, hugetlb} instead, thus we should not use the return value to
17 calculate the number of pages migrated successfully. Instead we can
18 just use the 'nr_succeeded' which indicates the number of normal pages
19 migrated successfully to calculate the non-migrated pages in
20 trace_mm_compaction_migratepages().
21
22 Link: https://lkml.kernel.org/r/b4225251c4bec068dcd90d275ab7de88a39e2bd7.1636275127.git.baolin.wang@linux.alibaba.com
23
24Upstream-Status: Backport [lttng-modules commit afc4fe8905620a3eb14a5ed16146dac1db0f8111]
25
26Change-Id: Ib8e8f2a16a273f16cd73fe63afbbfc25c0a2540c
27Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
28Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
29---
30 include/instrumentation/events/compaction.h | 15 ++++++++++++++-
31 1 file changed, 14 insertions(+), 1 deletion(-)
32
33diff --git a/include/instrumentation/events/compaction.h b/include/instrumentation/events/compaction.h
34index 3cc25537..340e41f5 100644
35--- a/include/instrumentation/events/compaction.h
36+++ b/include/instrumentation/events/compaction.h
37@@ -97,7 +97,20 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(compaction_isolate_template,
38
39 #endif /* #else #if LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,0,0) */
40
41-#if LTTNG_KERNEL_RANGE(3,12,30, 3,13,0) || \
42+#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,17,0))
43+LTTNG_TRACEPOINT_EVENT(mm_compaction_migratepages,
44+
45+ TP_PROTO(unsigned long nr_all,
46+ unsigned int nr_succeeded),
47+
48+ TP_ARGS(nr_all, nr_succeeded),
49+
50+ TP_FIELDS(
51+ ctf_integer(unsigned long, nr_migrated, nr_succeeded)
52+ ctf_integer(unsigned long, nr_failed, nr_all - nr_succeeded)
53+ )
54+)
55+#elif LTTNG_KERNEL_RANGE(3,12,30, 3,13,0) || \
56 LTTNG_KERNEL_RANGE(3,14,25, 3,15,0) || \
57 (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,16,0))
58 LTTNG_TRACEPOINT_EVENT_CODE_MAP(mm_compaction_migratepages,
59--
602.19.1
61
diff --git a/meta/recipes-kernel/lttng/lttng-modules/0004-fix-btrfs-pass-fs_info-to-trace_btrfs_transaction_co.patch b/meta/recipes-kernel/lttng/lttng-modules/0004-fix-btrfs-pass-fs_info-to-trace_btrfs_transaction_co.patch
new file mode 100644
index 0000000000..f33d15f900
--- /dev/null
+++ b/meta/recipes-kernel/lttng/lttng-modules/0004-fix-btrfs-pass-fs_info-to-trace_btrfs_transaction_co.patch
@@ -0,0 +1,103 @@
1From c8f96e7716404549b19b9a774f5d9987325608bc Mon Sep 17 00:00:00 2001
2From: Michael Jeanson <mjeanson@efficios.com>
3Date: Wed, 26 Jan 2022 14:37:52 -0500
4Subject: [PATCH 4/7] fix: btrfs: pass fs_info to
5 trace_btrfs_transaction_commit (v5.17)
6
7See upstream commit :
8
9 commit 2e4e97abac4c95f8b87b2912ea013f7836a6f10b
10 Author: Josef Bacik <josef@toxicpanda.com>
11 Date: Fri Nov 5 16:45:29 2021 -0400
12
13 btrfs: pass fs_info to trace_btrfs_transaction_commit
14
15 The root on the trans->root can be anything, and generally we're
16 committing from the transaction kthread so it's usually the tree_root.
17 Change this to just take an fs_info, and to maintain compatibility
18 simply put the ROOT_TREE_OBJECTID as the root objectid for the
19 tracepoint. This will allow use to remove trans->root.
20
21
22Upstream-Status: Backport [lttng-modules commit c8f96e7716404549b19b9a774f5d9987325608bc]
23
24Change-Id: Ie5a4804330edabffac0714fcb9c25b8c8599e424
25Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
26Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
27---
28 include/instrumentation/events/btrfs.h | 44 ++++++++++++++++++--------
29 1 file changed, 31 insertions(+), 13 deletions(-)
30
31diff --git a/include/instrumentation/events/btrfs.h b/include/instrumentation/events/btrfs.h
32index 0a0e085a..785f16ac 100644
33--- a/include/instrumentation/events/btrfs.h
34+++ b/include/instrumentation/events/btrfs.h
35@@ -43,7 +43,19 @@ struct extent_state;
36 #define lttng_fs_info_fsid fs_info->fsid
37 #endif
38
39-#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,14,0) || \
40+#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,17,0))
41+LTTNG_TRACEPOINT_EVENT(btrfs_transaction_commit,
42+
43+ TP_PROTO(const struct btrfs_fs_info *fs_info),
44+
45+ TP_ARGS(fs_info),
46+
47+ TP_FIELDS(
48+ ctf_integer(u64, generation, fs_info->generation)
49+ ctf_integer(u64, root_objectid, BTRFS_ROOT_TREE_OBJECTID)
50+ )
51+)
52+#elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,14,0) || \
53 LTTNG_SLE_KERNEL_RANGE(4,4,73,5,0,0, 4,4,73,6,0,0) || \
54 LTTNG_SLE_KERNEL_RANGE(4,4,82,6,0,0, 4,4,82,7,0,0) || \
55 LTTNG_SLE_KERNEL_RANGE(4,4,92,6,0,0, 4,4,92,7,0,0) || \
56@@ -59,7 +71,25 @@ LTTNG_TRACEPOINT_EVENT(btrfs_transaction_commit,
57 ctf_integer(u64, root_objectid, root->root_key.objectid)
58 )
59 )
60+#else
61+LTTNG_TRACEPOINT_EVENT(btrfs_transaction_commit,
62+
63+ TP_PROTO(struct btrfs_root *root),
64+
65+ TP_ARGS(root),
66
67+ TP_FIELDS(
68+ ctf_integer(u64, generation, root->fs_info->generation)
69+ ctf_integer(u64, root_objectid, root->root_key.objectid)
70+ )
71+)
72+#endif
73+
74+#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,14,0) || \
75+ LTTNG_SLE_KERNEL_RANGE(4,4,73,5,0,0, 4,4,73,6,0,0) || \
76+ LTTNG_SLE_KERNEL_RANGE(4,4,82,6,0,0, 4,4,82,7,0,0) || \
77+ LTTNG_SLE_KERNEL_RANGE(4,4,92,6,0,0, 4,4,92,7,0,0) || \
78+ LTTNG_SLE_KERNEL_RANGE(4,4,103,6,0,0, 4,5,0,0,0,0))
79 LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__inode,
80
81 TP_PROTO(const struct inode *inode),
82@@ -99,18 +129,6 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs__inode, btrfs_inode_evict,
83 TP_ARGS(inode)
84 )
85 #else
86-LTTNG_TRACEPOINT_EVENT(btrfs_transaction_commit,
87-
88- TP_PROTO(struct btrfs_root *root),
89-
90- TP_ARGS(root),
91-
92- TP_FIELDS(
93- ctf_integer(u64, generation, root->fs_info->generation)
94- ctf_integer(u64, root_objectid, root->root_key.objectid)
95- )
96-)
97-
98 LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__inode,
99
100 TP_PROTO(struct inode *inode),
101--
1022.19.1
103
diff --git a/meta/recipes-kernel/lttng/lttng-modules/0005-fix-random-rather-than-entropy_store-abstraction-use.patch b/meta/recipes-kernel/lttng/lttng-modules/0005-fix-random-rather-than-entropy_store-abstraction-use.patch
new file mode 100644
index 0000000000..9159e62119
--- /dev/null
+++ b/meta/recipes-kernel/lttng/lttng-modules/0005-fix-random-rather-than-entropy_store-abstraction-use.patch
@@ -0,0 +1,147 @@
1From 98b7729a776bc5babb39345eeeba3cd1f60d8c9a Mon Sep 17 00:00:00 2001
2From: Michael Jeanson <mjeanson@efficios.com>
3Date: Wed, 26 Jan 2022 14:53:41 -0500
4Subject: [PATCH 5/7] fix: random: rather than entropy_store abstraction, use
5 global (v5.17)
6
7See upstream commit :
8
9 commit 90ed1e67e896cc8040a523f8428fc02f9b164394
10 Author: Jason A. Donenfeld <Jason@zx2c4.com>
11 Date: Wed Jan 12 17:18:08 2022 +0100
12
13 random: rather than entropy_store abstraction, use global
14
15 Originally, the RNG used several pools, so having things abstracted out
16 over a generic entropy_store object made sense. These days, there's only
17 one input pool, and then an uneven mix of usage via the abstraction and
18 usage via &input_pool. Rather than this uneasy mixture, just get rid of
19 the abstraction entirely and have things always use the global. This
20 simplifies the code and makes reading it a bit easier.
21
22Upstream-Status: Backport [lttng-modules commit 98b7729a776bc5babb39345eeeba3cd1f60d8c9a]
23
24Change-Id: I1a2a14d7b6e69a047804e1e91e00fe002f757431
25Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
26Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
27---
28 include/instrumentation/events/random.h | 81 ++++++++++++++++++++++++-
29 1 file changed, 80 insertions(+), 1 deletion(-)
30
31diff --git a/include/instrumentation/events/random.h b/include/instrumentation/events/random.h
32index ed05d26a..8cc88adb 100644
33--- a/include/instrumentation/events/random.h
34+++ b/include/instrumentation/events/random.h
35@@ -8,6 +8,36 @@
36 #include <lttng/tracepoint-event.h>
37 #include <linux/writeback.h>
38
39+#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,17,0))
40+LTTNG_TRACEPOINT_EVENT_CLASS(random__mix_pool_bytes,
41+ TP_PROTO(int bytes, unsigned long IP),
42+
43+ TP_ARGS(bytes, IP),
44+
45+ TP_FIELDS(
46+ ctf_integer(int, bytes, bytes)
47+ ctf_integer_hex(unsigned long, IP, IP)
48+ )
49+)
50+
51+LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(random__mix_pool_bytes, mix_pool_bytes,
52+
53+ random_mix_pool_bytes,
54+
55+ TP_PROTO(int bytes, unsigned long IP),
56+
57+ TP_ARGS(bytes, IP)
58+)
59+
60+LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(random__mix_pool_bytes, mix_pool_bytes_nolock,
61+
62+ random_mix_pool_bytes_nolock,
63+
64+ TP_PROTO(int bytes, unsigned long IP),
65+
66+ TP_ARGS(bytes, IP)
67+)
68+#else
69 LTTNG_TRACEPOINT_EVENT_CLASS(random__mix_pool_bytes,
70 TP_PROTO(const char *pool_name, int bytes, unsigned long IP),
71
72@@ -37,8 +67,24 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(random__mix_pool_bytes, mix_pool_bytes_noloc
73
74 TP_ARGS(pool_name, bytes, IP)
75 )
76+#endif
77
78-#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,2,0))
79+#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,17,0))
80+LTTNG_TRACEPOINT_EVENT_MAP(credit_entropy_bits,
81+
82+ random_credit_entropy_bits,
83+
84+ TP_PROTO(int bits, int entropy_count, unsigned long IP),
85+
86+ TP_ARGS(bits, entropy_count, IP),
87+
88+ TP_FIELDS(
89+ ctf_integer(int, bits, bits)
90+ ctf_integer(int, entropy_count, entropy_count)
91+ ctf_integer_hex(unsigned long, IP, IP)
92+ )
93+)
94+#elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,2,0))
95 LTTNG_TRACEPOINT_EVENT_MAP(credit_entropy_bits,
96
97 random_credit_entropy_bits,
98@@ -89,6 +135,38 @@ LTTNG_TRACEPOINT_EVENT_MAP(get_random_bytes,
99 )
100 )
101
102+#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,17,0))
103+LTTNG_TRACEPOINT_EVENT_CLASS(random__extract_entropy,
104+ TP_PROTO(int nbytes, int entropy_count, unsigned long IP),
105+
106+ TP_ARGS(nbytes, entropy_count, IP),
107+
108+ TP_FIELDS(
109+ ctf_integer(int, nbytes, nbytes)
110+ ctf_integer(int, entropy_count, entropy_count)
111+ ctf_integer_hex(unsigned long, IP, IP)
112+ )
113+)
114+
115+
116+LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(random__extract_entropy, extract_entropy,
117+
118+ random_extract_entropy,
119+
120+ TP_PROTO(int nbytes, int entropy_count, unsigned long IP),
121+
122+ TP_ARGS(nbytes, entropy_count, IP)
123+)
124+
125+LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(random__extract_entropy, extract_entropy_user,
126+
127+ random_extract_entropy_user,
128+
129+ TP_PROTO(int nbytes, int entropy_count, unsigned long IP),
130+
131+ TP_ARGS(nbytes, entropy_count, IP)
132+)
133+#else
134 LTTNG_TRACEPOINT_EVENT_CLASS(random__extract_entropy,
135 TP_PROTO(const char *pool_name, int nbytes, int entropy_count,
136 unsigned long IP),
137@@ -123,6 +201,7 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(random__extract_entropy, extract_entropy_use
138
139 TP_ARGS(pool_name, nbytes, entropy_count, IP)
140 )
141+#endif
142
143
144
145--
1462.19.1
147
diff --git a/meta/recipes-kernel/lttng/lttng-modules/0006-fix-net-skb-introduce-kfree_skb_reason-v5.17.patch b/meta/recipes-kernel/lttng/lttng-modules/0006-fix-net-skb-introduce-kfree_skb_reason-v5.17.patch
new file mode 100644
index 0000000000..abf74e8441
--- /dev/null
+++ b/meta/recipes-kernel/lttng/lttng-modules/0006-fix-net-skb-introduce-kfree_skb_reason-v5.17.patch
@@ -0,0 +1,88 @@
1From 6e9d0d578fdf90901507dd9f9929d0e6fcdd3211 Mon Sep 17 00:00:00 2001
2From: Michael Jeanson <mjeanson@efficios.com>
3Date: Wed, 26 Jan 2022 14:49:11 -0500
4Subject: [PATCH 6/7] fix: net: skb: introduce kfree_skb_reason() (v5.17)
5
6See upstream commit :
7
8 commit c504e5c2f9648a1e5c2be01e8c3f59d394192bd3
9 Author: Menglong Dong <imagedong@tencent.com>
10 Date: Sun Jan 9 14:36:26 2022 +0800
11
12 net: skb: introduce kfree_skb_reason()
13
14 Introduce the interface kfree_skb_reason(), which is able to pass
15 the reason why the skb is dropped to 'kfree_skb' tracepoint.
16
17 Add the 'reason' field to 'trace_kfree_skb', therefor user can get
18 more detail information about abnormal skb with 'drop_monitor' or
19 eBPF.
20
21 All drop reasons are defined in the enum 'skb_drop_reason', and
22 they will be print as string in 'kfree_skb' tracepoint in format
23 of 'reason: XXX'.
24
25 ( Maybe the reasons should be defined in a uapi header file, so that
26 user space can use them? )
27
28Upstream-Status: Backport [lttng-modules commit 6e9d0d578fdf90901507dd9f9929d0e6fcdd3211]
29
30Change-Id: I6766678a288da959498a4736fc3f95bf239c3e94
31Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
32Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
33---
34 include/instrumentation/events/skb.h | 31 ++++++++++++++++++++++++++++
35 1 file changed, 31 insertions(+)
36
37diff --git a/include/instrumentation/events/skb.h b/include/instrumentation/events/skb.h
38index d6579363..c6d7095d 100644
39--- a/include/instrumentation/events/skb.h
40+++ b/include/instrumentation/events/skb.h
41@@ -13,6 +13,36 @@
42 /*
43 * Tracepoint for free an sk_buff:
44 */
45+#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,17,0))
46+LTTNG_TRACEPOINT_ENUM(skb_drop_reason,
47+ TP_ENUM_VALUES(
48+ ctf_enum_value("NOT_SPECIFIED", SKB_DROP_REASON_NOT_SPECIFIED)
49+ ctf_enum_value("NO_SOCKET", SKB_DROP_REASON_NO_SOCKET)
50+ ctf_enum_value("PKT_TOO_SMALL", SKB_DROP_REASON_PKT_TOO_SMALL)
51+ ctf_enum_value("TCP_CSUM", SKB_DROP_REASON_TCP_CSUM)
52+ ctf_enum_value("TCP_FILTER", SKB_DROP_REASON_TCP_FILTER)
53+ ctf_enum_value("UDP_CSUM", SKB_DROP_REASON_UDP_CSUM)
54+ ctf_enum_value("MAX", SKB_DROP_REASON_MAX)
55+ )
56+)
57+
58+LTTNG_TRACEPOINT_EVENT_MAP(kfree_skb,
59+
60+ skb_kfree,
61+
62+ TP_PROTO(struct sk_buff *skb, void *location,
63+ enum skb_drop_reason reason),
64+
65+ TP_ARGS(skb, location, reason),
66+
67+ TP_FIELDS(
68+ ctf_integer_hex(void *, skbaddr, skb)
69+ ctf_integer_hex(void *, location, location)
70+ ctf_integer_network(unsigned short, protocol, skb->protocol)
71+ ctf_enum(skb_drop_reason, uint8_t, reason, reason)
72+ )
73+)
74+#else
75 LTTNG_TRACEPOINT_EVENT_MAP(kfree_skb,
76
77 skb_kfree,
78@@ -27,6 +57,7 @@ LTTNG_TRACEPOINT_EVENT_MAP(kfree_skb,
79 ctf_integer_network(unsigned short, protocol, skb->protocol)
80 )
81 )
82+#endif
83
84 LTTNG_TRACEPOINT_EVENT_MAP(consume_skb,
85
86--
872.19.1
88
diff --git a/meta/recipes-kernel/lttng/lttng-modules/0007-fix-net-socket-rename-SKB_DROP_REASON_SOCKET_FILTER-.patch b/meta/recipes-kernel/lttng/lttng-modules/0007-fix-net-socket-rename-SKB_DROP_REASON_SOCKET_FILTER-.patch
new file mode 100644
index 0000000000..d1d8728027
--- /dev/null
+++ b/meta/recipes-kernel/lttng/lttng-modules/0007-fix-net-socket-rename-SKB_DROP_REASON_SOCKET_FILTER-.patch
@@ -0,0 +1,47 @@
1From 7584cfc04914cb0842a986e9808686858b9c8630 Mon Sep 17 00:00:00 2001
2From: Michael Jeanson <mjeanson@efficios.com>
3Date: Mon, 31 Jan 2022 10:47:53 -0500
4Subject: [PATCH 7/7] fix: net: socket: rename SKB_DROP_REASON_SOCKET_FILTER
5 (v5.17)
6
7No version check needed since this change is between two RCs, see
8upstream commit :
9
10 commit 364df53c081d93fcfd6b91085ff2650c7f17b3c7
11 Author: Menglong Dong <imagedong@tencent.com>
12 Date: Thu Jan 27 17:13:01 2022 +0800
13
14 net: socket: rename SKB_DROP_REASON_SOCKET_FILTER
15
16 Rename SKB_DROP_REASON_SOCKET_FILTER, which is used
17 as the reason of skb drop out of socket filter before
18 it's part of a released kernel. It will be used for
19 more protocols than just TCP in future series.
20
21 Link: https://lore.kernel.org/all/20220127091308.91401-2-imagedong@tencent.com/
22
23Upstream-Status: Backport [lttng-modules commit 7584cfc04914cb0842a986e9808686858b9c8630]
24
25Change-Id: I666461a5b541fe9e0bf53ad996ce33237af4bfbb
26Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
27Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
28---
29 include/instrumentation/events/skb.h | 2 +-
30 1 file changed, 1 insertion(+), 1 deletion(-)
31
32diff --git a/include/instrumentation/events/skb.h b/include/instrumentation/events/skb.h
33index c6d7095d..237e54ad 100644
34--- a/include/instrumentation/events/skb.h
35+++ b/include/instrumentation/events/skb.h
36@@ -20,7 +20,7 @@ LTTNG_TRACEPOINT_ENUM(skb_drop_reason,
37 ctf_enum_value("NO_SOCKET", SKB_DROP_REASON_NO_SOCKET)
38 ctf_enum_value("PKT_TOO_SMALL", SKB_DROP_REASON_PKT_TOO_SMALL)
39 ctf_enum_value("TCP_CSUM", SKB_DROP_REASON_TCP_CSUM)
40- ctf_enum_value("TCP_FILTER", SKB_DROP_REASON_TCP_FILTER)
41+ ctf_enum_value("SOCKET_FILTER", SKB_DROP_REASON_SOCKET_FILTER)
42 ctf_enum_value("UDP_CSUM", SKB_DROP_REASON_UDP_CSUM)
43 ctf_enum_value("MAX", SKB_DROP_REASON_MAX)
44 )
45--
462.19.1
47
diff --git a/meta/recipes-kernel/lttng/lttng-modules_2.13.1.bb b/meta/recipes-kernel/lttng/lttng-modules_2.13.1.bb
index b05cad6be7..e7712e618a 100644
--- a/meta/recipes-kernel/lttng/lttng-modules_2.13.1.bb
+++ b/meta/recipes-kernel/lttng/lttng-modules_2.13.1.bb
@@ -10,6 +10,13 @@ inherit module
10include lttng-platforms.inc 10include lttng-platforms.inc
11 11
12SRC_URI = "https://lttng.org/files/${BPN}/${BPN}-${PV}.tar.bz2 \ 12SRC_URI = "https://lttng.org/files/${BPN}/${BPN}-${PV}.tar.bz2 \
13 file://0001-fix-block-remove-GENHD_FL_SUPPRESS_PARTITION_INFO-v5.patch \
14 file://0002-fix-block-remove-the-rq_disk-field-in-struct-request.patch \
15 file://0003-fix-mm-compaction-fix-the-migration-stats-in-trace_m.patch \
16 file://0004-fix-btrfs-pass-fs_info-to-trace_btrfs_transaction_co.patch \
17 file://0005-fix-random-rather-than-entropy_store-abstraction-use.patch \
18 file://0006-fix-net-skb-introduce-kfree_skb_reason-v5.17.patch \
19 file://0007-fix-net-socket-rename-SKB_DROP_REASON_SOCKET_FILTER-.patch \
13 " 20 "
14# Use :append here so that the patch is applied also when using devupstream 21# Use :append here so that the patch is applied also when using devupstream
15SRC_URI:append = " file://0001-src-Kbuild-change-missing-CONFIG_TRACEPOINTS-to-warn.patch" 22SRC_URI:append = " file://0001-src-Kbuild-change-missing-CONFIG_TRACEPOINTS-to-warn.patch"