1ee3988c7SSteven Rostedt (Red Hat) 2ee3988c7SSteven Rostedt (Red Hat)clear_trace() { # reset trace output 3ee3988c7SSteven Rostedt (Red Hat) echo > trace 4ee3988c7SSteven Rostedt (Red Hat)} 5ee3988c7SSteven Rostedt (Red Hat) 6ee3988c7SSteven Rostedt (Red Hat)disable_tracing() { # stop trace recording 7ee3988c7SSteven Rostedt (Red Hat) echo 0 > tracing_on 8ee3988c7SSteven Rostedt (Red Hat)} 9ee3988c7SSteven Rostedt (Red Hat) 10ee3988c7SSteven Rostedt (Red Hat)enable_tracing() { # start trace recording 11ee3988c7SSteven Rostedt (Red Hat) echo 1 > tracing_on 12ee3988c7SSteven Rostedt (Red Hat)} 13ee3988c7SSteven Rostedt (Red Hat) 14ee3988c7SSteven Rostedt (Red Hat)reset_tracer() { # reset the current tracer 15ee3988c7SSteven Rostedt (Red Hat) echo nop > current_tracer 16ee3988c7SSteven Rostedt (Red Hat)} 17cfa0963dSMasami Hiramatsu 18cfa0963dSMasami Hiramatsureset_trigger() { # reset all current setting triggers 19cfa0963dSMasami Hiramatsu grep -v ^# events/*/*/trigger | 20cfa0963dSMasami Hiramatsu while read line; do 21cfa0963dSMasami Hiramatsu cmd=`echo $line | cut -f2- -d: | cut -f1 -d" "` 22cfa0963dSMasami Hiramatsu echo "!$cmd" > `echo $line | cut -f1 -d:` 23cfa0963dSMasami Hiramatsu done 24cfa0963dSMasami Hiramatsu} 25cfa0963dSMasami Hiramatsu 26131f840dSMasami Hiramatsureset_events_filter() { # reset all current setting filters 27131f840dSMasami Hiramatsu grep -v ^none events/*/*/filter | 28131f840dSMasami Hiramatsu while read line; do 29131f840dSMasami Hiramatsu echo 0 > `echo $line | cut -f1 -d:` 30131f840dSMasami Hiramatsu done 31131f840dSMasami Hiramatsu} 32131f840dSMasami Hiramatsu 338e5e19c1SSteven Rostedt (VMware)reset_ftrace_filter() { # reset all triggers in set_ftrace_filter 348e5e19c1SSteven Rostedt (VMware) echo > set_ftrace_filter 358e5e19c1SSteven Rostedt (VMware) grep -v '^#' set_ftrace_filter | while read t; do 368e5e19c1SSteven Rostedt (VMware) tr=`echo $t | cut -d: -f2` 37d2ffb8d3SNaveen N. Rao if [ "$tr" = "" ]; then 388e5e19c1SSteven Rostedt (VMware) continue 398e5e19c1SSteven Rostedt (VMware) fi 40*0787ce33SSteven Rostedt (VMware) if ! grep -q "$t" set_ftrace_filter; then 41*0787ce33SSteven Rostedt (VMware) continue; 42*0787ce33SSteven Rostedt (VMware) fi 43df9d36d9SSteven Rostedt (VMware) name=`echo $t | cut -d: -f1 | cut -d' ' -f1` 44d2ffb8d3SNaveen N. Rao if [ $tr = "enable_event" -o $tr = "disable_event" ]; then 45df9d36d9SSteven Rostedt (VMware) tr=`echo $t | cut -d: -f2-4` 468e5e19c1SSteven Rostedt (VMware) limit=`echo $t | cut -d: -f5` 478e5e19c1SSteven Rostedt (VMware) else 48df9d36d9SSteven Rostedt (VMware) tr=`echo $t | cut -d: -f2` 498e5e19c1SSteven Rostedt (VMware) limit=`echo $t | cut -d: -f3` 508e5e19c1SSteven Rostedt (VMware) fi 518e5e19c1SSteven Rostedt (VMware) if [ "$limit" != "unlimited" ]; then 528e5e19c1SSteven Rostedt (VMware) tr="$tr:$limit" 538e5e19c1SSteven Rostedt (VMware) fi 54df9d36d9SSteven Rostedt (VMware) echo "!$name:$tr" > set_ftrace_filter 558e5e19c1SSteven Rostedt (VMware) done 568e5e19c1SSteven Rostedt (VMware)} 578e5e19c1SSteven Rostedt (VMware) 58131f840dSMasami Hiramatsudisable_events() { 59131f840dSMasami Hiramatsu echo 0 > events/enable 60131f840dSMasami Hiramatsu} 61131f840dSMasami Hiramatsu 62131f840dSMasami Hiramatsuinitialize_ftrace() { # Reset ftrace to initial-state 63131f840dSMasami Hiramatsu# As the initial state, ftrace will be set to nop tracer, 64131f840dSMasami Hiramatsu# no events, no triggers, no filters, no function filters, 65131f840dSMasami Hiramatsu# no probes, and tracing on. 66131f840dSMasami Hiramatsu disable_tracing 67131f840dSMasami Hiramatsu reset_tracer 68131f840dSMasami Hiramatsu reset_trigger 69131f840dSMasami Hiramatsu reset_events_filter 70131f840dSMasami Hiramatsu disable_events 71131f840dSMasami Hiramatsu echo > set_event_pid # event tracer is always on 72131f840dSMasami Hiramatsu [ -f set_ftrace_filter ] && echo | tee set_ftrace_* 73131f840dSMasami Hiramatsu [ -f set_graph_function ] && echo | tee set_graph_* 74131f840dSMasami Hiramatsu [ -f stack_trace_filter ] && echo > stack_trace_filter 75131f840dSMasami Hiramatsu [ -f kprobe_events ] && echo > kprobe_events 76131f840dSMasami Hiramatsu [ -f uprobe_events ] && echo > uprobe_events 77131f840dSMasami Hiramatsu enable_tracing 78131f840dSMasami Hiramatsu} 79