162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only 262306a36Sopenharmony_ci 362306a36Sopenharmony_ciclear_trace() { # reset trace output 462306a36Sopenharmony_ci echo > trace 562306a36Sopenharmony_ci} 662306a36Sopenharmony_ci 762306a36Sopenharmony_cidisable_tracing() { # stop trace recording 862306a36Sopenharmony_ci echo 0 > tracing_on 962306a36Sopenharmony_ci} 1062306a36Sopenharmony_ci 1162306a36Sopenharmony_cienable_tracing() { # start trace recording 1262306a36Sopenharmony_ci echo 1 > tracing_on 1362306a36Sopenharmony_ci} 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_cireset_tracer() { # reset the current tracer 1662306a36Sopenharmony_ci echo nop > current_tracer 1762306a36Sopenharmony_ci} 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_cireset_trigger_file() { 2062306a36Sopenharmony_ci # remove action triggers first 2162306a36Sopenharmony_ci grep -H ':on[^:]*(' $@ | 2262306a36Sopenharmony_ci while read line; do 2362306a36Sopenharmony_ci cmd=`echo $line | cut -f2- -d: | cut -f1 -d"["` 2462306a36Sopenharmony_ci file=`echo $line | cut -f1 -d:` 2562306a36Sopenharmony_ci echo "!$cmd" >> $file 2662306a36Sopenharmony_ci done 2762306a36Sopenharmony_ci grep -Hv ^# $@ | 2862306a36Sopenharmony_ci while read line; do 2962306a36Sopenharmony_ci cmd=`echo $line | cut -f2- -d: | cut -f1 -d"["` 3062306a36Sopenharmony_ci file=`echo $line | cut -f1 -d:` 3162306a36Sopenharmony_ci echo "!$cmd" > $file 3262306a36Sopenharmony_ci done 3362306a36Sopenharmony_ci} 3462306a36Sopenharmony_ci 3562306a36Sopenharmony_cireset_trigger() { # reset all current setting triggers 3662306a36Sopenharmony_ci if [ -d events/synthetic ]; then 3762306a36Sopenharmony_ci reset_trigger_file events/synthetic/*/trigger 3862306a36Sopenharmony_ci fi 3962306a36Sopenharmony_ci reset_trigger_file events/*/*/trigger 4062306a36Sopenharmony_ci} 4162306a36Sopenharmony_ci 4262306a36Sopenharmony_cireset_events_filter() { # reset all current setting filters 4362306a36Sopenharmony_ci grep -v ^none events/*/*/filter | 4462306a36Sopenharmony_ci while read line; do 4562306a36Sopenharmony_ci echo 0 > `echo $line | cut -f1 -d:` 4662306a36Sopenharmony_ci done 4762306a36Sopenharmony_ci} 4862306a36Sopenharmony_ci 4962306a36Sopenharmony_cireset_ftrace_filter() { # reset all triggers in set_ftrace_filter 5062306a36Sopenharmony_ci if [ ! -f set_ftrace_filter ]; then 5162306a36Sopenharmony_ci return 0 5262306a36Sopenharmony_ci fi 5362306a36Sopenharmony_ci echo > set_ftrace_filter 5462306a36Sopenharmony_ci grep -v '^#' set_ftrace_filter | while read t; do 5562306a36Sopenharmony_ci tr=`echo $t | cut -d: -f2` 5662306a36Sopenharmony_ci if [ "$tr" = "" ]; then 5762306a36Sopenharmony_ci continue 5862306a36Sopenharmony_ci fi 5962306a36Sopenharmony_ci if ! grep -q "$t" set_ftrace_filter; then 6062306a36Sopenharmony_ci continue; 6162306a36Sopenharmony_ci fi 6262306a36Sopenharmony_ci name=`echo $t | cut -d: -f1 | cut -d' ' -f1` 6362306a36Sopenharmony_ci if [ $tr = "enable_event" -o $tr = "disable_event" ]; then 6462306a36Sopenharmony_ci tr=`echo $t | cut -d: -f2-4` 6562306a36Sopenharmony_ci limit=`echo $t | cut -d: -f5` 6662306a36Sopenharmony_ci else 6762306a36Sopenharmony_ci tr=`echo $t | cut -d: -f2` 6862306a36Sopenharmony_ci limit=`echo $t | cut -d: -f3` 6962306a36Sopenharmony_ci fi 7062306a36Sopenharmony_ci if [ "$limit" != "unlimited" ]; then 7162306a36Sopenharmony_ci tr="$tr:$limit" 7262306a36Sopenharmony_ci fi 7362306a36Sopenharmony_ci echo "!$name:$tr" > set_ftrace_filter 7462306a36Sopenharmony_ci done 7562306a36Sopenharmony_ci} 7662306a36Sopenharmony_ci 7762306a36Sopenharmony_cidisable_events() { 7862306a36Sopenharmony_ci echo 0 > events/enable 7962306a36Sopenharmony_ci} 8062306a36Sopenharmony_ci 8162306a36Sopenharmony_ciclear_synthetic_events() { # reset all current synthetic events 8262306a36Sopenharmony_ci grep -v ^# synthetic_events | 8362306a36Sopenharmony_ci while read line; do 8462306a36Sopenharmony_ci echo "!$line" >> synthetic_events 8562306a36Sopenharmony_ci done 8662306a36Sopenharmony_ci} 8762306a36Sopenharmony_ci 8862306a36Sopenharmony_ciinitialize_ftrace() { # Reset ftrace to initial-state 8962306a36Sopenharmony_ci# As the initial state, ftrace will be set to nop tracer, 9062306a36Sopenharmony_ci# no events, no triggers, no filters, no function filters, 9162306a36Sopenharmony_ci# no probes, and tracing on. 9262306a36Sopenharmony_ci disable_tracing 9362306a36Sopenharmony_ci reset_tracer 9462306a36Sopenharmony_ci reset_trigger 9562306a36Sopenharmony_ci reset_events_filter 9662306a36Sopenharmony_ci reset_ftrace_filter 9762306a36Sopenharmony_ci disable_events 9862306a36Sopenharmony_ci [ -f set_event_pid ] && echo > set_event_pid 9962306a36Sopenharmony_ci [ -f set_ftrace_pid ] && echo > set_ftrace_pid 10062306a36Sopenharmony_ci [ -f set_ftrace_notrace ] && echo > set_ftrace_notrace 10162306a36Sopenharmony_ci [ -f set_graph_function ] && echo | tee set_graph_* 10262306a36Sopenharmony_ci [ -f stack_trace_filter ] && echo > stack_trace_filter 10362306a36Sopenharmony_ci [ -f kprobe_events ] && echo > kprobe_events 10462306a36Sopenharmony_ci [ -f uprobe_events ] && echo > uprobe_events 10562306a36Sopenharmony_ci [ -f synthetic_events ] && echo > synthetic_events 10662306a36Sopenharmony_ci [ -f snapshot ] && echo 0 > snapshot 10762306a36Sopenharmony_ci clear_trace 10862306a36Sopenharmony_ci enable_tracing 10962306a36Sopenharmony_ci} 110