linux-kselftest.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] selftests/ftrace: Check required filter files before running test
@ 2020-04-22  9:58 Xiao Yang
  2020-04-22 13:21 ` Steven Rostedt
  0 siblings, 1 reply; 4+ messages in thread
From: Xiao Yang @ 2020-04-22  9:58 UTC (permalink / raw)
  To: rostedt; +Cc: shuah, ice_yangxiao, linux-kselftest, Xiao Yang

Without CONFIG_DYNAMIC_FTRACE, some tests get failure because required
filter files(set_ftrace_filter/available_filter_functions/stack_trace_filter)
are missing.  So implement check_filter_file() and make all related tests
check required filter files by it.

BTW: set_ftrace_filter and available_filter_functions are introduced together
so just check either of them.

Signed-off-by: Xiao Yang <yangx.jy@cn.fujitsu.com>
---
 .../selftests/ftrace/test.d/ftrace/fgraph-filter-stack.tc   | 5 +----
 .../testing/selftests/ftrace/test.d/ftrace/fgraph-filter.tc | 2 ++
 .../selftests/ftrace/test.d/ftrace/func-filter-glob.tc      | 2 ++
 .../ftrace/test.d/ftrace/func-filter-notrace-pid.tc         | 5 +----
 .../selftests/ftrace/test.d/ftrace/func-filter-pid.tc       | 5 +----
 .../ftrace/test.d/ftrace/func-filter-stacktrace.tc          | 2 +-
 .../selftests/ftrace/test.d/ftrace/func_event_triggers.tc   | 5 +----
 .../selftests/ftrace/test.d/ftrace/func_mod_trace.tc        | 2 +-
 .../testing/selftests/ftrace/test.d/ftrace/func_profiler.tc | 5 +----
 .../selftests/ftrace/test.d/ftrace/func_set_ftrace_file.tc  | 5 +----
 .../selftests/ftrace/test.d/ftrace/func_stack_tracer.tc     | 2 ++
 .../ftrace/test.d/ftrace/func_traceonoff_triggers.tc        | 5 +----
 tools/testing/selftests/ftrace/test.d/functions             | 6 ++++++
 .../testing/selftests/ftrace/test.d/kprobe/kprobe_ftrace.tc | 2 ++
 14 files changed, 23 insertions(+), 30 deletions(-)

diff --git a/tools/testing/selftests/ftrace/test.d/ftrace/fgraph-filter-stack.tc b/tools/testing/selftests/ftrace/test.d/ftrace/fgraph-filter-stack.tc
index aefab0c66d54..f59853857ad2 100644
--- a/tools/testing/selftests/ftrace/test.d/ftrace/fgraph-filter-stack.tc
+++ b/tools/testing/selftests/ftrace/test.d/ftrace/fgraph-filter-stack.tc
@@ -10,10 +10,7 @@ if ! grep -q function_graph available_tracers; then
     exit_unsupported
 fi
 
-if [ ! -f set_ftrace_filter ]; then
-    echo "set_ftrace_filter not found? Is dynamic ftrace not set?"
-    exit_unsupported
-fi
+check_filter_file set_ftrace_filter
 
 do_reset() {
     if [ -e /proc/sys/kernel/stack_tracer_enabled ]; then
diff --git a/tools/testing/selftests/ftrace/test.d/ftrace/fgraph-filter.tc b/tools/testing/selftests/ftrace/test.d/ftrace/fgraph-filter.tc
index c8a5209f2119..d610f47edd90 100644
--- a/tools/testing/selftests/ftrace/test.d/ftrace/fgraph-filter.tc
+++ b/tools/testing/selftests/ftrace/test.d/ftrace/fgraph-filter.tc
@@ -9,6 +9,8 @@ if ! grep -q function_graph available_tracers; then
     exit_unsupported
 fi
 
+check_filter_file set_ftrace_filter
+
 fail() { # msg
     echo $1
     exit_fail
diff --git a/tools/testing/selftests/ftrace/test.d/ftrace/func-filter-glob.tc b/tools/testing/selftests/ftrace/test.d/ftrace/func-filter-glob.tc
index f4e92afab14b..28936f434ee5 100644
--- a/tools/testing/selftests/ftrace/test.d/ftrace/func-filter-glob.tc
+++ b/tools/testing/selftests/ftrace/test.d/ftrace/func-filter-glob.tc
@@ -9,6 +9,8 @@ if ! grep -q function available_tracers; then
     exit_unsupported
 fi
 
+check_filter_file set_ftrace_filter
+
 disable_tracing
 clear_trace
 
diff --git a/tools/testing/selftests/ftrace/test.d/ftrace/func-filter-notrace-pid.tc b/tools/testing/selftests/ftrace/test.d/ftrace/func-filter-notrace-pid.tc
index 8aa46a2ea133..71db68a7975f 100644
--- a/tools/testing/selftests/ftrace/test.d/ftrace/func-filter-notrace-pid.tc
+++ b/tools/testing/selftests/ftrace/test.d/ftrace/func-filter-notrace-pid.tc
@@ -15,10 +15,7 @@ if [ ! -f set_ftrace_notrace_pid ]; then
     exit_unsupported
 fi
 
-if [ ! -f set_ftrace_filter ]; then
-    echo "set_ftrace_filter not found? Is function tracer not set?"
-    exit_unsupported
-fi
+check_filter_file set_ftrace_filter
 
 do_function_fork=1
 
diff --git a/tools/testing/selftests/ftrace/test.d/ftrace/func-filter-pid.tc b/tools/testing/selftests/ftrace/test.d/ftrace/func-filter-pid.tc
index f2ee1e889e13..d58403c4b7cd 100644
--- a/tools/testing/selftests/ftrace/test.d/ftrace/func-filter-pid.tc
+++ b/tools/testing/selftests/ftrace/test.d/ftrace/func-filter-pid.tc
@@ -16,10 +16,7 @@ if [ ! -f set_ftrace_pid ]; then
     exit_unsupported
 fi
 
-if [ ! -f set_ftrace_filter ]; then
-    echo "set_ftrace_filter not found? Is function tracer not set?"
-    exit_unsupported
-fi
+check_filter_file set_ftrace_filter
 
 do_function_fork=1
 
diff --git a/tools/testing/selftests/ftrace/test.d/ftrace/func-filter-stacktrace.tc b/tools/testing/selftests/ftrace/test.d/ftrace/func-filter-stacktrace.tc
index 1a52f2883fe0..b2aff786c1a2 100644
--- a/tools/testing/selftests/ftrace/test.d/ftrace/func-filter-stacktrace.tc
+++ b/tools/testing/selftests/ftrace/test.d/ftrace/func-filter-stacktrace.tc
@@ -3,7 +3,7 @@
 # description: ftrace - stacktrace filter command
 # flags: instance
 
-[ ! -f set_ftrace_filter ] && exit_unsupported
+check_filter_file set_ftrace_filter
 
 echo _do_fork:stacktrace >> set_ftrace_filter
 
diff --git a/tools/testing/selftests/ftrace/test.d/ftrace/func_event_triggers.tc b/tools/testing/selftests/ftrace/test.d/ftrace/func_event_triggers.tc
index ca2ffd7957f9..e9b1fd534e96 100644
--- a/tools/testing/selftests/ftrace/test.d/ftrace/func_event_triggers.tc
+++ b/tools/testing/selftests/ftrace/test.d/ftrace/func_event_triggers.tc
@@ -11,10 +11,7 @@
 #
 
 # The triggers are set within the set_ftrace_filter file
-if [ ! -f set_ftrace_filter ]; then
-    echo "set_ftrace_filter not found? Is dynamic ftrace not set?"
-    exit_unsupported
-fi
+check_filter_file set_ftrace_filter
 
 do_reset() {
     reset_ftrace_filter
diff --git a/tools/testing/selftests/ftrace/test.d/ftrace/func_mod_trace.tc b/tools/testing/selftests/ftrace/test.d/ftrace/func_mod_trace.tc
index 9330c873f9fe..1a4b4a442d33 100644
--- a/tools/testing/selftests/ftrace/test.d/ftrace/func_mod_trace.tc
+++ b/tools/testing/selftests/ftrace/test.d/ftrace/func_mod_trace.tc
@@ -2,7 +2,7 @@
 # SPDX-License-Identifier: GPL-2.0
 # description: ftrace - function trace on module
 
-[ ! -f set_ftrace_filter ] && exit_unsupported
+check_filter_file set_ftrace_filter
 
 : "mod: allows to filter a non exist function"
 echo 'non_exist_func:mod:non_exist_module' > set_ftrace_filter
diff --git a/tools/testing/selftests/ftrace/test.d/ftrace/func_profiler.tc b/tools/testing/selftests/ftrace/test.d/ftrace/func_profiler.tc
index dfbae637c60c..a3dadb6b93b4 100644
--- a/tools/testing/selftests/ftrace/test.d/ftrace/func_profiler.tc
+++ b/tools/testing/selftests/ftrace/test.d/ftrace/func_profiler.tc
@@ -18,10 +18,7 @@ if ! grep -q function_graph available_tracers; then
     exit_unsupported;
 fi
 
-if [ ! -f set_ftrace_filter ]; then
-    echo "set_ftrace_filter not found? Is dynamic ftrace not set?"
-    exit_unsupported
-fi
+check_filter_file set_ftrace_filter
 
 if [ ! -f function_profile_enabled ]; then
     echo "function_profile_enabled not found, function profiling enabled?"
diff --git a/tools/testing/selftests/ftrace/test.d/ftrace/func_set_ftrace_file.tc b/tools/testing/selftests/ftrace/test.d/ftrace/func_set_ftrace_file.tc
index 51f6e6146bd9..70bad441fa7d 100644
--- a/tools/testing/selftests/ftrace/test.d/ftrace/func_set_ftrace_file.tc
+++ b/tools/testing/selftests/ftrace/test.d/ftrace/func_set_ftrace_file.tc
@@ -10,10 +10,7 @@
 #
 
 # The triggers are set within the set_ftrace_filter file
-if [ ! -f set_ftrace_filter ]; then
-    echo "set_ftrace_filter not found? Is dynamic ftrace not set?"
-    exit_unsupported
-fi
+check_filter_file set_ftrace_filter
 
 fail() { # mesg
     echo $1
diff --git a/tools/testing/selftests/ftrace/test.d/ftrace/func_stack_tracer.tc b/tools/testing/selftests/ftrace/test.d/ftrace/func_stack_tracer.tc
index b414f0e3c646..51e9e80bc0e6 100644
--- a/tools/testing/selftests/ftrace/test.d/ftrace/func_stack_tracer.tc
+++ b/tools/testing/selftests/ftrace/test.d/ftrace/func_stack_tracer.tc
@@ -8,6 +8,8 @@ if [ ! -f stack_trace ]; then
   exit_unsupported
 fi
 
+check_filter_file stack_trace_filter
+
 echo > stack_trace_filter
 echo 0 > stack_max_size
 echo 1 > /proc/sys/kernel/stack_tracer_enabled
diff --git a/tools/testing/selftests/ftrace/test.d/ftrace/func_traceonoff_triggers.tc b/tools/testing/selftests/ftrace/test.d/ftrace/func_traceonoff_triggers.tc
index 1947387fe976..3ed173f2944a 100644
--- a/tools/testing/selftests/ftrace/test.d/ftrace/func_traceonoff_triggers.tc
+++ b/tools/testing/selftests/ftrace/test.d/ftrace/func_traceonoff_triggers.tc
@@ -11,10 +11,7 @@
 #
 
 # The triggers are set within the set_ftrace_filter file
-if [ ! -f set_ftrace_filter ]; then
-    echo "set_ftrace_filter not found? Is dynamic ftrace not set?"
-    exit_unsupported
-fi
+check_filter_file set_ftrace_filter
 
 fail() { # mesg
     echo $1
diff --git a/tools/testing/selftests/ftrace/test.d/functions b/tools/testing/selftests/ftrace/test.d/functions
index 5d4550591ff9..61a3c7e2634d 100644
--- a/tools/testing/selftests/ftrace/test.d/functions
+++ b/tools/testing/selftests/ftrace/test.d/functions
@@ -1,3 +1,9 @@
+check_filter_file() { # check filter file introduced by dynamic ftrace
+    if [ ! -f "$1" ]; then
+        echo "$1 not found? Is dynamic ftrace not set?"
+        exit_unsupported
+    fi
+}
 
 clear_trace() { # reset trace output
     echo > trace
diff --git a/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_ftrace.tc b/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_ftrace.tc
index 7650a82db3f5..df5072815b87 100644
--- a/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_ftrace.tc
+++ b/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_ftrace.tc
@@ -5,6 +5,8 @@
 [ -f kprobe_events ] || exit_unsupported # this is configurable
 grep "function" available_tracers || exit_unsupported # this is configurable
 
+check_filter_file set_ftrace_filter
+
 # prepare
 echo nop > current_tracer
 echo _do_fork > set_ftrace_filter
-- 
2.25.1




^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH] selftests/ftrace: Check required filter files before running test
  2020-04-22  9:58 [PATCH] selftests/ftrace: Check required filter files before running test Xiao Yang
@ 2020-04-22 13:21 ` Steven Rostedt
  2020-04-22 15:09   ` Shuah Khan
  2020-04-22 15:26   ` Masami Hiramatsu
  0 siblings, 2 replies; 4+ messages in thread
