diff mbox series

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

Message ID 157457133923.25666.16444621591775429575.stgit@devnote2 (mailing list archive)
State New
Headers show
Series selftests/ftrace: Fix ftracetest testcases for non-function tracer case | expand

Commit Message

Masami Hiramatsu (Google) Nov. 24, 2019, 4:55 a.m. UTC
If we run ftracetest on the kernel with CONFIG_FUNCTION_TRACER=n,
there is no set_ftrace_filter and all test cases are failed,
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(-)

Comments

Steven Rostedt Nov. 24, 2019, 9:35 p.m. UTC | #1
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
Masami Hiramatsu (Google) Nov. 24, 2019, 11:34 p.m. UTC | #2
On Sun, 24 Nov 2019 16:35:29 -0500
Steven Rostedt <rostedt@goodmis.org> wrote:

> 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.

Ah, good catch! I always set DYNAMIC_FTRACE=y if FUNCTION_TRACER=y.
OK, I'll update the description.

Thank you,

> 
> 
> > 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
>
diff mbox series

Patch

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_*
     [ -f set_graph_function ] && echo | tee set_graph_*
     [ -f stack_trace_filter ] && echo > stack_trace_filter
     [ -f kprobe_events ] && echo > kprobe_events