mirror of
https://github.com/torvalds/linux.git
synced 2026-10-07 05:31:08 -04:00
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/[email protected] Cc: "Tzvetomir Stoyanov" <[email protected]> Cc: Tom Zanussi <[email protected]> Cc: Shuah Khan <[email protected]> Cc: Shuah Khan <[email protected]> Cc: [email protected] Acked-by: Masami Hiramatsu <[email protected]> Signed-off-by: Steven Rostedt (VMware) <[email protected]>
This commit is contained in:
1 parent
7491e2c442
commit
aaac2820a3
1 file changed
+22
@@ -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
|
||||
|
||||
Reference in new issue
Block a user