From: Steven Rostedt @ 2020-04-22 13:21 UTC (permalink / raw)
  To: Xiao Yang
  Cc: shuah, ice_yangxiao, linux-kselftest, Masami Hiramatsu, Shuah Khan

On Wed, 22 Apr 2020 17:58:07 +0800
Xiao Yang <yangx.jy@cn.fujitsu.com> wrote:

> Without CONFIG_DYNAMIC_FTRACE, some tests get failure because required
> filter files(set_ftrace_filter/available_filter_functions/stack_trace_filter)
> are missing.  So implement check_filter_file() and make all related tests
> check required filter files by it.
> 
> BTW: set_ftrace_filter and available_filter_functions are introduced together
> so just check either of them.

I'm fine with that.

I'd like an Acked-by from Masami, and then Shauh, can you take this?

-- Steve

> 
> Signed-off-by: Xiao Yang <yangx.jy@cn.fujitsu.com>
> ---
>  .../selftests/ftrace/test.d/ftrace/fgraph-filter-stack.tc   | 5 +----
>  .../testing/selftests/ftrace/test.d/ftrace/fgraph-filter.tc | 2 ++
>  .../selftests/ftrace/test.d/ftrace/func-filter-glob.tc      | 2 ++
>  .../ftrace/test.d/ftrace/func-filter-notrace-pid.tc         | 5 +----
>  .../selftests/ftrace/test.d/ftrace/func-filter-pid.tc       | 5 +----
>  .../ftrace/test.d/ftrace/func-filter-stacktrace.tc          | 2 +-
>  .../selftests/ftrace/test.d/ftrace/func_event_triggers.tc   | 5 +----
>  .../selftests/ftrace/test.d/ftrace/func_mod_trace.tc        | 2 +-
>  .../testing/selftests/ftrace/test.d/ftrace/func_profiler.tc | 5 +----
>  .../selftests/ftrace/test.d/ftrace/func_set_ftrace_file.tc  | 5 +----
>  .../selftests/ftrace/test.d/ftrace/func_stack_tracer.tc     | 2 ++
>  .../ftrace/test.d/ftrace/func_traceonoff_triggers.tc        | 5 +----
>  tools/testing/selftests/ftrace/test.d/functions             | 6 ++++++
>  .../testing/selftests/ftrace/test.d/kprobe/kprobe_ftrace.tc | 2 ++
>  14 files changed, 23 insertions(+), 30 deletions(-)
> 
> diff --git a/tools/testing/selftests/ftrace/test.d/ftrace/fgraph-filter-stack.tc b/tools/testing/selftests/ftrace/test.d/ftrace/fgraph-filter-stack.tc
> index aefab0c66d54..f59853857ad2 100644
> --- a/tools/testing/selftests/ftrace/test.d/ftrace/fgraph-filter-stack.tc
> +++ b/tools/testing/selftests/ftrace/test.d/ftrace/fgraph-filter-stack.tc
> @@ -10,10 +10,7 @@ if ! grep -q function_graph available_tracers; then
>      exit_unsupported
>  fi
>  
> -if [ ! -f set_ftrace_filter ]; then
> -    echo "set_ftrace_filter not found? Is dynamic ftrace not set?"
> -    exit_unsupported
> -fi
> +check_filter_file set_ftrace_filter
>  
>  do_reset() {
>      if [ -e /proc/sys/kernel/stack_tracer_enabled ]; then
> diff --git a/tools/testing/selftests/ftrace/test.d/ftrace/fgraph-filter.tc b/tools/testing/selftests/ftrace/test.d/ftrace/fgraph-filter.tc
> index c8a5209f2119..d610f47edd90 100644
> --- a/tools/testing/selftests/ftrace/test.d/ftrace/fgraph-filter.tc
> +++ b/tools/testing/selftests/ftrace/test.d/ftrace/fgraph-filter.tc
> @@ -9,6 +9,8 @@ if ! grep -q function_graph available_tracers; then
>      exit_unsupported
>  fi
>  
> +check_filter_file set_ftrace_filter
> +
>  fail() { # msg
>      echo $1
>      exit_fail
> diff --git a/tools/testing/selftests/ftrace/test.d/ftrace/func-filter-glob.tc b/tools/testing/selftests/ftrace/test.d/ftrace/func-filter-glob.tc
> index f4e92afab14b..28936f434ee5 100644
> --- a/tools/testing/selftests/ftrace/test.d/ftrace/func-filter-glob.tc
> +++ b/tools/testing/selftests/ftrace/test.d/ftrace/func-filter-glob.tc
> @@ -9,6 +9,8 @@ if ! grep -q function available_tracers; then
>      exit_unsupported
>  fi
>  
> +check_filter_file set_ftrace_filter
> +
>  disable_tracing
>  clear_trace
>  
> diff --git a/tools/testing/selftests/ftrace/test.d/ftrace/func-filter-notrace-pid.tc b/tools/testing/selftests/ftrace/test.d/ftrace/func-filter-notrace-pid.tc
> index 8aa46a2ea133..71db68a7975f 100644
> --- a/tools/testing/selftests/ftrace/test.d/ftrace/func-filter-notrace-pid.tc
> +++ b/tools/testing/selftests/ftrace/test.d/ftrace/func-filter-notrace-pid.tc
> @@ -15,10 +15,7 @@ if [ ! -f set_ftrace_notrace_pid ]; then
>      exit_unsupported
>  fi
>  
> -if [ ! -f set_ftrace_filter ]; then
> -    echo "set_ftrace_filter not found? Is function tracer not set?"
> -    exit_unsupported
> -fi
> +check_filter_file set_ftrace_filter
>  
>  do_function_fork=1
>  
> diff --git a/tools/testing/selftests/ftrace/test.d/ftrace/func-filter-pid.tc b/tools/testing/selftests/ftrace/test.d/ftrace/func-filter-pid.tc
> index f2ee1e889e13..d58403c4b7cd 100644
> --- a/tools/testing/selftests/ftrace/test.d/ftrace/func-filter-pid.tc
> +++ b/tools/testing/selftests/ftrace/test.d/ftrace/func-filter-pid.tc
> @@ -16,10 +16,7 @@ if [ ! -f set_ftrace_pid ]; then
>      exit_unsupported
>  fi
>  
> -if [ ! -f set_ftrace_filter ]; then
> -    echo "set_ftrace_filter not found? Is function tracer not set?"
> -    exit_unsupported
> -fi
> +check_filter_file set_ftrace_filter
>  
>  do_function_fork=1
>  
> diff --git a/tools/testing/selftests/ftrace/test.d/ftrace/func-filter-stacktrace.tc b/tools/testing/selftests/ftrace/test.d/ftrace/func-filter-stacktrace.tc
> index 1a52f2883fe0..b2aff786c1a2 100644
> --- a/tools/testing/selftests/ftrace/test.d/ftrace/func-filter-stacktrace.tc
> +++ b/tools/testing/selftests/ftrace/test.d/ftrace/func-filter-stacktrace.tc
> @@ -3,7 +3,7 @@
>  # description: ftrace - stacktrace filter command
>  # flags: instance
>  
> -[ ! -f set_ftrace_filter ] && exit_unsupported
> +check_filter_file set_ftrace_filter
>  
>  echo _do_fork:stacktrace >> set_ftrace_filter
>  
> diff --git a/tools/testing/selftests/ftrace/test.d/ftrace/func_event_triggers.tc b/tools/testing/selftests/ftrace/test.d/ftrace/func_event_triggers.tc
> index ca2ffd7957f9..e9b1fd534e96 100644
> --- a/tools/testing/selftests/ftrace/test.d/ftrace/func_event_triggers.tc
> +++ b/tools/testing/selftests/ftrace/test.d/ftrace/func_event_triggers.tc
> @@ -11,10 +11,7 @@
>  #
>  
>  # The triggers are set within the set_ftrace_filter file
> -if [ ! -f set_ftrace_filter ]; then
> -    echo "set_ftrace_filter not found? Is dynamic ftrace not set?"
> -    exit_unsupported
> -fi
> +check_filter_file set_ftrace_filter
>  
>  do_reset() {
>      reset_ftrace_filter
> diff --git a/tools/testing/selftests/ftrace/test.d/ftrace/func_mod_trace.tc b/tools/testing/selftests/ftrace/test.d/ftrace/func_mod_trace.tc
> index 9330c873f9fe..1a4b4a442d33 100644
> --- a/tools/testing/selftests/ftrace/test.d/ftrace/func_mod_trace.tc
> +++ b/tools/testing/selftests/ftrace/test.d/ftrace/func_mod_trace.tc
> @@ -2,7 +2,7 @@
>  # SPDX-License-Identifier: GPL-2.0
>  # description: ftrace - function trace on module
>  
> -[ ! -f set_ftrace_filter ] && exit_unsupported
> +check_filter_file set_ftrace_filter
>  
>  : "mod: allows to filter a non exist function"
>  echo 'non_exist_func:mod:non_exist_module' > set_ftrace_filter
> diff --git a/tools/testing/selftests/ftrace/test.d/ftrace/func_profiler.tc b/tools/testing/selftests/ftrace/test.d/ftrace/func_profiler.tc
> index dfbae637c60c..a3dadb6b93b4 100644
> --- a/tools/testing/selftests/ftrace/test.d/ftrace/func_profiler.tc
> +++ b/tools/testing/selftests/ftrace/test.d/ftrace/func_profiler.tc
> @@ -18,10 +18,7 @@ if ! grep -q function_graph available_tracers; then
>      exit_unsupported;
>  fi
>  
> -if [ ! -f set_ftrace_filter ]; then
> -    echo "set_ftrace_filter not found? Is dynamic ftrace not set?"
> -    exit_unsupported
> -fi
> +check_filter_file set_ftrace_filter
>  
>  if [ ! -f function_profile_enabled ]; then
>      echo "function_profile_enabled not found, function profiling enabled?"
> diff --git a/tools/testing/selftests/ftrace/test.d/ftrace/func_set_ftrace_file.tc b/tools/testing/selftests/ftrace/test.d/ftrace/func_set_ftrace_file.tc
> index 51f6e6146bd9..70bad441fa7d 100644
> --- a/tools/testing/selftests/ftrace/test.d/ftrace/func_set_ftrace_file.tc
> +++ b/tools/testing/selftests/ftrace/test.d/ftrace/func_set_ftrace_file.tc
> @@ -10,10 +10,7 @@
>  #
>  
>  # The triggers are set within the set_ftrace_filter file
> -if [ ! -f set_ftrace_filter ]; then
> -    echo "set_ftrace_filter not found? Is dynamic ftrace not set?"
> -    exit_unsupported
> -fi
> +check_filter_file set_ftrace_filter
>  
>  fail() { # mesg
>      echo $1
> diff --git a/tools/testing/selftests/ftrace/test.d/ftrace/func_stack_tracer.tc b/tools/testing/selftests/ftrace/test.d/ftrace/func_stack_tracer.tc
> index b414f0e3c646..51e9e80bc0e6 100644
> --- a/tools/testing/selftests/ftrace/test.d/ftrace/func_stack_tracer.tc
> +++ b/tools/testing/selftests/ftrace/test.d/ftrace/func_stack_tracer.tc
> @@ -8,6 +8,8 @@ if [ ! -f stack_trace ]; then
>    exit_unsupported
>  fi
>  
> +check_filter_file stack_trace_filter
> +
>  echo > stack_trace_filter
>  echo 0 > stack_max_size
>  echo 1 > /proc/sys/kernel/stack_tracer_enabled
> diff --git a/tools/testing/selftests/ftrace/test.d/ftrace/func_traceonoff_triggers.tc b/tools/testing/selftests/ftrace/test.d/ftrace/func_traceonoff_triggers.tc
> index 1947387fe976..3ed173f2944a 100644
> --- a/tools/testing/selftests/ftrace/test.d/ftrace/func_traceonoff_triggers.tc
> +++ b/tools/testing/selftests/ftrace/test.d/ftrace/func_traceonoff_triggers.tc
> @@ -11,10 +11,7 @@
>  #
>  
>  # The triggers are set within the set_ftrace_filter file
> -if [ ! -f set_ftrace_filter ]; then
> -    echo "set_ftrace_filter not found? Is dynamic ftrace not set?"
> -    exit_unsupported
> -fi
> +check_filter_file set_ftrace_filter
>  
>  fail() { # mesg
>      echo $1
> diff --git a/tools/testing/selftests/ftrace/test.d/functions b/tools/testing/selftests/ftrace/test.d/functions
> index 5d4550591ff9..61a3c7e2634d 100644
> --- a/tools/testing/selftests/ftrace/test.d/functions
> +++ b/tools/testing/selftests/ftrace/test.d/functions
> @@ -1,3 +1,9 @@
> +check_filter_file() { # check filter file introduced by dynamic ftrace
> +    if [ ! -f "$1" ]; then
> +        echo "$1 not found? Is dynamic ftrace not set?"
> +        exit_unsupported
> +    fi
> +}
>  
>  clear_trace() { # reset trace output
>      echo > trace
> diff --git a/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_ftrace.tc b/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_ftrace.tc
> index 7650a82db3f5..df5072815b87 100644
> --- a/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_ftrace.tc
> +++ b/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_ftrace.tc
> @@ -5,6 +5,8 @@
>  [ -f kprobe_events ] || exit_unsupported # this is configurable
>  grep "function" available_tracers || exit_unsupported # this is configurable
>  
> +check_filter_file set_ftrace_filter
> +
>  # prepare
>  echo nop > current_tracer
>  echo _do_fork > set_ftrace_filter


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] selftests/ftrace: Check required filter files before running test
  2020-04-22 13:21 ` Steven Rostedt
@ 2020-04-22 15:09   ` Shuah Khan
  2020-04-22 15:26   ` Masami Hiramatsu
  1 sibling, 0 replies; 4+ messages in thread
From: Shuah Khan @ 2020-04-22 15:09 UTC (permalink / raw)
  To: Steven Rostedt, Xiao Yang
  Cc: shuah, ice_yangxiao, linux-kselftest, Masami Hiramatsu, skhan

On 4/22/20 7:21 AM, Steven Rostedt wrote:
> On Wed, 22 Apr 2020 17:58:07 +0800
> Xiao Yang <yangx.jy@cn.fujitsu.com> wrote:
> 
>> Without CONFIG_DYNAMIC_FTRACE, some tests get failure because required
>> filter files(set_ftrace_filter/available_filter_functions/stack_trace_filter)
>> are missing.  So implement check_filter_file() and make all related tests
>> check required filter files by it.
>>
>> BTW: set_ftrace_filter and available_filter_functions are introduced together
>> so just check either of them.
> 
> I'm fine with that.
> 
> I'd like an Acked-by from Masami, and then Shauh, can you take this?
> 

Yes. I can pick this up after Masami gives his Ack.

thanks,
-- Shuah

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] selftests/ftrace: Check required filter files before running test
  2020-04-22 13:21 ` Steven Rostedt
  2020-04-22 15:09   ` Shuah Khan
@ 2020-04-22 15:26   ` Masami Hiramatsu
  1 sibling, 0 replies; 4+ messages in thread
From: Masami Hiramatsu @ 2020-04-22 15:26 UTC (permalink / raw)
  To: Steven Rostedt
  Cc: Xiao Yang, shuah, ice_yangxiao, linux-kselftest,
	Masami Hiramatsu, Shuah Khan

On Wed, 22 Apr 2020 09:21:10 -0400
Steven Rostedt <rostedt@goodmis.org> wrote:

> On Wed, 22 Apr 2020 17:58:07 +0800
> Xiao Yang <yangx.jy@cn.fujitsu.com> wrote:
> 
> > Without CONFIG_DYNAMIC_FTRACE, some tests get failure because required
> > filter files(set_ftrace_filter/available_filter_functions/stack_trace_filter)
> > are missing.  So implement check_filter_file() and make all related tests
> > check required filter files by it.
> > 
> > BTW: set_ftrace_filter and available_filter_functions are introduced together
> > so just check either of them.
> 
> I'm fine with that.
> 
> I'd like an Acked-by from Masami, and then Shauh, can you take this?


This looks good to me too. please pick it up.

Acked-by: Masami Hiramatsu <mhiramat@kernel.org>

Thank you,

> 
> -- Steve
> 
> > 
> > Signed-off-by: Xiao Yang <yangx.jy@cn.fujitsu.com>
> > ---
> >  .../selftests/ftrace/test.d/ftrace/fgraph-filter-stack.tc   | 5 +----
> >  .../testing/selftests/ftrace/test.d/ftrace/fgraph-filter.tc | 2 ++
> >  .../selftests/ftrace/test.d/ftrace/func-filter-glob.tc      | 2 ++
> >  .../ftrace/test.d/ftrace/func-filter-notrace-pid.tc         | 5 +----
> >  .../selftests/ftrace/test.d/ftrace/func-filter-pid.tc       | 5 +----
> >  .../ftrace/test.d/ftrace/func-filter-stacktrace.tc          | 2 +-
> >  .../selftests/ftrace/test.d/ftrace/func_event_triggers.tc   | 5 +----
> >  .../selftests/ftrace/test.d/ftrace/func_mod_trace.tc        | 2 +-
> >  .../testing/selftests/ftrace/test.d/ftrace/func_profiler.tc | 5 +----
> >  .../selftests/ftrace/test.d/ftrace/func_set_ftrace_file.tc  | 5 +----
> >  .../selftests/ftrace/test.d/ftrace/func_stack_tracer.tc     | 2 ++
> >  .../ftrace/test.d/ftrace/func_traceonoff_triggers.tc        | 5 +----
> >  tools/testing/selftests/ftrace/test.d/functions             | 6 ++++++
> >  .../testing/selftests/ftrace/test.d/kprobe/kprobe_ftrace.tc | 2 ++
> >  14 files changed, 23 insertions(+), 30 deletions(-)
> > 
> > diff --git a/tools/testing/selftests/ftrace/test.d/ftrace/fgraph-filter-stack.tc b/tools/testing/selftests/ftrace/test.d/ftrace/fgraph-filter-stack.tc
> > index aefab0c66d54..f59853857ad2 100644
> > --- a/tools/testing/selftests/ftrace/test.d/ftrace/fgraph-filter-stack.tc
> > +++ b/tools/testing/selftests/ftrace/test.d/ftrace/fgraph-filter-stack.tc
> > @@ -10,10 +10,7 @@ if ! grep -q function_graph available_tracers; then
> >      exit_unsupported
> >  fi
> >  
> > -if [ ! -f set_ftrace_filter ]; then
> > -    echo "set_ftrace_filter not found? Is dynamic ftrace not set?"
> > -    exit_unsupported
> > -fi
> > +check_filter_file set_ftrace_filter
> >  
> >  do_reset() {
> >      if [ -e /proc/sys/kernel/stack_tracer_enabled ]; then
> > diff --git a/tools/testing/selftests/ftrace/test.d/ftrace/fgraph-filter.tc b/tools/testing/selftests/ftrace/test.d/ftrace/fgraph-filter.tc
> > index c8a5209f2119..d610f47edd90 100644
> > --- a/tools/testing/selftests/ftrace/test.d/ftrace/fgraph-filter.tc
> > +++ b/tools/testing/selftests/ftrace/test.d/ftrace/fgraph-filter.tc
> > @@ -9,6 +9,8 @@ if ! grep -q function_graph available_tracers; then
> >      exit_unsupported
> >  fi
> >  
> > +check_filter_file set_ftrace_filter
> > +
> >  fail() { # msg
> >      echo $1
> >      exit_fail
> > diff --git a/tools/testing/selftests/ftrace/test.d/ftrace/func-filter-glob.tc b/tools/testing/selftests/ftrace/test.d/ftrace/func-filter-glob.tc
> > index f4e92afab14b..28936f434ee5 100644
> > --- a/tools/testing/selftests/ftrace/test.d/ftrace/func-filter-glob.tc
> > +++ b/tools/testing/selftests/ftrace/test.d/ftrace/func-filter-glob.tc
> > @@ -9,6 +9,8 @@ if ! grep -q function available_tracers; then
> >      exit_unsupported
> >  fi
> >  
> > +check_filter_file set_ftrace_filter
> > +
> >  disable_tracing
> >  clear_trace
> >  
> > diff --git a/tools/testing/selftests/ftrace/test.d/ftrace/func-filter-notrace-pid.tc b/tools/testing/selftests/ftrace/test.d/ftrace/func-filter-notrace-pid.tc
> > index 8aa46a2ea133..71db68a7975f 100644
> > --- a/tools/testing/selftests/ftrace/test.d/ftrace/func-filter-notrace-pid.tc
> > +++ b/tools/testing/selftests/ftrace/test.d/ftrace/func-filter-notrace-pid.tc
> > @@ -15,10 +15,7 @@ if [ ! -f set_ftrace_notrace_pid ]; then
> >      exit_unsupported
> >  fi
> >  
> > -if [ ! -f set_ftrace_filter ]; then
> > -    echo "set_ftrace_filter not found? Is function tracer not set?"
> > -    exit_unsupported
> > -fi
> > +check_filter_file set_ftrace_filter
> >  
> >  do_function_fork=1
> >  
> > diff --git a/tools/testing/selftests/ftrace/test.d/ftrace/func-filter-pid.tc b/tools/testing/selftests/ftrace/test.d/ftrace/func-filter-pid.tc
> > index f2ee1e889e13..d58403c4b7cd 100644
> > --- a/tools/testing/selftests/ftrace/test.d/ftrace/func-filter-pid.tc
> > +++ b/tools/testing/selftests/ftrace/test.d/ftrace/func-filter-pid.tc
> > @@ -16,10 +16,7 @@ if [ ! -f set_ftrace_pid ]; then
> >      exit_unsupported
> >  fi
> >  
> > -if [ ! -f set_ftrace_filter ]; then
> > -    echo "set_ftrace_filter not found? Is function tracer not set?"
> > -    exit_unsupported
> > -fi
> > +check_filter_file set_ftrace_filter
> >  
> >  do_function_fork=1
> >  
> > diff --git a/tools/testing/selftests/ftrace/test.d/ftrace/func-filter-stacktrace.tc b/tools/testing/selftests/ftrace/test.d/ftrace/func-filter-stacktrace.tc
> > index 1a52f2883fe0..b2aff786c1a2 100644
> > --- a/tools/testing/selftests/ftrace/test.d/ftrace/func-filter-stacktrace.tc
> > +++ b/tools/testing/selftests/ftrace/test.d/ftrace/func-filter-stacktrace.tc
> > @@ -3,7 +3,7 @@
> >  # description: ftrace - stacktrace filter command
> >  # flags: instance
> >  
> > -[ ! -f set_ftrace_filter ] && exit_unsupported
> > +check_filter_file set_ftrace_filter
> >  
> >  echo _do_fork:stacktrace >> set_ftrace_filter
> >  
> > diff --git a/tools/testing/selftests/ftrace/test.d/ftrace/func_event_triggers.tc b/tools/testing/selftests/ftrace/test.d/ftrace/func_event_triggers.tc
> > index ca2ffd7957f9..e9b1fd534e96 100644
> > --- a/tools/testing/selftests/ftrace/test.d/ftrace/func_event_triggers.tc
> > +++ b/tools/testing/selftests/ftrace/test.d/ftrace/func_event_triggers.tc
> > @@ -11,10 +11,7 @@
> >  #
> >  
> >  # The triggers are set within the set_ftrace_filter file
> > -if [ ! -f set_ftrace_filter ]; then
> > -    echo "set_ftrace_filter not found? Is dynamic ftrace not set?"
> > -    exit_unsupported
> > -fi
> > +check_filter_file set_ftrace_filter
> >  
> >  do_reset() {
> >      reset_ftrace_filter
> > diff --git a/tools/testing/selftests/ftrace/test.d/ftrace/func_mod_trace.tc b/tools/testing/selftests/ftrace/test.d/ftrace/func_mod_trace.tc
> > index 9330c873f9fe..1a4b4a442d33 100644
> > --- a/tools/testing/selftests/ftrace/test.d/ftrace/func_mod_trace.tc
> > +++ b/tools/testing/selftests/ftrace/test.d/ftrace/func_mod_trace.tc
> > @@ -2,7 +2,7 @@
> >  # SPDX-License-Identifier: GPL-2.0
> >  # description: ftrace - function trace on module
> >  
> > -[ ! -f set_ftrace_filter ] && exit_unsupported
> > +check_filter_file set_ftrace_filter
> >  
> >  : "mod: allows to filter a non exist function"
> >  echo 'non_exist_func:mod:non_exist_module' > set_ftrace_filter
> > diff --git a/tools/testing/selftests/ftrace/test.d/ftrace/func_profiler.tc b/tools/testing/selftests/ftrace/test.d/ftrace/func_profiler.tc
> > index dfbae637c60c..a3dadb6b93b4 100644
> > --- a/tools/testing/selftests/ftrace/test.d/ftrace/func_profiler.tc
> > +++ b/tools/testing/selftests/ftrace/test.d/ftrace/func_profiler.tc
> > @@ -18,10 +18,7 @@ if ! grep -q function_graph available_tracers; then
> >      exit_unsupported;
> >  fi
> >  
> > -if [ ! -f set_ftrace_filter ]; then
> > -    echo "set_ftrace_filter not found? Is dynamic ftrace not set?"
> > -    exit_unsupported
> > -fi
> > +check_filter_file set_ftrace_filter
> >  
> >  if [ ! -f function_profile_enabled ]; then
> >      echo "function_profile_enabled not found, function profiling enabled?"
> > diff --git a/tools/testing/selftests/ftrace/test.d/ftrace/func_set_ftrace_file.tc b/tools/testing/selftests/ftrace/test.d/ftrace/func_set_ftrace_file.tc
> > index 51f6e6146bd9..70bad441fa7d 100644
> > --- a/tools/testing/selftests/ftrace/test.d/ftrace/func_set_ftrace_file.tc
> > +++ b/tools/testing/selftests/ftrace/test.d/ftrace/func_set_ftrace_file.tc
> > @@ -10,10 +10,7 @@
> >  #
> >  
> >  # The triggers are set within the set_ftrace_filter file
> > -if [ ! -f set_ftrace_filter ]; then
> > -    echo "set_ftrace_filter not found? Is dynamic ftrace not set?"
> > -    exit_unsupported
> > -fi
> > +check_filter_file set_ftrace_filter
> >  
> >  fail() { # mesg
> >      echo $1
> > diff --git a/tools/testing/selftests/ftrace/test.d/ftrace/func_stack_tracer.tc b/tools/testing/selftests/ftrace/test.d/ftrace/func_stack_tracer.tc
> > index b414f0e3c646..51e9e80bc0e6 100644
> > --- a/tools/testing/selftests/ftrace/test.d/ftrace/func_stack_tracer.tc
> > +++ b/tools/testing/selftests/ftrace/test.d/ftrace/func_stack_tracer.tc
> > @@ -8,6 +8,8 @@ if [ ! -f stack_trace ]; then
> >    exit_unsupported
> >  fi
> >  
> > +check_filter_file stack_trace_filter
> > +
> >  echo > stack_trace_filter
> >  echo 0 > stack_max_size
> >  echo 1 > /proc/sys/kernel/stack_tracer_enabled
> > diff --git a/tools/testing/selftests/ftrace/test.d/ftrace/func_traceonoff_triggers.tc b/tools/testing/selftests/ftrace/test.d/ftrace/func_traceonoff_triggers.tc
> > index 1947387fe976..3ed173f2944a 100644
> > --- a/tools/testing/selftests/ftrace/test.d/ftrace/func_traceonoff_triggers.tc
> > +++ b/tools/testing/selftests/ftrace/test.d/ftrace/func_traceonoff_triggers.tc
> > @@ -11,10 +11,7 @@
> >  #
> >  
> >  # The triggers are set within the set_ftrace_filter file
> > -if [ ! -f set_ftrace_filter ]; then
> > -    echo "set_ftrace_filter not found? Is dynamic ftrace not set?"
> > -    exit_unsupported
> > -fi
> > +check_filter_file set_ftrace_filter
> >  
> >  fail() { # mesg
> >      echo $1
> > diff --git a/tools/testing/selftests/ftrace/test.d/functions b/tools/testing/selftests/ftrace/test.d/functions
> > index 5d4550591ff9..61a3c7e2634d 100644
> > --- a/tools/testing/selftests/ftrace/test.d/functions
> > +++ b/tools/testing/selftests/ftrace/test.d/functions
> > @@ -1,3 +1,9 @@
> > +check_filter_file() { # check filter file introduced by dynamic ftrace
> > +    if [ ! -f "$1" ]; then
> > +        echo "$1 not found? Is dynamic ftrace not set?"
> > +        exit_unsupported
> > +    fi
> > +}
> >  
> >  clear_trace() { # reset trace output
> >      echo > trace
> > diff --git a/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_ftrace.tc b/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_ftrace.tc
> > index 7650a82db3f5..df5072815b87 100644
> > --- a/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_ftrace.tc
> > +++ b/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_ftrace.tc
> > @@ -5,6 +5,8 @@
> >  [ -f kprobe_events ] || exit_unsupported # this is configurable
> >  grep "function" available_tracers || exit_unsupported # this is configurable
> >  
> > +check_filter_file set_ftrace_filter
> > +
> >  # prepare
> >  echo nop > current_tracer
> >  echo _do_fork > set_ftrace_filter
> 


-- 
Masami Hiramatsu <mhiramat@kernel.org>

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2020-04-22 15:26 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-04-22  9:58 [PATCH] selftests/ftrace: Check required filter files before running test Xiao Yang
2020-04-22 13:21 ` Steven Rostedt
2020-04-22 15:09   ` Shuah Khan
2020-04-22 15:26   ` Masami Hiramatsu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).