* [PATCH] selftests/ftrace: Fix reading enabled_functions in add_remove_fprobe_module test
@ 2026-07-08 19:32 Steven Rostedt
2026-07-09 5:38 ` Masami Hiramatsu
0 siblings, 1 reply; 2+ messages in thread
From: Steven Rostedt @ 2026-07-08 19:32 UTC (permalink / raw)
To: LKML, Linux Trace Kernel, linux-kselftest
Cc: Masami Hiramatsu, Mathieu Desnoyers, Shuah Khan, Shuah Khan
From: Steven Rostedt <rostedt@goodmis.org>
The add_remove_fprobe_module test checks the number of functions added to
the enabled_functions file to make sure that the functions added or
removed is as expected. The issue is that it expects this file to be empty
on start up.
Now that systemd uses BPF that attaches to functions via ftrace, this file
is not empty in several systems:
# cat /sys/kernel/tracing/enabled_functions
bpf_lsm_file_open (1) R D M tramp: ftrace_regs_caller+0x0/0x61 (call_direct_funcs+0x0/0x50)
direct(jmp)-->bpf_trampoline_6442529439+0x0/0xe9
Change the test to read the number of lines in enabled_functions at the
start of the test and subtract that from the value of the count for the
checks within the test.
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
---
.../dynevent/add_remove_fprobe_module.tc | 27 ++++++++++++-------
1 file changed, 18 insertions(+), 9 deletions(-)
diff --git a/tools/testing/selftests/ftrace/test.d/dynevent/add_remove_fprobe_module.tc b/tools/testing/selftests/ftrace/test.d/dynevent/add_remove_fprobe_module.tc
index 2915206777b6..89660a9adf44 100644
--- a/tools/testing/selftests/ftrace/test.d/dynevent/add_remove_fprobe_module.tc
+++ b/tools/testing/selftests/ftrace/test.d/dynevent/add_remove_fprobe_module.tc
@@ -16,23 +16,32 @@ echo > dynamic_events
FUNC1='foo_bar*'
FUNC2='vfs_read'
+:;: "Save enabled functions count" ;:
+ecount=`cat enabled_functions | wc -l`
+
+count_enabled_functions() {
+ count=`cat enabled_functions | wc -l`
+ count=$(($count-$ecount))
+ echo $count
+}
+
:;: "Add an event on the test module" ;:
echo "f:test1 $FUNC1" >> dynamic_events
echo 1 > events/fprobes/test1/enable
:;: "Ensure it is enabled" ;:
-funcs=`cat enabled_functions | wc -l`
+funcs=`count_enabled_functions`
test $funcs -ne 0
:;: "Check the enabled_functions is cleared on unloading" ;:
rmmod trace-events-sample
-funcs=`cat enabled_functions | wc -l`
+funcs=`count_enabled_functions`
test $funcs -eq 0
:;: "Check it is kept clean" ;:
modprobe trace-events-sample
echo 1 > events/fprobes/test1/enable || echo "OK"
-funcs=`cat enabled_functions | wc -l`
+funcs=`count_enabled_functions`
test $funcs -eq 0
:;: "Add another event not on the test module" ;:
@@ -40,19 +49,19 @@ echo "f:test2 $FUNC2" >> dynamic_events
echo 1 > events/fprobes/test2/enable
:;: "Ensure it is enabled" ;:
-ofuncs=`cat enabled_functions | wc -l`
+ofuncs=`count_enabled_functions`
test $ofuncs -ne 0
:;: "Disable and remove the first event"
echo 0 > events/fprobes/test1/enable
echo "-:fprobes/test1" >> dynamic_events
-funcs=`cat enabled_functions | wc -l`
+funcs=`count_enabled_functions`
test $ofuncs -eq $funcs
:;: "Disable and remove other events" ;:
echo 0 > events/fprobes/enable
echo > dynamic_events
-funcs=`cat enabled_functions | wc -l`
+funcs=`count_enabled_functions`
test $funcs -eq 0
rmmod trace-events-sample
@@ -63,12 +72,12 @@ echo "f:test1 $FUNC1" >> dynamic_events
echo 1 > events/fprobes/test1/enable
echo "f:test2 $FUNC2" >> dynamic_events
echo 1 > events/fprobes/test2/enable
-ofuncs=`cat enabled_functions | wc -l`
+ofuncs=`count_enabled_functions`
test $ofuncs -ne 0
:;: "Unload module (ftrace entry should be removed)" ;:
rmmod trace-events-sample
-funcs=`cat enabled_functions | wc -l`
+funcs=`count_enabled_functions`
test $funcs -ne 0
test $ofuncs -ne $funcs
@@ -77,7 +86,7 @@ echo 0 > events/fprobes/test2/enable
echo "-:fprobes/test2" >> dynamic_events
:;: "Ensure ftrace is disabled." ;:
-funcs=`cat enabled_functions | wc -l`
+funcs=`count_enabled_functions`
test $funcs -eq 0
echo 0 > events/fprobes/enable
--
2.53.0
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] selftests/ftrace: Fix reading enabled_functions in add_remove_fprobe_module test
2026-07-08 19:32 [PATCH] selftests/ftrace: Fix reading enabled_functions in add_remove_fprobe_module test Steven Rostedt
@ 2026-07-09 5:38 ` Masami Hiramatsu
0 siblings, 0 replies; 2+ messages in thread
From: Masami Hiramatsu @ 2026-07-09 5:38 UTC (permalink / raw)
To: Steven Rostedt
Cc: LKML, Linux Trace Kernel, linux-kselftest, Masami Hiramatsu,
Mathieu Desnoyers, Shuah Khan, Shuah Khan
On Wed, 8 Jul 2026 15:32:39 -0400
Steven Rostedt <rostedt@goodmis.org> wrote:
> From: Steven Rostedt <rostedt@goodmis.org>
>
> The add_remove_fprobe_module test checks the number of functions added to
> the enabled_functions file to make sure that the functions added or
> removed is as expected. The issue is that it expects this file to be empty
> on start up.
>
> Now that systemd uses BPF that attaches to functions via ftrace, this file
> is not empty in several systems:
>
> # cat /sys/kernel/tracing/enabled_functions
> bpf_lsm_file_open (1) R D M tramp: ftrace_regs_caller+0x0/0x61 (call_direct_funcs+0x0/0x50)
> direct(jmp)-->bpf_trampoline_6442529439+0x0/0xe9
>
> Change the test to read the number of lines in enabled_functions at the
> start of the test and subtract that from the value of the count for the
> checks within the test.
Oops, good catch! I need to make a test environment which uses
systemd...
Acked-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
Thanks,
>
> Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
> ---
> .../dynevent/add_remove_fprobe_module.tc | 27 ++++++++++++-------
> 1 file changed, 18 insertions(+), 9 deletions(-)
>
> diff --git a/tools/testing/selftests/ftrace/test.d/dynevent/add_remove_fprobe_module.tc b/tools/testing/selftests/ftrace/test.d/dynevent/add_remove_fprobe_module.tc
> index 2915206777b6..89660a9adf44 100644
> --- a/tools/testing/selftests/ftrace/test.d/dynevent/add_remove_fprobe_module.tc
> +++ b/tools/testing/selftests/ftrace/test.d/dynevent/add_remove_fprobe_module.tc
> @@ -16,23 +16,32 @@ echo > dynamic_events
> FUNC1='foo_bar*'
> FUNC2='vfs_read'
>
> +:;: "Save enabled functions count" ;:
> +ecount=`cat enabled_functions | wc -l`
> +
> +count_enabled_functions() {
> + count=`cat enabled_functions | wc -l`
> + count=$(($count-$ecount))
> + echo $count
> +}
> +
> :;: "Add an event on the test module" ;:
> echo "f:test1 $FUNC1" >> dynamic_events
> echo 1 > events/fprobes/test1/enable
>
> :;: "Ensure it is enabled" ;:
> -funcs=`cat enabled_functions | wc -l`
> +funcs=`count_enabled_functions`
> test $funcs -ne 0
>
> :;: "Check the enabled_functions is cleared on unloading" ;:
> rmmod trace-events-sample
> -funcs=`cat enabled_functions | wc -l`
> +funcs=`count_enabled_functions`
> test $funcs -eq 0
>
> :;: "Check it is kept clean" ;:
> modprobe trace-events-sample
> echo 1 > events/fprobes/test1/enable || echo "OK"
> -funcs=`cat enabled_functions | wc -l`
> +funcs=`count_enabled_functions`
> test $funcs -eq 0
>
> :;: "Add another event not on the test module" ;:
> @@ -40,19 +49,19 @@ echo "f:test2 $FUNC2" >> dynamic_events
> echo 1 > events/fprobes/test2/enable
>
> :;: "Ensure it is enabled" ;:
> -ofuncs=`cat enabled_functions | wc -l`
> +ofuncs=`count_enabled_functions`
> test $ofuncs -ne 0
>
> :;: "Disable and remove the first event"
> echo 0 > events/fprobes/test1/enable
> echo "-:fprobes/test1" >> dynamic_events
> -funcs=`cat enabled_functions | wc -l`
> +funcs=`count_enabled_functions`
> test $ofuncs -eq $funcs
>
> :;: "Disable and remove other events" ;:
> echo 0 > events/fprobes/enable
> echo > dynamic_events
> -funcs=`cat enabled_functions | wc -l`
> +funcs=`count_enabled_functions`
> test $funcs -eq 0
>
> rmmod trace-events-sample
> @@ -63,12 +72,12 @@ echo "f:test1 $FUNC1" >> dynamic_events
> echo 1 > events/fprobes/test1/enable
> echo "f:test2 $FUNC2" >> dynamic_events
> echo 1 > events/fprobes/test2/enable
> -ofuncs=`cat enabled_functions | wc -l`
> +ofuncs=`count_enabled_functions`
> test $ofuncs -ne 0
>
> :;: "Unload module (ftrace entry should be removed)" ;:
> rmmod trace-events-sample
> -funcs=`cat enabled_functions | wc -l`
> +funcs=`count_enabled_functions`
> test $funcs -ne 0
> test $ofuncs -ne $funcs
>
> @@ -77,7 +86,7 @@ echo 0 > events/fprobes/test2/enable
> echo "-:fprobes/test2" >> dynamic_events
>
> :;: "Ensure ftrace is disabled." ;:
> -funcs=`cat enabled_functions | wc -l`
> +funcs=`count_enabled_functions`
> test $funcs -eq 0
>
> echo 0 > events/fprobes/enable
> --
> 2.53.0
>
--
Masami Hiramatsu (Google) <mhiramat@kernel.org>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-07-09 5:38 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-08 19:32 [PATCH] selftests/ftrace: Fix reading enabled_functions in add_remove_fprobe_module test Steven Rostedt
2026-07-09 5:38 ` Masami Hiramatsu
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox