Re: [BUGFIX PATCH 1/3] selftests/ftrace: Fix to check the existence of set_ftrace_filter

Steven Rostedt
2019-11-24T21:35:34Z

On Sun, 24 Nov 2019 13:55:39 +0900
Masami Hiramatsu <mhiramat@kernel.org> wrote:

> If we run ftracetest on the kernel with CONFIG_FUNCTION_TRACER=n,
> there is no set_ftrace_filter and all test cases are failed,

Note, that we can have CONFIG_FUNCTION_TRACER=y and there be no
set_ftrace_filter. That is determined by CONFIG_DYNAMIC_FTRACE. I guess
we should probably still check for that for this test, but I just
wanted to state that set_ftrace_filter is not dependent on
FUNCTION_TRACER but instead DYNAMIC_FTRACE.

> because reset_ftrace_filter returns an error.
> Let's check whether set_ftrace_filter exists and remove redundant
> set_ftrace_filter from initialize_ftrace().
>
> Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
> ---
> tools/testing/selftests/ftrace/test.d/functions | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/tools/testing/selftests/ftrace/test.d/functions b/tools/testing/selftests/ftrace/test.d/functions
> index 86986c4bba54..19d288cdf336 100644
> --- a/tools/testing/selftests/ftrace/test.d/functions
> +++ b/tools/testing/selftests/ftrace/test.d/functions
> @@ -46,6 +46,9 @@ reset_events_filter() { # reset all current setting filters
> }
>
> reset_ftrace_filter() { # reset all triggers in set_ftrace_filter
> + if [ ! -f set_ftrace_filter ]; then
> + return 0
> + fi
> echo > set_ftrace_filter
> grep -v '^#' set_ftrace_filter | while read t; do
> tr=`echo $t | cut -d: -f2`
> @@ -93,7 +96,6 @@ initialize_ftrace() { # Reset ftrace to initial-state
> disable_events
> [ -f set_event_pid ] && echo > set_event_pid
> [ -f set_ftrace_pid ] && echo > set_ftrace_pid
> - [ -f set_ftrace_filter ] && echo | tee set_ftrace_*

This also resets set_ftrace_notrace, which reset_ftrace_filter does not.

-- Steve

> [ -f set_graph_function ] && echo | tee set_graph_*
> [ -f stack_trace_filter ] && echo > stack_trace_filter
> [ -f kprobe_events ] && echo > kprobe_events