18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only 28c2ecf20Sopenharmony_ci 38c2ecf20Sopenharmony_ciclear_trace() { # reset trace output 48c2ecf20Sopenharmony_ci echo > trace 58c2ecf20Sopenharmony_ci} 68c2ecf20Sopenharmony_ci 78c2ecf20Sopenharmony_cidisable_tracing() { # stop trace recording 88c2ecf20Sopenharmony_ci echo 0 > tracing_on 98c2ecf20Sopenharmony_ci} 108c2ecf20Sopenharmony_ci 118c2ecf20Sopenharmony_cienable_tracing() { # start trace recording 128c2ecf20Sopenharmony_ci echo 1 > tracing_on 138c2ecf20Sopenharmony_ci} 148c2ecf20Sopenharmony_ci 158c2ecf20Sopenharmony_cireset_tracer() { # reset the current tracer 168c2ecf20Sopenharmony_ci echo nop > current_tracer 178c2ecf20Sopenharmony_ci} 188c2ecf20Sopenharmony_ci 198c2ecf20Sopenharmony_cireset_trigger_file() { 208c2ecf20Sopenharmony_ci # remove action triggers first 218c2ecf20Sopenharmony_ci grep -H ':on[^:]*(' $@ | 228c2ecf20Sopenharmony_ci while read line; do 238c2ecf20Sopenharmony_ci cmd=`echo $line | cut -f2- -d: | cut -f1 -d"["` 248c2ecf20Sopenharmony_ci file=`echo $line | cut -f1 -d:` 258c2ecf20Sopenharmony_ci echo "!$cmd" >> $file 268c2ecf20Sopenharmony_ci done 278c2ecf20Sopenharmony_ci grep -Hv ^# $@ | 288c2ecf20Sopenharmony_ci while read line; do 298c2ecf20Sopenharmony_ci cmd=`echo $line | cut -f2- -d: | cut -f1 -d"["` 308c2ecf20Sopenharmony_ci file=`echo $line | cut -f1 -d:` 318c2ecf20Sopenharmony_ci echo "!$cmd" > $file 328c2ecf20Sopenharmony_ci done 338c2ecf20Sopenharmony_ci} 348c2ecf20Sopenharmony_ci 358c2ecf20Sopenharmony_cireset_trigger() { # reset all current setting triggers 368c2ecf20Sopenharmony_ci if [ -d events/synthetic ]; then 378c2ecf20Sopenharmony_ci reset_trigger_file events/synthetic/*/trigger 388c2ecf20Sopenharmony_ci fi 398c2ecf20Sopenharmony_ci reset_trigger_file events/*/*/trigger 408c2ecf20Sopenharmony_ci} 418c2ecf20Sopenharmony_ci 428c2ecf20Sopenharmony_cireset_events_filter() { # reset all current setting filters 438c2ecf20Sopenharmony_ci grep -v ^none events/*/*/filter | 448c2ecf20Sopenharmony_ci while read line; do 458c2ecf20Sopenharmony_ci echo 0 > `echo $line | cut -f1 -d:` 468c2ecf20Sopenharmony_ci done 478c2ecf20Sopenharmony_ci} 488c2ecf20Sopenharmony_ci 498c2ecf20Sopenharmony_cireset_ftrace_filter() { # reset all triggers in set_ftrace_filter 508c2ecf20Sopenharmony_ci if [ ! -f set_ftrace_filter ]; then 518c2ecf20Sopenharmony_ci return 0 528c2ecf20Sopenharmony_ci fi 538c2ecf20Sopenharmony_ci echo > set_ftrace_filter 548c2ecf20Sopenharmony_ci grep -v '^#' set_ftrace_filter | while read t; do 558c2ecf20Sopenharmony_ci tr=`echo $t | cut -d: -f2` 568c2ecf20Sopenharmony_ci if [ "$tr" = "" ]; then 578c2ecf20Sopenharmony_ci continue 588c2ecf20Sopenharmony_ci fi 598c2ecf20Sopenharmony_ci if ! grep -q "$t" set_ftrace_filter; then 608c2ecf20Sopenharmony_ci continue; 618c2ecf20Sopenharmony_ci fi 628c2ecf20Sopenharmony_ci name=`echo $t | cut -d: -f1 | cut -d' ' -f1` 638c2ecf20Sopenharmony_ci if [ $tr = "enable_event" -o $tr = "disable_event" ]; then 648c2ecf20Sopenharmony_ci tr=`echo $t | cut -d: -f2-4` 658c2ecf20Sopenharmony_ci limit=`echo $t | cut -d: -f5` 668c2ecf20Sopenharmony_ci else 678c2ecf20Sopenharmony_ci tr=`echo $t | cut -d: -f2` 688c2ecf20Sopenharmony_ci limit=`echo $t | cut -d: -f3` 698c2ecf20Sopenharmony_ci fi 708c2ecf20Sopenharmony_ci if [ "$limit" != "unlimited" ]; then 718c2ecf20Sopenharmony_ci tr="$tr:$limit" 728c2ecf20Sopenharmony_ci fi 738c2ecf20Sopenharmony_ci echo "!$name:$tr" > set_ftrace_filter 748c2ecf20Sopenharmony_ci done 758c2ecf20Sopenharmony_ci} 768c2ecf20Sopenharmony_ci 778c2ecf20Sopenharmony_cidisable_events() { 788c2ecf20Sopenharmony_ci echo 0 > events/enable 798c2ecf20Sopenharmony_ci} 808c2ecf20Sopenharmony_ci 818c2ecf20Sopenharmony_ciclear_synthetic_events() { # reset all current synthetic events 828c2ecf20Sopenharmony_ci grep -v ^# synthetic_events | 838c2ecf20Sopenharmony_ci while read line; do 848c2ecf20Sopenharmony_ci echo "!$line" >> synthetic_events 858c2ecf20Sopenharmony_ci done 868c2ecf20Sopenharmony_ci} 878c2ecf20Sopenharmony_ci 888c2ecf20Sopenharmony_ciinitialize_ftrace() { # Reset ftrace to initial-state 898c2ecf20Sopenharmony_ci# As the initial state, ftrace will be set to nop tracer, 908c2ecf20Sopenharmony_ci# no events, no triggers, no filters, no function filters, 918c2ecf20Sopenharmony_ci# no probes, and tracing on. 928c2ecf20Sopenharmony_ci disable_tracing 938c2ecf20Sopenharmony_ci reset_tracer 948c2ecf20Sopenharmony_ci reset_trigger 958c2ecf20Sopenharmony_ci reset_events_filter 968c2ecf20Sopenharmony_ci reset_ftrace_filter 978c2ecf20Sopenharmony_ci disable_events 988c2ecf20Sopenharmony_ci [ -f set_event_pid ] && echo > set_event_pid 998c2ecf20Sopenharmony_ci [ -f set_ftrace_pid ] && echo > set_ftrace_pid 1008c2ecf20Sopenharmony_ci [ -f set_ftrace_notrace ] && echo > set_ftrace_notrace 1018c2ecf20Sopenharmony_ci [ -f set_graph_function ] && echo | tee set_graph_* 1028c2ecf20Sopenharmony_ci [ -f stack_trace_filter ] && echo > stack_trace_filter 1038c2ecf20Sopenharmony_ci [ -f kprobe_events ] && echo > kprobe_events 1048c2ecf20Sopenharmony_ci [ -f uprobe_events ] && echo > uprobe_events 1058c2ecf20Sopenharmony_ci [ -f synthetic_events ] && echo > synthetic_events 1068c2ecf20Sopenharmony_ci [ -f snapshot ] && echo 0 > snapshot 1078c2ecf20Sopenharmony_ci clear_trace 1088c2ecf20Sopenharmony_ci enable_tracing 1098c2ecf20Sopenharmony_ci} 110