summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta/recipes-kernel/lttng/lttng-modules/0001-Fix-signal-Distinguish-between-kernel_siginfo-and-si.patch133
-rw-r--r--meta/recipes-kernel/lttng/lttng-modules/0002-Fix-signal-Remove-SEND_SIG_FORCED-v4.20.patch67
-rw-r--r--meta/recipes-kernel/lttng/lttng-modules/0003-Fix-ext4-adjust-reserved-cluster-count-when-removing.patch149
-rw-r--r--meta/recipes-kernel/lttng/lttng-modules/0004-Fix-timer-instrumentation-for-RHEL-7.6.patch32
-rw-r--r--meta/recipes-kernel/lttng/lttng-modules/0005-Fix-Remove-type-argument-from-access_ok-function-v5..patch204
-rw-r--r--meta/recipes-kernel/lttng/lttng-modules/0006-Fix-Replace-pointer-values-with-task-tk_pid-and-rpc_.patch186
-rw-r--r--meta/recipes-kernel/lttng/lttng-modules/0007-Fix-SUNRPC-Simplify-defining-common-RPC-trace-events.patch183
-rw-r--r--meta/recipes-kernel/lttng/lttng-modules/0008-Fix-btrfs-Remove-fsid-metadata_fsid-fields-from-btrf.patch341
-rw-r--r--meta/recipes-kernel/lttng/lttng-modules/0009-Cleanup-tp-mempool-Remove-logically-dead-code.patch46
-rw-r--r--meta/recipes-kernel/lttng/lttng-modules_2.10.9.bb (renamed from meta/recipes-kernel/lttng/lttng-modules_2.10.8.bb)13
10 files changed, 2 insertions, 1352 deletions
diff --git a/meta/recipes-kernel/lttng/lttng-modules/0001-Fix-signal-Distinguish-between-kernel_siginfo-and-si.patch b/meta/recipes-kernel/lttng/lttng-modules/0001-Fix-signal-Distinguish-between-kernel_siginfo-and-si.patch
deleted file mode 100644
index 351184dabb..0000000000
--- a/meta/recipes-kernel/lttng/lttng-modules/0001-Fix-signal-Distinguish-between-kernel_siginfo-and-si.patch
+++ /dev/null
@@ -1,133 +0,0 @@
1From 0a0d736ec89dffdbc83e7181166a99d5563acfe8 Mon Sep 17 00:00:00 2001
2From: Michael Jeanson <mjeanson@efficios.com>
3Date: Mon, 5 Nov 2018 11:35:52 -0500
4Subject: [PATCH 1/9] Fix: signal: Distinguish between kernel_siginfo and
5 siginfo (v4.20)
6
7See upstream commit :
8
9 commit ae7795bc6187a15ec51cf258abae656a625f9980
10 Author: Eric W. Biederman <ebiederm@xmission.com>
11 Date: Tue Sep 25 11:27:20 2018 +0200
12
13 signal: Distinguish between kernel_siginfo and siginfo
14
15 Linus recently observed that if we did not worry about the padding
16 member in struct siginfo it is only about 48 bytes, and 48 bytes is
17 much nicer than 128 bytes for allocating on the stack and copying
18 around in the kernel.
19
20 The obvious thing of only adding the padding when userspace is
21 including siginfo.h won't work as there are sigframe definitions in
22 the kernel that embed struct siginfo.
23
24 So split siginfo in two; kernel_siginfo and siginfo. Keeping the
25 traditional name for the userspace definition. While the version that
26 is used internally to the kernel and ultimately will not be padded to
27 128 bytes is called kernel_siginfo.
28
29 The definition of struct kernel_siginfo I have put in include/signal_types.h
30
31 A set of buildtime checks has been added to verify the two structures have
32 the same field offsets.
33
34 To make it easy to verify the change kernel_siginfo retains the same
35 size as siginfo. The reduction in size comes in a following change.
36
37Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
38Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
39
40Upstream-Status: backport https://github.com/lttng/lttng-modules/commit/0a0d736ec89dffdbc83e7181166a99d5563acfe8
41
42Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
43---
44 instrumentation/events/lttng-module/signal.h | 41 ++++++++++++++++++--
45 1 file changed, 37 insertions(+), 4 deletions(-)
46
47diff --git a/instrumentation/events/lttng-module/signal.h b/instrumentation/events/lttng-module/signal.h
48index b3c9126..8783b52 100644
49--- a/instrumentation/events/lttng-module/signal.h
50+++ b/instrumentation/events/lttng-module/signal.h
51@@ -35,21 +35,24 @@
52 * SEND_SIG_NOINFO means that si_code is SI_USER, and SEND_SIG_PRIV
53 * means that si_code is SI_KERNEL.
54 */
55-#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,4,0))
56+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,20,0))
57 LTTNG_TRACEPOINT_EVENT(signal_generate,
58
59- TP_PROTO(int sig, struct siginfo *info, struct task_struct *task),
60+ TP_PROTO(int sig, struct kernel_siginfo *info, struct task_struct *task,
61+ int group, int result),
62
63- TP_ARGS(sig, info, task),
64+ TP_ARGS(sig, info, task, group, result),
65
66 TP_FIELDS(
67 ctf_integer(int, sig, sig)
68 LTTNG_FIELDS_SIGINFO(info)
69 ctf_array_text(char, comm, task->comm, TASK_COMM_LEN)
70 ctf_integer(pid_t, pid, task->pid)
71+ ctf_integer(int, group, group)
72+ ctf_integer(int, result, result)
73 )
74 )
75-#else
76+#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0))
77 LTTNG_TRACEPOINT_EVENT(signal_generate,
78
79 TP_PROTO(int sig, struct siginfo *info, struct task_struct *task,
80@@ -66,6 +69,20 @@ LTTNG_TRACEPOINT_EVENT(signal_generate,
81 ctf_integer(int, result, result)
82 )
83 )
84+#else
85+LTTNG_TRACEPOINT_EVENT(signal_generate,
86+
87+ TP_PROTO(int sig, struct siginfo *info, struct task_struct *task),
88+
89+ TP_ARGS(sig, info, task),
90+
91+ TP_FIELDS(
92+ ctf_integer(int, sig, sig)
93+ LTTNG_FIELDS_SIGINFO(info)
94+ ctf_array_text(char, comm, task->comm, TASK_COMM_LEN)
95+ ctf_integer(pid_t, pid, task->pid)
96+ )
97+)
98 #endif
99
100 /**
101@@ -82,6 +99,21 @@ LTTNG_TRACEPOINT_EVENT(signal_generate,
102 * This means, this can show which signals are actually delivered, but
103 * matching generated signals and delivered signals may not be correct.
104 */
105+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,20,0))
106+LTTNG_TRACEPOINT_EVENT(signal_deliver,
107+
108+ TP_PROTO(int sig, struct kernel_siginfo *info, struct k_sigaction *ka),
109+
110+ TP_ARGS(sig, info, ka),
111+
112+ TP_FIELDS(
113+ ctf_integer(int, sig, sig)
114+ LTTNG_FIELDS_SIGINFO(info)
115+ ctf_integer(unsigned long, sa_handler, (unsigned long) ka->sa.sa_handler)
116+ ctf_integer(unsigned long, sa_flags, ka->sa.sa_flags)
117+ )
118+)
119+#else
120 LTTNG_TRACEPOINT_EVENT(signal_deliver,
121
122 TP_PROTO(int sig, struct siginfo *info, struct k_sigaction *ka),
123@@ -95,6 +127,7 @@ LTTNG_TRACEPOINT_EVENT(signal_deliver,
124 ctf_integer(unsigned long, sa_flags, ka->sa.sa_flags)
125 )
126 )
127+#endif
128
129 #if (LINUX_VERSION_CODE < KERNEL_VERSION(3,4,0))
130 LTTNG_TRACEPOINT_EVENT_CLASS(signal_queue_overflow,
131--
1322.19.1
133
diff --git a/meta/recipes-kernel/lttng/lttng-modules/0002-Fix-signal-Remove-SEND_SIG_FORCED-v4.20.patch b/meta/recipes-kernel/lttng/lttng-modules/0002-Fix-signal-Remove-SEND_SIG_FORCED-v4.20.patch
deleted file mode 100644
index 905b68165b..0000000000
--- a/meta/recipes-kernel/lttng/lttng-modules/0002-Fix-signal-Remove-SEND_SIG_FORCED-v4.20.patch
+++ /dev/null
@@ -1,67 +0,0 @@
1From 26bc064a4d4c85e6000393aadb38659f99b59162 Mon Sep 17 00:00:00 2001
2From: Michael Jeanson <mjeanson@efficios.com>
3Date: Mon, 5 Nov 2018 11:35:53 -0500
4Subject: [PATCH 2/9] Fix: signal: Remove SEND_SIG_FORCED (v4.20)
5
6See upstream commit :
7
8 commit 4ff4c31a6e85f4c49fbeebeaa28018d002884b5a
9 Author: Eric W. Biederman <ebiederm@xmission.com>
10 Date: Mon Sep 3 10:39:04 2018 +0200
11
12 signal: Remove SEND_SIG_FORCED
13
14 There are no more users of SEND_SIG_FORCED so it may be safely removed.
15
16 Remove the definition of SEND_SIG_FORCED, it's use in is_si_special,
17 it's use in TP_STORE_SIGINFO, and it's use in __send_signal as without
18 any users the uses of SEND_SIG_FORCED are now unncessary.
19
20 This makes the code simpler, easier to understand and use. Users of
21 signal sending functions now no longer need to ask themselves do I
22 need to use SEND_SIG_FORCED.
23
24Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
25Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
26
27Upstream-Status: backport https://github.com/lttng/lttng-modules/commit/26bc064a4d4c85e6000393aadb38659f99b59162
28
29Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
30
31---
32 instrumentation/events/lttng-module/signal.h | 12 ++++++++++++
33 1 file changed, 12 insertions(+)
34
35diff --git a/instrumentation/events/lttng-module/signal.h b/instrumentation/events/lttng-module/signal.h
36index 8783b52..ad8fe69 100644
37--- a/instrumentation/events/lttng-module/signal.h
38+++ b/instrumentation/events/lttng-module/signal.h
39@@ -12,6 +12,17 @@
40 #include <linux/signal.h>
41 #include <linux/sched.h>
42 #undef LTTNG_FIELDS_SIGINFO
43+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,20,0))
44+#define LTTNG_FIELDS_SIGINFO(info) \
45+ ctf_integer(int, errno, \
46+ (info == SEND_SIG_NOINFO || info == SEND_SIG_PRIV) ? \
47+ 0 : \
48+ info->si_errno) \
49+ ctf_integer(int, code, \
50+ (info == SEND_SIG_NOINFO) ? \
51+ SI_USER : \
52+ ((info == SEND_SIG_PRIV) ? SI_KERNEL : info->si_code))
53+#else /* LINUX_VERSION_CODE >= KERNEL_VERSION(4,20,0) */
54 #define LTTNG_FIELDS_SIGINFO(info) \
55 ctf_integer(int, errno, \
56 (info == SEND_SIG_NOINFO || info == SEND_SIG_FORCED || info == SEND_SIG_PRIV) ? \
57@@ -21,6 +32,7 @@
58 (info == SEND_SIG_NOINFO || info == SEND_SIG_FORCED) ? \
59 SI_USER : \
60 ((info == SEND_SIG_PRIV) ? SI_KERNEL : info->si_code))
61+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(4,20,0) */
62 #endif /* _TRACE_SIGNAL_DEF */
63
64 /**
65--
662.19.1
67
diff --git a/meta/recipes-kernel/lttng/lttng-modules/0003-Fix-ext4-adjust-reserved-cluster-count-when-removing.patch b/meta/recipes-kernel/lttng/lttng-modules/0003-Fix-ext4-adjust-reserved-cluster-count-when-removing.patch
deleted file mode 100644
index 7edffee542..0000000000
--- a/meta/recipes-kernel/lttng/lttng-modules/0003-Fix-ext4-adjust-reserved-cluster-count-when-removing.patch
+++ /dev/null
@@ -1,149 +0,0 @@
1From cb9f1a821bcf55cecf3813195fd6d4eff8070927 Mon Sep 17 00:00:00 2001
2From: Michael Jeanson <mjeanson@efficios.com>
3Date: Mon, 5 Nov 2018 11:35:54 -0500
4Subject: [PATCH 3/9] Fix: ext4: adjust reserved cluster count when removing
5 extents (v4.20)
6
7See upstream commit :
8
9 commit 9fe671496b6c286f9033aedfc1718d67721da0ae
10 Author: Eric Whitney <enwlinux@gmail.com>
11 Date: Mon Oct 1 14:25:08 2018 -0400
12
13 ext4: adjust reserved cluster count when removing extents
14
15 Modify ext4_ext_remove_space() and the code it calls to correct the
16 reserved cluster count for pending reservations (delayed allocated
17 clusters shared with allocated blocks) when a block range is removed
18 from the extent tree. Pending reservations may be found for the clusters
19 at the ends of written or unwritten extents when a block range is removed.
20 If a physical cluster at the end of an extent is freed, it's necessary
21 to increment the reserved cluster count to maintain correct accounting
22 if the corresponding logical cluster is shared with at least one
23 delayed and unwritten extent as found in the extents status tree.
24
25 Add a new function, ext4_rereserve_cluster(), to reapply a reservation
26 on a delayed allocated cluster sharing blocks with a freed allocated
27 cluster. To avoid ENOSPC on reservation, a flag is applied to
28 ext4_free_blocks() to briefly defer updating the freeclusters counter
29 when an allocated cluster is freed. This prevents another thread
30 from allocating the freed block before the reservation can be reapplied.
31
32 Redefine the partial cluster object as a struct to carry more state
33 information and to clarify the code using it.
34
35 Adjust the conditional code structure in ext4_ext_remove_space to
36 reduce the indentation level in the main body of the code to improve
37 readability.
38
39Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
40Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
41
42Upstream-Status: backport https://github.com/lttng/lttng-modules/commit/cb9f1a821bcf55cecf3813195fd6d4eff8070927
43
44Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
45
46---
47 instrumentation/events/lttng-module/ext4.h | 72 +++++++++++++++++++++-
48 1 file changed, 69 insertions(+), 3 deletions(-)
49
50diff --git a/instrumentation/events/lttng-module/ext4.h b/instrumentation/events/lttng-module/ext4.h
51index fe6f802..83a80ba 100644
52--- a/instrumentation/events/lttng-module/ext4.h
53+++ b/instrumentation/events/lttng-module/ext4.h
54@@ -1602,7 +1602,30 @@ LTTNG_TRACEPOINT_EVENT(ext4_ext_show_extent,
55 )
56 )
57
58-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
59+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,20,0))
60+
61+LTTNG_TRACEPOINT_EVENT(ext4_remove_blocks,
62+ TP_PROTO(struct inode *inode, struct ext4_extent *ex,
63+ ext4_lblk_t from, ext4_fsblk_t to,
64+ struct partial_cluster *pc),
65+
66+ TP_ARGS(inode, ex, from, to, pc),
67+
68+ TP_FIELDS(
69+ ctf_integer(dev_t, dev, inode->i_sb->s_dev)
70+ ctf_integer(ino_t, ino, inode->i_ino)
71+ ctf_integer(ext4_lblk_t, from, from)
72+ ctf_integer(ext4_lblk_t, to, to)
73+ ctf_integer(ext4_fsblk_t, ee_pblk, ext4_ext_pblock(ex))
74+ ctf_integer(ext4_lblk_t, ee_lblk, le32_to_cpu(ex->ee_block))
75+ ctf_integer(unsigned short, ee_len, ext4_ext_get_actual_len(ex))
76+ ctf_integer(ext4_fsblk_t, pc_pclu, pc->pclu)
77+ ctf_integer(ext4_lblk_t, pc_lblk, pc->lblk)
78+ ctf_integer(int, pc_state, pc->state)
79+ )
80+)
81+
82+#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
83
84 LTTNG_TRACEPOINT_EVENT(ext4_remove_blocks,
85 TP_PROTO(struct inode *inode, struct ext4_extent *ex,
86@@ -1646,7 +1669,29 @@ LTTNG_TRACEPOINT_EVENT(ext4_remove_blocks,
87
88 #endif
89
90-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
91+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,20,0))
92+
93+LTTNG_TRACEPOINT_EVENT(ext4_ext_rm_leaf,
94+ TP_PROTO(struct inode *inode, ext4_lblk_t start,
95+ struct ext4_extent *ex,
96+ struct partial_cluster *pc),
97+
98+ TP_ARGS(inode, start, ex, pc),
99+
100+ TP_FIELDS(
101+ ctf_integer(dev_t, dev, inode->i_sb->s_dev)
102+ ctf_integer(ino_t, ino, inode->i_ino)
103+ ctf_integer(ext4_lblk_t, start, start)
104+ ctf_integer(ext4_lblk_t, ee_lblk, le32_to_cpu(ex->ee_block))
105+ ctf_integer(ext4_fsblk_t, ee_pblk, ext4_ext_pblock(ex))
106+ ctf_integer(short, ee_len, ext4_ext_get_actual_len(ex))
107+ ctf_integer(ext4_fsblk_t, pc_pclu, pc->pclu)
108+ ctf_integer(ext4_lblk_t, pc_lblk, pc->lblk)
109+ ctf_integer(int, pc_state, pc->state)
110+ )
111+)
112+
113+#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
114
115 LTTNG_TRACEPOINT_EVENT(ext4_ext_rm_leaf,
116 TP_PROTO(struct inode *inode, ext4_lblk_t start,
117@@ -1733,7 +1778,28 @@ LTTNG_TRACEPOINT_EVENT(ext4_ext_remove_space,
118
119 #endif
120
121-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
122+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,20,0))
123+
124+LTTNG_TRACEPOINT_EVENT(ext4_ext_remove_space_done,
125+ TP_PROTO(struct inode *inode, ext4_lblk_t start, ext4_lblk_t end,
126+ int depth, struct partial_cluster *pc, __le16 eh_entries),
127+
128+ TP_ARGS(inode, start, end, depth, pc, eh_entries),
129+
130+ TP_FIELDS(
131+ ctf_integer(dev_t, dev, inode->i_sb->s_dev)
132+ ctf_integer(ino_t, ino, inode->i_ino)
133+ ctf_integer(ext4_lblk_t, start, start)
134+ ctf_integer(ext4_lblk_t, end, end)
135+ ctf_integer(int, depth, depth)
136+ ctf_integer(unsigned short, eh_entries, le16_to_cpu(eh_entries))
137+ ctf_integer(ext4_fsblk_t, pc_pclu, pc->pclu)
138+ ctf_integer(ext4_lblk_t, pc_lblk, pc->lblk)
139+ ctf_integer(int, pc_state, pc->state)
140+ )
141+)
142+
143+#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
144
145 LTTNG_TRACEPOINT_EVENT(ext4_ext_remove_space_done,
146 TP_PROTO(struct inode *inode, ext4_lblk_t start, ext4_lblk_t end,
147--
1482.19.1
149
diff --git a/meta/recipes-kernel/lttng/lttng-modules/0004-Fix-timer-instrumentation-for-RHEL-7.6.patch b/meta/recipes-kernel/lttng/lttng-modules/0004-Fix-timer-instrumentation-for-RHEL-7.6.patch
deleted file mode 100644
index b5d50dba1c..0000000000
--- a/meta/recipes-kernel/lttng/lttng-modules/0004-Fix-timer-instrumentation-for-RHEL-7.6.patch
+++ /dev/null
@@ -1,32 +0,0 @@
1From 4eaeb54a27fbf701c2a4908a6e90a978b93deb06 Mon Sep 17 00:00:00 2001
2From: Michael Jeanson <mjeanson@efficios.com>
3Date: Thu, 6 Dec 2018 11:31:51 -0500
4Subject: [PATCH 4/9] Fix: timer instrumentation for RHEL 7.6
5
6Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
7Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
8
9Upstream-Status: backport https://github.com/lttng/lttng-modules/commit/4eaeb54a27fbf701c2a4908a6e90a978b93deb06
10
11Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
12---
13 instrumentation/events/lttng-module/timer.h | 3 ++-
14 1 file changed, 2 insertions(+), 1 deletion(-)
15
16diff --git a/instrumentation/events/lttng-module/timer.h b/instrumentation/events/lttng-module/timer.h
17index 6f0cb7f..8807ad5 100644
18--- a/instrumentation/events/lttng-module/timer.h
19+++ b/instrumentation/events/lttng-module/timer.h
20@@ -44,7 +44,8 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(timer_class, timer_init,
21 TP_ARGS(timer)
22 )
23
24-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,2,0))
25+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,2,0) || \
26+ LTTNG_RHEL_KERNEL_RANGE(3,10,0,957,0,0, 3,11,0,0,0,0))
27 /**
28 * timer_start - called when the timer is started
29 * @timer: pointer to struct timer_list
30--
312.19.1
32
diff --git a/meta/recipes-kernel/lttng/lttng-modules/0005-Fix-Remove-type-argument-from-access_ok-function-v5..patch b/meta/recipes-kernel/lttng/lttng-modules/0005-Fix-Remove-type-argument-from-access_ok-function-v5..patch
deleted file mode 100644
index 2266bbd9e0..0000000000
--- a/meta/recipes-kernel/lttng/lttng-modules/0005-Fix-Remove-type-argument-from-access_ok-function-v5..patch
+++ /dev/null
@@ -1,204 +0,0 @@
1From 0039dbe9891cfdf2c0d04691f83c2f342993dfd7 Mon Sep 17 00:00:00 2001
2From: Michael Jeanson <mjeanson@efficios.com>
3Date: Wed, 9 Jan 2019 14:59:15 -0500
4Subject: [PATCH 5/9] Fix: Remove 'type' argument from access_ok() function
5 (v5.0)
6
7See upstream commit :
8
9 commit 96d4f267e40f9509e8a66e2b39e8b95655617693
10 Author: Linus Torvalds <torvalds@linux-foundation.org>
11 Date: Thu Jan 3 18:57:57 2019 -0800
12
13 Remove 'type' argument from access_ok() function
14
15 Nobody has actually used the type (VERIFY_READ vs VERIFY_WRITE) argument
16 of the user address range verification function since we got rid of the
17 old racy i386-only code to walk page tables by hand.
18
19 It existed because the original 80386 would not honor the write protect
20 bit when in kernel mode, so you had to do COW by hand before doing any
21 user access. But we haven't supported that in a long time, and these
22 days the 'type' argument is a purely historical artifact.
23
24 A discussion about extending 'user_access_begin()' to do the range
25 checking resulted this patch, because there is no way we're going to
26 move the old VERIFY_xyz interface to that model. And it's best done at
27 the end of the merge window when I've done most of my merges, so let's
28 just get this done once and for all.
29
30 This patch was mostly done with a sed-script, with manual fix-ups for
31 the cases that weren't of the trivial 'access_ok(VERIFY_xyz' form.
32
33 There were a couple of notable cases:
34
35 - csky still had the old "verify_area()" name as an alias.
36
37 - the iter_iov code had magical hardcoded knowledge of the actual
38 values of VERIFY_{READ,WRITE} (not that they mattered, since nothing
39 really used it)
40
41 - microblaze used the type argument for a debug printout
42
43 but other than those oddities this should be a total no-op patch.
44
45 I tried to fix up all architectures, did fairly extensive grepping for
46 access_ok() uses, and the changes are trivial, but I may have missed
47 something. Any missed conversion should be trivially fixable, though.
48
49Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
50Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
51
52Upstream-Status: backport https://github.com/lttng/lttng-modules/commit/0039dbe9891cfdf2c0d04691f83c2f342993dfd7
53
54Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
55---
56 lib/ringbuffer/backend.h | 8 ++++----
57 lib/ringbuffer/ring_buffer_iterator.c | 3 ++-
58 lttng-filter-interpreter.c | 4 ++--
59 probes/lttng-probe-user.c | 3 ++-
60 wrapper/uaccess.h | 28 +++++++++++++++++++++++++++
61 5 files changed, 38 insertions(+), 8 deletions(-)
62 create mode 100644 wrapper/uaccess.h
63
64diff --git a/lib/ringbuffer/backend.h b/lib/ringbuffer/backend.h
65index 0b75de8..3f8c108 100644
66--- a/lib/ringbuffer/backend.h
67+++ b/lib/ringbuffer/backend.h
68@@ -34,7 +34,7 @@
69 #include <linux/list.h>
70 #include <linux/fs.h>
71 #include <linux/mm.h>
72-#include <linux/uaccess.h>
73+#include <wrapper/uaccess.h>
74
75 /* Internal helpers */
76 #include <wrapper/ringbuffer/backend_internal.h>
77@@ -302,7 +302,7 @@ void lib_ring_buffer_copy_from_user_inatomic(const struct lib_ring_buffer_config
78
79 set_fs(KERNEL_DS);
80 pagefault_disable();
81- if (unlikely(!access_ok(VERIFY_READ, src, len)))
82+ if (unlikely(!lttng_access_ok(VERIFY_READ, src, len)))
83 goto fill_buffer;
84
85 if (likely(pagecpy == len)) {
86@@ -372,7 +372,7 @@ void lib_ring_buffer_strcpy_from_user_inatomic(const struct lib_ring_buffer_conf
87
88 set_fs(KERNEL_DS);
89 pagefault_disable();
90- if (unlikely(!access_ok(VERIFY_READ, src, len)))
91+ if (unlikely(!lttng_access_ok(VERIFY_READ, src, len)))
92 goto fill_buffer;
93
94 if (likely(pagecpy == len)) {
95@@ -462,7 +462,7 @@ unsigned long lib_ring_buffer_copy_from_user_check_nofault(void *dest,
96 unsigned long ret;
97 mm_segment_t old_fs;
98
99- if (!access_ok(VERIFY_READ, src, len))
100+ if (!lttng_access_ok(VERIFY_READ, src, len))
101 return 1;
102 old_fs = get_fs();
103 set_fs(KERNEL_DS);
104diff --git a/lib/ringbuffer/ring_buffer_iterator.c b/lib/ringbuffer/ring_buffer_iterator.c
105index 61eaa5b..9645946 100644
106--- a/lib/ringbuffer/ring_buffer_iterator.c
107+++ b/lib/ringbuffer/ring_buffer_iterator.c
108@@ -27,6 +27,7 @@
109
110 #include <wrapper/ringbuffer/iterator.h>
111 #include <wrapper/file.h>
112+#include <wrapper/uaccess.h>
113 #include <linux/jiffies.h>
114 #include <linux/delay.h>
115 #include <linux/module.h>
116@@ -621,7 +622,7 @@ ssize_t channel_ring_buffer_file_read(struct file *filp,
117 ssize_t len;
118
119 might_sleep();
120- if (!access_ok(VERIFY_WRITE, user_buf, count))
121+ if (!lttng_access_ok(VERIFY_WRITE, user_buf, count))
122 return -EFAULT;
123
124 /* Finish copy of previous record */
125diff --git a/lttng-filter-interpreter.c b/lttng-filter-interpreter.c
126index e131462..bee2918 100644
127--- a/lttng-filter-interpreter.c
128+++ b/lttng-filter-interpreter.c
129@@ -24,7 +24,7 @@
130 * SOFTWARE.
131 */
132
133-#include <linux/uaccess.h>
134+#include <wrapper/uaccess.h>
135 #include <wrapper/frame.h>
136 #include <wrapper/types.h>
137
138@@ -46,7 +46,7 @@ char get_char(struct estack_entry *reg, size_t offset)
139 char c;
140
141 /* Handle invalid access as end of string. */
142- if (unlikely(!access_ok(VERIFY_READ,
143+ if (unlikely(!lttng_access_ok(VERIFY_READ,
144 reg->u.s.user_str + offset,
145 sizeof(c))))
146 return '\0';
147diff --git a/probes/lttng-probe-user.c b/probes/lttng-probe-user.c
148index 099a66b..ed566dd 100644
149--- a/probes/lttng-probe-user.c
150+++ b/probes/lttng-probe-user.c
151@@ -20,6 +20,7 @@
152
153 #include <linux/uaccess.h>
154 #include <linux/module.h>
155+#include <wrapper/uaccess.h>
156 #include <probes/lttng-probe-user.h>
157
158 /*
159@@ -43,7 +44,7 @@ long lttng_strlen_user_inatomic(const char *addr)
160 char v;
161 unsigned long ret;
162
163- if (unlikely(!access_ok(VERIFY_READ,
164+ if (unlikely(!lttng_access_ok(VERIFY_READ,
165 (__force const char __user *) addr,
166 sizeof(v))))
167 break;
168diff --git a/wrapper/uaccess.h b/wrapper/uaccess.h
169new file mode 100644
170index 0000000..c56427c
171--- /dev/null
172+++ b/wrapper/uaccess.h
173@@ -0,0 +1,28 @@
174+/* SPDX-License-Identifier: (GPL-2.0 or LGPL-2.1)
175+ *
176+ * wrapper/uaccess.h
177+ *
178+ * wrapper around linux/uaccess.h.
179+ *
180+ * Copyright (C) 2019 Michael Jeanson <mjeanson@efficios.com>
181+ */
182+
183+#ifndef _LTTNG_WRAPPER_UACCESS_H
184+#define _LTTNG_WRAPPER_UACCESS_H
185+
186+#include <linux/uaccess.h>
187+#include <lttng-kernel-version.h>
188+
189+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,0,0))
190+
191+#define VERIFY_READ 0
192+#define VERIFY_WRITE 1
193+#define lttng_access_ok(type, addr, size) access_ok(addr, size)
194+
195+#else /* LINUX_VERSION_CODE >= KERNEL_VERSION(5,0,0) */
196+
197+#define lttng_access_ok(type, addr, size) access_ok(type, addr, size)
198+
199+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(5,0,0) */
200+
201+#endif /* _LTTNG_WRAPPER_UACCESS_H */
202--
2032.19.1
204
diff --git a/meta/recipes-kernel/lttng/lttng-modules/0006-Fix-Replace-pointer-values-with-task-tk_pid-and-rpc_.patch b/meta/recipes-kernel/lttng/lttng-modules/0006-Fix-Replace-pointer-values-with-task-tk_pid-and-rpc_.patch
deleted file mode 100644
index 089486f51b..0000000000
--- a/meta/recipes-kernel/lttng/lttng-modules/0006-Fix-Replace-pointer-values-with-task-tk_pid-and-rpc_.patch
+++ /dev/null
@@ -1,186 +0,0 @@
1From 89f0be35e1baf411df6852014013ac64ad1bbcf8 Mon Sep 17 00:00:00 2001
2From: Michael Jeanson <mjeanson@efficios.com>
3Date: Wed, 9 Jan 2019 14:59:16 -0500
4Subject: [PATCH 6/9] Fix: Replace pointer values with task->tk_pid and
5 rpc_clnt->cl_clid
6
7Introduced in v3.12.
8
9See upstream commit :
10
11 commit 92cb6c5be8134db6f7c38f25f6afd13e444cebaf
12 Author: Trond Myklebust <Trond.Myklebust@netapp.com>
13 Date: Wed Sep 4 22:09:50 2013 -0400
14
15 SUNRPC: Replace pointer values with task->tk_pid and rpc_clnt->cl_clid
16
17 Instead of the pointer values, use the task and client identifier values
18 for tracing purposes.
19
20Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
21Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
22
23Upstream-Status: backport https://github.com/lttng/lttng-modules/commit/89f0be35e1baf411df6852014013ac64ad1bbcf8
24
25Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
26---
27 instrumentation/events/lttng-module/rpc.h | 108 ++++++++++++++++++++--
28 1 file changed, 102 insertions(+), 6 deletions(-)
29
30diff --git a/instrumentation/events/lttng-module/rpc.h b/instrumentation/events/lttng-module/rpc.h
31index b9e45fe..a4ac557 100644
32--- a/instrumentation/events/lttng-module/rpc.h
33+++ b/instrumentation/events/lttng-module/rpc.h
34@@ -8,6 +8,20 @@
35 #include <linux/sunrpc/sched.h>
36 #include <linux/sunrpc/clnt.h>
37
38+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0))
39+LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_status,
40+
41+ TP_PROTO(struct rpc_task *task),
42+
43+ TP_ARGS(task),
44+
45+ TP_FIELDS(
46+ ctf_integer(unsigned int, task_id, task->tk_pid)
47+ ctf_integer(unsigned int, client_id, task->tk_client->cl_clid)
48+ ctf_integer(int, status, task->tk_status)
49+ )
50+)
51+#else
52 LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_status,
53
54 TP_PROTO(struct rpc_task *task),
55@@ -20,6 +34,7 @@ LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_status,
56 ctf_integer(int, status, task->tk_status)
57 )
58 )
59+#endif
60
61 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_status, rpc_call_status,
62 TP_PROTO(struct rpc_task *task),
63@@ -40,8 +55,8 @@ LTTNG_TRACEPOINT_EVENT(rpc_connect_status,
64 TP_ARGS(task),
65
66 TP_FIELDS(
67- ctf_integer_hex(const struct rpc_task *, task, task)
68- ctf_integer_hex(const struct rpc_clnt *, clnt, task->tk_client)
69+ ctf_integer(unsigned int, task_id, task->tk_pid)
70+ ctf_integer(unsigned int, client_id, task->tk_client->cl_clid)
71 ctf_integer(int, status, task->tk_status)
72 )
73 )
74@@ -53,8 +68,8 @@ LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_running,
75 TP_ARGS(task, action),
76
77 TP_FIELDS(
78- ctf_integer_hex(const struct rpc_clnt *, clnt, task->tk_client)
79- ctf_integer_hex(const struct rpc_task *, task, task)
80+ ctf_integer(unsigned int, task_id, task->tk_pid)
81+ ctf_integer(unsigned int, client_id, task->tk_client->cl_clid)
82 ctf_integer_hex(const void *, action, action)
83 ctf_integer(unsigned long, runstate, task->tk_runstate)
84 ctf_integer(int, status, task->tk_status)
85@@ -90,8 +105,8 @@ LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_queued,
86 TP_ARGS(task, q),
87
88 TP_FIELDS(
89- ctf_integer_hex(const struct rpc_clnt *, clnt, task->tk_client)
90- ctf_integer_hex(const struct rpc_task *, task, task)
91+ ctf_integer(unsigned int, task_id, task->tk_pid)
92+ ctf_integer(unsigned int, client_id, task->tk_client->cl_clid)
93 ctf_integer(unsigned long, timeout, task->tk_timeout)
94 ctf_integer(unsigned long, runstate, task->tk_runstate)
95 ctf_integer(int, status, task->tk_status)
96@@ -114,6 +129,87 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_queued, rpc_task_wakeup,
97 TP_ARGS(task, q)
98 )
99
100+#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0))
101+LTTNG_TRACEPOINT_EVENT(rpc_connect_status,
102+ TP_PROTO(struct rpc_task *task, int status),
103+
104+ TP_ARGS(task, status),
105+
106+ TP_FIELDS(
107+ ctf_integer(unsigned int, task_id, task->tk_pid)
108+ ctf_integer(unsigned int, client_id, task->tk_client->cl_clid)
109+ ctf_integer(int, status, status)
110+ )
111+)
112+
113+LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_running,
114+
115+ TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const void *action),
116+
117+ TP_ARGS(clnt, task, action),
118+
119+ TP_FIELDS(
120+ ctf_integer(unsigned int, task_id, task->tk_pid)
121+ ctf_integer(unsigned int, client_id, task->tk_client->cl_clid)
122+ ctf_integer_hex(const void *, action, action)
123+ ctf_integer(unsigned long, runstate, task->tk_runstate)
124+ ctf_integer(int, status, task->tk_status)
125+ ctf_integer(unsigned short, flags, task->tk_flags)
126+ )
127+)
128+
129+LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_running, rpc_task_begin,
130+
131+ TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const void *action),
132+
133+ TP_ARGS(clnt, task, action)
134+)
135+
136+LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_running, rpc_task_run_action,
137+
138+ TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const void *action),
139+
140+ TP_ARGS(clnt, task, action)
141+)
142+
143+LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_running, rpc_task_complete,
144+
145+ TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const void *action),
146+
147+ TP_ARGS(clnt, task, action)
148+)
149+
150+LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_queued,
151+
152+ TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const struct rpc_wait_queue *q),
153+
154+ TP_ARGS(clnt, task, q),
155+
156+ TP_FIELDS(
157+ ctf_integer(unsigned int, task_id, task->tk_pid)
158+ ctf_integer(unsigned int, client_id, task->tk_client->cl_clid)
159+ ctf_integer(unsigned long, timeout, task->tk_timeout)
160+ ctf_integer(unsigned long, runstate, task->tk_runstate)
161+ ctf_integer(int, status, task->tk_status)
162+ ctf_integer(unsigned short, flags, task->tk_flags)
163+ ctf_string(q_name, rpc_qname(q))
164+ )
165+)
166+
167+LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_queued, rpc_task_sleep,
168+
169+ TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const struct rpc_wait_queue *q),
170+
171+ TP_ARGS(clnt, task, q)
172+)
173+
174+LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_queued, rpc_task_wakeup,
175+
176+ TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const struct rpc_wait_queue *q),
177+
178+ TP_ARGS(clnt, task, q)
179+)
180+
181 #else
182 LTTNG_TRACEPOINT_EVENT(rpc_connect_status,
183 TP_PROTO(struct rpc_task *task, int status),
184--
1852.19.1
186
diff --git a/meta/recipes-kernel/lttng/lttng-modules/0007-Fix-SUNRPC-Simplify-defining-common-RPC-trace-events.patch b/meta/recipes-kernel/lttng/lttng-modules/0007-Fix-SUNRPC-Simplify-defining-common-RPC-trace-events.patch
deleted file mode 100644
index f3673301de..0000000000
--- a/meta/recipes-kernel/lttng/lttng-modules/0007-Fix-SUNRPC-Simplify-defining-common-RPC-trace-events.patch
+++ /dev/null
@@ -1,183 +0,0 @@
1From d11b568681f87c2df6ecb0516d3f16d153f24bd2 Mon Sep 17 00:00:00 2001
2From: Michael Jeanson <mjeanson@efficios.com>
3Date: Wed, 9 Jan 2019 14:59:17 -0500
4Subject: [PATCH 7/9] Fix: SUNRPC: Simplify defining common RPC trace events
5 (v5.0)
6
7See upstream commit :
8
9 commit dc5820bd21d84ee34770b0a1e2fca9378f8f7456
10 Author: Chuck Lever <chuck.lever@oracle.com>
11 Date: Wed Dec 19 11:00:16 2018 -0500
12
13 SUNRPC: Simplify defining common RPC trace events
14
15 Clean up, no functional change is expected.
16
17Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
18Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
19
20Upstream-Status: backport https://github.com/lttng/lttng-modules/commit/d11b568681f87c2df6ecb0516d3f16d153f24bd2
21
22Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
23---
24 instrumentation/events/lttng-module/rpc.h | 99 ++++++++++++++++-------
25 1 file changed, 72 insertions(+), 27 deletions(-)
26
27diff --git a/instrumentation/events/lttng-module/rpc.h b/instrumentation/events/lttng-module/rpc.h
28index a4ac557..4239280 100644
29--- a/instrumentation/events/lttng-module/rpc.h
30+++ b/instrumentation/events/lttng-module/rpc.h
31@@ -8,7 +8,32 @@
32 #include <linux/sunrpc/sched.h>
33 #include <linux/sunrpc/clnt.h>
34
35-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0))
36+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,0,0))
37+LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_status,
38+
39+ TP_PROTO(const struct rpc_task *task),
40+
41+ TP_ARGS(task),
42+
43+ TP_FIELDS(
44+ ctf_integer(unsigned int, task_id, task->tk_pid)
45+ ctf_integer(unsigned int, client_id, task->tk_client->cl_clid)
46+ ctf_integer(int, status, task->tk_status)
47+ )
48+)
49+
50+LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_status, rpc_call_status,
51+ TP_PROTO(const struct rpc_task *task),
52+
53+ TP_ARGS(task)
54+)
55+
56+LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_status, rpc_bind_status,
57+ TP_PROTO(const struct rpc_task *task),
58+
59+ TP_ARGS(task)
60+)
61+#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0))
62 LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_status,
63
64 TP_PROTO(struct rpc_task *task),
65@@ -21,6 +46,18 @@ LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_status,
66 ctf_integer(int, status, task->tk_status)
67 )
68 )
69+
70+LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_status, rpc_call_status,
71+ TP_PROTO(struct rpc_task *task),
72+
73+ TP_ARGS(task)
74+)
75+
76+LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_status, rpc_bind_status,
77+ TP_PROTO(struct rpc_task *task),
78+
79+ TP_ARGS(task)
80+)
81 #else
82 LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_status,
83
84@@ -34,7 +71,6 @@ LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_status,
85 ctf_integer(int, status, task->tk_status)
86 )
87 )
88-#endif
89
90 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_status, rpc_call_status,
91 TP_PROTO(struct rpc_task *task),
92@@ -47,8 +83,15 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_status, rpc_bind_status,
93
94 TP_ARGS(task)
95 )
96+#endif
97
98-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,17,0))
99+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,0,0))
100+LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_status, rpc_connect_status,
101+ TP_PROTO(const struct rpc_task *task),
102+
103+ TP_ARGS(task)
104+)
105+#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,17,0))
106 LTTNG_TRACEPOINT_EVENT(rpc_connect_status,
107 TP_PROTO(const struct rpc_task *task),
108
109@@ -60,7 +103,33 @@ LTTNG_TRACEPOINT_EVENT(rpc_connect_status,
110 ctf_integer(int, status, task->tk_status)
111 )
112 )
113+#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0))
114+LTTNG_TRACEPOINT_EVENT(rpc_connect_status,
115+ TP_PROTO(struct rpc_task *task, int status),
116+
117+ TP_ARGS(task, status),
118+
119+ TP_FIELDS(
120+ ctf_integer(unsigned int, task_id, task->tk_pid)
121+ ctf_integer(unsigned int, client_id, task->tk_client->cl_clid)
122+ ctf_integer(int, status, status)
123+ )
124+)
125+#else
126+LTTNG_TRACEPOINT_EVENT(rpc_connect_status,
127+ TP_PROTO(struct rpc_task *task, int status),
128+
129+ TP_ARGS(task, status),
130+
131+ TP_FIELDS(
132+ ctf_integer_hex(const struct rpc_task *, task, task)
133+ ctf_integer_hex(const struct rpc_clnt *, clnt, task->tk_client)
134+ ctf_integer(int, status, status)
135+ )
136+)
137+#endif
138
139+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,17,0))
140 LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_running,
141
142 TP_PROTO(const struct rpc_task *task, const void *action),
143@@ -130,18 +199,6 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_queued, rpc_task_wakeup,
144 )
145
146 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0))
147-LTTNG_TRACEPOINT_EVENT(rpc_connect_status,
148- TP_PROTO(struct rpc_task *task, int status),
149-
150- TP_ARGS(task, status),
151-
152- TP_FIELDS(
153- ctf_integer(unsigned int, task_id, task->tk_pid)
154- ctf_integer(unsigned int, client_id, task->tk_client->cl_clid)
155- ctf_integer(int, status, status)
156- )
157-)
158-
159 LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_running,
160
161 TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const void *action),
162@@ -211,18 +268,6 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_queued, rpc_task_wakeup,
163 )
164
165 #else
166-LTTNG_TRACEPOINT_EVENT(rpc_connect_status,
167- TP_PROTO(struct rpc_task *task, int status),
168-
169- TP_ARGS(task, status),
170-
171- TP_FIELDS(
172- ctf_integer_hex(const struct rpc_task *, task, task)
173- ctf_integer_hex(const struct rpc_clnt *, clnt, task->tk_client)
174- ctf_integer(int, status, status)
175- )
176-)
177-
178 LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_running,
179
180 TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const void *action),
181--
1822.19.1
183
diff --git a/meta/recipes-kernel/lttng/lttng-modules/0008-Fix-btrfs-Remove-fsid-metadata_fsid-fields-from-btrf.patch b/meta/recipes-kernel/lttng/lttng-modules/0008-Fix-btrfs-Remove-fsid-metadata_fsid-fields-from-btrf.patch
deleted file mode 100644
index 5f12989956..0000000000
--- a/meta/recipes-kernel/lttng/lttng-modules/0008-Fix-btrfs-Remove-fsid-metadata_fsid-fields-from-btrf.patch
+++ /dev/null
@@ -1,341 +0,0 @@
1From 8af8245f6f86370d01cc4acaabafb90de45e143f Mon Sep 17 00:00:00 2001
2From: Michael Jeanson <mjeanson@efficios.com>
3Date: Thu, 10 Jan 2019 14:56:15 -0500
4Subject: [PATCH 8/9] Fix: btrfs: Remove fsid/metadata_fsid fields from
5 btrfs_info
6
7Introduced in v5.0.
8
9See upstream commit :
10
11 commit de37aa513105f864d3c21105bf5542d498f21ca2
12 Author: Nikolay Borisov <nborisov@suse.com>
13 Date: Tue Oct 30 16:43:24 2018 +0200
14
15 btrfs: Remove fsid/metadata_fsid fields from btrfs_info
16
17 Currently btrfs_fs_info structure contains a copy of the
18 fsid/metadata_uuid fields. Same values are also contained in the
19 btrfs_fs_devices structure which fs_info has a reference to. Let's
20 reduce duplication by removing the fields from fs_info and always refer
21 to the ones in fs_devices. No functional changes.
22
23Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
24Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
25
26Upstream-Status: backport https://github.com/lttng/lttng-modules/commit/8af8245f6f86370d01cc4acaabafb90de45e143f
27
28Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
29---
30 instrumentation/events/lttng-module/btrfs.h | 100 +++++++++++---------
31 1 file changed, 53 insertions(+), 47 deletions(-)
32
33diff --git a/instrumentation/events/lttng-module/btrfs.h b/instrumentation/events/lttng-module/btrfs.h
34index 4dfbf5b..ec45a1e 100644
35--- a/instrumentation/events/lttng-module/btrfs.h
36+++ b/instrumentation/events/lttng-module/btrfs.h
37@@ -32,6 +32,12 @@ struct extent_state;
38
39 #define BTRFS_UUID_SIZE 16
40
41+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,0,0))
42+#define lttng_fs_info_fsid fs_info->fs_devices->fsid
43+#else
44+#define lttng_fs_info_fsid fs_info->fsid
45+#endif
46+
47 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0) || \
48 LTTNG_SLE_KERNEL_RANGE(4,4,73,5,0,0, 4,4,73,6,0,0) || \
49 LTTNG_SLE_KERNEL_RANGE(4,4,82,6,0,0, 4,4,82,7,0,0) || \
50@@ -629,7 +635,7 @@ LTTNG_TRACEPOINT_EVENT(btrfs_add_block_group,
51 TP_ARGS(fs_info, block_group, create),
52
53 TP_FIELDS(
54- ctf_array(u8, fsid, fs_info->fsid, BTRFS_UUID_SIZE)
55+ ctf_array(u8, fsid, lttng_fs_info_fsid, BTRFS_UUID_SIZE)
56 ctf_integer(u64, offset, block_group->key.objectid)
57 ctf_integer(u64, size, block_group->key.offset)
58 ctf_integer(u64, flags, block_group->flags)
59@@ -647,7 +653,7 @@ LTTNG_TRACEPOINT_EVENT(btrfs_add_block_group,
60 TP_ARGS(fs_info, block_group, create),
61
62 TP_FIELDS(
63- ctf_array(u8, fsid, fs_info->fsid, BTRFS_UUID_SIZE)
64+ ctf_array(u8, fsid, lttng_fs_info_fsid, BTRFS_UUID_SIZE)
65 ctf_integer(u64, offset, block_group->key.objectid)
66 ctf_integer(u64, size, block_group->key.offset)
67 ctf_integer(u64, flags, block_group->flags)
68@@ -1015,18 +1021,18 @@ LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__chunk,
69
70 LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs__chunk, btrfs_chunk_alloc,
71
72- TP_PROTO(const struct btrfs_fs_info *info, const struct map_lookup *map,
73+ TP_PROTO(const struct btrfs_fs_info *fs_info, const struct map_lookup *map,
74 u64 offset, u64 size),
75
76- TP_ARGS(info, map, offset, size)
77+ TP_ARGS(fs_info, map, offset, size)
78 )
79
80 LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs__chunk, btrfs_chunk_free,
81
82- TP_PROTO(const struct btrfs_fs_info *info, const struct map_lookup *map,
83+ TP_PROTO(const struct btrfs_fs_info *fs_info, const struct map_lookup *map,
84 u64 offset, u64 size),
85
86- TP_ARGS(info, map, offset, size)
87+ TP_ARGS(fs_info, map, offset, size)
88 )
89
90 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0))
91@@ -1050,18 +1056,18 @@ LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__chunk,
92
93 LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs__chunk, btrfs_chunk_alloc,
94
95- TP_PROTO(struct btrfs_fs_info *info, struct map_lookup *map,
96+ TP_PROTO(struct btrfs_fs_info *fs_info, struct map_lookup *map,
97 u64 offset, u64 size),
98
99- TP_ARGS(info, map, offset, size)
100+ TP_ARGS(fs_info, map, offset, size)
101 )
102
103 LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs__chunk, btrfs_chunk_free,
104
105- TP_PROTO(struct btrfs_fs_info *info, struct map_lookup *map,
106+ TP_PROTO(struct btrfs_fs_info *fs_info, struct map_lookup *map,
107 u64 offset, u64 size),
108
109- TP_ARGS(info, map, offset, size)
110+ TP_ARGS(fs_info, map, offset, size)
111 )
112
113 #elif (LTTNG_SLE_KERNEL_RANGE(4,4,73,5,0,0, 4,4,73,6,0,0) || \
114@@ -1192,7 +1198,7 @@ LTTNG_TRACEPOINT_EVENT(btrfs_space_reservation,
115 TP_ARGS(fs_info, type, val, bytes, reserve),
116
117 TP_FIELDS(
118- ctf_array(u8, fsid, fs_info->fsid, BTRFS_UUID_SIZE)
119+ ctf_array(u8, fsid, lttng_fs_info_fsid, BTRFS_UUID_SIZE)
120 ctf_string(type, type)
121 ctf_integer(u64, val, val)
122 ctf_integer(u64, bytes, bytes)
123@@ -1208,7 +1214,7 @@ LTTNG_TRACEPOINT_EVENT(btrfs_space_reservation,
124 TP_ARGS(fs_info, type, val, bytes, reserve),
125
126 TP_FIELDS(
127- ctf_array(u8, fsid, fs_info->fsid, BTRFS_UUID_SIZE)
128+ ctf_array(u8, fsid, lttng_fs_info_fsid, BTRFS_UUID_SIZE)
129 ctf_string(type, type)
130 ctf_integer(u64, val, val)
131 ctf_integer(u64, bytes, bytes)
132@@ -1221,9 +1227,9 @@ LTTNG_TRACEPOINT_EVENT(btrfs_space_reservation,
133
134 LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__reserved_extent,
135
136- TP_PROTO(const struct btrfs_fs_info *info, u64 start, u64 len),
137+ TP_PROTO(const struct btrfs_fs_info *fs_info, u64 start, u64 len),
138
139- TP_ARGS(info, start, len),
140+ TP_ARGS(fs_info, start, len),
141
142 TP_FIELDS(
143 ctf_integer(u64, start, start)
144@@ -1233,25 +1239,25 @@ LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__reserved_extent,
145
146 LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs__reserved_extent, btrfs_reserved_extent_alloc,
147
148- TP_PROTO(const struct btrfs_fs_info *info, u64 start, u64 len),
149+ TP_PROTO(const struct btrfs_fs_info *fs_info, u64 start, u64 len),
150
151- TP_ARGS(info, start, len)
152+ TP_ARGS(fs_info, start, len)
153 )
154
155 LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs__reserved_extent, btrfs_reserved_extent_free,
156
157- TP_PROTO(const struct btrfs_fs_info *info, u64 start, u64 len),
158+ TP_PROTO(const struct btrfs_fs_info *fs_info, u64 start, u64 len),
159
160- TP_ARGS(info, start, len)
161+ TP_ARGS(fs_info, start, len)
162 )
163
164 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0))
165
166 LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__reserved_extent,
167
168- TP_PROTO(struct btrfs_fs_info *info, u64 start, u64 len),
169+ TP_PROTO(struct btrfs_fs_info *fs_info, u64 start, u64 len),
170
171- TP_ARGS(info, start, len),
172+ TP_ARGS(fs_info, start, len),
173
174 TP_FIELDS(
175 ctf_integer(u64, start, start)
176@@ -1261,16 +1267,16 @@ LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__reserved_extent,
177
178 LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs__reserved_extent, btrfs_reserved_extent_alloc,
179
180- TP_PROTO(struct btrfs_fs_info *info, u64 start, u64 len),
181+ TP_PROTO(struct btrfs_fs_info *fs_info, u64 start, u64 len),
182
183- TP_ARGS(info, start, len)
184+ TP_ARGS(fs_info, start, len)
185 )
186
187 LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs__reserved_extent, btrfs_reserved_extent_free,
188
189- TP_PROTO(struct btrfs_fs_info *info, u64 start, u64 len),
190+ TP_PROTO(struct btrfs_fs_info *fs_info, u64 start, u64 len),
191
192- TP_ARGS(info, start, len)
193+ TP_ARGS(fs_info, start, len)
194 )
195
196 #elif (LTTNG_SLE_KERNEL_RANGE(4,4,73,5,0,0, 4,4,73,6,0,0) || \
197@@ -1341,13 +1347,13 @@ LTTNG_TRACEPOINT_EVENT_MAP(find_free_extent,
198
199 btrfs_find_free_extent,
200
201- TP_PROTO(const struct btrfs_fs_info *info, u64 num_bytes, u64 empty_size,
202+ TP_PROTO(const struct btrfs_fs_info *fs_info, u64 num_bytes, u64 empty_size,
203 u64 data),
204
205- TP_ARGS(info, num_bytes, empty_size, data),
206+ TP_ARGS(fs_info, num_bytes, empty_size, data),
207
208 TP_FIELDS(
209- ctf_array(u8, fsid, info->fsid, BTRFS_UUID_SIZE)
210+ ctf_array(u8, fsid, lttng_fs_info_fsid, BTRFS_UUID_SIZE)
211 ctf_integer(u64, num_bytes, num_bytes)
212 ctf_integer(u64, empty_size, empty_size)
213 ctf_integer(u64, data, data)
214@@ -1362,7 +1368,7 @@ LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__reserve_extent,
215 TP_ARGS(block_group, start, len),
216
217 TP_FIELDS(
218- ctf_array(u8, fsid, block_group->fs_info->fsid, BTRFS_UUID_SIZE)
219+ ctf_array(u8, fsid, block_group->lttng_fs_info_fsid, BTRFS_UUID_SIZE)
220 ctf_integer(u64, bg_objectid, block_group->key.objectid)
221 ctf_integer(u64, flags, block_group->flags)
222 ctf_integer(u64, start, start)
223@@ -1391,13 +1397,13 @@ LTTNG_TRACEPOINT_EVENT_MAP(find_free_extent,
224
225 btrfs_find_free_extent,
226
227- TP_PROTO(const struct btrfs_fs_info *info, u64 num_bytes, u64 empty_size,
228+ TP_PROTO(const struct btrfs_fs_info *fs_info, u64 num_bytes, u64 empty_size,
229 u64 data),
230
231- TP_ARGS(info, num_bytes, empty_size, data),
232+ TP_ARGS(fs_info, num_bytes, empty_size, data),
233
234 TP_FIELDS(
235- ctf_array(u8, fsid, info->fsid, BTRFS_UUID_SIZE)
236+ ctf_array(u8, fsid, lttng_fs_info_fsid, BTRFS_UUID_SIZE)
237 ctf_integer(u64, num_bytes, num_bytes)
238 ctf_integer(u64, empty_size, empty_size)
239 ctf_integer(u64, data, data)
240@@ -1406,14 +1412,14 @@ LTTNG_TRACEPOINT_EVENT_MAP(find_free_extent,
241
242 LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__reserve_extent,
243
244- TP_PROTO(const struct btrfs_fs_info *info,
245+ TP_PROTO(const struct btrfs_fs_info *fs_info,
246 const struct btrfs_block_group_cache *block_group, u64 start,
247 u64 len),
248
249- TP_ARGS(info, block_group, start, len),
250+ TP_ARGS(fs_info, block_group, start, len),
251
252 TP_FIELDS(
253- ctf_array(u8, fsid, info->fsid, BTRFS_UUID_SIZE)
254+ ctf_array(u8, fsid, lttng_fs_info_fsid, BTRFS_UUID_SIZE)
255 ctf_integer(u64, bg_objectid, block_group->key.objectid)
256 ctf_integer(u64, flags, block_group->flags)
257 ctf_integer(u64, start, start)
258@@ -1423,20 +1429,20 @@ LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__reserve_extent,
259
260 LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs__reserve_extent, btrfs_reserve_extent,
261
262- TP_PROTO(const struct btrfs_fs_info *info,
263+ TP_PROTO(const struct btrfs_fs_info *fs_info,
264 const struct btrfs_block_group_cache *block_group, u64 start,
265 u64 len),
266
267- TP_ARGS(info, block_group, start, len)
268+ TP_ARGS(fs_info, block_group, start, len)
269 )
270
271 LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs__reserve_extent, btrfs_reserve_extent_cluster,
272
273- TP_PROTO(const struct btrfs_fs_info *info,
274+ TP_PROTO(const struct btrfs_fs_info *fs_info,
275 const struct btrfs_block_group_cache *block_group, u64 start,
276 u64 len),
277
278- TP_ARGS(info, block_group, start, len)
279+ TP_ARGS(fs_info, block_group, start, len)
280 )
281
282 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0))
283@@ -1445,13 +1451,13 @@ LTTNG_TRACEPOINT_EVENT_MAP(find_free_extent,
284
285 btrfs_find_free_extent,
286
287- TP_PROTO(struct btrfs_fs_info *info, u64 num_bytes, u64 empty_size,
288+ TP_PROTO(struct btrfs_fs_info *fs_info, u64 num_bytes, u64 empty_size,
289 u64 data),
290
291- TP_ARGS(info, num_bytes, empty_size, data),
292+ TP_ARGS(fs_info, num_bytes, empty_size, data),
293
294 TP_FIELDS(
295- ctf_array(u8, fsid, info->fsid, BTRFS_UUID_SIZE)
296+ ctf_array(u8, fsid, lttng_fs_info_fsid, BTRFS_UUID_SIZE)
297 ctf_integer(u64, num_bytes, num_bytes)
298 ctf_integer(u64, empty_size, empty_size)
299 ctf_integer(u64, data, data)
300@@ -1460,11 +1466,11 @@ LTTNG_TRACEPOINT_EVENT_MAP(find_free_extent,
301
302 LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__reserve_extent,
303
304- TP_PROTO(struct btrfs_fs_info *info,
305+ TP_PROTO(struct btrfs_fs_info *fs_info,
306 struct btrfs_block_group_cache *block_group, u64 start,
307 u64 len),
308
309- TP_ARGS(info, block_group, start, len),
310+ TP_ARGS(fs_info, block_group, start, len),
311
312 TP_FIELDS(
313 ctf_integer(u64, bg_objectid, block_group->key.objectid)
314@@ -1476,20 +1482,20 @@ LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__reserve_extent,
315
316 LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs__reserve_extent, btrfs_reserve_extent,
317
318- TP_PROTO(struct btrfs_fs_info *info,
319+ TP_PROTO(struct btrfs_fs_info *fs_info,
320 struct btrfs_block_group_cache *block_group, u64 start,
321 u64 len),
322
323- TP_ARGS(info, block_group, start, len)
324+ TP_ARGS(fs_info, block_group, start, len)
325 )
326
327 LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs__reserve_extent, btrfs_reserve_extent_cluster,
328
329- TP_PROTO(struct btrfs_fs_info *info,
330+ TP_PROTO(struct btrfs_fs_info *fs_info,
331 struct btrfs_block_group_cache *block_group, u64 start,
332 u64 len),
333
334- TP_ARGS(info, block_group, start, len)
335+ TP_ARGS(fs_info, block_group, start, len)
336 )
337 #elif (LTTNG_SLE_KERNEL_RANGE(4,4,73,5,0,0, 4,4,73,6,0,0) || \
338 LTTNG_SLE_KERNEL_RANGE(4,4,82,6,0,0, 4,4,82,7,0,0) || \
339--
3402.19.1
341
diff --git a/meta/recipes-kernel/lttng/lttng-modules/0009-Cleanup-tp-mempool-Remove-logically-dead-code.patch b/meta/recipes-kernel/lttng/lttng-modules/0009-Cleanup-tp-mempool-Remove-logically-dead-code.patch
deleted file mode 100644
index 4ffe488677..0000000000
--- a/meta/recipes-kernel/lttng/lttng-modules/0009-Cleanup-tp-mempool-Remove-logically-dead-code.patch
+++ /dev/null
@@ -1,46 +0,0 @@
1From 416cee8707053a9015dfec8332e12f8c263098e3 Mon Sep 17 00:00:00 2001
2From: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
3Date: Thu, 14 Feb 2019 11:40:50 -0500
4Subject: [PATCH 9/9] Cleanup: tp mempool: Remove logically dead code
5
6Found by Coverity:
7CID 1391045 (#1 of 1): Logically dead code (DEADCODE)
8
9Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
10
11Upstream-Status: backport https://github.com/lttng/lttng-modules/commit/416cee8707053a9015dfec8332e12f8c263098e3
12
13Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
14---
15 lttng-tp-mempool.c | 11 ++---------
16 1 file changed, 2 insertions(+), 9 deletions(-)
17
18diff --git a/lttng-tp-mempool.c b/lttng-tp-mempool.c
19index d984bd4..21e8376 100644
20--- a/lttng-tp-mempool.c
21+++ b/lttng-tp-mempool.c
22@@ -151,19 +151,12 @@ void lttng_tp_mempool_free(void *ptr)
23 struct lttng_tp_buf_entry *entry;
24 struct per_cpu_buf *cpu_buf;
25
26- if (!ptr) {
27+ if (!ptr)
28 goto end;
29- }
30-
31 entry = container_of(ptr, struct lttng_tp_buf_entry, buf);
32- if (!entry) {
33- goto end;
34- }
35-
36 cpu_buf = per_cpu_ptr(pool, entry->cpu);
37- if (!cpu_buf) {
38+ if (!cpu_buf)
39 goto end;
40- }
41 /* Add it to the free list. */
42 list_add_tail(&entry->list, &cpu_buf->free_list);
43
44--
452.19.1
46
diff --git a/meta/recipes-kernel/lttng/lttng-modules_2.10.8.bb b/meta/recipes-kernel/lttng/lttng-modules_2.10.9.bb
index 15e75e51c9..70a6843263 100644
--- a/meta/recipes-kernel/lttng/lttng-modules_2.10.8.bb
+++ b/meta/recipes-kernel/lttng/lttng-modules_2.10.9.bb
@@ -15,19 +15,10 @@ COMPATIBLE_HOST = '(x86_64|i.86|powerpc|aarch64|mips|nios2|arm|riscv).*-linux'
15SRC_URI = "https://lttng.org/files/${BPN}/${BPN}-${PV}.tar.bz2 \ 15SRC_URI = "https://lttng.org/files/${BPN}/${BPN}-${PV}.tar.bz2 \
16 file://Makefile-Do-not-fail-if-CONFIG_TRACEPOINTS-is-not-en.patch \ 16 file://Makefile-Do-not-fail-if-CONFIG_TRACEPOINTS-is-not-en.patch \
17 file://BUILD_RUNTIME_BUG_ON-vs-gcc7.patch \ 17 file://BUILD_RUNTIME_BUG_ON-vs-gcc7.patch \
18 file://0001-Fix-signal-Distinguish-between-kernel_siginfo-and-si.patch \
19 file://0002-Fix-signal-Remove-SEND_SIG_FORCED-v4.20.patch \
20 file://0003-Fix-ext4-adjust-reserved-cluster-count-when-removing.patch \
21 file://0004-Fix-timer-instrumentation-for-RHEL-7.6.patch \
22 file://0005-Fix-Remove-type-argument-from-access_ok-function-v5..patch \
23 file://0006-Fix-Replace-pointer-values-with-task-tk_pid-and-rpc_.patch \
24 file://0007-Fix-SUNRPC-Simplify-defining-common-RPC-trace-events.patch \
25 file://0008-Fix-btrfs-Remove-fsid-metadata_fsid-fields-from-btrf.patch \
26 file://0009-Cleanup-tp-mempool-Remove-logically-dead-code.patch \
27 " 18 "
28 19
29SRC_URI[md5sum] = "54bd9fca61487bbec1b3fca2f2213c98" 20SRC_URI[md5sum] = "09df0ac2e8f245740a2f32411d10c0d1"
30SRC_URI[sha256sum] = "fe1d269bca723e8948af871c322c37d3900e647cdc5eb3efbe821e434beee44c" 21SRC_URI[sha256sum] = "a1855bbd02d0f71ebd180e9872309862036624f012442ab9cc5852eb60340145"
31 22
32export INSTALL_MOD_DIR="kernel/lttng-modules" 23export INSTALL_MOD_DIR="kernel/lttng-modules"
33 24