xref: /linux/tools/testing/selftests/ftrace/test.d/functions (revision df9d36d9e8adefe0975c7b5888967651b3db3af3)
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*df9d36d9SSteven Rostedt (VMware)	name=`echo $t | cut -d: -f1 | cut -d' ' -f1`
41d2ffb8d3SNaveen N. Rao	if [ $tr = "enable_event" -o $tr = "disable_event" ]; then
42*df9d36d9SSteven Rostedt (VMware)	    tr=`echo $t | cut -d: -f2-4`
438e5e19c1SSteven Rostedt (VMware)	    limit=`echo $t | cut -d: -f5`
448e5e19c1SSteven Rostedt (VMware)	else
45*df9d36d9SSteven Rostedt (VMware)	    tr=`echo $t | cut -d: -f2`
468e5e19c1SSteven Rostedt (VMware)	    limit=`echo $t | cut -d: -f3`
478e5e19c1SSteven Rostedt (VMware)	fi
488e5e19c1SSteven Rostedt (VMware)	if [ "$limit" != "unlimited" ]; then
498e5e19c1SSteven Rostedt (VMware)	    tr="$tr:$limit"
508e5e19c1SSteven Rostedt (VMware)	fi
51*df9d36d9SSteven Rostedt (VMware)	echo "!$name:$tr" > set_ftrace_filter
528e5e19c1SSteven Rostedt (VMware)    done
538e5e19c1SSteven Rostedt (VMware)}
548e5e19c1SSteven Rostedt (VMware)
55131f840dSMasami Hiramatsudisable_events() {
56131f840dSMasami Hiramatsu    echo 0 > events/enable
57131f840dSMasami Hiramatsu}
58131f840dSMasami Hiramatsu
59131f840dSMasami Hiramatsuinitialize_ftrace() { # Reset ftrace to initial-state
60131f840dSMasami Hiramatsu# As the initial state, ftrace will be set to nop tracer,
61131f840dSMasami Hiramatsu# no events, no triggers, no filters, no function filters,
62131f840dSMasami Hiramatsu# no probes, and tracing on.
63131f840dSMasami Hiramatsu    disable_tracing
64131f840dSMasami Hiramatsu    reset_tracer
65131f840dSMasami Hiramatsu    reset_trigger
66131f840dSMasami Hiramatsu    reset_events_filter
67131f840dSMasami Hiramatsu    disable_events
68131f840dSMasami Hiramatsu    echo > set_event_pid	# event tracer is always on
69131f840dSMasami Hiramatsu    [ -f set_ftrace_filter ] && echo | tee set_ftrace_*
70131f840dSMasami Hiramatsu    [ -f set_graph_function ] && echo | tee set_graph_*
71131f840dSMasami Hiramatsu    [ -f stack_trace_filter ] && echo > stack_trace_filter
72131f840dSMasami Hiramatsu    [ -f kprobe_events ] && echo > kprobe_events
73131f840dSMasami Hiramatsu    [ -f uprobe_events ] && echo > uprobe_events
74131f840dSMasami Hiramatsu    enable_tracing
75131f840dSMasami Hiramatsu}
76