selftests/ftrace: Add clear_dynamic_events() to test cases
Add a function to remove all dynamic events from the tracing directory. It requires a loop as some of the dynamic events may depend on others being removed first. Also add a safety that prevents it from looping infinitely due to a bug where an event never gets removed. Link: https://lkml.kernel.org/r/20210819152825.348941368@goodmis.org Cc: "Tzvetomir Stoyanov" <tz.stoyanov@gmail.com> Cc: Tom Zanussi <zanussi@kernel.org> Cc: Shuah Khan <shuah@kernel.org> Cc: Shuah Khan <skhan@linuxfoundation.org> Cc: linux-kselftest@vger.kernel.org Acked-by: Masami Hiramatsu <mhiramat@kernel.org> Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
This commit is contained in:
parent
7491e2c442
commit
aaac2820a3
@ -83,6 +83,27 @@ clear_synthetic_events() { # reset all current synthetic events
|
||||
done
|
||||
}
|
||||
|
||||
clear_dynamic_events() { # reset all current dynamic events
|
||||
again=1
|
||||
stop=1
|
||||
# loop mulitple times as some events require other to be removed first
|
||||
while [ $again -eq 1 ]; do
|
||||
stop=$((stop+1))
|
||||
# Prevent infinite loops
|
||||
if [ $stop -gt 10 ]; then
|
||||
break;
|
||||
fi
|
||||
again=2
|
||||
grep -v '^#' dynamic_events|
|
||||
while read line; do
|
||||
del=`echo $line | sed -e 's/^.\([^ ]*\).*/-\1/'`
|
||||
if ! echo "$del" >> dynamic_events; then
|
||||
again=1
|
||||
fi
|
||||
done
|
||||
done
|
||||
}
|
||||
|
||||
initialize_ftrace() { # Reset ftrace to initial-state
|
||||
# As the initial state, ftrace will be set to nop tracer,
|
||||
# no events, no triggers, no filters, no function filters,
|
||||
@ -93,6 +114,7 @@ initialize_ftrace() { # Reset ftrace to initial-state
|
||||
reset_events_filter
|
||||
reset_ftrace_filter
|
||||
disable_events
|
||||
clear_dynamic_events
|
||||
[ -f set_event_pid ] && echo > set_event_pid
|
||||
[ -f set_ftrace_pid ] && echo > set_ftrace_pid
|
||||
[ -f set_ftrace_notrace ] && echo > set_ftrace_notrace
|
||||
|
Loading…
x
Reference in New Issue
Block a user