summaryrefslogtreecommitdiffstats
path: root/meta/recipes-kernel/lttng/lttng-modules/0009-fix-tracepoint-Optimize-using-static_call-v5.10.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-kernel/lttng/lttng-modules/0009-fix-tracepoint-Optimize-using-static_call-v5.10.patch')
-rw-r--r--meta/recipes-kernel/lttng/lttng-modules/0009-fix-tracepoint-Optimize-using-static_call-v5.10.patch155
1 files changed, 0 insertions, 155 deletions
diff --git a/meta/recipes-kernel/lttng/lttng-modules/0009-fix-tracepoint-Optimize-using-static_call-v5.10.patch b/meta/recipes-kernel/lttng/lttng-modules/0009-fix-tracepoint-Optimize-using-static_call-v5.10.patch
deleted file mode 100644
index b942aa5c95..0000000000
--- a/meta/recipes-kernel/lttng/lttng-modules/0009-fix-tracepoint-Optimize-using-static_call-v5.10.patch
+++ /dev/null
@@ -1,155 +0,0 @@
1From c6b31b349fe901a8f586a66064f9e9b15449ac1c Mon Sep 17 00:00:00 2001
2From: Michael Jeanson <mjeanson@efficios.com>
3Date: Mon, 26 Oct 2020 17:09:05 -0400
4Subject: [PATCH 09/16] fix: tracepoint: Optimize using static_call() (v5.10)
5
6See upstream commit :
7
8 commit d25e37d89dd2f41d7acae0429039d2f0ae8b4a07
9 Author: Steven Rostedt (VMware) <rostedt@goodmis.org>
10 Date: Tue Aug 18 15:57:52 2020 +0200
11
12 tracepoint: Optimize using static_call()
13
14 Currently the tracepoint site will iterate a vector and issue indirect
15 calls to however many handlers are registered (ie. the vector is
16 long).
17
18 Using static_call() it is possible to optimize this for the common
19 case of only having a single handler registered. In this case the
20 static_call() can directly call this handler. Otherwise, if the vector
21 is longer than 1, call a function that iterates the whole vector like
22 the current code.
23
24Upstream-Status: Backport
25
26Change-Id: I739dd84d62cc1a821b8bd8acff74fa29aa25d22f
27Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
28Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
29---
30 lttng-statedump-impl.c | 44 ++++++++++++++++++++++++++++++++-------
31 probes/lttng.c | 7 +++++--
32 tests/probes/lttng-test.c | 7 ++++++-
33 wrapper/tracepoint.h | 8 +++++++
34 4 files changed, 56 insertions(+), 10 deletions(-)
35
36diff --git a/lttng-statedump-impl.c b/lttng-statedump-impl.c
37index 54a309d1..e0b19b42 100644
38--- a/lttng-statedump-impl.c
39+++ b/lttng-statedump-impl.c
40@@ -55,13 +55,43 @@
41 #define LTTNG_INSTRUMENTATION
42 #include <instrumentation/events/lttng-module/lttng-statedump.h>
43
44-DEFINE_TRACE(lttng_statedump_block_device);
45-DEFINE_TRACE(lttng_statedump_end);
46-DEFINE_TRACE(lttng_statedump_interrupt);
47-DEFINE_TRACE(lttng_statedump_file_descriptor);
48-DEFINE_TRACE(lttng_statedump_start);
49-DEFINE_TRACE(lttng_statedump_process_state);
50-DEFINE_TRACE(lttng_statedump_network_interface);
51+LTTNG_DEFINE_TRACE(lttng_statedump_block_device,
52+ TP_PROTO(struct lttng_session *session,
53+ dev_t dev, const char *diskname),
54+ TP_ARGS(session, dev, diskname));
55+
56+LTTNG_DEFINE_TRACE(lttng_statedump_end,
57+ TP_PROTO(struct lttng_session *session),
58+ TP_ARGS(session));
59+
60+LTTNG_DEFINE_TRACE(lttng_statedump_interrupt,
61+ TP_PROTO(struct lttng_session *session,
62+ unsigned int irq, const char *chip_name,
63+ struct irqaction *action),
64+ TP_ARGS(session, irq, chip_name, action));
65+
66+LTTNG_DEFINE_TRACE(lttng_statedump_file_descriptor,
67+ TP_PROTO(struct lttng_session *session,
68+ struct files_struct *files,
69+ int fd, const char *filename,
70+ unsigned int flags, fmode_t fmode),
71+ TP_ARGS(session, files, fd, filename, flags, fmode));
72+
73+LTTNG_DEFINE_TRACE(lttng_statedump_start,
74+ TP_PROTO(struct lttng_session *session),
75+ TP_ARGS(session));
76+
77+LTTNG_DEFINE_TRACE(lttng_statedump_process_state,
78+ TP_PROTO(struct lttng_session *session,
79+ struct task_struct *p,
80+ int type, int mode, int submode, int status,
81+ struct files_struct *files),
82+ TP_ARGS(session, p, type, mode, submode, status, files));
83+
84+LTTNG_DEFINE_TRACE(lttng_statedump_network_interface,
85+ TP_PROTO(struct lttng_session *session,
86+ struct net_device *dev, struct in_ifaddr *ifa),
87+ TP_ARGS(session, dev, ifa));
88
89 struct lttng_fd_ctx {
90 char *page;
91diff --git a/probes/lttng.c b/probes/lttng.c
92index 05bc1388..7ddaa69f 100644
93--- a/probes/lttng.c
94+++ b/probes/lttng.c
95@@ -8,7 +8,7 @@
96 */
97
98 #include <linux/module.h>
99-#include <linux/tracepoint.h>
100+#include <wrapper/tracepoint.h>
101 #include <linux/uaccess.h>
102 #include <linux/gfp.h>
103 #include <linux/fs.h>
104@@ -32,7 +32,10 @@
105 #define LTTNG_LOGGER_COUNT_MAX 1024
106 #define LTTNG_LOGGER_FILE "lttng-logger"
107
108-DEFINE_TRACE(lttng_logger);
109+LTTNG_DEFINE_TRACE(lttng_logger,
110+ PARAMS(const char __user *text, size_t len),
111+ PARAMS(text, len)
112+);
113
114 static struct proc_dir_entry *lttng_logger_dentry;
115
116diff --git a/tests/probes/lttng-test.c b/tests/probes/lttng-test.c
117index c728bed5..8f2d3feb 100644
118--- a/tests/probes/lttng-test.c
119+++ b/tests/probes/lttng-test.c
120@@ -26,7 +26,12 @@
121 #define LTTNG_INSTRUMENTATION
122 #include <instrumentation/events/lttng-module/lttng-test.h>
123
124-DEFINE_TRACE(lttng_test_filter_event);
125+LTTNG_DEFINE_TRACE(lttng_test_filter_event,
126+ PARAMS(int anint, int netint, long *values,
127+ char *text, size_t textlen,
128+ char *etext, uint32_t * net_values),
129+ PARAMS(anint, netint, values, text, textlen, etext, net_values)
130+);
131
132 #define LTTNG_TEST_FILTER_EVENT_FILE "lttng-test-filter-event"
133
134diff --git a/wrapper/tracepoint.h b/wrapper/tracepoint.h
135index 3883e11a..758038b6 100644
136--- a/wrapper/tracepoint.h
137+++ b/wrapper/tracepoint.h
138@@ -20,6 +20,14 @@
139
140 #endif
141
142+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,10,0))
143+#define LTTNG_DEFINE_TRACE(name, proto, args) \
144+ DEFINE_TRACE(name, PARAMS(proto), PARAMS(args))
145+#else
146+#define LTTNG_DEFINE_TRACE(name, proto, args) \
147+ DEFINE_TRACE(name)
148+#endif
149+
150 #ifndef HAVE_KABI_2635_TRACEPOINT
151
152 #define kabi_2635_tracepoint_probe_register tracepoint_probe_register
153--
1542.25.1
155