On Wed, 8 Jul 2026 15:32:39 -0400 Steven Rostedt <[email protected]> wrote:
> From: Steven Rostedt <[email protected]> > > 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) <[email protected]> Thanks, > > Signed-off-by: Steven Rostedt <[email protected]> > --- > .../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) <[email protected]>
