]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
selftests: ftrace: Add a way to reset triggers in the set_ftrace_filter file
authorSteven Rostedt (VMware) <rostedt@goodmis.org>
Mon, 17 Apr 2017 21:30:08 +0000 (17:30 -0400)
committerSteven Rostedt (VMware) <rostedt@goodmis.org>
Tue, 18 Apr 2017 17:48:25 +0000 (13:48 -0400)
Just writing into the set_ftrace_filter file does not reset triggers, even
though it can reset the function list. Triggers require writing the trigger
name with a "!" prepended. It's worse that it requires the number if the
trigger has a count associated to it.

Add a reset_ftrace_filter function to the ftrace self tests to allow for the
tests to have a generic way to clear them. It also resets any functions that
are listed in that file as well.

Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
tools/testing/selftests/ftrace/test.d/functions

index 91de1a8e4f197808215d431d31343071a4c4221f..9aec6fcb7729ff0e7ec600ae91b80a24236b7bf6 100644 (file)
@@ -30,6 +30,27 @@ reset_events_filter() { # reset all current setting filters
     done
 }
 
+reset_ftrace_filter() { # reset all triggers in set_ftrace_filter
+    echo > set_ftrace_filter
+    grep -v '^#' set_ftrace_filter | while read t; do
+       tr=`echo $t | cut -d: -f2`
+       if [ "$tr" == "" ]; then
+           continue
+       fi
+       if [ $tr == "enable_event" -o $tr == "disable_event" ]; then
+           tr=`echo $t | cut -d: -f1-4`
+           limit=`echo $t | cut -d: -f5`
+       else
+           tr=`echo $t | cut -d: -f1-2`
+           limit=`echo $t | cut -d: -f3`
+       fi
+       if [ "$limit" != "unlimited" ]; then
+           tr="$tr:$limit"
+       fi
+       echo "!$tr" > set_ftrace_filter
+    done
+}
+
 disable_events() {
     echo 0 > events/enable
 }