0001
0002
0003 clear_trace() {
0004 echo > trace
0005 }
0006
0007 disable_tracing() {
0008 echo 0 > tracing_on
0009 }
0010
0011 enable_tracing() {
0012 echo 1 > tracing_on
0013 }
0014
0015 reset_tracer() {
0016 echo nop > current_tracer
0017 }
0018
0019 reset_trigger_file() {
0020
0021 grep -H ':on[^:]*(' $@ |
0022 while read line; do
0023 cmd=`echo $line | cut -f2- -d: | cut -f1 -d"["`
0024 file=`echo $line | cut -f1 -d:`
0025 echo "!$cmd" >> $file
0026 done
0027 grep -Hv ^
0028 while read line; do
0029 cmd=`echo $line | cut -f2- -d: | cut -f1 -d"["`
0030 file=`echo $line | cut -f1 -d:`
0031 echo "!$cmd" > $file
0032 done
0033 }
0034
0035 reset_trigger() {
0036 if [ -d events/synthetic ]; then
0037 reset_trigger_file events/synthetic/*/trigger
0038 fi
0039 reset_trigger_file events/*/*/trigger
0040 }
0041
0042 reset_events_filter() {
0043 grep -v ^none events/*/*/filter |
0044 while read line; do
0045 echo 0 > `echo $line | cut -f1 -d:`
0046 done
0047 }
0048
0049 reset_ftrace_filter() {
0050 if [ ! -f set_ftrace_filter ]; then
0051 return 0
0052 fi
0053 echo > set_ftrace_filter
0054 grep -v '^#' set_ftrace_filter | while read t; do
0055 tr=`echo $t | cut -d: -f2`
0056 if [ "$tr" = "" ]; then
0057 continue
0058 fi
0059 if ! grep -q "$t" set_ftrace_filter; then
0060 continue;
0061 fi
0062 name=`echo $t | cut -d: -f1 | cut -d' ' -f1`
0063 if [ $tr = "enable_event" -o $tr = "disable_event" ]; then
0064 tr=`echo $t | cut -d: -f2-4`
0065 limit=`echo $t | cut -d: -f5`
0066 else
0067 tr=`echo $t | cut -d: -f2`
0068 limit=`echo $t | cut -d: -f3`
0069 fi
0070 if [ "$limit" != "unlimited" ]; then
0071 tr="$tr:$limit"
0072 fi
0073 echo "!$name:$tr" > set_ftrace_filter
0074 done
0075 }
0076
0077 disable_events() {
0078 echo 0 > events/enable
0079 }
0080
0081 clear_synthetic_events() {
0082 grep -v ^
0083 while read line; do
0084 echo "!$line" >> synthetic_events
0085 done
0086 }
0087
0088 initialize_ftrace() {
0089
0090
0091
0092 disable_tracing
0093 reset_tracer
0094 reset_trigger
0095 reset_events_filter
0096 reset_ftrace_filter
0097 disable_events
0098 [ -f set_event_pid ] && echo > set_event_pid
0099 [ -f set_ftrace_pid ] && echo > set_ftrace_pid
0100 [ -f set_ftrace_notrace ] && echo > set_ftrace_notrace
0101 [ -f set_graph_function ] && echo | tee set_graph_*
0102 [ -f stack_trace_filter ] && echo > stack_trace_filter
0103 [ -f kprobe_events ] && echo > kprobe_events
0104 [ -f uprobe_events ] && echo > uprobe_events
0105 [ -f synthetic_events ] && echo > synthetic_events
0106 [ -f snapshot ] && echo 0 > snapshot
0107 clear_trace
0108 enable_tracing
0109 }