clear_trace() { # reset trace output echo > trace } disable_tracing() { # stop trace recording echo 0 > tracing_on } enable_tracing() { # start trace recording echo 1 > tracing_on } reset_tracer() { # reset the current tracer echo nop > current_tracer } reset_trigger() { # reset all current setting triggers grep -v ^# events/*/*/trigger | while read line; do cmd=`echo $line | cut -f2- -d: | cut -f1 -d" "` echo "!$cmd" > `echo $line | cut -f1 -d:` done } reset_events_filter() { # reset all current setting filters grep -v ^none events/*/*/filter | while read line; do echo 0 > `echo $line | cut -f1 -d:` 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 } 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, # no probes, and tracing on. disable_tracing reset_tracer reset_trigger reset_events_filter disable_events echo > set_event_pid # event tracer is always on [ -f set_ftrace_filter ] && echo | tee set_ftrace_* [ -f set_graph_function ] && echo | tee set_graph_* [ -f stack_trace_filter ] && echo > stack_trace_filter [ -f kprobe_events ] && echo > kprobe_events [ -f uprobe_events ] && echo > uprobe_events enable_tracing }