GNU Linux-libre 4.14.324-gnu1
[releases.git] / tools / testing / selftests / ftrace / test.d / functions
1
2 clear_trace() { # reset trace output
3     echo > trace
4 }
5
6 disable_tracing() { # stop trace recording
7     echo 0 > tracing_on
8 }
9
10 enable_tracing() { # start trace recording
11     echo 1 > tracing_on
12 }
13
14 reset_tracer() { # reset the current tracer
15     echo nop > current_tracer
16 }
17
18 reset_trigger_file() {
19     # remove action triggers first
20     grep -H ':on[^:]*(' $@ |
21     while read line; do
22         cmd=`echo $line | cut -f2- -d: | cut -f1 -d" "`
23         file=`echo $line | cut -f1 -d:`
24         echo "!$cmd" >> $file
25     done
26     grep -Hv ^# $@ |
27     while read line; do
28         cmd=`echo $line | cut -f2- -d: | cut -f1 -d" "`
29         file=`echo $line | cut -f1 -d:`
30         echo "!$cmd" > $file
31     done
32 }
33
34 reset_trigger() { # reset all current setting triggers
35     if [ -d events/synthetic ]; then
36         reset_trigger_file events/synthetic/*/trigger
37     fi
38     reset_trigger_file events/*/*/trigger
39 }
40
41 reset_events_filter() { # reset all current setting filters
42     grep -v ^none events/*/*/filter |
43     while read line; do
44         echo 0 > `echo $line | cut -f1 -d:`
45     done
46 }
47
48 reset_ftrace_filter() { # reset all triggers in set_ftrace_filter
49     echo > set_ftrace_filter
50     grep -v '^#' set_ftrace_filter | while read t; do
51         tr=`echo $t | cut -d: -f2`
52         if [ "$tr" = "" ]; then
53             continue
54         fi
55         if [ $tr = "enable_event" -o $tr = "disable_event" ]; then
56             tr=`echo $t | cut -d: -f1-4`
57             limit=`echo $t | cut -d: -f5`
58         else
59             tr=`echo $t | cut -d: -f1-2`
60             limit=`echo $t | cut -d: -f3`
61         fi
62         if [ "$limit" != "unlimited" ]; then
63             tr="$tr:$limit"
64         fi
65         echo "!$tr" > set_ftrace_filter
66     done
67 }
68
69 disable_events() {
70     echo 0 > events/enable
71 }
72
73 initialize_ftrace() { # Reset ftrace to initial-state
74 # As the initial state, ftrace will be set to nop tracer,
75 # no events, no triggers, no filters, no function filters,
76 # no probes, and tracing on.
77     disable_tracing
78     reset_tracer
79     reset_trigger
80     reset_events_filter
81     disable_events
82     echo > set_event_pid        # event tracer is always on
83     [ -f set_ftrace_filter ] && echo | tee set_ftrace_*
84     [ -f set_graph_function ] && echo | tee set_graph_*
85     [ -f stack_trace_filter ] && echo > stack_trace_filter
86     [ -f kprobe_events ] && echo > kprobe_events
87     [ -f uprobe_events ] && echo > uprobe_events
88     enable_tracing
89 }