xref: /linux/tools/testing/selftests/ftrace/test.d/functions (revision 0787ce336075ac0fa2d356de4e3c2a2488e851a6)
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