Re: [PATCH v8 3/5] selftests/ftrace: Add clear_dynamic_events() to test cases

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 19 Aug 2021 11:26:07 -0400
Steven Rostedt <rostedt@xxxxxxxxxxx> wrote:

> From: "Steven Rostedt (VMware)" <rostedt@xxxxxxxxxxx>
> 
> Add a function to remove all dynamic events from the tracing directory. It
> requires a loop as some of the dynamic events may depend on others being
> removed first. Also add a safety that prevents it from looping infinitely
> due to a bug where an event never gets removed.
> 
> Link: https://lkml.kernel.org/r/20210819041842.696873153@xxxxxxxxxxx
> 

Thank you for adding this useful function!

Acked-by: Masami Hiramatsu <mhiramat@xxxxxxxxxx>


> Cc: Shuah Khan <shuah@xxxxxxxxxx>
> Cc: Shuah Khan <skhan@xxxxxxxxxxxxxxxxxxx>
> Cc: linux-kselftest@xxxxxxxxxxxxxxx
> Signed-off-by: Steven Rostedt (VMware) <rostedt@xxxxxxxxxxx>
> ---
>  .../testing/selftests/ftrace/test.d/functions | 22 +++++++++++++++++++
>  1 file changed, 22 insertions(+)
> 
> diff --git a/tools/testing/selftests/ftrace/test.d/functions b/tools/testing/selftests/ftrace/test.d/functions
> index a6fac927ee82..f68d336b961b 100644
> --- a/tools/testing/selftests/ftrace/test.d/functions
> +++ b/tools/testing/selftests/ftrace/test.d/functions
> @@ -83,6 +83,27 @@ clear_synthetic_events() { # reset all current synthetic events
>      done
>  }
>  
> +clear_dynamic_events() { # reset all current dynamic events
> +    again=1
> +    stop=1
> +    # loop mulitple times as some events require other to be removed first
> +    while [ $again -eq 1 ]; do
> +	stop=$((stop+1))
> +	# Prevent infinite loops
> +	if [ $stop -gt 10 ]; then
> +	    break;
> +	fi
> +	again=2
> +	grep -v '^#' dynamic_events|
> +	while read line; do
> +	    del=`echo $line | sed -e 's/^.\([^ ]*\).*/-\1/'`
> +	    if ! echo "$del" >> dynamic_events; then
> +		again=1
> +	    fi
> +	done
> +    done
> +}
> +
>  initialize_ftrace() { # Reset ftrace to initial-state
>  # As the initial state, ftrace will be set to nop tracer,
>  # no events, no triggers, no filters, no function filters,
> @@ -93,6 +114,7 @@ initialize_ftrace() { # Reset ftrace to initial-state
>      reset_events_filter
>      reset_ftrace_filter
>      disable_events
> +    clear_dynamic_events
>      [ -f set_event_pid ] && echo > set_event_pid
>      [ -f set_ftrace_pid ] && echo > set_ftrace_pid
>      [ -f set_ftrace_notrace ] && echo > set_ftrace_notrace
> -- 
> 2.30.2


-- 
Masami Hiramatsu <mhiramat@xxxxxxxxxx>



[Index of Archives]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Share Photos]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]

  Powered by Linux