* [PATCH v2 0/1] ftrace: add unit test for removing trace function
@ 2021-09-18 15:30 Carles Pey
2021-09-18 15:30 ` [PATCH v2 1/1] " Carles Pey
2021-09-19 16:11 ` [PATCH v2 0/1] " Steven Rostedt
0 siblings, 2 replies; 4+ messages in thread
From: Carles Pey @ 2021-09-18 15:30 UTC (permalink / raw)
To: Steven Rostedt, Ingo Molnar, linux-kernel; +Cc: Carles Pey
Hi,
This patch adds a basic startup self-test for removing a traced
function.
Being kallsyms_lookup_name made unexported there is no easy use of
ftrace_set_filter_ip from kernel modules, leaving with ftrace_set_filter
as the way to set trace functions. The ftrace_set_filter API is not
explicit on how to remove trace functions, and there is no such use case
either in the kernel source-tree for which I decided to add an example
of it use as a self-test.
Changes since v1:
- Added changelog and sign-off line.
Carles Pey (1):
ftrace: add unit test for removing trace function
kernel/trace/trace_selftest.c | 34 ++++++++++++++++++++++++++++++++++
1 file changed, 34 insertions(+)
--
2.26.3
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH v2 1/1] ftrace: add unit test for removing trace function
2021-09-18 15:30 [PATCH v2 0/1] ftrace: add unit test for removing trace function Carles Pey
@ 2021-09-18 15:30 ` Carles Pey
2021-10-11 2:21 ` Steven Rostedt
2021-09-19 16:11 ` [PATCH v2 0/1] " Steven Rostedt
1 sibling, 1 reply; 4+ messages in thread
From: Carles Pey @ 2021-09-18 15:30 UTC (permalink / raw)
To: Steven Rostedt, Ingo Molnar, linux-kernel; +Cc: Carles Pey
A self test is provided for the trace function removal functionality.
Signed-off-by: Carles Pey <carles.pey@gmail.com>
---
kernel/trace/trace_selftest.c | 34 ++++++++++++++++++++++++++++++++++
1 file changed, 34 insertions(+)
diff --git a/kernel/trace/trace_selftest.c b/kernel/trace/trace_selftest.c
index adf7ef194005..875b4f1a0476 100644
--- a/kernel/trace/trace_selftest.c
+++ b/kernel/trace/trace_selftest.c
@@ -287,6 +287,40 @@ static int trace_selftest_ops(struct trace_array *tr, int cnt)
if (trace_selftest_test_probe3_cnt != 4)
goto out_free;
+ /* Remove trace function from probe 3 */
+ func1_name = "!" __stringify(DYN_FTRACE_TEST_NAME);
+ len1 = strlen(func1_name);
+
+ ftrace_set_filter(&test_probe3, func1_name, len1, 0);
+
+ DYN_FTRACE_TEST_NAME();
+
+ print_counts();
+
+ if (trace_selftest_test_probe1_cnt != 3)
+ goto out_free;
+ if (trace_selftest_test_probe2_cnt != 2)
+ goto out_free;
+ if (trace_selftest_test_probe3_cnt != 4)
+ goto out_free;
+ if (cnt > 1) {
+ if (trace_selftest_test_global_cnt == 0)
+ goto out_free;
+ }
+ if (trace_selftest_test_dyn_cnt == 0)
+ goto out_free;
+
+ DYN_FTRACE_TEST_NAME2();
+
+ print_counts();
+
+ if (trace_selftest_test_probe1_cnt != 3)
+ goto out_free;
+ if (trace_selftest_test_probe2_cnt != 3)
+ goto out_free;
+ if (trace_selftest_test_probe3_cnt != 5)
+ goto out_free;
+
ret = 0;
out_free:
unregister_ftrace_function(dyn_ops);
--
2.26.3
^ permalink raw reply related [flat|nested] 4+ messages in thread* Re: [PATCH v2 0/1] ftrace: add unit test for removing trace function
2021-09-18 15:30 [PATCH v2 0/1] ftrace: add unit test for removing trace function Carles Pey
2021-09-18 15:30 ` [PATCH v2 1/1] " Carles Pey
@ 2021-09-19 16:11 ` Steven Rostedt
1 sibling, 0 replies; 4+ messages in thread
From: Steven Rostedt @ 2021-09-19 16:11 UTC (permalink / raw)
To: Carles Pey; +Cc: Ingo Molnar, linux-kernel
On Sat, 18 Sep 2021 19:30:42 +0400
Carles Pey <carles.pey@gmail.com> wrote:
> Hi,
>
> This patch adds a basic startup self-test for removing a traced
> function.
Thanks for the patch, but note, because I'm highly involved in the
organization of Linux Plumbers that is taking place next week, I may
not have time to look at it for a couple of weeks.
-- Steve
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2021-10-11 2:21 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-09-18 15:30 [PATCH v2 0/1] ftrace: add unit test for removing trace function Carles Pey
2021-09-18 15:30 ` [PATCH v2 1/1] " Carles Pey
2021-10-11 2:21 ` Steven Rostedt
2021-09-19 16:11 ` [PATCH v2 0/1] " Steven Rostedt
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox