linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 00/32] selftests/ftrace: Improve ftracetest with coverage check
@ 2018-08-16 16:29 Masami Hiramatsu
  2018-08-16 16:29 ` [PATCH v2 01/32] tracing: Allow gcov profiling on only ftrace subsystem Masami Hiramatsu
                   ` (31 more replies)
  0 siblings, 32 replies; 78+ messages in thread
From: Masami Hiramatsu @ 2018-08-16 16:29 UTC (permalink / raw)
  To: Shuah Khan, Steven Rostedt
  Cc: Ingo Molnar, Masami Hiramatsu, linux-kselftest, linux-kernel

Hello,

Here is the 2nd version of the series for improving ftracetest
testcase using gcov/lcov. From previous version, I've added 6
new testcases for some tracers and ftrace basic features.

With this series, ftracetest coverage under kernel/trace/
is improved as below. (Note that this kernel enables
ftrace startup tests)

Without new testcases
Lines:		10563	17268	61.2 %
Functions:	1114	1785	62.4 %

With new testcases
Lines:		11703	17268	67.8 %
Functions:	1262	1785	70.7 %

Of course we don't need to make it 100%, because ftracetest
is a function/specification test, and there are functions and
lines which never be called (like critical error detection :) ).
Also, ftrace has some amount of code for perf and bpf subsystem
which should be tested by perf/bpf tests.
However, GCOV(LCOV) gives us a good insight into which
functions are covered or not covered by the test cases.
We can find which functions are not tested yet from the
coverage information.

This series has some ftracetest framework improvements too,
which are for debugging ftracetest itself.

Tracing/Gcov-kernel:
 - Add CONFIG_GCOV_PROFILE_FRACE, which enables gcov profiling
   only on tracing subsystem (under kernel/trace/). This may not
   needed for everyone (like a debugging feature).
   So it can be dropped anyway.

Ftracetest framework improvements:
 - Add --stop-fail for detecting failure soon.
 - Add --console for interactively debugging a testcase by shell.
 - Add testcase-number prefix to logfile for finding log easier.
 - Improve general init function
 - Call general init function after all testcases.
 - Remove init/cleanup code from all testcase (since general init
   function will fixed it up)

Testcase fixes:
 - Fix to check $comm availability.
 - Make checkbashisms clean

Testcase improvements:
 - Use loopback address instead of localhost
 - Improve kprobe on module testcase to load/unload module
 - Improve kprobe testcase to check log data
 - Improve kretprobe testcase to check log data
 - Test kprobe-event argument with various bitsize
 - Check set_event_pid result

Adding testcases:
 - Add kprobe event with $comm argument testcase
 - Add kprobe profile testcase
 - Add kprobe-event with symbol argument testcase
 - Add nop tracer testcase
 - Add trace_printk sample module testcase
 - Add ringbuffer size changing testcase
 - Add function profiling statistics testcase
 - Add max stack tracer testcase
 - Add function filter on module testcase
 - Add trace_pipe testcase
 - Add stacktrace ftrace filter command testcase
 - Add wakeup tracer testcase
 - Add wakeup_rt tracer testcase
 - Add blktrace testcase
 - Add ftrace cpumask testcase
 - Add ftrace output format testcase 

TBD:
Following testcase improvements are remaining.
 - Checking of various supported types (like u8, u64 etc.)
   testcases

Thank you,

---

Masami Hiramatsu (32):
      tracing: Allow gcov profiling on only ftrace subsystem
      selftests/ftrace: Add --stop-fail hidden option for debug
      selftests/ftrace: Add --console hidden option
      selftests/ftrace: Add case number prefix to logfile
      selftests/ftrace: More initialize features in initialize_ftrace
      selftests/ftrace: Add SPDX License Identifier to template
      selftests/ftrace: Cleanup ftrace after running test
      selftests/ftrace: Remove unneeded per-test init/cleanup ftrace
      selftests/ftrace: Fix to test kprobe $comm arg only if available
      selftests/ftrace: Fix checkbashisms errors
      selftests/ftrace: Use loopback address instead of localhost
      selftests/ftrace: Improve kprobe on module testcase to load/unload module
      selftests/ftrace: Improve kprobe testcase to check log data
      selftests/ftrace: Improve kretprobe testcase to check log data
      selftests/ftrace: Test kprobe-event argument with various bitsize
      selftests/ftrace: Check set_event_pid result
      selftests/ftrace: Add kprobe event with $comm argument testcase
      selftests/ftrace: Add kprobe profile testcase
      selftests/ftrace: Add a testcase for nop tracer
      selftests/ftrace: Add kprobe-event with symbol argument test
      selftests/ftrace: Add trace_printk sample module test
      selftests/ftrace: Add ringbuffer size changing testcase
      selftests/ftrace: Add function profiling stat testcase
      selftests/ftrace: Add max stack tracer testcase
      selftests/ftrace: Add function filter on module testcase
      selftests/ftrace: Add trace_pipe testcase
      selftests/ftrace: Add stacktrace ftrace filter command testcase
      selftests/ftrace: Add wakeup tracer testcase
      selftests/ftrace: Add wakeup_rt tracer testcase
      selftests/ftrace: Add ftrace cpumask testcase
      selftests/ftrace: Add output format testcase
      selftests/ftrace: Add blktrace testcase


 kernel/trace/Kconfig                               |   13 +++
 kernel/trace/Makefile                              |    5 +
 tools/testing/selftests/ftrace/config              |    7 ++
 tools/testing/selftests/ftrace/ftracetest          |   32 ++++++-
 .../ftrace/test.d/00basic/print_format.tc          |   51 +++++++++++
 .../ftrace/test.d/00basic/ringbuffer_size.tc       |   21 +++++
 .../selftests/ftrace/test.d/00basic/trace_pipe.tc  |   15 +++
 .../selftests/ftrace/test.d/event/event-enable.tc  |    8 --
 .../selftests/ftrace/test.d/event/event-pid.tc     |    6 +
 .../ftrace/test.d/event/subsystem-enable.tc        |    8 --
 .../ftrace/test.d/event/toplevel-enable.tc         |    8 --
 .../selftests/ftrace/test.d/event/trace_printk.tc  |   27 ++++++
 .../ftrace/test.d/ftrace/fgraph-filter-stack.tc    |    4 -
 .../ftrace/test.d/ftrace/fgraph-filter.tc          |    9 --
 .../ftrace/test.d/ftrace/func-filter-pid.tc        |    8 --
 .../ftrace/test.d/ftrace/func-filter-stacktrace.tc |   12 +++
 .../selftests/ftrace/test.d/ftrace/func_cpumask.tc |   34 +++++++
 .../ftrace/test.d/ftrace/func_event_triggers.tc    |    3 -
 .../ftrace/test.d/ftrace/func_mod_trace.tc         |   24 +++++
 .../ftrace/test.d/ftrace/func_profile_stat.tc      |   23 +++++
 .../ftrace/test.d/ftrace/func_profiler.tc          |    4 -
 .../ftrace/test.d/ftrace/func_set_ftrace_file.tc   |   13 ---
 .../ftrace/test.d/ftrace/func_stack_tracer.tc      |   39 +++++++++
 .../test.d/ftrace/func_traceonoff_triggers.tc      |   11 --
 tools/testing/selftests/ftrace/test.d/functions    |    5 +
 .../ftrace/test.d/kprobe/add_and_remove.tc         |    3 -
 .../selftests/ftrace/test.d/kprobe/busy_check.tc   |    3 -
 .../selftests/ftrace/test.d/kprobe/kprobe_args.tc  |    8 +-
 .../ftrace/test.d/kprobe/kprobe_args_comm.tc       |   17 ++++
 .../ftrace/test.d/kprobe/kprobe_args_string.tc     |    5 -
 .../ftrace/test.d/kprobe/kprobe_args_symbol.tc     |   39 +++++++++
 .../ftrace/test.d/kprobe/kprobe_args_syntax.tc     |    8 +-
 .../ftrace/test.d/kprobe/kprobe_args_type.tc       |   52 +++++++----
 .../ftrace/test.d/kprobe/kprobe_eventname.tc       |    5 -
 .../ftrace/test.d/kprobe/kprobe_ftrace.tc          |    9 --
 .../ftrace/test.d/kprobe/kprobe_module.tc          |   36 +++++++-
 .../ftrace/test.d/kprobe/kretprobe_args.tc         |    9 +-
 .../ftrace/test.d/kprobe/kretprobe_maxactive.tc    |    4 -
 .../ftrace/test.d/kprobe/multiple_kprobes.tc       |    5 -
 .../selftests/ftrace/test.d/kprobe/probepoint.tc   |    4 -
 .../selftests/ftrace/test.d/kprobe/profile.tc      |   15 +++
 tools/testing/selftests/ftrace/test.d/template     |    1 
 .../testing/selftests/ftrace/test.d/tracer/blk.tc  |   91 ++++++++++++++++++++
 .../testing/selftests/ftrace/test.d/tracer/nop.tc  |   22 +++++
 .../selftests/ftrace/test.d/tracer/wakeup.tc       |   25 +++++
 .../selftests/ftrace/test.d/tracer/wakeup_rt.tc    |   25 +++++
 .../inter-event/trigger-extended-error-support.tc  |   12 ---
 .../inter-event/trigger-field-variable-support.tc  |   15 ---
 .../trigger-inter-event-combined-hist.tc           |   15 ---
 .../inter-event/trigger-multi-actions-accept.tc    |   14 ---
 .../inter-event/trigger-onmatch-action-hist.tc     |   15 ---
 .../trigger-onmatch-onmax-action-hist.tc           |   15 ---
 .../inter-event/trigger-onmax-action-hist.tc       |   15 ---
 .../trigger-synthetic-event-createremove.tc        |   12 ---
 .../ftrace/test.d/trigger/trigger-eventonoff.tc    |   12 ---
 .../ftrace/test.d/trigger/trigger-filter.tc        |   14 ---
 .../ftrace/test.d/trigger/trigger-hist-mod.tc      |   12 ---
 .../ftrace/test.d/trigger/trigger-hist.tc          |   12 ---
 .../ftrace/test.d/trigger/trigger-multihist.tc     |   16 ----
 .../ftrace/test.d/trigger/trigger-snapshot.tc      |   12 ---
 .../ftrace/test.d/trigger/trigger-stacktrace.tc    |   12 ---
 .../test.d/trigger/trigger-trace-marker-hist.tc    |   11 --
 .../trigger/trigger-trace-marker-snapshot.tc       |   16 ----
 .../trigger-trace-marker-synthetic-kernel.tc       |   12 ---
 .../trigger/trigger-trace-marker-synthetic.tc      |   12 ---
 .../ftrace/test.d/trigger/trigger-traceonoff.tc    |   12 ---
 66 files changed, 630 insertions(+), 412 deletions(-)
 create mode 100644 tools/testing/selftests/ftrace/test.d/00basic/print_format.tc
 create mode 100644 tools/testing/selftests/ftrace/test.d/00basic/ringbuffer_size.tc
 create mode 100644 tools/testing/selftests/ftrace/test.d/00basic/trace_pipe.tc
 create mode 100644 tools/testing/selftests/ftrace/test.d/event/trace_printk.tc
 create mode 100644 tools/testing/selftests/ftrace/test.d/ftrace/func-filter-stacktrace.tc
 create mode 100644 tools/testing/selftests/ftrace/test.d/ftrace/func_cpumask.tc
 create mode 100644 tools/testing/selftests/ftrace/test.d/ftrace/func_mod_trace.tc
 create mode 100644 tools/testing/selftests/ftrace/test.d/ftrace/func_profile_stat.tc
 create mode 100644 tools/testing/selftests/ftrace/test.d/ftrace/func_stack_tracer.tc
 create mode 100644 tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_comm.tc
 create mode 100644 tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_symbol.tc
 create mode 100644 tools/testing/selftests/ftrace/test.d/kprobe/profile.tc
 create mode 100644 tools/testing/selftests/ftrace/test.d/tracer/blk.tc
 create mode 100644 tools/testing/selftests/ftrace/test.d/tracer/nop.tc
 create mode 100644 tools/testing/selftests/ftrace/test.d/tracer/wakeup.tc
 create mode 100644 tools/testing/selftests/ftrace/test.d/tracer/wakeup_rt.tc

--
Masami Hiramatsu (Linaro)

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

* [PATCH v2 01/32] tracing: Allow gcov profiling on only ftrace subsystem
  2018-08-16 16:29 [PATCH v2 00/32] selftests/ftrace: Improve ftracetest with coverage check Masami Hiramatsu
@ 2018-08-16 16:29 ` Masami Hiramatsu
  2018-08-20 15:32   ` Steven Rostedt
  2018-08-16 16:30 ` [PATCH v2 02/32] selftests/ftrace: Add --stop-fail hidden option for debug Masami Hiramatsu
                   ` (30 subsequent siblings)
  31 siblings, 1 reply; 78+ messages in thread
From: Masami Hiramatsu @ 2018-08-16 16:29 UTC (permalink / raw)
  To: Shuah Khan, Steven Rostedt
  Cc: Ingo Molnar, Masami Hiramatsu, linux-kselftest, linux-kernel

Add GCOV_PROFILE_FTRACE to allow gcov profiling
on only files in ftrace subsystem. This kconfig
flag will be used for checking kselftest/ftrace
coverage.

Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
---
 kernel/trace/Kconfig  |   13 +++++++++++++
 kernel/trace/Makefile |    5 +++++
 2 files changed, 18 insertions(+)

diff --git a/kernel/trace/Kconfig b/kernel/trace/Kconfig
index fd6754b88f87..8decf6d8553a 100644
--- a/kernel/trace/Kconfig
+++ b/kernel/trace/Kconfig
@@ -774,6 +774,19 @@ config TRACING_EVENTS_GPIO
 	help
 	  Enable tracing events for gpio subsystem
 
+config GCOV_PROFILE_FTRACE
+	bool "Enable GCOV profiling on ftrace subsystem"
+	depends on GCOV_KERNEL
+	help
+	  Enable GCOV profiling on ftrace subsystem for checking
+	  which functions/lines are tested.
+
+	  If unsure, say N.
+
+	  Note that on a kernel compiled with this flags, ftrace will be
+	  significantly run slower. So do not enable it for production
+	  kernel.
+
 endif # FTRACE
 
 endif # TRACING_SUPPORT
diff --git a/kernel/trace/Makefile b/kernel/trace/Makefile
index 98d53b39a8ee..f81dadbc7c4a 100644
--- a/kernel/trace/Makefile
+++ b/kernel/trace/Makefile
@@ -23,6 +23,11 @@ ifdef CONFIG_TRACING_BRANCHES
 KBUILD_CFLAGS += -DDISABLE_BRANCH_PROFILING
 endif
 
+# for GCOV coverage profiling
+ifdef CONFIG_GCOV_PROFILE_FTRACE
+GCOV_PROFILE := y
+endif
+
 CFLAGS_trace_benchmark.o := -I$(src)
 CFLAGS_trace_events_filter.o := -I$(src)
 


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

* [PATCH v2 02/32] selftests/ftrace: Add --stop-fail hidden option for debug
  2018-08-16 16:29 [PATCH v2 00/32] selftests/ftrace: Improve ftracetest with coverage check Masami Hiramatsu
  2018-08-16 16:29 ` [PATCH v2 01/32] tracing: Allow gcov profiling on only ftrace subsystem Masami Hiramatsu
@ 2018-08-16 16:30 ` Masami Hiramatsu
  2018-08-24 20:38   ` Steven Rostedt
  2018-08-16 16:30 ` [PATCH v2 03/32] selftests/ftrace: Add --console hidden option Masami Hiramatsu
                   ` (29 subsequent siblings)
  31 siblings, 1 reply; 78+ messages in thread
From: Masami Hiramatsu @ 2018-08-16 16:30 UTC (permalink / raw)
  To: Shuah Khan, Steven Rostedt
  Cc: Ingo Molnar, Masami Hiramatsu, linux-kselftest, linux-kernel

Add --stop-fail option for debugging the ftracetest.

Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
---
 tools/testing/selftests/ftrace/ftracetest |   13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/tools/testing/selftests/ftrace/ftracetest b/tools/testing/selftests/ftrace/ftracetest
index f9a9d424c980..c9c7fa8dc440 100755
--- a/tools/testing/selftests/ftrace/ftracetest
+++ b/tools/testing/selftests/ftrace/ftracetest
@@ -69,6 +69,10 @@ parse_opts() { # opts
       DEBUG=1
       shift 1
     ;;
+    --stop-fail)
+      STOP_FAILURE=1
+      shift 1
+    ;;
     --fail-unsupported)
       UNSUPPORTED_RESULT=1
       shift 1
@@ -117,6 +121,7 @@ KEEP_LOG=0
 DEBUG=0
 VERBOSE=0
 UNSUPPORTED_RESULT=0
+STOP_FAILURE=0
 # Parse command-line options
 parse_opts $*
 
@@ -304,6 +309,10 @@ run_test() { # testfile
 # Main loop
 for t in $TEST_CASES; do
   run_test $t
+  if [ $STOP_FAILURE -ne 0 -a $TOTAL_RESULT -ne 0 ]; then
+    echo "A failure detected. Stop test."
+    exit 1
+  fi
 done
 
 # Test on instance loop
@@ -315,6 +324,10 @@ for t in $TEST_CASES; do
   run_test $t
   rmdir $TRACING_DIR
   TRACING_DIR=$SAVED_TRACING_DIR
+  if [ $STOP_FAILURE -ne 0 -a $TOTAL_RESULT -ne 0 ]; then
+    echo "A failure detected. Stop test."
+    exit 1
+  fi
 done
 
 prlog ""


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

* [PATCH v2 03/32] selftests/ftrace: Add --console hidden option
  2018-08-16 16:29 [PATCH v2 00/32] selftests/ftrace: Improve ftracetest with coverage check Masami Hiramatsu
  2018-08-16 16:29 ` [PATCH v2 01/32] tracing: Allow gcov profiling on only ftrace subsystem Masami Hiramatsu
  2018-08-16 16:30 ` [PATCH v2 02/32] selftests/ftrace: Add --stop-fail hidden option for debug Masami Hiramatsu
@ 2018-08-16 16:30 ` Masami Hiramatsu
  2018-08-24 20:37   ` Steven Rostedt
  2018-08-16 16:31 ` [PATCH v2 04/32] selftests/ftrace: Add case number prefix to logfile Masami Hiramatsu
                   ` (28 subsequent siblings)
  31 siblings, 1 reply; 78+ messages in thread
From: Masami Hiramatsu @ 2018-08-16 16:30 UTC (permalink / raw)
  To: Shuah Khan, Steven Rostedt
  Cc: Ingo Molnar, Masami Hiramatsu, linux-kselftest, linux-kernel

Add --console hidden option for debug test cases.
This option allows to put "sh" or something else
when the test case hits a bug.

Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
---
 tools/testing/selftests/ftrace/ftracetest |   14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/tools/testing/selftests/ftrace/ftracetest b/tools/testing/selftests/ftrace/ftracetest
index c9c7fa8dc440..8debd37038e4 100755
--- a/tools/testing/selftests/ftrace/ftracetest
+++ b/tools/testing/selftests/ftrace/ftracetest
@@ -60,11 +60,21 @@ parse_opts() { # opts
       shift 1
     ;;
     --verbose|-v|-vv|-vvv)
+      if [ $VERBOSE -eq -1 ]; then
+	usage "--console can not use with --verbose"
+      fi
       VERBOSE=$((VERBOSE + 1))
       [ $1 = '-vv' ] && VERBOSE=$((VERBOSE + 1))
       [ $1 = '-vvv' ] && VERBOSE=$((VERBOSE + 2))
       shift 1
     ;;
+    --console)
+      if [ $VERBOSE -ne 0 ]; then
+	usage "--console can not use with --verbose"
+      fi
+      VERBOSE=-1
+      shift 1
+    ;;
     --debug|-d)
       DEBUG=1
       shift 1
@@ -283,7 +293,9 @@ run_test() { # testfile
   testcase $1
   echo "execute$INSTANCE: "$1 > $testlog
   SIG_RESULT=0
-  if [ -z "$LOG_FILE" ]; then
+  if [ $VERBOSE -eq -1 ]; then
+    __run_test $1
+  elif [ -z "$LOG_FILE" ]; then
     __run_test $1 2>&1
   elif [ $VERBOSE -ge 3 ]; then
     __run_test $1 | tee -a $testlog 2>&1


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

* [PATCH v2 04/32] selftests/ftrace: Add case number prefix to logfile
  2018-08-16 16:29 [PATCH v2 00/32] selftests/ftrace: Improve ftracetest with coverage check Masami Hiramatsu
                   ` (2 preceding siblings ...)
  2018-08-16 16:30 ` [PATCH v2 03/32] selftests/ftrace: Add --console hidden option Masami Hiramatsu
@ 2018-08-16 16:31 ` Masami Hiramatsu
  2018-08-24 21:47   ` Steven Rostedt
  2018-08-16 16:31 ` [PATCH v2 05/32] selftests/ftrace: More initialize features in initialize_ftrace Masami Hiramatsu
                   ` (27 subsequent siblings)
  31 siblings, 1 reply; 78+ messages in thread
From: Masami Hiramatsu @ 2018-08-16 16:31 UTC (permalink / raw)
  To: Shuah Khan, Steven Rostedt
  Cc: Ingo Molnar, Masami Hiramatsu, linux-kselftest, linux-kernel

Add a case number prefix to each logfile. This makes
it easier to find which logfile is corresponding
to which failure.

Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
---
 tools/testing/selftests/ftrace/ftracetest |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/tools/testing/selftests/ftrace/ftracetest b/tools/testing/selftests/ftrace/ftracetest
index 8debd37038e4..3ca596255eff 100755
--- a/tools/testing/selftests/ftrace/ftracetest
+++ b/tools/testing/selftests/ftrace/ftracetest
@@ -284,13 +284,13 @@ __run_test() { # testfile
 # Run one test case
 run_test() { # testfile
   local testname=`basename $1`
+  testcase $1
   if [ ! -z "$LOG_FILE" ] ; then
-    local testlog=`mktemp $LOG_DIR/${testname}-log.XXXXXX`
+    local testlog=`mktemp $LOG_DIR/${CASENO}-${testname}-log.XXXXXX`
   else
     local testlog=/proc/self/fd/1
   fi
   export TMPDIR=`mktemp -d /tmp/ftracetest-dir.XXXXXX`
-  testcase $1
   echo "execute$INSTANCE: "$1 > $testlog
   SIG_RESULT=0
   if [ $VERBOSE -eq -1 ]; then


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

* [PATCH v2 05/32] selftests/ftrace: More initialize features in initialize_ftrace
  2018-08-16 16:29 [PATCH v2 00/32] selftests/ftrace: Improve ftracetest with coverage check Masami Hiramatsu
                   ` (3 preceding siblings ...)
  2018-08-16 16:31 ` [PATCH v2 04/32] selftests/ftrace: Add case number prefix to logfile Masami Hiramatsu
@ 2018-08-16 16:31 ` Masami Hiramatsu
  2018-08-24 21:24   ` Steven Rostedt
  2018-08-24 21:46   ` Steven Rostedt
  2018-08-16 16:32 ` [PATCH v2 06/32] selftests/ftrace: Add SPDX License Identifier to template Masami Hiramatsu
                   ` (26 subsequent siblings)
  31 siblings, 2 replies; 78+ messages in thread
From: Masami Hiramatsu @ 2018-08-16 16:31 UTC (permalink / raw)
  To: Shuah Khan, Steven Rostedt
  Cc: Ingo Molnar, Masami Hiramatsu, linux-kselftest, linux-kernel

Clear pid filter, synthetic_events, snapshots,
ftrace filter, and trace log in initialize_ftrace(),
since those are used in test cases.

Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
---
  Changes in v2:
   - Add reset_ftrace_filter
---
 tools/testing/selftests/ftrace/test.d/functions |    5 +++++
 1 file changed, 5 insertions(+)

diff --git a/tools/testing/selftests/ftrace/test.d/functions b/tools/testing/selftests/ftrace/test.d/functions
index e4645d5e3126..b2bfa4dd43f7 100644
--- a/tools/testing/selftests/ftrace/test.d/functions
+++ b/tools/testing/selftests/ftrace/test.d/functions
@@ -89,12 +89,17 @@ initialize_ftrace() { # Reset ftrace to initial-state
     reset_tracer
     reset_trigger
     reset_events_filter
+    reset_ftrace_filter
     disable_events
     echo > set_event_pid	# event tracer is always on
+    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
     [ -f uprobe_events ] && echo > uprobe_events
+    [ -f synthetic_events ] && echo > synthetic_events
+    [ -f snapshot ] && echo 0 > snapshot
+    clear_trace
     enable_tracing
 }


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

* [PATCH v2 06/32] selftests/ftrace: Add SPDX License Identifier to template
  2018-08-16 16:29 [PATCH v2 00/32] selftests/ftrace: Improve ftracetest with coverage check Masami Hiramatsu
                   ` (4 preceding siblings ...)
  2018-08-16 16:31 ` [PATCH v2 05/32] selftests/ftrace: More initialize features in initialize_ftrace Masami Hiramatsu
@ 2018-08-16 16:32 ` Masami Hiramatsu
  2018-08-16 16:32 ` [PATCH v2 07/32] selftests/ftrace: Cleanup ftrace after running test Masami Hiramatsu
                   ` (25 subsequent siblings)
  31 siblings, 0 replies; 78+ messages in thread
From: Masami Hiramatsu @ 2018-08-16 16:32 UTC (permalink / raw)
  To: Shuah Khan, Steven Rostedt
  Cc: Ingo Molnar, Masami Hiramatsu, linux-kselftest, linux-kernel

Add SPDX License Identifier line to template file so
that someone who makes new testcase from the template
does not forgot it.

Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
---
 tools/testing/selftests/ftrace/test.d/template |    1 +
 1 file changed, 1 insertion(+)

diff --git a/tools/testing/selftests/ftrace/test.d/template b/tools/testing/selftests/ftrace/test.d/template
index 5c39ceb18a0d..799da7e0b3c9 100644
--- a/tools/testing/selftests/ftrace/test.d/template
+++ b/tools/testing/selftests/ftrace/test.d/template
@@ -1,4 +1,5 @@
 #!/bin/sh
+# SPDX-License-Identifier: GPL2.0
 # description: %HERE DESCRIBE WHAT THIS DOES%
 # you have to add ".tc" extention for your testcase file
 # Note that all tests are run with "errexit" option.


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

* [PATCH v2 07/32] selftests/ftrace: Cleanup ftrace after running test
  2018-08-16 16:29 [PATCH v2 00/32] selftests/ftrace: Improve ftracetest with coverage check Masami Hiramatsu
                   ` (5 preceding siblings ...)
  2018-08-16 16:32 ` [PATCH v2 06/32] selftests/ftrace: Add SPDX License Identifier to template Masami Hiramatsu
@ 2018-08-16 16:32 ` Masami Hiramatsu
  2018-08-16 16:32 ` [PATCH v2 08/32] selftests/ftrace: Remove unneeded per-test init/cleanup ftrace Masami Hiramatsu
                   ` (24 subsequent siblings)
  31 siblings, 0 replies; 78+ messages in thread
From: Masami Hiramatsu @ 2018-08-16 16:32 UTC (permalink / raw)
  To: Shuah Khan, Steven Rostedt
  Cc: Ingo Molnar, Masami Hiramatsu, linux-kselftest, linux-kernel

Cleanup ftrace by initialize_ftrace() after running
all test cases. This means we also don't need cleanup
ftrace on each test case, except for some special
options.

Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
---
 tools/testing/selftests/ftrace/ftracetest |    1 +
 1 file changed, 1 insertion(+)

diff --git a/tools/testing/selftests/ftrace/ftracetest b/tools/testing/selftests/ftrace/ftracetest
index 3ca596255eff..5c71d58febb2 100755
--- a/tools/testing/selftests/ftrace/ftracetest
+++ b/tools/testing/selftests/ftrace/ftracetest
@@ -341,6 +341,7 @@ for t in $TEST_CASES; do
     exit 1
   fi
 done
+(cd $TRACING_DIR; initialize_ftrace) # for cleanup
 
 prlog ""
 prlog "# of passed: " `echo $PASSED_CASES | wc -w`


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

* [PATCH v2 08/32] selftests/ftrace: Remove unneeded per-test init/cleanup ftrace
  2018-08-16 16:29 [PATCH v2 00/32] selftests/ftrace: Improve ftracetest with coverage check Masami Hiramatsu
                   ` (6 preceding siblings ...)
  2018-08-16 16:32 ` [PATCH v2 07/32] selftests/ftrace: Cleanup ftrace after running test Masami Hiramatsu
@ 2018-08-16 16:32 ` Masami Hiramatsu
  2018-08-16 16:33 ` [PATCH v2 09/32] selftests/ftrace: Fix to test kprobe $comm arg only if available Masami Hiramatsu
                   ` (23 subsequent siblings)
  31 siblings, 0 replies; 78+ messages in thread
From: Masami Hiramatsu @ 2018-08-16 16:32 UTC (permalink / raw)
  To: Shuah Khan, Steven Rostedt
  Cc: Ingo Molnar, Masami Hiramatsu, linux-kselftest, linux-kernel

Since ftracetest framework calls initialize_ftrace() right before
each test and after all tests, we don't need to init/cleanup
ftrace for each test case.
Just remove such unneeded init/cleanup code because it can
increase logfile size.

Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
---
 .../selftests/ftrace/test.d/event/event-enable.tc  |    6 ------
 .../selftests/ftrace/test.d/event/event-pid.tc     |    3 +--
 .../ftrace/test.d/event/subsystem-enable.tc        |    6 ------
 .../ftrace/test.d/event/toplevel-enable.tc         |    6 ------
 .../ftrace/test.d/ftrace/fgraph-filter-stack.tc    |    4 ----
 .../ftrace/test.d/ftrace/fgraph-filter.tc          |    9 ---------
 .../ftrace/test.d/ftrace/func-filter-pid.tc        |    6 ------
 .../ftrace/test.d/ftrace/func_event_triggers.tc    |    3 ---
 .../ftrace/test.d/ftrace/func_profiler.tc          |    4 ----
 .../ftrace/test.d/ftrace/func_set_ftrace_file.tc   |   13 -------------
 .../test.d/ftrace/func_traceonoff_triggers.tc      |   11 -----------
 .../ftrace/test.d/kprobe/add_and_remove.tc         |    3 ---
 .../selftests/ftrace/test.d/kprobe/busy_check.tc   |    3 ---
 .../selftests/ftrace/test.d/kprobe/kprobe_args.tc  |    2 --
 .../ftrace/test.d/kprobe/kprobe_args_string.tc     |    5 -----
 .../ftrace/test.d/kprobe/kprobe_args_syntax.tc     |    5 -----
 .../ftrace/test.d/kprobe/kprobe_args_type.tc       |    4 ----
 .../ftrace/test.d/kprobe/kprobe_eventname.tc       |    5 -----
 .../ftrace/test.d/kprobe/kprobe_ftrace.tc          |    9 ---------
 .../ftrace/test.d/kprobe/kprobe_module.tc          |    5 -----
 .../ftrace/test.d/kprobe/kretprobe_args.tc         |    2 --
 .../ftrace/test.d/kprobe/kretprobe_maxactive.tc    |    4 ----
 .../ftrace/test.d/kprobe/multiple_kprobes.tc       |    5 -----
 .../selftests/ftrace/test.d/kprobe/probepoint.tc   |    4 ----
 .../inter-event/trigger-extended-error-support.tc  |   12 ------------
 .../inter-event/trigger-field-variable-support.tc  |   13 -------------
 .../trigger-inter-event-combined-hist.tc           |   13 -------------
 .../inter-event/trigger-multi-actions-accept.tc    |   14 --------------
 .../inter-event/trigger-onmatch-action-hist.tc     |   13 -------------
 .../trigger-onmatch-onmax-action-hist.tc           |   13 -------------
 .../inter-event/trigger-onmax-action-hist.tc       |   13 -------------
 .../trigger-synthetic-event-createremove.tc        |   12 ------------
 .../ftrace/test.d/trigger/trigger-eventonoff.tc    |   12 ------------
 .../ftrace/test.d/trigger/trigger-filter.tc        |   14 --------------
 .../ftrace/test.d/trigger/trigger-hist-mod.tc      |   12 ------------
 .../ftrace/test.d/trigger/trigger-hist.tc          |   12 ------------
 .../ftrace/test.d/trigger/trigger-multihist.tc     |   16 ----------------
 .../ftrace/test.d/trigger/trigger-snapshot.tc      |   12 ------------
 .../ftrace/test.d/trigger/trigger-stacktrace.tc    |   12 ------------
 .../test.d/trigger/trigger-trace-marker-hist.tc    |   11 -----------
 .../trigger/trigger-trace-marker-snapshot.tc       |   12 ------------
 .../trigger-trace-marker-synthetic-kernel.tc       |   12 ------------
 .../trigger/trigger-trace-marker-synthetic.tc      |   12 ------------
 .../ftrace/test.d/trigger/trigger-traceonoff.tc    |   12 ------------
 44 files changed, 1 insertion(+), 378 deletions(-)

diff --git a/tools/testing/selftests/ftrace/test.d/event/event-enable.tc b/tools/testing/selftests/ftrace/test.d/event/event-enable.tc
index 9daf034186f5..386dbddbdc11 100644
--- a/tools/testing/selftests/ftrace/test.d/event/event-enable.tc
+++ b/tools/testing/selftests/ftrace/test.d/event/event-enable.tc
@@ -9,7 +9,6 @@ do_reset() {
 }
 
 fail() { #msg
-    do_reset
     echo $1
     exit_fail
 }
@@ -23,9 +22,6 @@ if [ ! -f set_event -o ! -d events/sched ]; then
     exit_unsupported
 fi
 
-reset_tracer
-do_reset
-
 echo 'sched:sched_switch' > set_event
 
 yield
@@ -57,6 +53,4 @@ if [ $count -ne 0 ]; then
     fail "sched_switch events should not be recorded"
 fi
 
-do_reset
-
 exit 0
diff --git a/tools/testing/selftests/ftrace/test.d/event/event-pid.tc b/tools/testing/selftests/ftrace/test.d/event/event-pid.tc
index 132478b305c2..6dbf67544fde 100644
--- a/tools/testing/selftests/ftrace/test.d/event/event-pid.tc
+++ b/tools/testing/selftests/ftrace/test.d/event/event-pid.tc
@@ -30,8 +30,7 @@ if [ ! -f set_event_pid ]; then
     exit_unsupported
 fi
 
-reset_tracer
-do_reset
+echo 0 > options/event-fork
 
 echo 1 > events/sched/sched_switch/enable
 
diff --git a/tools/testing/selftests/ftrace/test.d/event/subsystem-enable.tc b/tools/testing/selftests/ftrace/test.d/event/subsystem-enable.tc
index 6a37a8642ee6..10eb17f161b7 100644
--- a/tools/testing/selftests/ftrace/test.d/event/subsystem-enable.tc
+++ b/tools/testing/selftests/ftrace/test.d/event/subsystem-enable.tc
@@ -9,7 +9,6 @@ do_reset() {
 }
 
 fail() { #msg
-    do_reset
     echo $1
     exit_fail
 }
@@ -23,9 +22,6 @@ if [ ! -f set_event -o ! -d events/sched ]; then
     exit_unsupported
 fi
 
-reset_tracer
-do_reset
-
 echo 'sched:*' > set_event
 
 yield
@@ -57,6 +53,4 @@ if [ $count -ne 0 ]; then
     fail "any of scheduler events should not be recorded"
 fi
 
-do_reset
-
 exit 0
diff --git a/tools/testing/selftests/ftrace/test.d/event/toplevel-enable.tc b/tools/testing/selftests/ftrace/test.d/event/toplevel-enable.tc
index 4e9b6e2c0219..8d55a233c1a4 100644
--- a/tools/testing/selftests/ftrace/test.d/event/toplevel-enable.tc
+++ b/tools/testing/selftests/ftrace/test.d/event/toplevel-enable.tc
@@ -8,7 +8,6 @@ do_reset() {
 }
 
 fail() { #msg
-    do_reset
     echo $1
     exit_fail
 }
@@ -22,9 +21,6 @@ if [ ! -f available_events -o ! -f set_event -o ! -d events ]; then
     exit_unsupported
 fi
 
-reset_tracer
-do_reset
-
 echo '*:*' > set_event
 
 yield
@@ -60,6 +56,4 @@ if [ $count -ne 0 ]; then
     fail "any of events should not be recorded"
 fi
 
-do_reset
-
 exit 0
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 1aec99d108eb..aefab0c66d54 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
@@ -16,13 +16,9 @@ if [ ! -f set_ftrace_filter ]; then
 fi
 
 do_reset() {
-    reset_tracer
     if [ -e /proc/sys/kernel/stack_tracer_enabled ]; then
 	    echo 0 > /proc/sys/kernel/stack_tracer_enabled
     fi
-    enable_tracing
-    clear_trace
-    echo > set_ftrace_filter
 }
 
 fail() { # msg
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 9f8d27ca39cf..c8a5209f2119 100644
--- a/tools/testing/selftests/ftrace/test.d/ftrace/fgraph-filter.tc
+++ b/tools/testing/selftests/ftrace/test.d/ftrace/fgraph-filter.tc
@@ -9,14 +9,7 @@ if ! grep -q function_graph available_tracers; then
     exit_unsupported
 fi
 
-do_reset() {
-    reset_tracer
-    enable_tracing
-    clear_trace
-}
-
 fail() { # msg
-    do_reset
     echo $1
     exit_fail
 }
@@ -48,6 +41,4 @@ if [ $count -eq 0 ]; then
     fail "No schedule traces found?"
 fi
 
-do_reset
-
 exit 0
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 524ce24b3c22..970903cb7834 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
@@ -35,12 +35,6 @@ if [ $do_function_fork -eq 1 ]; then
 fi
 
 do_reset() {
-    reset_tracer
-    clear_trace
-    enable_tracing
-    echo > set_ftrace_filter
-    echo > set_ftrace_pid
-
     if [ $do_function_fork -eq 0 ]; then
 	return
     fi
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 6fed4cf2db81..ca2ffd7957f9 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
@@ -25,15 +25,12 @@ do_reset() {
 }
 
 fail() { # mesg
-    do_reset
     echo $1
     exit_fail
 }
 
 SLEEP_TIME=".1"
 
-do_reset
-
 echo "Testing function probes with events:"
 
 EVENT="sched:sched_switch"
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 b2d5a8febfe8..dfbae637c60c 100644
--- a/tools/testing/selftests/ftrace/test.d/ftrace/func_profiler.tc
+++ b/tools/testing/selftests/ftrace/test.d/ftrace/func_profiler.tc
@@ -29,8 +29,6 @@ if [ ! -f function_profile_enabled ]; then
 fi
 
 fail() { # mesg
-    reset_tracer
-    echo > set_ftrace_filter
     echo $1
     exit_fail
 }
@@ -76,6 +74,4 @@ if ! grep -v -e '^#' -e 'schedule' trace > /dev/null; then
 	fail "no other functions besides schedule was found"
 fi
 
-reset_tracer
-
 exit 0
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 68e7a48f5828..51f6e6146bd9 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
@@ -15,22 +15,11 @@ if [ ! -f set_ftrace_filter ]; then
     exit_unsupported
 fi
 
-do_reset() {
-    reset_tracer
-    reset_ftrace_filter
-    disable_events
-    clear_trace
-    enable_tracing
-}
-
 fail() { # mesg
-    do_reset
     echo $1
     exit_fail
 }
 
-do_reset
-
 FILTER=set_ftrace_filter
 FUNC1="schedule"
 FUNC2="do_softirq"
@@ -165,6 +154,4 @@ test_actual
 rm $TMPDIR/expected
 rm $TMPDIR/actual
 
-do_reset
-
 exit 0
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 f6d9ac73268a..0c04282d33dd 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
@@ -16,24 +16,13 @@ if [ ! -f set_ftrace_filter ]; then
     exit_unsupported
 fi
 
-do_reset() {
-    reset_ftrace_filter
-    reset_tracer
-    disable_events
-    clear_trace
-    enable_tracing
-}
-
 fail() { # mesg
-    do_reset
     echo $1
     exit_fail
 }
 
 SLEEP_TIME=".1"
 
-do_reset
-
 echo "Testing function probes with enabling disabling tracing:"
 
 cnt_trace() {
diff --git a/tools/testing/selftests/ftrace/test.d/kprobe/add_and_remove.tc b/tools/testing/selftests/ftrace/test.d/kprobe/add_and_remove.tc
index 4604d2103c89..bb1eb5a7c64e 100644
--- a/tools/testing/selftests/ftrace/test.d/kprobe/add_and_remove.tc
+++ b/tools/testing/selftests/ftrace/test.d/kprobe/add_and_remove.tc
@@ -4,10 +4,7 @@
 
 [ -f kprobe_events ] || exit_unsupported # this is configurable
 
-echo 0 > events/enable
-echo > kprobe_events
 echo p:myevent _do_fork > kprobe_events
 grep myevent kprobe_events
 test -d events/kprobes/myevent
 echo > kprobe_events
-clear_trace
diff --git a/tools/testing/selftests/ftrace/test.d/kprobe/busy_check.tc b/tools/testing/selftests/ftrace/test.d/kprobe/busy_check.tc
index bbc443a9190c..442c1a8c5edf 100644
--- a/tools/testing/selftests/ftrace/test.d/kprobe/busy_check.tc
+++ b/tools/testing/selftests/ftrace/test.d/kprobe/busy_check.tc
@@ -4,12 +4,9 @@
 
 [ -f kprobe_events ] || exit_unsupported
 
-echo 0 > events/enable
-echo > kprobe_events
 echo p:myevent _do_fork > kprobe_events
 test -d events/kprobes/myevent
 echo 1 > events/kprobes/myevent/enable
 echo > kprobe_events && exit_fail # this must fail
 echo 0 > events/kprobes/myevent/enable
 echo > kprobe_events # this must succeed
-clear_trace
diff --git a/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args.tc b/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args.tc
index 8b43c6804fc3..9578535ccd67 100644
--- a/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args.tc
+++ b/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args.tc
@@ -4,8 +4,6 @@
 
 [ -f kprobe_events ] || exit_unsupported # this is configurable
 
-echo 0 > events/enable
-echo > kprobe_events
 echo 'p:testprobe _do_fork $stack $stack0 +0($stack)' > kprobe_events
 grep testprobe kprobe_events
 test -d events/kprobes/testprobe
diff --git a/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_string.tc b/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_string.tc
index 1ad70cdaf442..46e7744f8358 100644
--- a/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_string.tc
+++ b/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_string.tc
@@ -4,9 +4,6 @@
 
 [ -f kprobe_events ] || exit_unsupported # this is configurable
 
-echo 0 > events/enable
-echo > kprobe_events
-
 case `uname -m` in
 x86_64)
   ARG1=%di
@@ -44,5 +41,3 @@ echo 1 > events/kprobes/testprobe/enable
 echo "p:test _do_fork" >> kprobe_events
 grep -qe "testprobe.* arg1=\"test\" arg2=\"test\"" trace
 
-echo 0 > events/enable
-echo > kprobe_events
diff --git a/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_syntax.tc b/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_syntax.tc
index d026ff4e562f..d783a8ce0692 100644
--- a/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_syntax.tc
+++ b/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_syntax.tc
@@ -6,9 +6,6 @@
 
 grep "x8/16/32/64" README > /dev/null || exit_unsupported # version issue
 
-echo 0 > events/enable
-echo > kprobe_events
-
 PROBEFUNC="vfs_read"
 GOODREG=
 BADREG=
@@ -100,5 +97,3 @@ test_badarg "${GOODREG}::${GOODTYPE}" "${GOODREG}:${BADTYPE}" \
 
 test_goodarg "\$comm:string" "+0(\$stack):string"
 test_badarg "\$comm:x64" "\$stack:string" "${GOODREG}:string"
-
-echo > kprobe_events
diff --git a/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_type.tc b/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_type.tc
index 2a1755bfc290..37443dd23d15 100644
--- a/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_type.tc
+++ b/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_type.tc
@@ -6,10 +6,6 @@
 
 grep "x8/16/32/64" README > /dev/null || exit_unsupported # version issue
 
-echo 0 > events/enable
-echo > kprobe_events
-enable_tracing
-
 echo 'p:testprobe _do_fork $stack0:s32 $stack0:u32 $stack0:x32 $stack0:b8@4/32' > kprobe_events
 grep testprobe kprobe_events
 test -d events/kprobes/testprobe
diff --git a/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_eventname.tc b/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_eventname.tc
index 2724a1068cb1..3fb70e01b1fe 100644
--- a/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_eventname.tc
+++ b/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_eventname.tc
@@ -4,9 +4,6 @@
 
 [ -f kprobe_events ] || exit_unsupported # this is configurable
 
-disable_events
-echo > kprobe_events
-
 :;: "Add an event on function without name" ;:
 
 FUNC=`grep " [tT] .*vfs_read$" /proc/kallsyms | tail -n 1 | cut -f 3 -d " "`
@@ -33,5 +30,3 @@ echo "p $FUNC" > kprobe_events
 EVENT=`grep $FUNC kprobe_events | cut -f 1 -d " " | cut -f 2 -d:`
 [ "x" != "x$EVENT" ] || exit_failure
 test -d events/$EVENT || exit_failure
-
-echo > kprobe_events
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 cc4cac0e60f2..492426e95e09 100644
--- a/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_ftrace.tc
+++ b/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_ftrace.tc
@@ -8,8 +8,6 @@ grep function available_tracers || exit_unsupported # this is configurable
 # prepare
 echo nop > current_tracer
 echo _do_fork > set_ftrace_filter
-echo 0 > events/enable
-echo > kprobe_events
 echo 'p:testprobe _do_fork' > kprobe_events
 
 # kprobe on / ftrace off
@@ -47,10 +45,3 @@ echo > trace
 ( echo "forked")
 grep testprobe trace
 ! grep '_do_fork <-' trace
-
-# cleanup
-echo nop > current_tracer
-echo > set_ftrace_filter
-echo 0 > events/kprobes/testprobe/enable
-echo > kprobe_events
-echo > trace
diff --git a/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_module.tc b/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_module.tc
index 1e9f75f7a30f..ec6c5fffef1e 100644
--- a/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_module.tc
+++ b/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_module.tc
@@ -4,9 +4,6 @@
 
 [ -f kprobe_events ] || exit_unsupported # this is configurable
 
-disable_events
-echo > kprobe_events
-
 :;: "Add an event on a module function without specifying event name" ;:
 
 MOD=`lsmod | head -n 2 | tail -n 1 | cut -f1 -d" "`
@@ -25,5 +22,3 @@ test -d events/kprobes/event1 || exit_failure
 
 echo "p:kprobes1/event1 $MOD:$FUNC" > kprobe_events
 test -d events/kprobes1/event1 || exit_failure
-
-echo > kprobe_events
diff --git a/tools/testing/selftests/ftrace/test.d/kprobe/kretprobe_args.tc b/tools/testing/selftests/ftrace/test.d/kprobe/kretprobe_args.tc
index 321954683aaa..4c6b21e30b02 100644
--- a/tools/testing/selftests/ftrace/test.d/kprobe/kretprobe_args.tc
+++ b/tools/testing/selftests/ftrace/test.d/kprobe/kretprobe_args.tc
@@ -4,8 +4,6 @@
 
 [ -f kprobe_events ] || exit_unsupported # this is configurable
 
-echo 0 > events/enable
-echo > kprobe_events
 echo 'r:testprobe2 _do_fork $retval' > kprobe_events
 grep testprobe2 kprobe_events
 test -d events/kprobes/testprobe2
diff --git a/tools/testing/selftests/ftrace/test.d/kprobe/kretprobe_maxactive.tc b/tools/testing/selftests/ftrace/test.d/kprobe/kretprobe_maxactive.tc
index 7c0290684c43..8e05b178519a 100644
--- a/tools/testing/selftests/ftrace/test.d/kprobe/kretprobe_maxactive.tc
+++ b/tools/testing/selftests/ftrace/test.d/kprobe/kretprobe_maxactive.tc
@@ -5,8 +5,6 @@
 [ -f kprobe_events ] || exit_unsupported # this is configurable
 grep -q 'r\[maxactive\]' README || exit_unsupported # this is older version
 
-echo > kprobe_events
-
 # Test if we successfully reject unknown messages
 if echo 'a:myprobeaccept inet_csk_accept' > kprobe_events; then false; else true; fi
 
@@ -37,5 +35,3 @@ echo > kprobe_events
 echo 'r10 inet_csk_accept' > kprobe_events
 grep inet_csk_accept kprobe_events
 echo > kprobe_events
-
-clear_trace
diff --git a/tools/testing/selftests/ftrace/test.d/kprobe/multiple_kprobes.tc b/tools/testing/selftests/ftrace/test.d/kprobe/multiple_kprobes.tc
index ce361b9d62cf..5862eee91e1d 100644
--- a/tools/testing/selftests/ftrace/test.d/kprobe/multiple_kprobes.tc
+++ b/tools/testing/selftests/ftrace/test.d/kprobe/multiple_kprobes.tc
@@ -12,11 +12,6 @@ case `uname -m` in
   *) OFFS=0;;
 esac
 
-if [ -d events/kprobes ]; then
-  echo 0 > events/kprobes/enable
-  echo > kprobe_events
-fi
-
 N=0
 echo "Setup up kprobes on first available 256 text symbols"
 grep -i " t " /proc/kallsyms | cut -f3 -d" " | grep -v .*\\..* | \
diff --git a/tools/testing/selftests/ftrace/test.d/kprobe/probepoint.tc b/tools/testing/selftests/ftrace/test.d/kprobe/probepoint.tc
index 519d2763f5d2..a902aa0aaabc 100644
--- a/tools/testing/selftests/ftrace/test.d/kprobe/probepoint.tc
+++ b/tools/testing/selftests/ftrace/test.d/kprobe/probepoint.tc
@@ -30,8 +30,6 @@ if [ `printf "%x" -1 | wc -c` != 9 ]; then
   UINT_TEST=yes
 fi
 
-echo 0 > events/enable
-echo > kprobe_events
 echo "p:testprobe ${TARGET_FUNC}" > kprobe_events
 echo "p:testprobe ${TARGET}" > kprobe_events
 echo "p:testprobe ${TARGET_FUNC}${NEXT}" > kprobe_events
@@ -39,5 +37,3 @@ echo "p:testprobe ${TARGET_FUNC}${NEXT}" > kprobe_events
 if [ "${UINT_TEST}" = yes ]; then
 ! echo "p:testprobe ${TARGET_FUNC}${OVERFLOW}" > kprobe_events
 fi
-echo > kprobe_events
-clear_trace
diff --git a/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-extended-error-support.tc b/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-extended-error-support.tc
index 2aabab363cfb..401104344593 100644
--- a/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-extended-error-support.tc
+++ b/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-extended-error-support.tc
@@ -2,14 +2,7 @@
 # description: event trigger - test extended error support
 
 
-do_reset() {
-    reset_trigger
-    echo > set_event
-    clear_trace
-}
-
 fail() { #msg
-    do_reset
     echo $1
     exit_fail
 }
@@ -24,9 +17,6 @@ if [ ! -f synthetic_events ]; then
     exit_unsupported
 fi
 
-reset_tracer
-do_reset
-
 echo "Test extended error support"
 echo 'hist:keys=pid:ts0=common_timestamp.usecs if comm=="ping"' > events/sched/sched_wakeup/trigger
 ! echo 'hist:keys=pid:ts0=common_timestamp.usecs if comm=="ping"' >> events/sched/sched_wakeup/trigger 2> /dev/null
@@ -34,6 +24,4 @@ if ! grep -q "ERROR:" events/sched/sched_wakeup/hist; then
     fail "Failed to generate extended error in histogram"
 fi
 
-do_reset
-
 exit 0
diff --git a/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-field-variable-support.tc b/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-field-variable-support.tc
index 7fd5b4a8f060..575af23df04e 100644
--- a/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-field-variable-support.tc
+++ b/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-field-variable-support.tc
@@ -1,14 +1,7 @@
 #!/bin/sh
 # description: event trigger - test field variable support
 
-do_reset() {
-    reset_trigger
-    echo > set_event
-    clear_trace
-}
-
 fail() { #msg
-    do_reset
     echo $1
     exit_fail
 }
@@ -23,10 +16,6 @@ if [ ! -f synthetic_events ]; then
     exit_unsupported
 fi
 
-clear_synthetic_events
-reset_tracer
-do_reset
-
 echo "Test field variable support"
 
 echo 'wakeup_latency u64 lat; pid_t pid; int prio; char comm[16]' > synthetic_events
@@ -49,6 +38,4 @@ if grep -q "synthetic_prio=prio" events/sched/sched_waking/hist; then
     fail "Failed to remove histogram with field variable"
 fi
 
-do_reset
-
 exit 0
diff --git a/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-inter-event-combined-hist.tc b/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-inter-event-combined-hist.tc
index c93dbe38b5df..92aef26e2631 100644
--- a/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-inter-event-combined-hist.tc
+++ b/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-inter-event-combined-hist.tc
@@ -1,14 +1,7 @@
 #!/bin/sh
 # description: event trigger - test inter-event combined histogram trigger
 
-do_reset() {
-    reset_trigger
-    echo > set_event
-    clear_trace
-}
-
 fail() { #msg
-    do_reset
     echo $1
     exit_fail
 }
@@ -23,10 +16,6 @@ if [ ! -f synthetic_events ]; then
     exit_unsupported
 fi
 
-reset_tracer
-do_reset
-clear_synthetic_events
-
 echo "Test create synthetic event"
 
 echo 'waking_latency  u64 lat pid_t pid' > synthetic_events
@@ -53,6 +42,4 @@ if ! grep -q "pid:" events/synthetic/waking+wakeup_latency/hist; then
     fail "Failed to create combined histogram"
 fi
 
-do_reset
-
 exit 0
diff --git a/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-multi-actions-accept.tc b/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-multi-actions-accept.tc
index c193dce611a2..4ddc546771b5 100644
--- a/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-multi-actions-accept.tc
+++ b/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-multi-actions-accept.tc
@@ -1,15 +1,7 @@
 #!/bin/sh
 # description: event trigger - test multiple actions on hist trigger
 
-
-do_reset() {
-    reset_trigger
-    echo > set_event
-    clear_trace
-}
-
 fail() { #msg
-    do_reset
     echo $1
     exit_fail
 }
@@ -24,10 +16,6 @@ if [ ! -f synthetic_events ]; then
     exit_unsupported
 fi
 
-clear_synthetic_events
-reset_tracer
-do_reset
-
 echo "Test multiple actions on hist trigger"
 echo 'wakeup_latency u64 lat; pid_t pid' >> synthetic_events
 TRIGGER1=events/sched/sched_wakeup/trigger
@@ -39,6 +27,4 @@ echo 'hist:keys=next_pid:onmatch(sched.sched_wakeup).wakeup_latency(sched.sched_
 echo 'hist:keys=next_pid:onmatch(sched.sched_wakeup).wakeup_latency(sched.sched_switch.$wakeup_lat,prev_pid) if next_comm=="cyclictest"' >> $TRIGGER2
 echo 'hist:keys=next_pid if next_comm=="cyclictest"' >> $TRIGGER2
 
-do_reset
-
 exit 0
diff --git a/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-onmatch-action-hist.tc b/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-onmatch-action-hist.tc
index e84e7d048566..1ef5dd4521f0 100644
--- a/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-onmatch-action-hist.tc
+++ b/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-onmatch-action-hist.tc
@@ -1,14 +1,7 @@
 #!/bin/sh
 # description: event trigger - test inter-event histogram trigger onmatch action
 
-do_reset() {
-    reset_trigger
-    echo > set_event
-    clear_trace
-}
-
 fail() { #msg
-    do_reset
     echo $1
     exit_fail
 }
@@ -23,10 +16,6 @@ if [ ! -f synthetic_events ]; then
     exit_unsupported
 fi
 
-clear_synthetic_events
-reset_tracer
-do_reset
-
 echo "Test create synthetic event"
 
 echo 'wakeup_latency  u64 lat pid_t pid char comm[16]' > synthetic_events
@@ -45,6 +34,4 @@ if ! grep -q "ping" events/synthetic/wakeup_latency/hist; then
     fail "Failed to create onmatch action inter-event histogram"
 fi
 
-do_reset
-
 exit 0
diff --git a/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-onmatch-onmax-action-hist.tc b/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-onmatch-onmax-action-hist.tc
index 7907d8aacde3..7234683ee5e5 100644
--- a/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-onmatch-onmax-action-hist.tc
+++ b/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-onmatch-onmax-action-hist.tc
@@ -1,14 +1,7 @@
 #!/bin/sh
 # description: event trigger - test inter-event histogram trigger onmatch-onmax action
 
-do_reset() {
-    reset_trigger
-    echo > set_event
-    clear_trace
-}
-
 fail() { #msg
-    do_reset
     echo $1
     exit_fail
 }
@@ -23,10 +16,6 @@ if [ ! -f synthetic_events ]; then
     exit_unsupported
 fi
 
-clear_synthetic_events
-reset_tracer
-do_reset
-
 echo "Test create synthetic event"
 
 echo 'wakeup_latency  u64 lat pid_t pid char comm[16]' > synthetic_events
@@ -45,6 +34,4 @@ if [ ! grep -q "ping" events/synthetic/wakeup_latency/hist -o ! grep -q "max:" e
     fail "Failed to create onmatch-onmax action inter-event histogram"
 fi
 
-do_reset
-
 exit 0
diff --git a/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-onmax-action-hist.tc b/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-onmax-action-hist.tc
index 38b7ed6242b2..55b9630a1d70 100644
--- a/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-onmax-action-hist.tc
+++ b/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-onmax-action-hist.tc
@@ -1,14 +1,7 @@
 #!/bin/sh
 # description: event trigger - test inter-event histogram trigger onmax action
 
-do_reset() {
-    reset_trigger
-    echo > set_event
-    clear_trace
-}
-
 fail() { #msg
-    do_reset
     echo $1
     exit_fail
 }
@@ -23,10 +16,6 @@ if [ ! -f synthetic_events ]; then
     exit_unsupported
 fi
 
-clear_synthetic_events
-reset_tracer
-do_reset
-
 echo "Test create synthetic event"
 
 echo 'wakeup_latency  u64 lat pid_t pid char comm[16]' > synthetic_events
@@ -43,6 +32,4 @@ if ! grep -q "max:" events/sched/sched_switch/hist; then
     fail "Failed to create onmax action inter-event histogram"
 fi
 
-do_reset
-
 exit 0
diff --git a/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-synthetic-event-createremove.tc b/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-synthetic-event-createremove.tc
index cef11377dcbd..8d647fb572dd 100644
--- a/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-synthetic-event-createremove.tc
+++ b/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-synthetic-event-createremove.tc
@@ -1,13 +1,7 @@
 #!/bin/sh
 # description: event trigger - test synthetic event create remove
-do_reset() {
-    reset_trigger
-    echo > set_event
-    clear_trace
-}
 
 fail() { #msg
-    do_reset
     echo $1
     exit_fail
 }
@@ -22,10 +16,6 @@ if [ ! -f synthetic_events ]; then
     exit_unsupported
 fi
 
-clear_synthetic_events
-reset_tracer
-do_reset
-
 echo "Test create synthetic event"
 
 echo 'wakeup_latency  u64 lat pid_t pid char comm[16]' > synthetic_events
@@ -49,6 +39,4 @@ if [ -d events/synthetic/wakeup_latency ]; then
     fail "Failed to delete wakeup_latency synthetic event"
 fi
 
-do_reset
-
 exit 0
diff --git a/tools/testing/selftests/ftrace/test.d/trigger/trigger-eventonoff.tc b/tools/testing/selftests/ftrace/test.d/trigger/trigger-eventonoff.tc
index 28cc355a3a7b..eddb51e1fbf7 100644
--- a/tools/testing/selftests/ftrace/test.d/trigger/trigger-eventonoff.tc
+++ b/tools/testing/selftests/ftrace/test.d/trigger/trigger-eventonoff.tc
@@ -3,14 +3,7 @@
 # description: event trigger - test event enable/disable trigger
 # flags: instance
 
-do_reset() {
-    reset_trigger
-    echo > set_event
-    clear_trace
-}
-
 fail() { #msg
-    do_reset
     echo $1
     exit_fail
 }
@@ -25,9 +18,6 @@ if [ ! -f events/sched/sched_process_fork/trigger ]; then
     exit_unsupported
 fi
 
-reset_tracer
-do_reset
-
 FEATURE=`grep enable_event events/sched/sched_process_fork/trigger`
 if [ -z "$FEATURE" ]; then
     echo "event enable/disable trigger is not supported"
@@ -61,6 +51,4 @@ echo 'enable_event:sched:sched_switch' > events/sched/sched_process_fork/trigger
 ! echo 'enable_event:sched:sched_switch' > events/sched/sched_process_fork/trigger
 ! echo 'disable_event:sched:sched_switch' > events/sched/sched_process_fork/trigger
 
-do_reset
-
 exit 0
diff --git a/tools/testing/selftests/ftrace/test.d/trigger/trigger-filter.tc b/tools/testing/selftests/ftrace/test.d/trigger/trigger-filter.tc
index a48e23eb8a8b..2dcc2296ebdd 100644
--- a/tools/testing/selftests/ftrace/test.d/trigger/trigger-filter.tc
+++ b/tools/testing/selftests/ftrace/test.d/trigger/trigger-filter.tc
@@ -3,14 +3,7 @@
 # description: event trigger - test trigger filter
 # flags: instance
 
-do_reset() {
-    reset_trigger
-    echo > set_event
-    clear_trace
-}
-
 fail() { #msg
-    do_reset
     echo $1
     exit_fail
 }
@@ -25,9 +18,6 @@ if [ ! -f events/sched/sched_process_fork/trigger ]; then
     exit_unsupported
 fi
 
-reset_tracer
-do_reset
-
 echo "Test trigger filter"
 echo 1 > tracing_on
 echo 'traceoff if child_pid == 0' > events/sched/sched_process_fork/trigger
@@ -54,8 +44,4 @@ echo '!traceoff' > events/sched/sched_process_fork/trigger
 echo 'traceoff if parent_pid >= 0 || child_pid >= 0' > events/sched/sched_process_fork/trigger
 echo '!traceoff' > events/sched/sched_process_fork/trigger
 
-
-
-do_reset
-
 exit 0
diff --git a/tools/testing/selftests/ftrace/test.d/trigger/trigger-hist-mod.tc b/tools/testing/selftests/ftrace/test.d/trigger/trigger-hist-mod.tc
index 8da80efc44d8..fab4431639d3 100644
--- a/tools/testing/selftests/ftrace/test.d/trigger/trigger-hist-mod.tc
+++ b/tools/testing/selftests/ftrace/test.d/trigger/trigger-hist-mod.tc
@@ -3,14 +3,7 @@
 # description: event trigger - test histogram modifiers
 # flags: instance
 
-do_reset() {
-    reset_trigger
-    echo > set_event
-    clear_trace
-}
-
 fail() { #msg
-    do_reset
     echo $1
     exit_fail
 }
@@ -30,9 +23,6 @@ if [ ! -f events/sched/sched_process_fork/hist ]; then
     exit_unsupported
 fi
 
-reset_tracer
-do_reset
-
 echo "Test histogram with execname modifier"
 
 echo 'hist:keys=common_pid.execname' > events/sched/sched_process_fork/trigger
@@ -71,6 +61,4 @@ for i in `seq 1 10` ; do ( echo "forked" > /dev/null); done
 grep 'bytes_req: ~ 2^[0-9]*' events/kmem/kmalloc/hist > /dev/null || \
     fail "log2 modifier on kmem/kmalloc did not work"
 
-do_reset
-
 exit 0
diff --git a/tools/testing/selftests/ftrace/test.d/trigger/trigger-hist.tc b/tools/testing/selftests/ftrace/test.d/trigger/trigger-hist.tc
index 449fe9ff91a2..177e8d4c4744 100644
--- a/tools/testing/selftests/ftrace/test.d/trigger/trigger-hist.tc
+++ b/tools/testing/selftests/ftrace/test.d/trigger/trigger-hist.tc
@@ -3,14 +3,7 @@
 # description: event trigger - test histogram trigger
 # flags: instance
 
-do_reset() {
-    reset_trigger
-    echo > set_event
-    clear_trace
-}
-
 fail() { #msg
-    do_reset
     echo $1
     exit_fail
 }
@@ -30,9 +23,6 @@ if [ ! -f events/sched/sched_process_fork/hist ]; then
     exit_unsupported
 fi
 
-reset_tracer
-do_reset
-
 echo "Test histogram basic tigger"
 
 echo 'hist:keys=parent_pid:vals=child_pid' > events/sched/sched_process_fork/trigger
@@ -79,6 +69,4 @@ check_inc `grep -o "child_pid:[[:space:]]*[[:digit:]]*" \
     events/sched/sched_process_fork/hist | cut -d: -f2 ` ||
     fail "sort param on sched_process_fork did not work"
 
-do_reset
-
 exit 0
diff --git a/tools/testing/selftests/ftrace/test.d/trigger/trigger-multihist.tc b/tools/testing/selftests/ftrace/test.d/trigger/trigger-multihist.tc
index c5ef8b9d02b3..18fdaab9f570 100644
--- a/tools/testing/selftests/ftrace/test.d/trigger/trigger-multihist.tc
+++ b/tools/testing/selftests/ftrace/test.d/trigger/trigger-multihist.tc
@@ -3,14 +3,7 @@
 # description: event trigger - test multiple histogram triggers
 # flags: instance
 
-do_reset() {
-    reset_trigger
-    echo > set_event
-    clear_trace
-}
-
 fail() { #msg
-    do_reset
     echo $1
     exit_fail
 }
@@ -30,11 +23,6 @@ if [ ! -f events/sched/sched_process_fork/hist ]; then
     exit_unsupported
 fi
 
-reset_tracer
-do_reset
-
-reset_trigger
-
 echo "Test histogram multiple tiggers"
 
 echo 'hist:keys=parent_pid:vals=child_pid' > events/sched/sched_process_fork/trigger
@@ -67,8 +55,4 @@ grep test_hist events/sched/sched_process_exit/hist > /dev/null || \
 diffs=`diff events/sched/sched_process_exit/hist events/sched/sched_process_fork/hist | wc -l`
 test $diffs -eq 0 || fail "Same name histograms are not same"
 
-reset_trigger
-
-do_reset
-
 exit 0
diff --git a/tools/testing/selftests/ftrace/test.d/trigger/trigger-snapshot.tc b/tools/testing/selftests/ftrace/test.d/trigger/trigger-snapshot.tc
index ed38f0050d77..7717c0a09686 100644
--- a/tools/testing/selftests/ftrace/test.d/trigger/trigger-snapshot.tc
+++ b/tools/testing/selftests/ftrace/test.d/trigger/trigger-snapshot.tc
@@ -2,14 +2,7 @@
 # SPDX-License-Identifier: GPL-2.0
 # description: event trigger - test snapshot-trigger
 
-do_reset() {
-    reset_trigger
-    echo > set_event
-    clear_trace
-}
-
 fail() { #msg
-    do_reset
     echo $1
     exit_fail
 }
@@ -29,9 +22,6 @@ if [ ! -f snapshot ]; then
     exit_unsupported
 fi
 
-reset_tracer
-do_reset
-
 FEATURE=`grep snapshot events/sched/sched_process_fork/trigger`
 if [ -z "$FEATURE" ]; then
     echo "snapshot trigger is not supported"
@@ -57,6 +47,4 @@ echo "Test snapshot semantic errors"
 echo "snapshot" > events/sched/sched_process_fork/trigger
 ! echo "snapshot" > events/sched/sched_process_fork/trigger
 
-do_reset
-
 exit 0
diff --git a/tools/testing/selftests/ftrace/test.d/trigger/trigger-stacktrace.tc b/tools/testing/selftests/ftrace/test.d/trigger/trigger-stacktrace.tc
index 3121d795a868..398c05c4d2a7 100644
--- a/tools/testing/selftests/ftrace/test.d/trigger/trigger-stacktrace.tc
+++ b/tools/testing/selftests/ftrace/test.d/trigger/trigger-stacktrace.tc
@@ -2,14 +2,7 @@
 # SPDX-License-Identifier: GPL-2.0
 # description: event trigger - test stacktrace-trigger
 
-do_reset() {
-    reset_trigger
-    echo > set_event
-    clear_trace
-}
-
 fail() { #msg
-    do_reset
     echo $1
     exit_fail
 }
@@ -24,9 +17,6 @@ if [ ! -f events/sched/sched_process_fork/trigger ]; then
     exit_unsupported
 fi
 
-reset_tracer
-do_reset
-
 FEATURE=`grep stacktrace events/sched/sched_process_fork/trigger`
 if [ -z "$FEATURE" ]; then
     echo "stacktrace trigger is not supported"
@@ -49,6 +39,4 @@ echo "Test stacktrace semantic errors"
 echo "stacktrace" > events/sched/sched_process_fork/trigger
 ! echo "stacktrace" > events/sched/sched_process_fork/trigger
 
-do_reset
-
 exit 0
diff --git a/tools/testing/selftests/ftrace/test.d/trigger/trigger-trace-marker-hist.tc b/tools/testing/selftests/ftrace/test.d/trigger/trigger-trace-marker-hist.tc
index 2acbfe2c0c0c..ab6bedb25736 100644
--- a/tools/testing/selftests/ftrace/test.d/trigger/trigger-trace-marker-hist.tc
+++ b/tools/testing/selftests/ftrace/test.d/trigger/trigger-trace-marker-hist.tc
@@ -3,14 +3,7 @@
 # description: trace_marker trigger - test histogram trigger
 # flags: instance
 
-do_reset() {
-    reset_trigger
-    echo > set_event
-    clear_trace
-}
-
 fail() { #msg
-    do_reset
     echo $1
     exit_fail
 }
@@ -35,8 +28,6 @@ if [ ! -f events/ftrace/print/hist ]; then
     exit_unsupported
 fi
 
-do_reset
-
 echo "Test histogram trace_marker tigger"
 
 echo 'hist:keys=common_pid' > events/ftrace/print/trigger
@@ -44,6 +35,4 @@ for i in `seq 1 10` ; do echo "hello" > trace_marker; done
 grep 'hitcount: *10$' events/ftrace/print/hist > /dev/null || \
     fail "hist trigger did not trigger correct times on trace_marker"
 
-do_reset
-
 exit 0
diff --git a/tools/testing/selftests/ftrace/test.d/trigger/trigger-trace-marker-snapshot.tc b/tools/testing/selftests/ftrace/test.d/trigger/trigger-trace-marker-snapshot.tc
index 6748e8cb42d0..79ce7d51350b 100644
--- a/tools/testing/selftests/ftrace/test.d/trigger/trigger-trace-marker-snapshot.tc
+++ b/tools/testing/selftests/ftrace/test.d/trigger/trigger-trace-marker-snapshot.tc
@@ -3,15 +3,7 @@
 # description: trace_marker trigger - test snapshot trigger
 # flags: instance
 
-do_reset() {
-    reset_trigger
-    echo > set_event
-    echo 0 > snapshot
-    clear_trace
-}
-
 fail() { #msg
-    do_reset
     echo $1
     exit_fail
 }
@@ -54,8 +46,6 @@ test_trace() {
     done
 }
 
-do_reset
-
 echo "Test snapshot trace_marker tigger"
 
 echo 'snapshot' > events/ftrace/print/trigger
@@ -69,6 +59,4 @@ for i in `seq 1 10` ; do echo "hello >$i<" > trace_marker; done
 test_trace trace 1
 test_trace snapshot 2
 
-do_reset
-
 exit 0
diff --git a/tools/testing/selftests/ftrace/test.d/trigger/trigger-trace-marker-synthetic-kernel.tc b/tools/testing/selftests/ftrace/test.d/trigger/trigger-trace-marker-synthetic-kernel.tc
index 0a69c5d1cda8..18b4d1c2807e 100644
--- a/tools/testing/selftests/ftrace/test.d/trigger/trigger-trace-marker-synthetic-kernel.tc
+++ b/tools/testing/selftests/ftrace/test.d/trigger/trigger-trace-marker-synthetic-kernel.tc
@@ -3,15 +3,7 @@
 # description: trace_marker trigger - test histogram with synthetic event against kernel event
 # flags:
 
-do_reset() {
-    reset_trigger
-    echo > set_event
-    echo > synthetic_events
-    clear_trace
-}
-
 fail() { #msg
-    do_reset
     echo $1
     exit_fail
 }
@@ -46,8 +38,6 @@ if [ ! -f events/ftrace/print/hist ]; then
     exit_unsupported
 fi
 
-do_reset
-
 echo "Test histogram kernel event to trace_marker latency histogram trigger"
 
 echo 'latency u64 lat' > synthetic_events
@@ -63,6 +53,4 @@ grep 'hitcount: *1$' events/ftrace/print/hist > /dev/null || \
 grep 'hitcount: *1$' events/synthetic/latency/hist > /dev/null || \
     fail "hist trigger did not trigger "
 
-do_reset
-
 exit 0
diff --git a/tools/testing/selftests/ftrace/test.d/trigger/trigger-trace-marker-synthetic.tc b/tools/testing/selftests/ftrace/test.d/trigger/trigger-trace-marker-synthetic.tc
index 3666dd6ab02a..dd262d6d0db6 100644
--- a/tools/testing/selftests/ftrace/test.d/trigger/trigger-trace-marker-synthetic.tc
+++ b/tools/testing/selftests/ftrace/test.d/trigger/trigger-trace-marker-synthetic.tc
@@ -3,15 +3,7 @@
 # description: trace_marker trigger - test histogram with synthetic event
 # flags:
 
-do_reset() {
-    reset_trigger
-    echo > set_event
-    echo > synthetic_events
-    clear_trace
-}
-
 fail() { #msg
-    do_reset
     echo $1
     exit_fail
 }
@@ -41,8 +33,6 @@ if [ ! -f events/ftrace/print/hist ]; then
     exit_unsupported
 fi
 
-do_reset
-
 echo "Test histogram trace_marker to trace_marker latency histogram trigger"
 
 echo 'latency u64 lat' > synthetic_events
@@ -61,6 +51,4 @@ fi
 grep 'hitcount: *1$' events/synthetic/latency/hist > /dev/null || \
     fail "hist trigger did not trigger "
 
-do_reset
-
 exit 0
diff --git a/tools/testing/selftests/ftrace/test.d/trigger/trigger-traceonoff.tc b/tools/testing/selftests/ftrace/test.d/trigger/trigger-traceonoff.tc
index c59d9eb546da..d5d2dcbc9cab 100644
--- a/tools/testing/selftests/ftrace/test.d/trigger/trigger-traceonoff.tc
+++ b/tools/testing/selftests/ftrace/test.d/trigger/trigger-traceonoff.tc
@@ -2,14 +2,7 @@
 # SPDX-License-Identifier: GPL-2.0
 # description: event trigger - test traceon/off trigger
 
-do_reset() {
-    reset_trigger
-    echo > set_event
-    clear_trace
-}
-
 fail() { #msg
-    do_reset
     echo $1
     exit_fail
 }
@@ -24,9 +17,6 @@ if [ ! -f events/sched/sched_process_fork/trigger ]; then
     exit_unsupported
 fi
 
-reset_tracer
-do_reset
-
 echo "Test traceoff trigger"
 echo 1 > tracing_on
 echo 'traceoff' > events/sched/sched_process_fork/trigger
@@ -54,6 +44,4 @@ echo 'traceon' > events/sched/sched_process_fork/trigger
 ! echo 'traceon' > events/sched/sched_process_fork/trigger
 ! echo 'traceoff' > events/sched/sched_process_fork/trigger
 
-do_reset
-
 exit 0


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

* [PATCH v2 09/32] selftests/ftrace: Fix to test kprobe $comm arg only if available
  2018-08-16 16:29 [PATCH v2 00/32] selftests/ftrace: Improve ftracetest with coverage check Masami Hiramatsu
                   ` (7 preceding siblings ...)
  2018-08-16 16:32 ` [PATCH v2 08/32] selftests/ftrace: Remove unneeded per-test init/cleanup ftrace Masami Hiramatsu
@ 2018-08-16 16:33 ` Masami Hiramatsu
  2018-08-16 16:33 ` [PATCH v2 10/32] selftests/ftrace: Fix checkbashisms errors Masami Hiramatsu
                   ` (22 subsequent siblings)
  31 siblings, 0 replies; 78+ messages in thread
From: Masami Hiramatsu @ 2018-08-16 16:33 UTC (permalink / raw)
  To: Shuah Khan, Steven Rostedt
  Cc: Ingo Molnar, Masami Hiramatsu, linux-kselftest, linux-kernel

Test $comm in kprobe-event argument syntax testcase
only if it is supported on the kernel because
$comm has been introduced 4.8 kernel.
So on older stable kernel, it should be skipped.

Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
---
 .../ftrace/test.d/kprobe/kprobe_args_syntax.tc     |    3 +++
 1 file changed, 3 insertions(+)

diff --git a/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_syntax.tc b/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_syntax.tc
index d783a8ce0692..6f0f19953193 100644
--- a/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_syntax.tc
+++ b/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_syntax.tc
@@ -75,8 +75,11 @@ test_badarg "\$stackp" "\$stack0+10" "\$stack1-10"
 echo "r ${PROBEFUNC} \$retval" > kprobe_events
 ! echo "p ${PROBEFUNC} \$retval" > kprobe_events
 
+# $comm was introduced in 4.8, older kernels reject it.
+if grep -A1 "fetcharg:" README | grep -q '\$comm' ; then
 : "Comm access"
 test_goodarg "\$comm"
+fi
 
 : "Indirect memory access"
 test_goodarg "+0(${GOODREG})" "-0(${GOODREG})" "+10(\$stack)" \


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

* [PATCH v2 10/32] selftests/ftrace: Fix checkbashisms errors
  2018-08-16 16:29 [PATCH v2 00/32] selftests/ftrace: Improve ftracetest with coverage check Masami Hiramatsu
                   ` (8 preceding siblings ...)
  2018-08-16 16:33 ` [PATCH v2 09/32] selftests/ftrace: Fix to test kprobe $comm arg only if available Masami Hiramatsu
@ 2018-08-16 16:33 ` Masami Hiramatsu
  2018-08-24 21:50   ` Steven Rostedt
  2018-08-16 16:34 ` [PATCH v2 11/32] selftests/ftrace: Use loopback address instead of localhost Masami Hiramatsu
                   ` (21 subsequent siblings)
  31 siblings, 1 reply; 78+ messages in thread
From: Masami Hiramatsu @ 2018-08-16 16:33 UTC (permalink / raw)
  To: Shuah Khan, Steven Rostedt
  Cc: Ingo Molnar, Masami Hiramatsu, linux-kselftest, linux-kernel

Fix a test case to make checkbashisms clean.

Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
---
 .../trigger/trigger-trace-marker-snapshot.tc       |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/tools/testing/selftests/ftrace/test.d/trigger/trigger-trace-marker-snapshot.tc b/tools/testing/selftests/ftrace/test.d/trigger/trigger-trace-marker-snapshot.tc
index 79ce7d51350b..df246e505af7 100644
--- a/tools/testing/selftests/ftrace/test.d/trigger/trigger-trace-marker-snapshot.tc
+++ b/tools/testing/selftests/ftrace/test.d/trigger/trigger-trace-marker-snapshot.tc
@@ -39,10 +39,10 @@ test_trace() {
 	fi
 	echo "testing $line for >$x<"
 	match=`echo $line | sed -e "s/>$x<//"`
-	if [ "$line" == "$match" ]; then
+	if [ "$line" = "$match" ]; then
 	    fail "$line does not have >$x< in it"
 	fi
-	let x=$x+2
+	x=$((x+2))
     done
 }
 


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

* [PATCH v2 11/32] selftests/ftrace: Use loopback address instead of localhost
  2018-08-16 16:29 [PATCH v2 00/32] selftests/ftrace: Improve ftracetest with coverage check Masami Hiramatsu
                   ` (9 preceding siblings ...)
  2018-08-16 16:33 ` [PATCH v2 10/32] selftests/ftrace: Fix checkbashisms errors Masami Hiramatsu
@ 2018-08-16 16:34 ` Masami Hiramatsu
  2018-08-24 21:52   ` Steven Rostedt
  2018-08-16 16:34 ` [PATCH v2 12/32] selftests/ftrace: Improve kprobe on module testcase to load/unload module Masami Hiramatsu
                   ` (20 subsequent siblings)
  31 siblings, 1 reply; 78+ messages in thread
From: Masami Hiramatsu @ 2018-08-16 16:34 UTC (permalink / raw)
  To: Shuah Khan, Steven Rostedt
  Cc: Ingo Molnar, Masami Hiramatsu, linux-kselftest, linux-kernel

Use raw loopback address instead of localhost, because
"localhost" can depend on nsswitch and in some case
we can not resolve the localhost.

Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
---
 .../selftests/ftrace/test.d/event/event-enable.tc  |    2 +-
 .../selftests/ftrace/test.d/event/event-pid.tc     |    2 +-
 .../ftrace/test.d/event/subsystem-enable.tc        |    2 +-
 .../ftrace/test.d/event/toplevel-enable.tc         |    2 +-
 .../ftrace/test.d/ftrace/func-filter-pid.tc        |    2 +-
 .../inter-event/trigger-field-variable-support.tc  |    2 +-
 .../trigger-inter-event-combined-hist.tc           |    2 +-
 .../inter-event/trigger-onmatch-action-hist.tc     |    2 +-
 .../trigger-onmatch-onmax-action-hist.tc           |    2 +-
 .../inter-event/trigger-onmax-action-hist.tc       |    2 +-
 10 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/tools/testing/selftests/ftrace/test.d/event/event-enable.tc b/tools/testing/selftests/ftrace/test.d/event/event-enable.tc
index 386dbddbdc11..a028628cdd0e 100644
--- a/tools/testing/selftests/ftrace/test.d/event/event-enable.tc
+++ b/tools/testing/selftests/ftrace/test.d/event/event-enable.tc
@@ -14,7 +14,7 @@ fail() { #msg
 }
 
 yield() {
-    ping localhost -c 1 || sleep .001 || usleep 1 || sleep 1
+    ping 127.0.0.1 -c 1 || sleep .001 || usleep 1 || sleep 1
 }
 
 if [ ! -f set_event -o ! -d events/sched ]; then
diff --git a/tools/testing/selftests/ftrace/test.d/event/event-pid.tc b/tools/testing/selftests/ftrace/test.d/event/event-pid.tc
index 6dbf67544fde..6d2897f6a106 100644
--- a/tools/testing/selftests/ftrace/test.d/event/event-pid.tc
+++ b/tools/testing/selftests/ftrace/test.d/event/event-pid.tc
@@ -17,7 +17,7 @@ fail() { #msg
 }
 
 yield() {
-    ping localhost -c 1 || sleep .001 || usleep 1 || sleep 1
+    ping 127.0.0.1 -c 1 || sleep .001 || usleep 1 || sleep 1
 }
 
 if [ ! -f set_event -o ! -d events/sched ]; then
diff --git a/tools/testing/selftests/ftrace/test.d/event/subsystem-enable.tc b/tools/testing/selftests/ftrace/test.d/event/subsystem-enable.tc
index 10eb17f161b7..9f0221b39d4d 100644
--- a/tools/testing/selftests/ftrace/test.d/event/subsystem-enable.tc
+++ b/tools/testing/selftests/ftrace/test.d/event/subsystem-enable.tc
@@ -14,7 +14,7 @@ fail() { #msg
 }
 
 yield() {
-    ping localhost -c 1 || sleep .001 || usleep 1 || sleep 1
+    ping 127.0.0.1 -c 1 || sleep .001 || usleep 1 || sleep 1
 }
 
 if [ ! -f set_event -o ! -d events/sched ]; then
diff --git a/tools/testing/selftests/ftrace/test.d/event/toplevel-enable.tc b/tools/testing/selftests/ftrace/test.d/event/toplevel-enable.tc
index 8d55a233c1a4..5f3611047d3a 100644
--- a/tools/testing/selftests/ftrace/test.d/event/toplevel-enable.tc
+++ b/tools/testing/selftests/ftrace/test.d/event/toplevel-enable.tc
@@ -13,7 +13,7 @@ fail() { #msg
 }
 
 yield() {
-    ping localhost -c 1 || sleep .001 || usleep 1 || sleep 1
+    ping 127.0.0.1 -c 1 || sleep .001 || usleep 1 || sleep 1
 }
 
 if [ ! -f available_events -o ! -f set_event -o ! -d events ]; then
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 970903cb7834..cd52cf6a1fc4 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
@@ -49,7 +49,7 @@ fail() { # msg
 }
 
 yield() {
-    ping localhost -c 1 || sleep .001 || usleep 1 || sleep 1
+    ping 127.0.0.1 -c 1 || sleep .001 || usleep 1 || sleep 1
 }
 
 do_test() {
diff --git a/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-field-variable-support.tc b/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-field-variable-support.tc
index 575af23df04e..59b58c77e9ce 100644
--- a/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-field-variable-support.tc
+++ b/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-field-variable-support.tc
@@ -23,7 +23,7 @@ echo 'hist:keys=comm:ts0=common_timestamp.usecs if comm=="ping"' > events/sched/
 echo 'hist:keys=next_comm:wakeup_lat=common_timestamp.usecs-$ts0:onmatch(sched.sched_waking).wakeup_latency($wakeup_lat,next_pid,sched.sched_waking.prio,next_comm) if next_comm=="ping"' > events/sched/sched_switch/trigger
 echo 'hist:keys=pid,prio,comm:vals=lat:sort=pid,prio' > events/synthetic/wakeup_latency/trigger
 
-ping localhost -c 3
+ping 127.0.0.1 -c 3
 if ! grep -q "ping" events/synthetic/wakeup_latency/hist; then
     fail "Failed to create inter-event histogram"
 fi
diff --git a/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-inter-event-combined-hist.tc b/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-inter-event-combined-hist.tc
index 92aef26e2631..0a7709fdfd8e 100644
--- a/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-inter-event-combined-hist.tc
+++ b/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-inter-event-combined-hist.tc
@@ -37,7 +37,7 @@ echo 'waking+wakeup_latency u64 lat; pid_t pid' >> synthetic_events
 echo 'hist:keys=pid,lat:sort=pid,lat:ww_lat=$waking_lat+$wakeup_lat:onmatch(synthetic.wakeup_latency).waking+wakeup_latency($ww_lat,pid)' >> events/synthetic/wakeup_latency/trigger
 echo 'hist:keys=pid,lat:sort=pid,lat' >> events/synthetic/waking+wakeup_latency/trigger
 
-ping localhost -c 3
+ping 127.0.0.1 -c 3
 if ! grep -q "pid:" events/synthetic/waking+wakeup_latency/hist; then
     fail "Failed to create combined histogram"
 fi
diff --git a/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-onmatch-action-hist.tc b/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-onmatch-action-hist.tc
index 1ef5dd4521f0..c5bdf8338aeb 100644
--- a/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-onmatch-action-hist.tc
+++ b/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-onmatch-action-hist.tc
@@ -29,7 +29,7 @@ echo "Test histogram variables,simple expression support and onmatch action"
 echo 'hist:keys=pid:ts0=common_timestamp.usecs if comm=="ping"' > events/sched/sched_wakeup/trigger
 echo 'hist:keys=next_pid:wakeup_lat=common_timestamp.usecs-$ts0:onmatch(sched.sched_wakeup).wakeup_latency($wakeup_lat,next_pid,next_comm) if next_comm=="ping"' > events/sched/sched_switch/trigger
 echo 'hist:keys=comm,pid,lat:wakeup_lat=lat:sort=lat' > events/synthetic/wakeup_latency/trigger
-ping localhost -c 5
+ping 127.0.0.1 -c 5
 if ! grep -q "ping" events/synthetic/wakeup_latency/hist; then
     fail "Failed to create onmatch action inter-event histogram"
 fi
diff --git a/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-onmatch-onmax-action-hist.tc b/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-onmatch-onmax-action-hist.tc
index 7234683ee5e5..47cb76bfd9c0 100644
--- a/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-onmatch-onmax-action-hist.tc
+++ b/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-onmatch-onmax-action-hist.tc
@@ -29,7 +29,7 @@ echo "Test histogram variables,simple expression support and onmatch-onmax actio
 echo 'hist:keys=pid:ts0=common_timestamp.usecs if comm=="ping"' > events/sched/sched_wakeup/trigger
 echo 'hist:keys=next_pid:wakeup_lat=common_timestamp.usecs-$ts0:onmatch(sched.sched_wakeup).wakeup_latency($wakeup_lat,next_pid,next_comm):onmax($wakeup_lat).save(next_comm,prev_pid,prev_prio,prev_comm) if next_comm=="ping"' >> events/sched/sched_switch/trigger
 echo 'hist:keys=comm,pid,lat:wakeup_lat=lat:sort=lat' > events/synthetic/wakeup_latency/trigger
-ping localhost -c 5
+ping 127.0.0.1 -c 5
 if [ ! grep -q "ping" events/synthetic/wakeup_latency/hist -o ! grep -q "max:" events/sched/sched_switch/hist]; then
     fail "Failed to create onmatch-onmax action inter-event histogram"
 fi
diff --git a/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-onmax-action-hist.tc b/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-onmax-action-hist.tc
index 55b9630a1d70..6fa0c449035c 100644
--- a/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-onmax-action-hist.tc
+++ b/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-onmax-action-hist.tc
@@ -27,7 +27,7 @@ echo "Test onmax action"
 
 echo 'hist:keys=pid:ts0=common_timestamp.usecs if comm=="ping"' >> events/sched/sched_waking/trigger
 echo 'hist:keys=next_pid:wakeup_lat=common_timestamp.usecs-$ts0:onmax($wakeup_lat).save(next_comm,prev_pid,prev_prio,prev_comm) if next_comm=="ping"' >> events/sched/sched_switch/trigger
-ping localhost -c 3
+ping 127.0.0.1 -c 3
 if ! grep -q "max:" events/sched/sched_switch/hist; then
     fail "Failed to create onmax action inter-event histogram"
 fi


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

* [PATCH v2 12/32] selftests/ftrace: Improve kprobe on module testcase to load/unload module
  2018-08-16 16:29 [PATCH v2 00/32] selftests/ftrace: Improve ftracetest with coverage check Masami Hiramatsu
                   ` (10 preceding siblings ...)
  2018-08-16 16:34 ` [PATCH v2 11/32] selftests/ftrace: Use loopback address instead of localhost Masami Hiramatsu
@ 2018-08-16 16:34 ` Masami Hiramatsu
  2018-08-24 23:07   ` Steven Rostedt
  2018-08-16 16:35 ` [PATCH v2 13/32] selftests/ftrace: Improve kprobe testcase to check log data Masami Hiramatsu
                   ` (19 subsequent siblings)
  31 siblings, 1 reply; 78+ messages in thread
From: Masami Hiramatsu @ 2018-08-16 16:34 UTC (permalink / raw)
  To: Shuah Khan, Steven Rostedt
  Cc: Ingo Molnar, Masami Hiramatsu, linux-kselftest, linux-kernel

Improve kprobe events on module testcase to check module
load/unload with disabled/enabled events. This also change
the target module to trace_printk.ko, so it depends on
CONFIG_SAMPLE_TRACE_PRINTK=m.

Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
---
 tools/testing/selftests/ftrace/config              |    4 ++
 .../ftrace/test.d/kprobe/kprobe_module.tc          |   35 ++++++++++++++++++--
 2 files changed, 36 insertions(+), 3 deletions(-)

diff --git a/tools/testing/selftests/ftrace/config b/tools/testing/selftests/ftrace/config
index 07db5ab09cc7..32cf61b6bb54 100644
--- a/tools/testing/selftests/ftrace/config
+++ b/tools/testing/selftests/ftrace/config
@@ -7,3 +7,7 @@ CONFIG_HIST_TRIGGERS=y
 CONFIG_PREEMPT_TRACER=y
 CONFIG_IRQSOFF_TRACER=y
 CONFIG_PREEMPTIRQ_DELAY_TEST=m
+CONFIG_MODULES=y
+CONFIG_MODULE_UNLOAD=y
+CONFIG_SAMPLES=y
+CONFIG_SAMPLE_TRACE_PRINTK=m
diff --git a/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_module.tc b/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_module.tc
index ec6c5fffef1e..1efe9e616bc4 100644
--- a/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_module.tc
+++ b/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_module.tc
@@ -4,11 +4,18 @@
 
 [ -f kprobe_events ] || exit_unsupported # this is configurable
 
+rmmod trace-printk ||:
+if ! modprobe trace-printk.ko ; then
+  echo "No trace-printk sample module - please make CONFIG_SAMPLE_TRACE_PRINTK=
+m"
+  exit_unresolved;
+fi
+
+MOD=trace_printk
+FUNC=trace_printk_irq_work
+
 :;: "Add an event on a module function without specifying event name" ;:
 
-MOD=`lsmod | head -n 2 | tail -n 1 | cut -f1 -d" "`
-FUNC=`grep -m 1 ".* t .*\\[$MOD\\]" /proc/kallsyms | xargs | cut -f3 -d" "`
-[ "x" != "x$MOD" -a "y" != "y$FUNC" ] || exit_unresolved
 echo "p $MOD:$FUNC" > kprobe_events
 PROBE_NAME=`echo $MOD:$FUNC | tr ".:" "_"`
 test -d events/kprobes/p_${PROBE_NAME}_0 || exit_failure
@@ -22,3 +29,25 @@ test -d events/kprobes/event1 || exit_failure
 
 echo "p:kprobes1/event1 $MOD:$FUNC" > kprobe_events
 test -d events/kprobes1/event1 || exit_failure
+
+:;: "Remove target module, but event still be there" ;:
+if ! rmmod trace-printk ; then
+  echo "Failed to unload module - please enable CONFIG_MODULE_UNLOAD"
+  exit_unresolved;
+fi
+test -d events/kprobes1/event1
+
+:;: "Check posibility to defining events on unloaded module";:
+echo "p:event2 $MOD:$FUNC" >> kprobe_events
+
+:;: "Target is gone, but we can prepare for next time";:
+echo 1 > events/kprobes1/event1/enable
+
+:;: "Load module again, which means the event1 should be recorded";:
+modprobe trace-printk.ko
+grep "event1:" trace
+
+:;: "Remove the module again and check the event is not locked"
+rmmod trace-printk
+echo 0 > events/kprobes1/event1/enable
+echo "-:kprobes1/event1" >> kprobe_events


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

* [PATCH v2 13/32] selftests/ftrace: Improve kprobe testcase to check log data
  2018-08-16 16:29 [PATCH v2 00/32] selftests/ftrace: Improve ftracetest with coverage check Masami Hiramatsu
                   ` (11 preceding siblings ...)
  2018-08-16 16:34 ` [PATCH v2 12/32] selftests/ftrace: Improve kprobe on module testcase to load/unload module Masami Hiramatsu
@ 2018-08-16 16:35 ` Masami Hiramatsu
  2018-08-16 16:35 ` [PATCH v2 14/32] selftests/ftrace: Improve kretprobe " Masami Hiramatsu
                   ` (18 subsequent siblings)
  31 siblings, 0 replies; 78+ messages in thread
From: Masami Hiramatsu @ 2018-08-16 16:35 UTC (permalink / raw)
  To: Shuah Khan, Steven Rostedt
  Cc: Ingo Molnar, Masami Hiramatsu, linux-kselftest, linux-kernel

Improve kprobe testcase to check the log data correctness
and ensure the event definition is corrctly including
argument definition.

Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
---
 .../selftests/ftrace/test.d/kprobe/kprobe_args.tc  |    6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args.tc b/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args.tc
index 9578535ccd67..bcdecf80a8f1 100644
--- a/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args.tc
+++ b/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args.tc
@@ -5,10 +5,14 @@
 [ -f kprobe_events ] || exit_unsupported # this is configurable
 
 echo 'p:testprobe _do_fork $stack $stack0 +0($stack)' > kprobe_events
-grep testprobe kprobe_events
+grep testprobe kprobe_events | grep -q 'arg1=\$stack arg2=\$stack0 arg3=+0(\$stack)'
 test -d events/kprobes/testprobe
+
 echo 1 > events/kprobes/testprobe/enable
 ( echo "forked")
+grep testprobe trace | grep '_do_fork' | \
+  grep -q 'arg1=0x[[:xdigit:]]* arg2=0x[[:xdigit:]]* arg3=0x[[:xdigit:]]*$'
+
 echo 0 > events/kprobes/testprobe/enable
 echo "-:testprobe" >> kprobe_events
 clear_trace


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

* [PATCH v2 14/32] selftests/ftrace: Improve kretprobe testcase to check log data
  2018-08-16 16:29 [PATCH v2 00/32] selftests/ftrace: Improve ftracetest with coverage check Masami Hiramatsu
                   ` (12 preceding siblings ...)
  2018-08-16 16:35 ` [PATCH v2 13/32] selftests/ftrace: Improve kprobe testcase to check log data Masami Hiramatsu
@ 2018-08-16 16:35 ` Masami Hiramatsu
  2018-08-16 16:36 ` [PATCH v2 15/32] selftests/ftrace: Test kprobe-event argument with various bitsize Masami Hiramatsu
                   ` (17 subsequent siblings)
  31 siblings, 0 replies; 78+ messages in thread
From: Masami Hiramatsu @ 2018-08-16 16:35 UTC (permalink / raw)
  To: Shuah Khan, Steven Rostedt
  Cc: Ingo Molnar, Masami Hiramatsu, linux-kselftest, linux-kernel

Improve kretprobe testcase to check the log data correctness
and ensure the event definition is corrctly including
argument definition.

Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
---
 .../ftrace/test.d/kprobe/kretprobe_args.tc         |    7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/tools/testing/selftests/ftrace/test.d/kprobe/kretprobe_args.tc b/tools/testing/selftests/ftrace/test.d/kprobe/kretprobe_args.tc
index 4c6b21e30b02..ac9ab4a12e53 100644
--- a/tools/testing/selftests/ftrace/test.d/kprobe/kretprobe_args.tc
+++ b/tools/testing/selftests/ftrace/test.d/kprobe/kretprobe_args.tc
@@ -4,11 +4,16 @@
 
 [ -f kprobe_events ] || exit_unsupported # this is configurable
 
+# Add new kretprobe event
 echo 'r:testprobe2 _do_fork $retval' > kprobe_events
-grep testprobe2 kprobe_events
+grep testprobe2 kprobe_events | grep -q 'arg1=\$retval'
 test -d events/kprobes/testprobe2
+
 echo 1 > events/kprobes/testprobe2/enable
 ( echo "forked")
+
+cat trace | grep testprobe2 | grep -q '<- _do_fork'
+
 echo 0 > events/kprobes/testprobe2/enable
 echo '-:testprobe2' >> kprobe_events
 clear_trace


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

* [PATCH v2 15/32] selftests/ftrace: Test kprobe-event argument with various bitsize
  2018-08-16 16:29 [PATCH v2 00/32] selftests/ftrace: Improve ftracetest with coverage check Masami Hiramatsu
                   ` (13 preceding siblings ...)
  2018-08-16 16:35 ` [PATCH v2 14/32] selftests/ftrace: Improve kretprobe " Masami Hiramatsu
@ 2018-08-16 16:36 ` Masami Hiramatsu
  2018-08-16 16:36 ` [PATCH v2 16/32] selftests/ftrace: Check set_event_pid result Masami Hiramatsu
                   ` (16 subsequent siblings)
  31 siblings, 0 replies; 78+ messages in thread
From: Masami Hiramatsu @ 2018-08-16 16:36 UTC (permalink / raw)
  To: Shuah Khan, Steven Rostedt
  Cc: Ingo Molnar, Masami Hiramatsu, linux-kselftest, linux-kernel

Improve the kprobe-event with argument types testcase
to test it with various bitsize.
kprobe-event argument can be recorded in given types with
various bitsize (8, 16, 32, 64), thus the type testcase
should test the different bitsize too.

Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
---
 .../ftrace/test.d/kprobe/kprobe_args_type.tc       |   48 +++++++++++++-------
 1 file changed, 32 insertions(+), 16 deletions(-)

diff --git a/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_type.tc b/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_type.tc
index 37443dd23d15..1bcb67dcae26 100644
--- a/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_type.tc
+++ b/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_type.tc
@@ -6,29 +6,45 @@
 
 grep "x8/16/32/64" README > /dev/null || exit_unsupported # version issue
 
-echo 'p:testprobe _do_fork $stack0:s32 $stack0:u32 $stack0:x32 $stack0:b8@4/32' > kprobe_events
-grep testprobe kprobe_events
-test -d events/kprobes/testprobe
-
-echo 1 > events/kprobes/testprobe/enable
-( echo "forked")
-echo 0 > events/kprobes/testprobe/enable
-ARGS=`tail -n 1 trace | sed -e 's/.* arg1=\(.*\) arg2=\(.*\) arg3=\(.*\) arg4=\(.*\)/\1 \2 \3 \4/'`
+gen_event() { # Bitsize
+  echo "p:testprobe _do_fork \$stack0:s$1 \$stack0:u$1 \$stack0:x$1 \$stack0:b4@4/$1"
+}
 
-check_types() {
-  X1=`printf "%x" $1 | tail -c 8`
+check_types() { # s-type u-type x-type bf-type width
+  test $# -eq 5
+  CW=$5
+  CW=$((CW / 4))
+  X1=`printf "%x" $1 | tail -c ${CW}`
   X2=`printf "%x" $2`
   X3=`printf "%x" $3`
   test $X1 = $X2
   test $X2 = $X3
   test 0x$X3 = $3
 
-  B4=`printf "%02x" $4`
-  B3=`echo -n $X3 | tail -c 3 | head -c 2`
+  B4=`printf "%1x" $4`
+  B3=`printf "%03x" 0x$X3 | tail -c 2 | head -c 1`
   test $B3 = $B4
 }
-check_types $ARGS
 
-echo "-:testprobe" >> kprobe_events
-clear_trace
-test -d events/kprobes/testprobe && exit_fail || exit_pass
+for width in 64 32 16 8; do
+  : "Add new event with basic types"
+  gen_event $width > kprobe_events
+  grep testprobe kprobe_events
+  test -d events/kprobes/testprobe
+
+  : "Trace the event"
+  echo 1 > events/kprobes/testprobe/enable
+  ( echo "forked")
+  echo 0 > events/kprobes/testprobe/enable
+
+  : "Confirm the arguments is recorded in given types correctly"
+  ARGS=`grep "testprobe" trace | sed -e 's/.* arg1=\(.*\) arg2=\(.*\) arg3=\(.*\) arg4=\(.*\)/\1 \2 \3 \4/'`
+  check_types $ARGS $width
+
+  : "Clear event for next loop"
+  echo "-:testprobe" >> kprobe_events
+  clear_trace
+
+done
+
+exit_pass


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

* [PATCH v2 16/32] selftests/ftrace: Check set_event_pid result
  2018-08-16 16:29 [PATCH v2 00/32] selftests/ftrace: Improve ftracetest with coverage check Masami Hiramatsu
                   ` (14 preceding siblings ...)
  2018-08-16 16:36 ` [PATCH v2 15/32] selftests/ftrace: Test kprobe-event argument with various bitsize Masami Hiramatsu
@ 2018-08-16 16:36 ` Masami Hiramatsu
  2018-08-16 16:37 ` [PATCH v2 17/32] selftests/ftrace: Add kprobe event with $comm argument testcase Masami Hiramatsu
                   ` (15 subsequent siblings)
  31 siblings, 0 replies; 78+ messages in thread
From: Masami Hiramatsu @ 2018-08-16 16:36 UTC (permalink / raw)
  To: Shuah Khan, Steven Rostedt
  Cc: Ingo Molnar, Masami Hiramatsu, linux-kselftest, linux-kernel

Ensure the set_event_pid shows set pid list.

Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
---
 .../selftests/ftrace/test.d/event/event-pid.tc     |    1 +
 1 file changed, 1 insertion(+)

diff --git a/tools/testing/selftests/ftrace/test.d/event/event-pid.tc b/tools/testing/selftests/ftrace/test.d/event/event-pid.tc
index 6d2897f6a106..4ecbd9b69ec6 100644
--- a/tools/testing/selftests/ftrace/test.d/event/event-pid.tc
+++ b/tools/testing/selftests/ftrace/test.d/event/event-pid.tc
@@ -46,6 +46,7 @@ do_reset
 read mypid rest < /proc/self/stat
 
 echo $mypid > set_event_pid
+grep -q $mypid set_event_pid
 echo 'sched:sched_switch' > set_event
 
 yield


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

* [PATCH v2 17/32] selftests/ftrace: Add kprobe event with $comm argument testcase
  2018-08-16 16:29 [PATCH v2 00/32] selftests/ftrace: Improve ftracetest with coverage check Masami Hiramatsu
                   ` (15 preceding siblings ...)
  2018-08-16 16:36 ` [PATCH v2 16/32] selftests/ftrace: Check set_event_pid result Masami Hiramatsu
@ 2018-08-16 16:37 ` Masami Hiramatsu
  2018-08-16 16:37 ` [PATCH v2 18/32] selftests/ftrace: Add kprobe profile testcase Masami Hiramatsu
                   ` (14 subsequent siblings)
  31 siblings, 0 replies; 78+ messages in thread
From: Masami Hiramatsu @ 2018-08-16 16:37 UTC (permalink / raw)
  To: Shuah Khan, Steven Rostedt
  Cc: Ingo Molnar, Masami Hiramatsu, linux-kselftest, linux-kernel

Add kprobe-event with $comm argument testcase to
ftracetest. This not only checks syntax but
also checks log file.

Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
---
 .../ftrace/test.d/kprobe/kprobe_args_comm.tc       |   17 +++++++++++++++++
 1 file changed, 17 insertions(+)
 create mode 100644 tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_comm.tc

diff --git a/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_comm.tc b/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_comm.tc
new file mode 100644
index 000000000000..15c1f70fcaf9
--- /dev/null
+++ b/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_comm.tc
@@ -0,0 +1,17 @@
+#!/bin/sh
+# SPDX-License-Identifier: GPL-2.0
+# description: Kprobe event with comm arguments
+
+[ -f kprobe_events ] || exit_unsupported # this is configurable
+
+grep -A1 "fetcharg:" README | grep -q "\$comm" || exit_unsupported # this is too old
+
+echo 'p:testprobe _do_fork comm=$comm ' > kprobe_events
+grep testprobe kprobe_events | grep -q 'comm=$comm'
+test -d events/kprobes/testprobe
+
+echo 1 > events/kprobes/testprobe/enable
+( echo "forked")
+grep testprobe trace | grep -q 'comm=".*"'
+
+exit 0


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

* [PATCH v2 18/32] selftests/ftrace: Add kprobe profile testcase
  2018-08-16 16:29 [PATCH v2 00/32] selftests/ftrace: Improve ftracetest with coverage check Masami Hiramatsu
                   ` (16 preceding siblings ...)
  2018-08-16 16:37 ` [PATCH v2 17/32] selftests/ftrace: Add kprobe event with $comm argument testcase Masami Hiramatsu
@ 2018-08-16 16:37 ` Masami Hiramatsu
  2018-08-16 16:38 ` [PATCH v2 19/32] selftests/ftrace: Add a testcase for nop tracer Masami Hiramatsu
                   ` (13 subsequent siblings)
  31 siblings, 0 replies; 78+ messages in thread
From: Masami Hiramatsu @ 2018-08-16 16:37 UTC (permalink / raw)
  To: Shuah Khan, Steven Rostedt
  Cc: Ingo Molnar, Masami Hiramatsu, linux-kselftest, linux-kernel

Add a testcase for testing kprobe_profile interface
which provides per-kprobe event hit/misshit counts.

Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
---
 .../selftests/ftrace/test.d/kprobe/profile.tc      |   15 +++++++++++++++
 1 file changed, 15 insertions(+)
 create mode 100644 tools/testing/selftests/ftrace/test.d/kprobe/profile.tc

diff --git a/tools/testing/selftests/ftrace/test.d/kprobe/profile.tc b/tools/testing/selftests/ftrace/test.d/kprobe/profile.tc
new file mode 100644
index 000000000000..0384b525cdee
--- /dev/null
+++ b/tools/testing/selftests/ftrace/test.d/kprobe/profile.tc
@@ -0,0 +1,15 @@
+#!/bin/sh
+# SPDX-License-Identifier: GPL-2.0
+# description: Kprobe dynamic event - adding and removing
+
+[ -f kprobe_events ] || exit_unsupported # this is configurable
+
+! grep -q 'myevent' kprobe_profile
+echo p:myevent _do_fork > kprobe_events
+grep -q 'myevent[[:space:]]*0[[:space:]]*0$' kprobe_profile
+echo 1 > events/kprobes/myevent/enable
+( echo "forked" )
+grep -q 'myevent[[:space:]]*[[:digit:]]*[[:space:]]*0$' kprobe_profile
+echo 0 > events/kprobes/myevent/enable
+echo > kprobe_events
+! grep -q 'myevent' kprobe_profile


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

* [PATCH v2 19/32] selftests/ftrace: Add a testcase for nop tracer
  2018-08-16 16:29 [PATCH v2 00/32] selftests/ftrace: Improve ftracetest with coverage check Masami Hiramatsu
                   ` (17 preceding siblings ...)
  2018-08-16 16:37 ` [PATCH v2 18/32] selftests/ftrace: Add kprobe profile testcase Masami Hiramatsu
@ 2018-08-16 16:38 ` Masami Hiramatsu
  2018-08-24 22:53   ` Steven Rostedt
  2018-08-16 16:38 ` [PATCH v2 20/32] selftests/ftrace: Add kprobe-event with symbol argument test Masami Hiramatsu
                   ` (12 subsequent siblings)
  31 siblings, 1 reply; 78+ messages in thread
From: Masami Hiramatsu @ 2018-08-16 16:38 UTC (permalink / raw)
  To: Shuah Khan, Steven Rostedt
  Cc: Ingo Molnar, Masami Hiramatsu, linux-kselftest, linux-kernel

Add a testcase for nop tracer. This tracer has 2 test
options, so check it too.

Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
---
 .../testing/selftests/ftrace/test.d/tracer/nop.tc  |   22 ++++++++++++++++++++
 1 file changed, 22 insertions(+)
 create mode 100644 tools/testing/selftests/ftrace/test.d/tracer/nop.tc

diff --git a/tools/testing/selftests/ftrace/test.d/tracer/nop.tc b/tools/testing/selftests/ftrace/test.d/tracer/nop.tc
new file mode 100644
index 000000000000..ca63e316e0f5
--- /dev/null
+++ b/tools/testing/selftests/ftrace/test.d/tracer/nop.tc
@@ -0,0 +1,22 @@
+#!/bin/sh
+# SPDX-License-Identifier: GPL-2.0
+# description: Test nop tracer
+
+# nop must be supported always
+grep -q "nop" available_tracers
+
+echo "nop" > current_tracer
+
+# nop provides 2 test options
+grep -q "test_nop_accept" trace_options
+grep -q "test_nop_refuse" trace_options
+
+# nop_accept always success
+echo "test_nop_accept" > trace_options
+echo "notest_nop_accept" > trace_options
+
+# nop_refuse always failed
+! echo "test_nop_refuse" > trace_options
+! echo "notest_nop_refuse" > trace_options
+
+exit 0


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

* [PATCH v2 20/32] selftests/ftrace: Add kprobe-event with symbol argument test
  2018-08-16 16:29 [PATCH v2 00/32] selftests/ftrace: Improve ftracetest with coverage check Masami Hiramatsu
                   ` (18 preceding siblings ...)
  2018-08-16 16:38 ` [PATCH v2 19/32] selftests/ftrace: Add a testcase for nop tracer Masami Hiramatsu
@ 2018-08-16 16:38 ` Masami Hiramatsu
  2018-08-16 16:39 ` [PATCH v2 21/32] selftests/ftrace: Add trace_printk sample module test Masami Hiramatsu
                   ` (11 subsequent siblings)
  31 siblings, 0 replies; 78+ messages in thread
From: Masami Hiramatsu @ 2018-08-16 16:38 UTC (permalink / raw)
  To: Shuah Khan, Steven Rostedt
  Cc: Ingo Molnar, Masami Hiramatsu, linux-kselftest, linux-kernel

Add a testcase for kprobe-event with @symbol argument.
Since @symbol needs to refer the kernel data symbol
(linux_proc_banner), it requires CONFIG_KALLSYMS_ALL.

Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
---
 tools/testing/selftests/ftrace/config              |    1 +
 .../ftrace/test.d/kprobe/kprobe_args_symbol.tc     |   39 ++++++++++++++++++++
 2 files changed, 40 insertions(+)
 create mode 100644 tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_symbol.tc

diff --git a/tools/testing/selftests/ftrace/config b/tools/testing/selftests/ftrace/config
index 32cf61b6bb54..b7ac74fcb0fa 100644
--- a/tools/testing/selftests/ftrace/config
+++ b/tools/testing/selftests/ftrace/config
@@ -11,3 +11,4 @@ CONFIG_MODULES=y
 CONFIG_MODULE_UNLOAD=y
 CONFIG_SAMPLES=y
 CONFIG_SAMPLE_TRACE_PRINTK=m
+CONFIG_KALLSYMS_ALL=y
diff --git a/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_symbol.tc b/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_symbol.tc
new file mode 100644
index 000000000000..2b6dd33f9076
--- /dev/null
+++ b/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_symbol.tc
@@ -0,0 +1,39 @@
+#!/bin/sh
+# SPDX-License-Identifier: GPL-2.0
+# description: Kprobe event symbol argument
+
+[ -f kprobe_events ] || exit_unsupported # this is configurable
+
+SYMBOL="linux_proc_banner"
+
+if [ ! -f /proc/kallsyms ]; then
+  echo "Can not check the target symbol - please enable CONFIG_KALLSYMS"
+  exit_unresolved
+elif ! grep "$SYMBOL\$" /proc/kallsyms; then
+  echo "Linux banner is not exported - please enable CONFIG_KALLSYMS_ALL"
+  exit_unresolved
+fi
+
+: "Test get basic types symbol argument"
+echo "p:testprobe_u _do_fork arg1=@linux_proc_banner:u64 arg2=@linux_proc_banner:u32 arg3=@linux_proc_banner:u16 arg4=@linux_proc_banner:u8" > kprobe_events
+echo "p:testprobe_s _do_fork arg1=@linux_proc_banner:s64 arg2=@linux_proc_banner:s32 arg3=@linux_proc_banner:s16 arg4=@linux_proc_banner:s8" >> kprobe_events
+if grep -q "x8/16/32/64" README; then
+  echo "p:testprobe_x _do_fork arg1=@linux_proc_banner:x64 arg2=@linux_proc_banner:x32 arg3=@linux_proc_banner:x16 arg4=@linux_proc_banner:x8" >> kprobe_events
+fi
+echo "p:testprobe_bf _do_fork arg1=@linux_proc_banner:b8@4/32" >> kprobe_events
+echo 1 > events/kprobes/enable
+(echo "forked")
+echo 0 > events/kprobes/enable
+grep "testprobe_[usx]:.* arg1=.* arg2=.* arg3=.* arg4=.*" trace
+grep "testprobe_bf:.* arg1=.*" trace
+
+: "Test get string symbol argument"
+echo "p:testprobe_str _do_fork arg1=@linux_proc_banner:string" > kprobe_events
+echo 1 > events/kprobes/enable
+(echo "forked")
+echo 0 > events/kprobes/enable
+RESULT=`grep "testprobe_str" trace | sed -e 's/.* arg1=\(.*\)/\1/'`
+
+RESULT=`echo $RESULT | sed -e 's/.* \((.*)\) \((.*)\) .*/\1 \2/'`
+ORIG=`cat /proc/version | sed -e 's/.* \((.*)\) \((.*)\) .*/\1 \2/'`
+test "$RESULT" = "$ORIG"


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

* [PATCH v2 21/32] selftests/ftrace: Add trace_printk sample module test
  2018-08-16 16:29 [PATCH v2 00/32] selftests/ftrace: Improve ftracetest with coverage check Masami Hiramatsu
                   ` (19 preceding siblings ...)
  2018-08-16 16:38 ` [PATCH v2 20/32] selftests/ftrace: Add kprobe-event with symbol argument test Masami Hiramatsu
@ 2018-08-16 16:39 ` Masami Hiramatsu
  2018-08-24 23:06   ` Steven Rostedt
  2018-08-16 16:39 ` [PATCH v2 22/32] selftests/ftrace: Add ringbuffer size changing testcase Masami Hiramatsu
                   ` (10 subsequent siblings)
  31 siblings, 1 reply; 78+ messages in thread
From: Masami Hiramatsu @ 2018-08-16 16:39 UTC (permalink / raw)
  To: Shuah Khan, Steven Rostedt
  Cc: Ingo Molnar, Masami Hiramatsu, linux-kselftest, linux-kernel

Add trace_printk sample module test. This requires to
enable trace_printk.ko module for test.

Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
---
 .../selftests/ftrace/test.d/event/trace_printk.tc  |   27 ++++++++++++++++++++
 1 file changed, 27 insertions(+)
 create mode 100644 tools/testing/selftests/ftrace/test.d/event/trace_printk.tc

diff --git a/tools/testing/selftests/ftrace/test.d/event/trace_printk.tc b/tools/testing/selftests/ftrace/test.d/event/trace_printk.tc
new file mode 100644
index 000000000000..4da4d739f03d
--- /dev/null
+++ b/tools/testing/selftests/ftrace/test.d/event/trace_printk.tc
@@ -0,0 +1,27 @@
+#!/bin/sh
+# SPDX-License-Identifier: GPL-2.0
+# description: Test trace_printk from module
+
+rmmod trace-printk ||:
+if ! modprobe trace-printk.ko ; then
+  echo "No trace-printk sample module - please make CONFIG_SAMPLE_TRACE_PRINTK=m"
+  exit_unresolved;
+fi
+
+echo "Waiting for irq work"
+sleep 1
+
+grep -q ": This .* trace_bputs" trace
+grep -q ": This .* trace_puts" trace
+grep -q ": This .* trace_bprintk" trace
+grep -q ": This .* trace_printk" trace
+
+grep -q ": (irq) .* trace_bputs" trace
+grep -q ": (irq) .* trace_puts" trace
+grep -q ": (irq) .* trace_bprintk" trace
+grep -q ": (irq) .* trace_printk" trace
+
+grep -q "This is a %s that will use trace_bprintk" printk_formats
+grep -q "(irq) This is a static string that will use trace_bputs" printk_formats
+
+rmmod trace-printk ||:


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

* [PATCH v2 22/32] selftests/ftrace: Add ringbuffer size changing testcase
  2018-08-16 16:29 [PATCH v2 00/32] selftests/ftrace: Improve ftracetest with coverage check Masami Hiramatsu
                   ` (20 preceding siblings ...)
  2018-08-16 16:39 ` [PATCH v2 21/32] selftests/ftrace: Add trace_printk sample module test Masami Hiramatsu
@ 2018-08-16 16:39 ` Masami Hiramatsu
  2018-08-24 23:18   ` Steven Rostedt
  2018-08-16 16:40 ` [PATCH v2 23/32] selftests/ftrace: Add function profiling stat testcase Masami Hiramatsu
                   ` (9 subsequent siblings)
  31 siblings, 1 reply; 78+ messages in thread
From: Masami Hiramatsu @ 2018-08-16 16:39 UTC (permalink / raw)
  To: Shuah Khan, Steven Rostedt
  Cc: Ingo Molnar, Masami Hiramatsu, linux-kselftest, linux-kernel

Add a testcase for changing ringbuffer size. This tests
not only ringbuffer size but also tests the imbalance
per-cpu buffer size change too.

Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
---
 .../ftrace/test.d/00basic/ringbuffer_size.tc       |   21 ++++++++++++++++++++
 1 file changed, 21 insertions(+)
 create mode 100644 tools/testing/selftests/ftrace/test.d/00basic/ringbuffer_size.tc

diff --git a/tools/testing/selftests/ftrace/test.d/00basic/ringbuffer_size.tc b/tools/testing/selftests/ftrace/test.d/00basic/ringbuffer_size.tc
new file mode 100644
index 000000000000..9224f33b3194
--- /dev/null
+++ b/tools/testing/selftests/ftrace/test.d/00basic/ringbuffer_size.tc
@@ -0,0 +1,21 @@
+#!/bin/sh
+# SPDX-License-Identifier: GPL-2.0
+# description: Change the ringbuffer size
+
+rb_size_test() {
+ORIG=`cat buffer_size_kb`
+
+expr $ORIG / 2 > buffer_size_kb
+
+expr $ORIG \* 2 > buffer_size_kb
+
+echo $ORIG > buffer_size_kb
+}
+
+rb_size_test
+
+: "If per-cpu buffer is supported, imbalance it"
+if [ -d per_cpu/cpu0 ]; then
+  cd per_cpu/cpu0
+  rb_size_test
+fi


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

* [PATCH v2 23/32] selftests/ftrace: Add function profiling stat testcase
  2018-08-16 16:29 [PATCH v2 00/32] selftests/ftrace: Improve ftracetest with coverage check Masami Hiramatsu
                   ` (21 preceding siblings ...)
  2018-08-16 16:39 ` [PATCH v2 22/32] selftests/ftrace: Add ringbuffer size changing testcase Masami Hiramatsu
@ 2018-08-16 16:40 ` Masami Hiramatsu
  2018-08-24 23:20   ` Steven Rostedt
  2018-08-16 16:40 ` [PATCH v2 24/32] selftests/ftrace: Add max stack tracer testcase Masami Hiramatsu
                   ` (8 subsequent siblings)
  31 siblings, 1 reply; 78+ messages in thread
From: Masami Hiramatsu @ 2018-08-16 16:40 UTC (permalink / raw)
  To: Shuah Khan, Steven Rostedt
  Cc: Ingo Molnar, Masami Hiramatsu, linux-kselftest, linux-kernel

Add a testcase for function profiling per-cpu statistics
interface. There is already func_profile.tc, but that is
mainly focusing on the combination of function-profiler
and function tracer. This testcase ensures trace_stat
per-cpu function statistics is correctly updated.

Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
---
 .../ftrace/test.d/ftrace/func_profile_stat.tc      |   23 ++++++++++++++++++++
 1 file changed, 23 insertions(+)
 create mode 100644 tools/testing/selftests/ftrace/test.d/ftrace/func_profile_stat.tc

diff --git a/tools/testing/selftests/ftrace/test.d/ftrace/func_profile_stat.tc b/tools/testing/selftests/ftrace/test.d/ftrace/func_profile_stat.tc
new file mode 100644
index 000000000000..1d2440d80ec3
--- /dev/null
+++ b/tools/testing/selftests/ftrace/test.d/ftrace/func_profile_stat.tc
@@ -0,0 +1,23 @@
+#!/bin/sh
+# SPDX-License-Identifier: GPL-2.0
+# description: ftrace - function profiling
+
+[ ! -f function_profile_enabled ] && exit_unsupported
+
+: "Enable function profile"
+echo 1 > function_profile_enabled
+
+: "Profile must be updated"
+cp trace_stat/function0 $TMPDIR/
+( echo "forked"; sleep 1 )
+: "diff returns 0 if there is no difference"
+! diff trace_stat/function0 $TMPDIR/function0
+
+echo 0 > function_profile_enabled
+
+: "Profile must NOT be updated"
+cp trace_stat/function0 $TMPDIR/
+( echo "forked"; sleep 1 )
+: "diff returns 0 if there is no difference"
+diff trace_stat/function0 $TMPDIR/function0
+


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

* [PATCH v2 24/32] selftests/ftrace: Add max stack tracer testcase
  2018-08-16 16:29 [PATCH v2 00/32] selftests/ftrace: Improve ftracetest with coverage check Masami Hiramatsu
                   ` (22 preceding siblings ...)
  2018-08-16 16:40 ` [PATCH v2 23/32] selftests/ftrace: Add function profiling stat testcase Masami Hiramatsu
@ 2018-08-16 16:40 ` Masami Hiramatsu
  2018-08-24 23:23   ` Steven Rostedt
  2018-08-16 16:40 ` [PATCH v2 25/32] selftests/ftrace: Add function filter on module testcase Masami Hiramatsu
                   ` (7 subsequent siblings)
  31 siblings, 1 reply; 78+ messages in thread
From: Masami Hiramatsu @ 2018-08-16 16:40 UTC (permalink / raw)
  To: Shuah Khan, Steven Rostedt
  Cc: Ingo Molnar, Masami Hiramatsu, linux-kselftest, linux-kernel

Add a testcase for max stack tracer, which checks basic
max stack usage tracing and its filter feature.

Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
---
 .../ftrace/test.d/ftrace/func_stack_tracer.tc      |   39 ++++++++++++++++++++
 1 file changed, 39 insertions(+)
 create mode 100644 tools/testing/selftests/ftrace/test.d/ftrace/func_stack_tracer.tc

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
new file mode 100644
index 000000000000..b414f0e3c646
--- /dev/null
+++ b/tools/testing/selftests/ftrace/test.d/ftrace/func_stack_tracer.tc
@@ -0,0 +1,39 @@
+#!/bin/sh
+# SPDX-License-Identifier: GPL-2.0
+# description: ftrace - Max stack tracer
+# Test the basic function of max-stack usage tracing
+
+if [ ! -f stack_trace ]; then
+  echo "Max stack tracer is not supported - please make CONFIG_STACK_TRACER=y"
+  exit_unsupported
+fi
+
+echo > stack_trace_filter
+echo 0 > stack_max_size
+echo 1 > /proc/sys/kernel/stack_tracer_enabled
+
+: "Fork and wait for the first entry become !lock"
+timeout=10
+while [ $timeout -ne 0 ]; do
+  ( echo "forked" )
+  FL=`grep " 0)" stack_trace`
+  echo $FL | grep -q "lock" || break;
+  timeout=$((timeout - 1))
+done
+echo 0 > /proc/sys/kernel/stack_tracer_enabled
+
+echo '*lock*' > stack_trace_filter
+test `cat stack_trace_filter | wc -l` -eq `grep lock stack_trace_filter | wc -l`
+
+echo 0 > stack_max_size
+echo 1 > /proc/sys/kernel/stack_tracer_enabled
+
+: "Fork and always the first entry including lock"
+timeout=10
+while [ $timeout -ne 0 ]; do
+  ( echo "forked" )
+  FL=`grep " 0)" stack_trace`
+  echo $FL | grep -q "lock"
+  timeout=$((timeout - 1))
+done
+echo 0 > /proc/sys/kernel/stack_tracer_enabled


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

* [PATCH v2 25/32] selftests/ftrace: Add function filter on module testcase
  2018-08-16 16:29 [PATCH v2 00/32] selftests/ftrace: Improve ftracetest with coverage check Masami Hiramatsu
                   ` (23 preceding siblings ...)
  2018-08-16 16:40 ` [PATCH v2 24/32] selftests/ftrace: Add max stack tracer testcase Masami Hiramatsu
@ 2018-08-16 16:40 ` Masami Hiramatsu
  2018-08-24 23:25   ` Steven Rostedt
  2018-08-16 16:41 ` [PATCH v2 26/32] selftests/ftrace: Add trace_pipe testcase Masami Hiramatsu
                   ` (6 subsequent siblings)
  31 siblings, 1 reply; 78+ messages in thread
From: Masami Hiramatsu @ 2018-08-16 16:40 UTC (permalink / raw)
  To: Shuah Khan, Steven Rostedt
  Cc: Ingo Molnar, Masami Hiramatsu, linux-kselftest, linux-kernel

Add a testcase for function filter on module.

Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
---
 .../ftrace/test.d/ftrace/func_mod_trace.tc         |   24 ++++++++++++++++++++
 1 file changed, 24 insertions(+)
 create mode 100644 tools/testing/selftests/ftrace/test.d/ftrace/func_mod_trace.tc

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
new file mode 100644
index 000000000000..359380c3834f
--- /dev/null
+++ b/tools/testing/selftests/ftrace/test.d/ftrace/func_mod_trace.tc
@@ -0,0 +1,24 @@
+#!/bin/sh
+# SPDX-License-Identifier: GPL-2.0
+# description: ftrace - function trace on module
+
+[ ! -f set_ftrace_filter ] && exit_unsupported
+
+: "mod: allows to filter a non exist function"
+echo 'non_exist_func:mod:non_exist_module' > set_ftrace_filter
+grep -q "non_exist_func" set_ftrace_filter
+
+: "mod: on exist module"
+echo '*:mod:trace_printk' > set_ftrace_filter
+if ! modprobe trace-printk.ko ; then
+  echo "No trace-printk sample module - please make CONFIG_SAMPLE_TRACE_PRINTK=
+m"
+  exit_unresolved;
+fi
+
+: "Wildcard should be resolved after loading module"
+grep -q "trace_printk_irq_work" set_ftrace_filter
+
+: "After removing the filter becomes empty"
+rmmod trace_printk
+test `cat set_ftrace_filter | wc -l` -eq 0


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

* [PATCH v2 26/32] selftests/ftrace: Add trace_pipe testcase
  2018-08-16 16:29 [PATCH v2 00/32] selftests/ftrace: Improve ftracetest with coverage check Masami Hiramatsu
                   ` (24 preceding siblings ...)
  2018-08-16 16:40 ` [PATCH v2 25/32] selftests/ftrace: Add function filter on module testcase Masami Hiramatsu
@ 2018-08-16 16:41 ` Masami Hiramatsu
  2018-08-24 23:26   ` Steven Rostedt
  2018-08-16 16:41 ` [PATCH v2 27/32] selftests/ftrace: Add stacktrace ftrace filter command testcase Masami Hiramatsu
                   ` (5 subsequent siblings)
  31 siblings, 1 reply; 78+ messages in thread
From: Masami Hiramatsu @ 2018-08-16 16:41 UTC (permalink / raw)
  To: Shuah Khan, Steven Rostedt
  Cc: Ingo Molnar, Masami Hiramatsu, linux-kselftest, linux-kernel

Add a simple testcase for trace_pipe which can consume
ringbuffer.

Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
---
 .../selftests/ftrace/test.d/00basic/trace_pipe.tc  |   15 +++++++++++++++
 1 file changed, 15 insertions(+)
 create mode 100644 tools/testing/selftests/ftrace/test.d/00basic/trace_pipe.tc

diff --git a/tools/testing/selftests/ftrace/test.d/00basic/trace_pipe.tc b/tools/testing/selftests/ftrace/test.d/00basic/trace_pipe.tc
new file mode 100644
index 000000000000..a7dd6fda487a
--- /dev/null
+++ b/tools/testing/selftests/ftrace/test.d/00basic/trace_pipe.tc
@@ -0,0 +1,15 @@
+#!/bin/sh
+# SPDX-License-Identifier: GPL-2.0
+# description: trace_pipe and trace_marker
+
+[ ! -f trace_marker ] && exit_unsupported
+
+echo "test input 1" > trace_marker
+
+: "trace interface never consume the ring buffer"
+grep -q "test input 1" trace
+grep -q "test input 1" trace
+
+: "trace interface never consume the ring buffer"
+head -n 1 trace_pipe | grep -q "test input 1"
+! grep -q "test input 1" trace


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

* [PATCH v2 27/32] selftests/ftrace: Add stacktrace ftrace filter command testcase
  2018-08-16 16:29 [PATCH v2 00/32] selftests/ftrace: Improve ftracetest with coverage check Masami Hiramatsu
                   ` (25 preceding siblings ...)
  2018-08-16 16:41 ` [PATCH v2 26/32] selftests/ftrace: Add trace_pipe testcase Masami Hiramatsu
@ 2018-08-16 16:41 ` Masami Hiramatsu
  2018-08-24 23:28   ` Steven Rostedt
  2018-08-16 16:42 ` [PATCH v2 28/32] selftests/ftrace: Add wakeup tracer testcase Masami Hiramatsu
                   ` (4 subsequent siblings)
  31 siblings, 1 reply; 78+ messages in thread
From: Masami Hiramatsu @ 2018-08-16 16:41 UTC (permalink / raw)
  To: Shuah Khan, Steven Rostedt
  Cc: Ingo Molnar, Masami Hiramatsu, linux-kselftest, linux-kernel

Add a test case for stacktrace filter command for ftrace.

Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
---
 .../ftrace/test.d/ftrace/func-filter-stacktrace.tc |   12 ++++++++++++
 1 file changed, 12 insertions(+)
 create mode 100644 tools/testing/selftests/ftrace/test.d/ftrace/func-filter-stacktrace.tc

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
new file mode 100644
index 000000000000..ec0d8216d509
--- /dev/null
+++ b/tools/testing/selftests/ftrace/test.d/ftrace/func-filter-stacktrace.tc
@@ -0,0 +1,12 @@
+#!/bin/sh
+# SPDX-License-Identifier: GPL2.0
+# description: ftrace - stacktrace filter command
+
+echo _do_fork:stacktrace >> set_ftrace_filter
+
+grep -q "_do_fork:stacktrace:unlimited" set_ftrace_filter
+
+(echo "forked"; sleep 1)
+
+grep -q "<stack trace>" trace
+


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

* [PATCH v2 28/32] selftests/ftrace: Add wakeup tracer testcase
  2018-08-16 16:29 [PATCH v2 00/32] selftests/ftrace: Improve ftracetest with coverage check Masami Hiramatsu
                   ` (26 preceding siblings ...)
  2018-08-16 16:41 ` [PATCH v2 27/32] selftests/ftrace: Add stacktrace ftrace filter command testcase Masami Hiramatsu
@ 2018-08-16 16:42 ` Masami Hiramatsu
  2018-08-16 16:42 ` [PATCH v2 29/32] selftests/ftrace: Add wakeup_rt " Masami Hiramatsu
                   ` (3 subsequent siblings)
  31 siblings, 0 replies; 78+ messages in thread
From: Masami Hiramatsu @ 2018-08-16 16:42 UTC (permalink / raw)
  To: Shuah Khan, Steven Rostedt
  Cc: Ingo Molnar, Masami Hiramatsu, linux-kselftest, linux-kernel

Add a testcase for wakeup tracer.

Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
---
 tools/testing/selftests/ftrace/config              |    1 +
 .../selftests/ftrace/test.d/tracer/wakeup.tc       |   25 ++++++++++++++++++++
 2 files changed, 26 insertions(+)
 create mode 100644 tools/testing/selftests/ftrace/test.d/tracer/wakeup.tc

diff --git a/tools/testing/selftests/ftrace/config b/tools/testing/selftests/ftrace/config
index b7ac74fcb0fa..c2c8de4fafff 100644
--- a/tools/testing/selftests/ftrace/config
+++ b/tools/testing/selftests/ftrace/config
@@ -4,6 +4,7 @@ CONFIG_FUNCTION_PROFILER=y
 CONFIG_TRACER_SNAPSHOT=y
 CONFIG_STACK_TRACER=y
 CONFIG_HIST_TRIGGERS=y
+CONFIG_SCHED_TRACER=y
 CONFIG_PREEMPT_TRACER=y
 CONFIG_IRQSOFF_TRACER=y
 CONFIG_PREEMPTIRQ_DELAY_TEST=m
diff --git a/tools/testing/selftests/ftrace/test.d/tracer/wakeup.tc b/tools/testing/selftests/ftrace/test.d/tracer/wakeup.tc
new file mode 100644
index 000000000000..e3005fa785f0
--- /dev/null
+++ b/tools/testing/selftests/ftrace/test.d/tracer/wakeup.tc
@@ -0,0 +1,25 @@
+#!/bin/sh
+# SPDX-License-Identifier: GPL2.0
+# description: Test wakeup tracer
+
+if ! which chrt ; then
+  echo "chrt is not found. This test requires nice command."
+  exit_unresolved
+fi
+
+if ! grep -wq "wakeup" available_tracers ; then
+  echo "wakeup tracer is not supported"
+  exit_unsupported
+fi
+
+echo wakeup > current_tracer
+echo 1 > tracing_on
+echo 0 > tracing_max_latency
+
+: "Wakeup higher priority task"
+chrt -f 5 sleep 1
+
+echo 0 > tracing_on
+grep '+ \[[[:digit:]]*\]' trace
+grep '==> \[[[:digit:]]*\]' trace
+


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

* [PATCH v2 29/32] selftests/ftrace: Add wakeup_rt tracer testcase
  2018-08-16 16:29 [PATCH v2 00/32] selftests/ftrace: Improve ftracetest with coverage check Masami Hiramatsu
                   ` (27 preceding siblings ...)
  2018-08-16 16:42 ` [PATCH v2 28/32] selftests/ftrace: Add wakeup tracer testcase Masami Hiramatsu
@ 2018-08-16 16:42 ` Masami Hiramatsu
  2018-08-25  2:09   ` Steven Rostedt
  2018-08-16 16:43 ` [PATCH v2 30/32] selftests/ftrace: Add ftrace cpumask testcase Masami Hiramatsu
                   ` (2 subsequent siblings)
  31 siblings, 1 reply; 78+ messages in thread
From: Masami Hiramatsu @ 2018-08-16 16:42 UTC (permalink / raw)
  To: Shuah Khan, Steven Rostedt
  Cc: Ingo Molnar, Masami Hiramatsu, linux-kselftest, linux-kernel

Add a testcase for wakeup_rt tracer. This requires chrt
command to test.

Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
---
 .../selftests/ftrace/test.d/tracer/wakeup_rt.tc    |   25 ++++++++++++++++++++
 1 file changed, 25 insertions(+)
 create mode 100644 tools/testing/selftests/ftrace/test.d/tracer/wakeup_rt.tc

diff --git a/tools/testing/selftests/ftrace/test.d/tracer/wakeup_rt.tc b/tools/testing/selftests/ftrace/test.d/tracer/wakeup_rt.tc
new file mode 100644
index 000000000000..3f279072ec2d
--- /dev/null
+++ b/tools/testing/selftests/ftrace/test.d/tracer/wakeup_rt.tc
@@ -0,0 +1,25 @@
+#!/bin/sh
+# SPDX-License-Identifier: GPL2.0
+# description: Test wakeup RT tracer
+
+if ! which nice ; then
+  echo "chrt is not found. This test requires chrt command."
+  exit_unresolved
+fi
+
+if ! grep -wq "wakeup_rt" available_tracers ; then
+  echo "wakeup_rt tracer is not supported"
+  exit_unsupported
+fi
+
+echo wakeup > current_tracer
+echo 1 > tracing_on
+echo 0 > tracing_max_latency
+
+: "Wakeup a realtime task"
+chrt -f 5 sleep 1
+
+echo 0 > tracing_on
+grep "+ \[[[:digit:]]*\]" trace
+grep "==> \[[[:digit:]]*\]" trace
+


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

* [PATCH v2 30/32] selftests/ftrace: Add ftrace cpumask testcase
  2018-08-16 16:29 [PATCH v2 00/32] selftests/ftrace: Improve ftracetest with coverage check Masami Hiramatsu
                   ` (28 preceding siblings ...)
  2018-08-16 16:42 ` [PATCH v2 29/32] selftests/ftrace: Add wakeup_rt " Masami Hiramatsu
@ 2018-08-16 16:43 ` Masami Hiramatsu
  2018-08-25  2:18   ` Steven Rostedt
  2018-08-16 16:43 ` [PATCH v2 31/32] selftests/ftrace: Add output format testcase Masami Hiramatsu
  2018-08-16 16:44 ` [PATCH v2 32/32] selftests/ftrace: Add blktrace testcase Masami Hiramatsu
  31 siblings, 1 reply; 78+ messages in thread
From: Masami Hiramatsu @ 2018-08-16 16:43 UTC (permalink / raw)
  To: Shuah Khan, Steven Rostedt
  Cc: Ingo Molnar, Masami Hiramatsu, linux-kselftest, linux-kernel

Add a testcase for tracing_cpumask with function tracer.

Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
---
 .../selftests/ftrace/test.d/ftrace/func_cpumask.tc |   34 ++++++++++++++++++++
 1 file changed, 34 insertions(+)
 create mode 100644 tools/testing/selftests/ftrace/test.d/ftrace/func_cpumask.tc

diff --git a/tools/testing/selftests/ftrace/test.d/ftrace/func_cpumask.tc b/tools/testing/selftests/ftrace/test.d/ftrace/func_cpumask.tc
new file mode 100644
index 000000000000..37420e355445
--- /dev/null
+++ b/tools/testing/selftests/ftrace/test.d/ftrace/func_cpumask.tc
@@ -0,0 +1,34 @@
+#!/bin/sh
+# SPDX-License-Identifier: GPL2.0
+# description: ftrace - function trace with cpumask
+
+NP=`grep "^processor" /proc/cpuinfo | wc -l`
+
+if [ $NP -eq 1 ] ;then
+  echo "We can not test cpumask on UP environment"
+  exit_unresolved
+fi
+
+do_reset() {
+  echo ffff > tracing_cpumask
+}
+
+echo 0 > tracing_on
+echo > trace
+: "Bitmask only record on CPU1"
+echo 2 > tracing_cpumask
+MASK=0x`cat tracing_cpumask`
+test `printf "%d" $MASK` -eq 2 || do_reset
+
+echo function > current_tracer
+echo 1 > tracing_on
+(echo "forked")
+echo 0 > tracing_on
+
+: "Check CPU1 events are recorded"
+grep -q -e "\[001\]" trace || do_reset
+
+: "There should be No other cpu events"
+! grep -qv -e "\[001\]" -e "^#" trace || do_reset
+
+do_reset


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

* [PATCH v2 31/32] selftests/ftrace: Add output format testcase
  2018-08-16 16:29 [PATCH v2 00/32] selftests/ftrace: Improve ftracetest with coverage check Masami Hiramatsu
                   ` (29 preceding siblings ...)
  2018-08-16 16:43 ` [PATCH v2 30/32] selftests/ftrace: Add ftrace cpumask testcase Masami Hiramatsu
@ 2018-08-16 16:43 ` Masami Hiramatsu
  2018-08-25  2:19   ` Steven Rostedt
  2018-08-16 16:44 ` [PATCH v2 32/32] selftests/ftrace: Add blktrace testcase Masami Hiramatsu
  31 siblings, 1 reply; 78+ messages in thread
From: Masami Hiramatsu @ 2018-08-16 16:43 UTC (permalink / raw)
  To: Shuah Khan, Steven Rostedt
  Cc: Ingo Molnar, Masami Hiramatsu, linux-kselftest, linux-kernel

Add a testcase for tracing output format using trace_marker.
This tests raw, hex and bin format output.

Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
---
 .../ftrace/test.d/00basic/print_format.tc          |   51 ++++++++++++++++++++
 1 file changed, 51 insertions(+)
 create mode 100644 tools/testing/selftests/ftrace/test.d/00basic/print_format.tc

diff --git a/tools/testing/selftests/ftrace/test.d/00basic/print_format.tc b/tools/testing/selftests/ftrace/test.d/00basic/print_format.tc
new file mode 100644
index 000000000000..55feb542e83e
--- /dev/null
+++ b/tools/testing/selftests/ftrace/test.d/00basic/print_format.tc
@@ -0,0 +1,51 @@
+#!/bin/sh
+# SPDX-License-Identifier: GPL2.0
+# description: Change print trace format
+
+if [ ! -f trace_marker ]; then
+  echo "trace_marker is not supported, can not continue testing"
+  exit_unresolved
+fi
+
+do_reset() {
+  if [ `cat options/bin` -eq 1 ]; then
+    grep -v "^#" trace | od -h | cut -f 2- -d " " | xargs echo
+  fi
+  echo 0 > options/hex
+  echo 0 > options/raw
+  echo 0 > options/bin
+  cat trace
+  exit 1
+}
+
+echo > trace
+echo "abcdefgh" > trace_marker
+echo 0 > tracing_on
+
+: "Get the pid and cpu#"
+IDS=`grep -v "^#" trace | sed -e 's/[[:space:]]*.*-\([[:digit:]]*\)[[:space:]]*\[\([[:digit:]]*\)\].*/\1 \2/'`
+
+read_pid_cpu() {
+  _PID=$1
+  _CPU=`printf "%d" $2`
+}
+
+read_pid_cpu $IDS
+
+: "Test raw output format"
+echo 1 > options/raw
+grep -v "^#" trace | grep "^$_PID $_CPU" || do_reset
+echo 0 > options/raw
+
+: "Test hex output format"
+echo 1 > options/hex
+PAT=`printf "%08x %08x" $_PID $_CPU`
+grep -v "^#" trace | grep "^$PAT" || do_reset
+echo 0 > options/hex
+
+: "Test bin output format"
+echo 1 > options/bin
+PAT=`printf "%04x [[:xdigit:]]* [[:xdigit:]]*%02x" $_PID $_CPU`
+# Make a stream of hexdump
+grep -v "^#" trace | od -h | cut -f 2- -d " " | xargs echo | grep "$PAT" || do_reset
+echo 0 > options/bin


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

* [PATCH v2 32/32] selftests/ftrace: Add blktrace testcase
  2018-08-16 16:29 [PATCH v2 00/32] selftests/ftrace: Improve ftracetest with coverage check Masami Hiramatsu
                   ` (30 preceding siblings ...)
  2018-08-16 16:43 ` [PATCH v2 31/32] selftests/ftrace: Add output format testcase Masami Hiramatsu
@ 2018-08-16 16:44 ` Masami Hiramatsu
  2018-08-25  2:22   ` Steven Rostedt
  31 siblings, 1 reply; 78+ messages in thread
From: Masami Hiramatsu @ 2018-08-16 16:44 UTC (permalink / raw)
  To: Shuah Khan, Steven Rostedt
  Cc: Ingo Molnar, Masami Hiramatsu, linux-kselftest, linux-kernel

Add a basic testcase for blktrace. For making it portable,
this test uses a loop device.

Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
---
 tools/testing/selftests/ftrace/config              |    1 
 .../testing/selftests/ftrace/test.d/tracer/blk.tc  |   91 ++++++++++++++++++++
 2 files changed, 92 insertions(+)
 create mode 100644 tools/testing/selftests/ftrace/test.d/tracer/blk.tc

diff --git a/tools/testing/selftests/ftrace/config b/tools/testing/selftests/ftrace/config
index c2c8de4fafff..d999032442e1 100644
--- a/tools/testing/selftests/ftrace/config
+++ b/tools/testing/selftests/ftrace/config
@@ -5,6 +5,7 @@ CONFIG_TRACER_SNAPSHOT=y
 CONFIG_STACK_TRACER=y
 CONFIG_HIST_TRIGGERS=y
 CONFIG_SCHED_TRACER=y
+CONFIG_BLK_DEV_IO_TRACE=y
 CONFIG_PREEMPT_TRACER=y
 CONFIG_IRQSOFF_TRACER=y
 CONFIG_PREEMPTIRQ_DELAY_TEST=m
diff --git a/tools/testing/selftests/ftrace/test.d/tracer/blk.tc b/tools/testing/selftests/ftrace/test.d/tracer/blk.tc
new file mode 100644
index 000000000000..9d6e72810c8a
--- /dev/null
+++ b/tools/testing/selftests/ftrace/test.d/tracer/blk.tc
@@ -0,0 +1,91 @@
+#!/bin/sh
+# SPDX-License-Identifier: GPL2.0
+# description: Test blktrace
+
+IMG=$TMPDIR/fs.img
+MNTDIR=$TMPDIR/mnt
+
+if ! grep -wq "blk" available_tracers ; then
+  echo "blktrace is not supported"
+  exit_unsupported
+fi
+
+available_fs() { #fstype
+  grep -q $1 /proc/filesystems && which mkfs.$1
+}
+
+if available_fs ext3; then
+  FSTYPE=ext3
+elif available_fs ext4; then
+  FSTYPE=ext4
+elif available_fs ext2; then
+  FSTYPE=ext2
+elif available_fs xfs; then
+  FSTYPE=xfs
+elif available_fs btrfs; then
+  FSTYPE=btrfs
+else
+  echo "No available block-based filesystems"
+  exit_unresolved
+fi
+
+if ! which losetup; then
+  echo "No losetup found"
+  exit_unresolved
+fi
+LODEV=`losetup -f`
+LODEVTRACE=/sys/block/`basename $LODEV`/trace
+
+do_cleanup() {
+  if [ -d $MNTDIR ]; then
+   umount $MNTDIR ||:
+  fi
+  losetup -d $LODEV ||:
+  rm -f $IMG
+}
+
+# workload failure is not a tracer's failure
+workload_fail() {
+  do_cleanup
+  echo "Failed to run workload"
+  exit_unresolved
+}
+
+do_fail() {
+  do_cleanup
+  echo "Test failed"
+  exit 1
+}
+
+enable_lodevtrace() {
+  if [ `cat $LODEVTRACE/enable` -ne 1 ]; then
+    echo 1 > $LODEVTRACE/enable
+  fi
+}
+
+echo blk > current_tracer
+
+dd if=/dev/zero of=$IMG bs=1M count=10 &&\
+losetup $LODEV $IMG &&\
+mkfs.$FSTYPE $LODEV &&\
+mkdir -p $MNTDIR &&\
+mount -t $FSTYPE $LODEV $MNTDIR &&\
+enable_lodevtrace &&\
+dd if=/dev/urandom of=$MNTDIR/testfile bs=1M count=1 &&\
+sync &&\
+umount $MNTDIR || workload_fail
+
+grep -q "[dd]" trace || do_fail
+grep -q "[umount]" trace || do_fail
+echo > trace
+
+losetup $LODEV $IMG &&\
+mount -t $FSTYPE $LODEV $MNTDIR &&\
+cat $MNTDIR/testfile > /dev/null &&\
+echo 0 > $LODEVTRACE/enable &&\
+umount $MNTDIR || workload_fail
+
+grep -q "[cat]" trace || do_fail
+grep -q "[mount]" trace || do_fail
+
+do_cleanup


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

* Re: [PATCH v2 01/32] tracing: Allow gcov profiling on only ftrace subsystem
  2018-08-16 16:29 ` [PATCH v2 01/32] tracing: Allow gcov profiling on only ftrace subsystem Masami Hiramatsu
@ 2018-08-20 15:32   ` Steven Rostedt
  2018-08-20 15:33     ` Steven Rostedt
  0 siblings, 1 reply; 78+ messages in thread
From: Steven Rostedt @ 2018-08-20 15:32 UTC (permalink / raw)
  To: Masami Hiramatsu; +Cc: Shuah Khan, Ingo Molnar, linux-kselftest, linux-kernel

On Fri, 17 Aug 2018 01:29:39 +0900
Masami Hiramatsu <mhiramat@kernel.org> wrote:

> Add GCOV_PROFILE_FTRACE to allow gcov profiling
> on only files in ftrace subsystem. This kconfig
> flag will be used for checking kselftest/ftrace

Note, I haven't heard of "kconfig flag" as the terminology. Usually, we
just say "config" or "config option".

> coverage.
> 
> Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
> ---
>  kernel/trace/Kconfig  |   13 +++++++++++++
>  kernel/trace/Makefile |    5 +++++
>  2 files changed, 18 insertions(+)
> 
> diff --git a/kernel/trace/Kconfig b/kernel/trace/Kconfig
> index fd6754b88f87..8decf6d8553a 100644
> --- a/kernel/trace/Kconfig
> +++ b/kernel/trace/Kconfig
> @@ -774,6 +774,19 @@ config TRACING_EVENTS_GPIO
>  	help
>  	  Enable tracing events for gpio subsystem
>  
> +config GCOV_PROFILE_FTRACE
> +	bool "Enable GCOV profiling on ftrace subsystem"
> +	depends on GCOV_KERNEL
> +	help
> +	  Enable GCOV profiling on ftrace subsystem for checking
> +	  which functions/lines are tested.
> +
> +	  If unsure, say N.
> +
> +	  Note that on a kernel compiled with this flags, ftrace will be
> +	  significantly run slower. So do not enable it for production
> +	  kernel.


I would rewrite the above as:

	Note that on a kernel compiled with this config, ftrace will
	run significantly slower.

I think we can leave out the production sentence. It should be obvious
from the "significantly slower" part.

Other than that, it looks fine to me.

-- Steve

> +
>  endif # FTRACE
>  
>  endif # TRACING_SUPPORT
> diff --git a/kernel/trace/Makefile b/kernel/trace/Makefile
> index 98d53b39a8ee..f81dadbc7c4a 100644
> --- a/kernel/trace/Makefile
> +++ b/kernel/trace/Makefile
> @@ -23,6 +23,11 @@ ifdef CONFIG_TRACING_BRANCHES
>  KBUILD_CFLAGS += -DDISABLE_BRANCH_PROFILING
>  endif
>  
> +# for GCOV coverage profiling
> +ifdef CONFIG_GCOV_PROFILE_FTRACE
> +GCOV_PROFILE := y
> +endif
> +
>  CFLAGS_trace_benchmark.o := -I$(src)
>  CFLAGS_trace_events_filter.o := -I$(src)
>  


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

* Re: [PATCH v2 01/32] tracing: Allow gcov profiling on only ftrace subsystem
  2018-08-20 15:32   ` Steven Rostedt
@ 2018-08-20 15:33     ` Steven Rostedt
  2018-08-21  6:53       ` Masami Hiramatsu
  2018-08-21  7:27       ` [PATCH v2.1] " Masami Hiramatsu
  0 siblings, 2 replies; 78+ messages in thread
From: Steven Rostedt @ 2018-08-20 15:33 UTC (permalink / raw)
  To: Masami Hiramatsu; +Cc: Shuah Khan, Ingo Molnar, linux-kselftest, linux-kernel

On Mon, 20 Aug 2018 11:32:13 -0400
Steven Rostedt <rostedt@goodmis.org> wrote:

> Other than that, it looks fine to me.

This patch also seems out of place for the series. Want to resend it
separately, and I'll apply it?

Thanks!

-- Steve

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

* Re: [PATCH v2 01/32] tracing: Allow gcov profiling on only ftrace subsystem
  2018-08-20 15:33     ` Steven Rostedt
@ 2018-08-21  6:53       ` Masami Hiramatsu
  2018-08-21  7:27       ` [PATCH v2.1] " Masami Hiramatsu
  1 sibling, 0 replies; 78+ messages in thread
From: Masami Hiramatsu @ 2018-08-21  6:53 UTC (permalink / raw)
  To: Steven Rostedt; +Cc: Shuah Khan, Ingo Molnar, linux-kselftest, linux-kernel

Hi Steve,

On Mon, 20 Aug 2018 11:33:49 -0400
Steven Rostedt <rostedt@goodmis.org> wrote:

> On Mon, 20 Aug 2018 11:32:13 -0400
> Steven Rostedt <rostedt@goodmis.org> wrote:
> 
> > Other than that, it looks fine to me.
> 
> This patch also seems out of place for the series.

Yes, this one is the patch for ftrace, not ftracetest.

> Want to resend it
> separately, and I'll apply it?

OK, I'll fix "config" and resend it :)

Thank you,

-- 
Masami Hiramatsu <mhiramat@kernel.org>

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

* [PATCH v2.1] tracing: Allow gcov profiling on only ftrace subsystem
  2018-08-20 15:33     ` Steven Rostedt
  2018-08-21  6:53       ` Masami Hiramatsu
@ 2018-08-21  7:27       ` Masami Hiramatsu
  2018-08-21 13:12         ` Steven Rostedt
  1 sibling, 1 reply; 78+ messages in thread
From: Masami Hiramatsu @ 2018-08-21  7:27 UTC (permalink / raw)
  To: Steven Rostedt; +Cc: Ingo Molnar, Masami Hiramatsu, Shuah Khan, linux-kernel

Add GCOV_PROFILE_FTRACE to allow gcov profiling
on only files in ftrace subsystem. This config
option will be used for checking kselftest/ftrace
coverage.

Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
---
 Changes in v2.1:
  - Fix description according to Steve's comment.
---
 kernel/trace/Kconfig  |   12 ++++++++++++
 kernel/trace/Makefile |    5 +++++
 2 files changed, 17 insertions(+)

diff --git a/kernel/trace/Kconfig b/kernel/trace/Kconfig
index fd6754b88f87..aec44d838283 100644
--- a/kernel/trace/Kconfig
+++ b/kernel/trace/Kconfig
@@ -774,6 +774,18 @@ config TRACING_EVENTS_GPIO
 	help
 	  Enable tracing events for gpio subsystem
 
+config GCOV_PROFILE_FTRACE
+	bool "Enable GCOV profiling on ftrace subsystem"
+	depends on GCOV_KERNEL
+	help
+	  Enable GCOV profiling on ftrace subsystem for checking
+	  which functions/lines are tested.
+
+	  If unsure, say N.
+
+	  Note that on a kernel compiled with this config, ftrace will
+	  run significantly slower.
+
 endif # FTRACE
 
 endif # TRACING_SUPPORT
diff --git a/kernel/trace/Makefile b/kernel/trace/Makefile
index 98d53b39a8ee..f81dadbc7c4a 100644
--- a/kernel/trace/Makefile
+++ b/kernel/trace/Makefile
@@ -23,6 +23,11 @@ ifdef CONFIG_TRACING_BRANCHES
 KBUILD_CFLAGS += -DDISABLE_BRANCH_PROFILING
 endif
 
+# for GCOV coverage profiling
+ifdef CONFIG_GCOV_PROFILE_FTRACE
+GCOV_PROFILE := y
+endif
+
 CFLAGS_trace_benchmark.o := -I$(src)
 CFLAGS_trace_events_filter.o := -I$(src)
 


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

* Re: [PATCH v2.1] tracing: Allow gcov profiling on only ftrace subsystem
  2018-08-21  7:27       ` [PATCH v2.1] " Masami Hiramatsu
@ 2018-08-21 13:12         ` Steven Rostedt
  0 siblings, 0 replies; 78+ messages in thread
From: Steven Rostedt @ 2018-08-21 13:12 UTC (permalink / raw)
  To: Masami Hiramatsu; +Cc: Ingo Molnar, Shuah Khan, linux-kernel

On Tue, 21 Aug 2018 16:27:58 +0900
Masami Hiramatsu <mhiramat@kernel.org> wrote:

> Add GCOV_PROFILE_FTRACE to allow gcov profiling
> on only files in ftrace subsystem. This config
> option will be used for checking kselftest/ftrace
> coverage.
> 
> Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
> ---

Applied. Thanks Masami!

-- Steve

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

* Re: [PATCH v2 03/32] selftests/ftrace: Add --console hidden option
  2018-08-16 16:30 ` [PATCH v2 03/32] selftests/ftrace: Add --console hidden option Masami Hiramatsu
@ 2018-08-24 20:37   ` Steven Rostedt
  2018-08-25  1:35     ` Masami Hiramatsu
  0 siblings, 1 reply; 78+ messages in thread
From: Steven Rostedt @ 2018-08-24 20:37 UTC (permalink / raw)
  To: Masami Hiramatsu; +Cc: Shuah Khan, Ingo Molnar, linux-kselftest, linux-kernel

On Fri, 17 Aug 2018 01:30:36 +0900
Masami Hiramatsu <mhiramat@kernel.org> wrote:

> Add --console hidden option for debug test cases.
> This option allows to put "sh" or something else
> when the test case hits a bug.

Can you add more information to why and how this would be used.

-- Steve

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

* Re: [PATCH v2 02/32] selftests/ftrace: Add --stop-fail hidden option for debug
  2018-08-16 16:30 ` [PATCH v2 02/32] selftests/ftrace: Add --stop-fail hidden option for debug Masami Hiramatsu
@ 2018-08-24 20:38   ` Steven Rostedt
  0 siblings, 0 replies; 78+ messages in thread
From: Steven Rostedt @ 2018-08-24 20:38 UTC (permalink / raw)
  To: Masami Hiramatsu; +Cc: Shuah Khan, Ingo Molnar, linux-kselftest, linux-kernel

On Fri, 17 Aug 2018 01:30:08 +0900
Masami Hiramatsu <mhiramat@kernel.org> wrote:

> Add --stop-fail option for debugging the ftracetest.
> 

Acked-by: Steven Rostedt (VMware) <rostedt@goodmis.org>

-- Steve

> Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
> ---
>  tools/testing/selftests/ftrace/ftracetest |   13 +++++++++++++
>  1 file changed, 13 insertions(+)
> 
> diff --git a/tools/testing/selftests/ftrace/ftracetest b/tools/testing/selftests/ftrace/ftracetest
> index f9a9d424c980..c9c7fa8dc440 100755
> --- a/tools/testing/selftests/ftrace/ftracetest
> +++ b/tools/testing/selftests/ftrace/ftracetest
> @@ -69,6 +69,10 @@ parse_opts() { # opts

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

* Re: [PATCH v2 05/32] selftests/ftrace: More initialize features in initialize_ftrace
  2018-08-16 16:31 ` [PATCH v2 05/32] selftests/ftrace: More initialize features in initialize_ftrace Masami Hiramatsu
@ 2018-08-24 21:24   ` Steven Rostedt
  2018-08-24 21:46   ` Steven Rostedt
  1 sibling, 0 replies; 78+ messages in thread
From: Steven Rostedt @ 2018-08-24 21:24 UTC (permalink / raw)
  To: Masami Hiramatsu; +Cc: Shuah Khan, Ingo Molnar, linux-kselftest, linux-kernel

On Fri, 17 Aug 2018 01:31:33 +0900
Masami Hiramatsu <mhiramat@kernel.org> wrote:

> Clear pid filter, synthetic_events, snapshots,
> ftrace filter, and trace log in initialize_ftrace(),
> since those are used in test cases.
> 
> Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>

Acked-by: Steven Rostedt (VMware) <rostedt@goodmis.org>

-- Steve

> ---
>   Changes in v2:
>    - Add reset_ftrace_filter
> ---
>  tools/testing/selftests/ftrace/test.d/functions |    5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/tools/testing/selftests/ftrace/test.d/functions b/tools/testing/selftests/ftrace/test.d/functions
> index e4645d5e3126..b2bfa4dd43f7 100644
> --- a/tools/testing/selftests/ftrace/test.d/functions
> +++ b/tools/testing/selftests/ftrace/test.d/functions
> @@ -89,12 +89,17 @@ initialize_ftrace() { # Reset ftrace to initial-state
>      reset_tracer
>      reset_trigger
>      reset_events_filter
> +    reset_ftrace_filter
>      disable_events
>      echo > set_event_pid	# event tracer is always on
> +    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
>      [ -f uprobe_events ] && echo > uprobe_events
> +    [ -f synthetic_events ] && echo > synthetic_events
> +    [ -f snapshot ] && echo 0 > snapshot
> +    clear_trace
>      enable_tracing
>  }


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

* Re: [PATCH v2 05/32] selftests/ftrace: More initialize features in initialize_ftrace
  2018-08-16 16:31 ` [PATCH v2 05/32] selftests/ftrace: More initialize features in initialize_ftrace Masami Hiramatsu
  2018-08-24 21:24   ` Steven Rostedt
@ 2018-08-24 21:46   ` Steven Rostedt
  2018-08-24 21:46     ` Steven Rostedt
  1 sibling, 1 reply; 78+ messages in thread
From: Steven Rostedt @ 2018-08-24 21:46 UTC (permalink / raw)
  To: Masami Hiramatsu; +Cc: Shuah Khan, Ingo Molnar, linux-kselftest, linux-kernel

On Fri, 17 Aug 2018 01:31:33 +0900
Masami Hiramatsu <mhiramat@kernel.org> wrote:

> Clear pid filter, synthetic_events, snapshots,
> ftrace filter, and trace log in initialize_ftrace(),
> since those are used in test cases.
> 
> Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>

Acked-by: Steven Rostedt (VMware) <rostedt@goodmis.org>

-- Steve

> ---
>   Changes in v2:
>    - Add reset_ftrace_filter
> ---
>  tools/testing/selftests/ftrace/test.d/functions |    5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/tools/testing/selftests/ftrace/test.d/functions b/tools/testing/selftests/ftrace/test.d/functions
> index e4645d5e3126..b2bfa4dd43f7 100644
> --- a/tools/testing/selftests/ftrace/test.d/functions
> +++ b/tools/testing/selftests/ftrace/test.d/functions
> @@ -89,12 +89,17 @@ initialize_ftrace() { # Reset ftrace to initial-state
>      reset_tracer
>      reset_trigger
>      reset_events_filter
> +    reset_ftrace_filter
>      disable_events
>      echo > set_event_pid	# event tracer is always on
> +    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
>      [ -f uprobe_events ] && echo > uprobe_events
> +    [ -f synthetic_events ] && echo > synthetic_events
> +    [ -f snapshot ] && echo 0 > snapshot
> +    clear_trace
>      enable_tracing
>  }


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

* Re: [PATCH v2 05/32] selftests/ftrace: More initialize features in initialize_ftrace
  2018-08-24 21:46   ` Steven Rostedt
@ 2018-08-24 21:46     ` Steven Rostedt
  0 siblings, 0 replies; 78+ messages in thread
From: Steven Rostedt @ 2018-08-24 21:46 UTC (permalink / raw)
  To: Masami Hiramatsu; +Cc: Shuah Khan, Ingo Molnar, linux-kselftest, linux-kernel

On Fri, 24 Aug 2018 17:46:01 -0400
Steven Rostedt <rostedt@goodmis.org> wrote:

> On Fri, 17 Aug 2018 01:31:33 +0900
> Masami Hiramatsu <mhiramat@kernel.org> wrote:
> 
> > Clear pid filter, synthetic_events, snapshots,
> > ftrace filter, and trace log in initialize_ftrace(),
> > since those are used in test cases.
> > 
> > Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>  
> 
> Acked-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
> 

Bah, this was suppose to be for the previous patch (which I just got
done testing). I'll send out a separate ack for that.

-- Steve

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

* Re: [PATCH v2 04/32] selftests/ftrace: Add case number prefix to logfile
  2018-08-16 16:31 ` [PATCH v2 04/32] selftests/ftrace: Add case number prefix to logfile Masami Hiramatsu
@ 2018-08-24 21:47   ` Steven Rostedt
  0 siblings, 0 replies; 78+ messages in thread
From: Steven Rostedt @ 2018-08-24 21:47 UTC (permalink / raw)
  To: Masami Hiramatsu; +Cc: Shuah Khan, Ingo Molnar, linux-kselftest, linux-kernel

On Fri, 17 Aug 2018 01:31:05 +0900
Masami Hiramatsu <mhiramat@kernel.org> wrote:

> Add a case number prefix to each logfile. This makes
> it easier to find which logfile is corresponding
> to which failure.
> 
> Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>

Acked-by: Steven Rostedt (VMware) <rostedt@goodmis.org>


-- Steve

> ---
>  tools/testing/selftests/ftrace/ftracetest |    4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/tools/testing/selftests/ftrace/ftracetest b/tools/testing/selftests/ftrace/ftracetest
> index 8debd37038e4..3ca596255eff 100755
> --- a/tools/testing/selftests/ftrace/ftracetest
> +++ b/tools/testing/selftests/ftrace/ftracetest
> @@ -284,13 +284,13 @@ __run_test() { # testfile
>  # Run one test case
>  run_test() { # testfile
>    local testname=`basename $1`
> +  testcase $1
>    if [ ! -z "$LOG_FILE" ] ; then
> -    local testlog=`mktemp $LOG_DIR/${testname}-log.XXXXXX`
> +    local testlog=`mktemp $LOG_DIR/${CASENO}-${testname}-log.XXXXXX`
>    else
>      local testlog=/proc/self/fd/1
>    fi
>    export TMPDIR=`mktemp -d /tmp/ftracetest-dir.XXXXXX`
> -  testcase $1
>    echo "execute$INSTANCE: "$1 > $testlog
>    SIG_RESULT=0
>    if [ $VERBOSE -eq -1 ]; then


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

* Re: [PATCH v2 10/32] selftests/ftrace: Fix checkbashisms errors
  2018-08-16 16:33 ` [PATCH v2 10/32] selftests/ftrace: Fix checkbashisms errors Masami Hiramatsu
@ 2018-08-24 21:50   ` Steven Rostedt
  0 siblings, 0 replies; 78+ messages in thread
From: Steven Rostedt @ 2018-08-24 21:50 UTC (permalink / raw)
  To: Masami Hiramatsu; +Cc: Shuah Khan, Ingo Molnar, linux-kselftest, linux-kernel

On Fri, 17 Aug 2018 01:33:55 +0900
Masami Hiramatsu <mhiramat@kernel.org> wrote:

> Fix a test case to make checkbashisms clean.
> 
> Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
> ---
>  .../trigger/trigger-trace-marker-snapshot.tc       |    4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/tools/testing/selftests/ftrace/test.d/trigger/trigger-trace-marker-snapshot.tc b/tools/testing/selftests/ftrace/test.d/trigger/trigger-trace-marker-snapshot.tc
> index 79ce7d51350b..df246e505af7 100644
> --- a/tools/testing/selftests/ftrace/test.d/trigger/trigger-trace-marker-snapshot.tc
> +++ b/tools/testing/selftests/ftrace/test.d/trigger/trigger-trace-marker-snapshot.tc
> @@ -39,10 +39,10 @@ test_trace() {
>  	fi
>  	echo "testing $line for >$x<"
>  	match=`echo $line | sed -e "s/>$x<//"`
> -	if [ "$line" == "$match" ]; then
> +	if [ "$line" = "$match" ]; then
>  	    fail "$line does not have >$x< in it"
>  	fi
> -	let x=$x+2
> +	x=$((x+2))

I didn't realize "let" was a bashism. I've been using that on other
shells I believe. But whatever.

Acked-by: Steven Rostedt (VMware) <rostedt@goodmis.org>

-- Steve

>      done
>  }
>  


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

* Re: [PATCH v2 11/32] selftests/ftrace: Use loopback address instead of localhost
  2018-08-16 16:34 ` [PATCH v2 11/32] selftests/ftrace: Use loopback address instead of localhost Masami Hiramatsu
@ 2018-08-24 21:52   ` Steven Rostedt
  2018-08-25  1:47     ` Masami Hiramatsu
  0 siblings, 1 reply; 78+ messages in thread
From: Steven Rostedt @ 2018-08-24 21:52 UTC (permalink / raw)
  To: Masami Hiramatsu; +Cc: Shuah Khan, Ingo Molnar, linux-kselftest, linux-kernel

On Fri, 17 Aug 2018 01:34:23 +0900
Masami Hiramatsu <mhiramat@kernel.org> wrote:

> Use raw loopback address instead of localhost, because
> "localhost" can depend on nsswitch and in some case
> we can not resolve the localhost.
> 
> Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
> ---
>  .../selftests/ftrace/test.d/event/event-enable.tc  |    2 +-
>  .../selftests/ftrace/test.d/event/event-pid.tc     |    2 +-
>  .../ftrace/test.d/event/subsystem-enable.tc        |    2 +-
>  .../ftrace/test.d/event/toplevel-enable.tc         |    2 +-
>  .../ftrace/test.d/ftrace/func-filter-pid.tc        |    2 +-
>  .../inter-event/trigger-field-variable-support.tc  |    2 +-
>  .../trigger-inter-event-combined-hist.tc           |    2 +-
>  .../inter-event/trigger-onmatch-action-hist.tc     |    2 +-
>  .../trigger-onmatch-onmax-action-hist.tc           |    2 +-
>  .../inter-event/trigger-onmax-action-hist.tc       |    2 +-
>  10 files changed, 10 insertions(+), 10 deletions(-)
> 
> diff --git a/tools/testing/selftests/ftrace/test.d/event/event-enable.tc b/tools/testing/selftests/ftrace/test.d/event/event-enable.tc
> index 386dbddbdc11..a028628cdd0e 100644
> --- a/tools/testing/selftests/ftrace/test.d/event/event-enable.tc
> +++ b/tools/testing/selftests/ftrace/test.d/event/event-enable.tc
> @@ -14,7 +14,7 @@ fail() { #msg
>  }
>  
>  yield() {
> -    ping localhost -c 1 || sleep .001 || usleep 1 || sleep 1
> +    ping 127.0.0.1 -c 1 || sleep .001 || usleep 1 || sleep 1
>  }
>  
>  if [ ! -f set_event -o ! -d events/sched ]; then
> diff --git a/tools/testing/selftests/ftrace/test.d/event/event-pid.tc b/tools/testing/selftests/ftrace/test.d/event/event-pid.tc
> index 6dbf67544fde..6d2897f6a106 100644
> --- a/tools/testing/selftests/ftrace/test.d/event/event-pid.tc
> +++ b/tools/testing/selftests/ftrace/test.d/event/event-pid.tc
> @@ -17,7 +17,7 @@ fail() { #msg
>  }
>  
>  yield() {
> -    ping localhost -c 1 || sleep .001 || usleep 1 || sleep 1
> +    ping 127.0.0.1 -c 1 || sleep .001 || usleep 1 || sleep 1
>  }
>  
>  if [ ! -f set_event -o ! -d events/sched ]; then
> diff --git a/tools/testing/selftests/ftrace/test.d/event/subsystem-enable.tc b/tools/testing/selftests/ftrace/test.d/event/subsystem-enable.tc
> index 10eb17f161b7..9f0221b39d4d 100644
> --- a/tools/testing/selftests/ftrace/test.d/event/subsystem-enable.tc
> +++ b/tools/testing/selftests/ftrace/test.d/event/subsystem-enable.tc
> @@ -14,7 +14,7 @@ fail() { #msg
>  }
>  
>  yield() {
> -    ping localhost -c 1 || sleep .001 || usleep 1 || sleep 1
> +    ping 127.0.0.1 -c 1 || sleep .001 || usleep 1 || sleep 1
>  }
>  
>  if [ ! -f set_event -o ! -d events/sched ]; then
> diff --git a/tools/testing/selftests/ftrace/test.d/event/toplevel-enable.tc b/tools/testing/selftests/ftrace/test.d/event/toplevel-enable.tc
> index 8d55a233c1a4..5f3611047d3a 100644
> --- a/tools/testing/selftests/ftrace/test.d/event/toplevel-enable.tc
> +++ b/tools/testing/selftests/ftrace/test.d/event/toplevel-enable.tc
> @@ -13,7 +13,7 @@ fail() { #msg
>  }
>  
>  yield() {
> -    ping localhost -c 1 || sleep .001 || usleep 1 || sleep 1
> +    ping 127.0.0.1 -c 1 || sleep .001 || usleep 1 || sleep 1
>  }
>  
>  if [ ! -f available_events -o ! -f set_event -o ! -d events ]; then
> 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 970903cb7834..cd52cf6a1fc4 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
> @@ -49,7 +49,7 @@ fail() { # msg
>  }
>  
>  yield() {
> -    ping localhost -c 1 || sleep .001 || usleep 1 || sleep 1
> +    ping 127.0.0.1 -c 1 || sleep .001 || usleep 1 || sleep 1
>  }

Perhaps we should make this a helper function since it's used so much.

>  
>  do_test() {
> diff --git a/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-field-variable-support.tc b/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-field-variable-support.tc
> index 575af23df04e..59b58c77e9ce 100644
> --- a/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-field-variable-support.tc
> +++ b/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-field-variable-support.tc
> @@ -23,7 +23,7 @@ echo 'hist:keys=comm:ts0=common_timestamp.usecs if comm=="ping"' > events/sched/
>  echo 'hist:keys=next_comm:wakeup_lat=common_timestamp.usecs-$ts0:onmatch(sched.sched_waking).wakeup_latency($wakeup_lat,next_pid,sched.sched_waking.prio,next_comm) if next_comm=="ping"' > events/sched/sched_switch/trigger
>  echo 'hist:keys=pid,prio,comm:vals=lat:sort=pid,prio' > events/synthetic/wakeup_latency/trigger
>  
> -ping localhost -c 3
> +ping 127.0.0.1 -c 3
>  if ! grep -q "ping" events/synthetic/wakeup_latency/hist; then
>      fail "Failed to create inter-event histogram"
>  fi
> diff --git a/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-inter-event-combined-hist.tc b/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-inter-event-combined-hist.tc
> index 92aef26e2631..0a7709fdfd8e 100644
> --- a/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-inter-event-combined-hist.tc
> +++ b/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-inter-event-combined-hist.tc
> @@ -37,7 +37,7 @@ echo 'waking+wakeup_latency u64 lat; pid_t pid' >> synthetic_events
>  echo 'hist:keys=pid,lat:sort=pid,lat:ww_lat=$waking_lat+$wakeup_lat:onmatch(synthetic.wakeup_latency).waking+wakeup_latency($ww_lat,pid)' >> events/synthetic/wakeup_latency/trigger
>  echo 'hist:keys=pid,lat:sort=pid,lat' >> events/synthetic/waking+wakeup_latency/trigger
>  
> -ping localhost -c 3
> +ping 127.0.0.1 -c 3
>  if ! grep -q "pid:" events/synthetic/waking+wakeup_latency/hist; then
>      fail "Failed to create combined histogram"
>  fi
> diff --git a/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-onmatch-action-hist.tc b/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-onmatch-action-hist.tc
> index 1ef5dd4521f0..c5bdf8338aeb 100644
> --- a/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-onmatch-action-hist.tc
> +++ b/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-onmatch-action-hist.tc
> @@ -29,7 +29,7 @@ echo "Test histogram variables,simple expression support and onmatch action"
>  echo 'hist:keys=pid:ts0=common_timestamp.usecs if comm=="ping"' > events/sched/sched_wakeup/trigger
>  echo 'hist:keys=next_pid:wakeup_lat=common_timestamp.usecs-$ts0:onmatch(sched.sched_wakeup).wakeup_latency($wakeup_lat,next_pid,next_comm) if next_comm=="ping"' > events/sched/sched_switch/trigger
>  echo 'hist:keys=comm,pid,lat:wakeup_lat=lat:sort=lat' > events/synthetic/wakeup_latency/trigger
> -ping localhost -c 5
> +ping 127.0.0.1 -c 5
>  if ! grep -q "ping" events/synthetic/wakeup_latency/hist; then
>      fail "Failed to create onmatch action inter-event histogram"
>  fi
> diff --git a/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-onmatch-onmax-action-hist.tc b/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-onmatch-onmax-action-hist.tc
> index 7234683ee5e5..47cb76bfd9c0 100644
> --- a/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-onmatch-onmax-action-hist.tc
> +++ b/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-onmatch-onmax-action-hist.tc
> @@ -29,7 +29,7 @@ echo "Test histogram variables,simple expression support and onmatch-onmax actio
>  echo 'hist:keys=pid:ts0=common_timestamp.usecs if comm=="ping"' > events/sched/sched_wakeup/trigger
>  echo 'hist:keys=next_pid:wakeup_lat=common_timestamp.usecs-$ts0:onmatch(sched.sched_wakeup).wakeup_latency($wakeup_lat,next_pid,next_comm):onmax($wakeup_lat).save(next_comm,prev_pid,prev_prio,prev_comm) if next_comm=="ping"' >> events/sched/sched_switch/trigger
>  echo 'hist:keys=comm,pid,lat:wakeup_lat=lat:sort=lat' > events/synthetic/wakeup_latency/trigger
> -ping localhost -c 5
> +ping 127.0.0.1 -c 5
>  if [ ! grep -q "ping" events/synthetic/wakeup_latency/hist -o ! grep -q "max:" events/sched/sched_switch/hist]; then
>      fail "Failed to create onmatch-onmax action inter-event histogram"
>  fi
> diff --git a/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-onmax-action-hist.tc b/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-onmax-action-hist.tc
> index 55b9630a1d70..6fa0c449035c 100644
> --- a/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-onmax-action-hist.tc
> +++ b/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-onmax-action-hist.tc
> @@ -27,7 +27,7 @@ echo "Test onmax action"
>  
>  echo 'hist:keys=pid:ts0=common_timestamp.usecs if comm=="ping"' >> events/sched/sched_waking/trigger
>  echo 'hist:keys=next_pid:wakeup_lat=common_timestamp.usecs-$ts0:onmax($wakeup_lat).save(next_comm,prev_pid,prev_prio,prev_comm) if next_comm=="ping"' >> events/sched/sched_switch/trigger
> -ping localhost -c 3
> +ping 127.0.0.1 -c 3

Perhaps we should also add a variable LOCALHOST="127.0.0.1" and use
that. I rather not have the raw address all over the place, in case we
want to change its meaning, it's best to do it in one place.

-- Steve

>  if ! grep -q "max:" events/sched/sched_switch/hist; then
>      fail "Failed to create onmax action inter-event histogram"
>  fi


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

* Re: [PATCH v2 19/32] selftests/ftrace: Add a testcase for nop tracer
  2018-08-16 16:38 ` [PATCH v2 19/32] selftests/ftrace: Add a testcase for nop tracer Masami Hiramatsu
@ 2018-08-24 22:53   ` Steven Rostedt
  2018-08-26  7:30     ` Masami Hiramatsu
  0 siblings, 1 reply; 78+ messages in thread
From: Steven Rostedt @ 2018-08-24 22:53 UTC (permalink / raw)
  To: Masami Hiramatsu; +Cc: Shuah Khan, Ingo Molnar, linux-kselftest, linux-kernel

On Fri, 17 Aug 2018 01:38:09 +0900
Masami Hiramatsu <mhiramat@kernel.org> wrote:

> Add a testcase for nop tracer. This tracer has 2 test
> options, so check it too.
> 

I'd rather not include this. In fact, I'd love to get rid of the nop
options. They were added to make sure options worked when we first
added them. They are actually pointless.

The only point of this test is to know if options work or not. Hmm, I
guess that is something that could possibly be valuable :-/

-- Steve


> Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
> ---
>  .../testing/selftests/ftrace/test.d/tracer/nop.tc  |   22 ++++++++++++++++++++
>  1 file changed, 22 insertions(+)
>  create mode 100644 tools/testing/selftests/ftrace/test.d/tracer/nop.tc
> 
> diff --git a/tools/testing/selftests/ftrace/test.d/tracer/nop.tc b/tools/testing/selftests/ftrace/test.d/tracer/nop.tc
> new file mode 100644
> index 000000000000..ca63e316e0f5
> --- /dev/null
> +++ b/tools/testing/selftests/ftrace/test.d/tracer/nop.tc
> @@ -0,0 +1,22 @@
> +#!/bin/sh
> +# SPDX-License-Identifier: GPL-2.0
> +# description: Test nop tracer
> +
> +# nop must be supported always
> +grep -q "nop" available_tracers
> +
> +echo "nop" > current_tracer
> +
> +# nop provides 2 test options
> +grep -q "test_nop_accept" trace_options
> +grep -q "test_nop_refuse" trace_options
> +
> +# nop_accept always success
> +echo "test_nop_accept" > trace_options
> +echo "notest_nop_accept" > trace_options
> +
> +# nop_refuse always failed
> +! echo "test_nop_refuse" > trace_options
> +! echo "notest_nop_refuse" > trace_options
> +
> +exit 0


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

* Re: [PATCH v2 21/32] selftests/ftrace: Add trace_printk sample module test
  2018-08-16 16:39 ` [PATCH v2 21/32] selftests/ftrace: Add trace_printk sample module test Masami Hiramatsu
@ 2018-08-24 23:06   ` Steven Rostedt
  2018-08-26  8:43     ` Masami Hiramatsu
  0 siblings, 1 reply; 78+ messages in thread
From: Steven Rostedt @ 2018-08-24 23:06 UTC (permalink / raw)
  To: Masami Hiramatsu; +Cc: Shuah Khan, Ingo Molnar, linux-kselftest, linux-kernel

On Fri, 17 Aug 2018 01:39:06 +0900
Masami Hiramatsu <mhiramat@kernel.org> wrote:

> Add trace_printk sample module test. This requires to
> enable trace_printk.ko module for test.
> 
> Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
> ---
>  .../selftests/ftrace/test.d/event/trace_printk.tc  |   27 ++++++++++++++++++++
>  1 file changed, 27 insertions(+)
>  create mode 100644 tools/testing/selftests/ftrace/test.d/event/trace_printk.tc
> 
> diff --git a/tools/testing/selftests/ftrace/test.d/event/trace_printk.tc b/tools/testing/selftests/ftrace/test.d/event/trace_printk.tc
> new file mode 100644
> index 000000000000..4da4d739f03d
> --- /dev/null
> +++ b/tools/testing/selftests/ftrace/test.d/event/trace_printk.tc
> @@ -0,0 +1,27 @@
> +#!/bin/sh
> +# SPDX-License-Identifier: GPL-2.0
> +# description: Test trace_printk from module
> +
> +rmmod trace-printk ||:
> +if ! modprobe trace-printk.ko ; then

"modprobe trace-printk.ko" doesn't work. You need to drop the ".ko"

-- Steve

> +  echo "No trace-printk sample module - please make CONFIG_SAMPLE_TRACE_PRINTK=m"
> +  exit_unresolved;
> +fi
> +
> +echo "Waiting for irq work"
> +sleep 1
> +
> +grep -q ": This .* trace_bputs" trace
> +grep -q ": This .* trace_puts" trace
> +grep -q ": This .* trace_bprintk" trace
> +grep -q ": This .* trace_printk" trace
> +
> +grep -q ": (irq) .* trace_bputs" trace
> +grep -q ": (irq) .* trace_puts" trace
> +grep -q ": (irq) .* trace_bprintk" trace
> +grep -q ": (irq) .* trace_printk" trace
> +
> +grep -q "This is a %s that will use trace_bprintk" printk_formats
> +grep -q "(irq) This is a static string that will use trace_bputs" printk_formats
> +
> +rmmod trace-printk ||:


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

* Re: [PATCH v2 12/32] selftests/ftrace: Improve kprobe on module testcase to load/unload module
  2018-08-16 16:34 ` [PATCH v2 12/32] selftests/ftrace: Improve kprobe on module testcase to load/unload module Masami Hiramatsu
@ 2018-08-24 23:07   ` Steven Rostedt
  0 siblings, 0 replies; 78+ messages in thread
From: Steven Rostedt @ 2018-08-24 23:07 UTC (permalink / raw)
  To: Masami Hiramatsu; +Cc: Shuah Khan, Ingo Molnar, linux-kselftest, linux-kernel

On Fri, 17 Aug 2018 01:34:51 +0900
Masami Hiramatsu <mhiramat@kernel.org> wrote:

> Improve kprobe events on module testcase to check module
> load/unload with disabled/enabled events. This also change
> the target module to trace_printk.ko, so it depends on
> CONFIG_SAMPLE_TRACE_PRINTK=m.
> 
> Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
> ---
>  tools/testing/selftests/ftrace/config              |    4 ++
>  .../ftrace/test.d/kprobe/kprobe_module.tc          |   35 ++++++++++++++++++--
>  2 files changed, 36 insertions(+), 3 deletions(-)
> 
> diff --git a/tools/testing/selftests/ftrace/config b/tools/testing/selftests/ftrace/config
> index 07db5ab09cc7..32cf61b6bb54 100644
> --- a/tools/testing/selftests/ftrace/config
> +++ b/tools/testing/selftests/ftrace/config
> @@ -7,3 +7,7 @@ CONFIG_HIST_TRIGGERS=y
>  CONFIG_PREEMPT_TRACER=y
>  CONFIG_IRQSOFF_TRACER=y
>  CONFIG_PREEMPTIRQ_DELAY_TEST=m
> +CONFIG_MODULES=y
> +CONFIG_MODULE_UNLOAD=y
> +CONFIG_SAMPLES=y
> +CONFIG_SAMPLE_TRACE_PRINTK=m
> diff --git a/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_module.tc b/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_module.tc
> index ec6c5fffef1e..1efe9e616bc4 100644
> --- a/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_module.tc
> +++ b/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_module.tc
> @@ -4,11 +4,18 @@
>  
>  [ -f kprobe_events ] || exit_unsupported # this is configurable
>  
> +rmmod trace-printk ||:
> +if ! modprobe trace-printk.ko ; then

"modprobe trace-printk.ko" dosen't work. You need to drop the .ko

> +  echo "No trace-printk sample module - please make CONFIG_SAMPLE_TRACE_PRINTK=
> +m"
> +  exit_unresolved;
> +fi
> +
> +MOD=trace_printk
> +FUNC=trace_printk_irq_work
> +
>  :;: "Add an event on a module function without specifying event name" ;:
>  
> -MOD=`lsmod | head -n 2 | tail -n 1 | cut -f1 -d" "`
> -FUNC=`grep -m 1 ".* t .*\\[$MOD\\]" /proc/kallsyms | xargs | cut -f3 -d" "`
> -[ "x" != "x$MOD" -a "y" != "y$FUNC" ] || exit_unresolved
>  echo "p $MOD:$FUNC" > kprobe_events
>  PROBE_NAME=`echo $MOD:$FUNC | tr ".:" "_"`
>  test -d events/kprobes/p_${PROBE_NAME}_0 || exit_failure
> @@ -22,3 +29,25 @@ test -d events/kprobes/event1 || exit_failure
>  
>  echo "p:kprobes1/event1 $MOD:$FUNC" > kprobe_events
>  test -d events/kprobes1/event1 || exit_failure
> +
> +:;: "Remove target module, but event still be there" ;:
> +if ! rmmod trace-printk ; then
> +  echo "Failed to unload module - please enable CONFIG_MODULE_UNLOAD"
> +  exit_unresolved;
> +fi
> +test -d events/kprobes1/event1
> +
> +:;: "Check posibility to defining events on unloaded module";:
> +echo "p:event2 $MOD:$FUNC" >> kprobe_events
> +
> +:;: "Target is gone, but we can prepare for next time";:
> +echo 1 > events/kprobes1/event1/enable
> +
> +:;: "Load module again, which means the event1 should be recorded";:
> +modprobe trace-printk.ko

Same here.

-- Steve

> +grep "event1:" trace
> +
> +:;: "Remove the module again and check the event is not locked"
> +rmmod trace-printk
> +echo 0 > events/kprobes1/event1/enable
> +echo "-:kprobes1/event1" >> kprobe_events


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

* Re: [PATCH v2 22/32] selftests/ftrace: Add ringbuffer size changing testcase
  2018-08-16 16:39 ` [PATCH v2 22/32] selftests/ftrace: Add ringbuffer size changing testcase Masami Hiramatsu
@ 2018-08-24 23:18   ` Steven Rostedt
  2018-08-30  7:12     ` Masami Hiramatsu
  0 siblings, 1 reply; 78+ messages in thread
From: Steven Rostedt @ 2018-08-24 23:18 UTC (permalink / raw)
  To: Masami Hiramatsu; +Cc: Shuah Khan, Ingo Molnar, linux-kselftest, linux-kernel

On Fri, 17 Aug 2018 01:39:34 +0900
Masami Hiramatsu <mhiramat@kernel.org> wrote:

> Add a testcase for changing ringbuffer size. This tests
> not only ringbuffer size but also tests the imbalance
> per-cpu buffer size change too.
> 
> Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>

I'm fine with this, but one day I need to port over some of my other
tests. I have a test that stresses the ring buffer size (basically
checks to see if it can cause an oom). I need to port that to
selftests. But for now...

Acked-by: Steven Rostedt (VMware) <rostedt@goodmis.org>

But, one more thing..

> ---
>  .../ftrace/test.d/00basic/ringbuffer_size.tc       |   21 ++++++++++++++++++++
>  1 file changed, 21 insertions(+)
>  create mode 100644 tools/testing/selftests/ftrace/test.d/00basic/ringbuffer_size.tc
> 
> diff --git a/tools/testing/selftests/ftrace/test.d/00basic/ringbuffer_size.tc b/tools/testing/selftests/ftrace/test.d/00basic/ringbuffer_size.tc
> new file mode 100644
> index 000000000000..9224f33b3194
> --- /dev/null
> +++ b/tools/testing/selftests/ftrace/test.d/00basic/ringbuffer_size.tc
> @@ -0,0 +1,21 @@
> +#!/bin/sh
> +# SPDX-License-Identifier: GPL-2.0
> +# description: Change the ringbuffer size

Should add:

 # flags: instance

As this works for instances as well.

-- Steve

> +
> +rb_size_test() {
> +ORIG=`cat buffer_size_kb`
> +
> +expr $ORIG / 2 > buffer_size_kb
> +
> +expr $ORIG \* 2 > buffer_size_kb
> +
> +echo $ORIG > buffer_size_kb
> +}
> +
> +rb_size_test
> +
> +: "If per-cpu buffer is supported, imbalance it"
> +if [ -d per_cpu/cpu0 ]; then
> +  cd per_cpu/cpu0
> +  rb_size_test
> +fi


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

* Re: [PATCH v2 23/32] selftests/ftrace: Add function profiling stat testcase
  2018-08-16 16:40 ` [PATCH v2 23/32] selftests/ftrace: Add function profiling stat testcase Masami Hiramatsu
@ 2018-08-24 23:20   ` Steven Rostedt
  2018-08-26 11:20     ` Masami Hiramatsu
  0 siblings, 1 reply; 78+ messages in thread
From: Steven Rostedt @ 2018-08-24 23:20 UTC (permalink / raw)
  To: Masami Hiramatsu; +Cc: Shuah Khan, Ingo Molnar, linux-kselftest, linux-kernel

On Fri, 17 Aug 2018 01:40:02 +0900
Masami Hiramatsu <mhiramat@kernel.org> wrote:

> Add a testcase for function profiling per-cpu statistics
> interface. There is already func_profile.tc, but that is
> mainly focusing on the combination of function-profiler
> and function tracer. This testcase ensures trace_stat
> per-cpu function statistics is correctly updated.
> 
> Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
> ---
>  .../ftrace/test.d/ftrace/func_profile_stat.tc      |   23 ++++++++++++++++++++
>  1 file changed, 23 insertions(+)
>  create mode 100644 tools/testing/selftests/ftrace/test.d/ftrace/func_profile_stat.tc
> 
> diff --git a/tools/testing/selftests/ftrace/test.d/ftrace/func_profile_stat.tc b/tools/testing/selftests/ftrace/test.d/ftrace/func_profile_stat.tc
> new file mode 100644
> index 000000000000..1d2440d80ec3
> --- /dev/null
> +++ b/tools/testing/selftests/ftrace/test.d/ftrace/func_profile_stat.tc
> @@ -0,0 +1,23 @@
> +#!/bin/sh
> +# SPDX-License-Identifier: GPL-2.0
> +# description: ftrace - function profiling
> +
> +[ ! -f function_profile_enabled ] && exit_unsupported
> +
> +: "Enable function profile"
> +echo 1 > function_profile_enabled
> +
> +: "Profile must be updated"
> +cp trace_stat/function0 $TMPDIR/
> +( echo "forked"; sleep 1 )
> +: "diff returns 0 if there is no difference"
> +! diff trace_stat/function0 $TMPDIR/function0
> +
> +echo 0 > function_profile_enabled
> +
> +: "Profile must NOT be updated"
> +cp trace_stat/function0 $TMPDIR/
> +( echo "forked"; sleep 1 )
> +: "diff returns 0 if there is no difference"
> +diff trace_stat/function0 $TMPDIR/function0

> +

Can remove the last empty line from the file.

Other than that...

Acked-by: Steven Rostedt (VMware) <rostedt@goodmis.org>

-- Steve

-- Steve

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

* Re: [PATCH v2 24/32] selftests/ftrace: Add max stack tracer testcase
  2018-08-16 16:40 ` [PATCH v2 24/32] selftests/ftrace: Add max stack tracer testcase Masami Hiramatsu
@ 2018-08-24 23:23   ` Steven Rostedt
  2018-08-25  1:45     ` Masami Hiramatsu
  0 siblings, 1 reply; 78+ messages in thread
From: Steven Rostedt @ 2018-08-24 23:23 UTC (permalink / raw)
  To: Masami Hiramatsu; +Cc: Shuah Khan, Ingo Molnar, linux-kselftest, linux-kernel

On Fri, 17 Aug 2018 01:40:30 +0900
Masami Hiramatsu <mhiramat@kernel.org> wrote:

> Add a testcase for max stack tracer, which checks basic
> max stack usage tracing and its filter feature.
> 
> Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
> ---
>  .../ftrace/test.d/ftrace/func_stack_tracer.tc      |   39 ++++++++++++++++++++
>  1 file changed, 39 insertions(+)
>  create mode 100644 tools/testing/selftests/ftrace/test.d/ftrace/func_stack_tracer.tc
> 
> 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
> new file mode 100644
> index 000000000000..b414f0e3c646
> --- /dev/null
> +++ b/tools/testing/selftests/ftrace/test.d/ftrace/func_stack_tracer.tc
> @@ -0,0 +1,39 @@
> +#!/bin/sh
> +# SPDX-License-Identifier: GPL-2.0
> +# description: ftrace - Max stack tracer
> +# Test the basic function of max-stack usage tracing
> +
> +if [ ! -f stack_trace ]; then
> +  echo "Max stack tracer is not supported - please make CONFIG_STACK_TRACER=y"
> +  exit_unsupported
> +fi
> +
> +echo > stack_trace_filter
> +echo 0 > stack_max_size
> +echo 1 > /proc/sys/kernel/stack_tracer_enabled
> +
> +: "Fork and wait for the first entry become !lock"
> +timeout=10
> +while [ $timeout -ne 0 ]; do
> +  ( echo "forked" )
> +  FL=`grep " 0)" stack_trace`
> +  echo $FL | grep -q "lock" || break;
> +  timeout=$((timeout - 1))
> +done
> +echo 0 > /proc/sys/kernel/stack_tracer_enabled
> +
> +echo '*lock*' > stack_trace_filter
> +test `cat stack_trace_filter | wc -l` -eq `grep lock stack_trace_filter | wc -l`
> +
> +echo 0 > stack_max_size
> +echo 1 > /proc/sys/kernel/stack_tracer_enabled

This test fails quite a bit because it doesn't guarantee that another
stack trace gets in that is bigger, and we don't find the "lock".

-- Steve

> +
> +: "Fork and always the first entry including lock"
> +timeout=10
> +while [ $timeout -ne 0 ]; do
> +  ( echo "forked" )
> +  FL=`grep " 0)" stack_trace`
> +  echo $FL | grep -q "lock"
> +  timeout=$((timeout - 1))
> +done
> +echo 0 > /proc/sys/kernel/stack_tracer_enabled


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

* Re: [PATCH v2 25/32] selftests/ftrace: Add function filter on module testcase
  2018-08-16 16:40 ` [PATCH v2 25/32] selftests/ftrace: Add function filter on module testcase Masami Hiramatsu
@ 2018-08-24 23:25   ` Steven Rostedt
  0 siblings, 0 replies; 78+ messages in thread
From: Steven Rostedt @ 2018-08-24 23:25 UTC (permalink / raw)
  To: Masami Hiramatsu; +Cc: Shuah Khan, Ingo Molnar, linux-kselftest, linux-kernel

On Fri, 17 Aug 2018 01:40:59 +0900
Masami Hiramatsu <mhiramat@kernel.org> wrote:

> Add a testcase for function filter on module.
> 
> Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
> ---
>  .../ftrace/test.d/ftrace/func_mod_trace.tc         |   24 ++++++++++++++++++++
>  1 file changed, 24 insertions(+)
>  create mode 100644 tools/testing/selftests/ftrace/test.d/ftrace/func_mod_trace.tc
> 
> 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
> new file mode 100644
> index 000000000000..359380c3834f
> --- /dev/null
> +++ b/tools/testing/selftests/ftrace/test.d/ftrace/func_mod_trace.tc
> @@ -0,0 +1,24 @@
> +#!/bin/sh
> +# SPDX-License-Identifier: GPL-2.0
> +# description: ftrace - function trace on module
> +
> +[ ! -f set_ftrace_filter ] && exit_unsupported
> +
> +: "mod: allows to filter a non exist function"
> +echo 'non_exist_func:mod:non_exist_module' > set_ftrace_filter
> +grep -q "non_exist_func" set_ftrace_filter
> +
> +: "mod: on exist module"
> +echo '*:mod:trace_printk' > set_ftrace_filter
> +if ! modprobe trace-printk.ko ; then

Need to remove the '.ko'

-- Steve

> +  echo "No trace-printk sample module - please make CONFIG_SAMPLE_TRACE_PRINTK=
> +m"
> +  exit_unresolved;
> +fi
> +
> +: "Wildcard should be resolved after loading module"
> +grep -q "trace_printk_irq_work" set_ftrace_filter
> +
> +: "After removing the filter becomes empty"
> +rmmod trace_printk
> +test `cat set_ftrace_filter | wc -l` -eq 0


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

* Re: [PATCH v2 26/32] selftests/ftrace: Add trace_pipe testcase
  2018-08-16 16:41 ` [PATCH v2 26/32] selftests/ftrace: Add trace_pipe testcase Masami Hiramatsu
@ 2018-08-24 23:26   ` Steven Rostedt
  2018-08-26 11:20     ` Masami Hiramatsu
  0 siblings, 1 reply; 78+ messages in thread
From: Steven Rostedt @ 2018-08-24 23:26 UTC (permalink / raw)
  To: Masami Hiramatsu; +Cc: Shuah Khan, Ingo Molnar, linux-kselftest, linux-kernel

On Fri, 17 Aug 2018 01:41:27 +0900
Masami Hiramatsu <mhiramat@kernel.org> wrote:

> Add a simple testcase for trace_pipe which can consume
> ringbuffer.
> 
> Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
> ---
>  .../selftests/ftrace/test.d/00basic/trace_pipe.tc  |   15 +++++++++++++++
>  1 file changed, 15 insertions(+)
>  create mode 100644 tools/testing/selftests/ftrace/test.d/00basic/trace_pipe.tc
> 
> diff --git a/tools/testing/selftests/ftrace/test.d/00basic/trace_pipe.tc b/tools/testing/selftests/ftrace/test.d/00basic/trace_pipe.tc
> new file mode 100644
> index 000000000000..a7dd6fda487a
> --- /dev/null
> +++ b/tools/testing/selftests/ftrace/test.d/00basic/trace_pipe.tc
> @@ -0,0 +1,15 @@
> +#!/bin/sh
> +# SPDX-License-Identifier: GPL-2.0
> +# description: trace_pipe and trace_marker

Should add:

 # flags: instance

-- Steve

> +
> +[ ! -f trace_marker ] && exit_unsupported
> +
> +echo "test input 1" > trace_marker
> +
> +: "trace interface never consume the ring buffer"
> +grep -q "test input 1" trace
> +grep -q "test input 1" trace
> +
> +: "trace interface never consume the ring buffer"
> +head -n 1 trace_pipe | grep -q "test input 1"
> +! grep -q "test input 1" trace


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

* Re: [PATCH v2 27/32] selftests/ftrace: Add stacktrace ftrace filter command testcase
  2018-08-16 16:41 ` [PATCH v2 27/32] selftests/ftrace: Add stacktrace ftrace filter command testcase Masami Hiramatsu
@ 2018-08-24 23:28   ` Steven Rostedt
  0 siblings, 0 replies; 78+ messages in thread
From: Steven Rostedt @ 2018-08-24 23:28 UTC (permalink / raw)
  To: Masami Hiramatsu; +Cc: Shuah Khan, Ingo Molnar, linux-kselftest, linux-kernel

On Fri, 17 Aug 2018 01:41:55 +0900
Masami Hiramatsu <mhiramat@kernel.org> wrote:

> Add a test case for stacktrace filter command for ftrace.
> 
> Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
> ---
>  .../ftrace/test.d/ftrace/func-filter-stacktrace.tc |   12 ++++++++++++
>  1 file changed, 12 insertions(+)
>  create mode 100644 tools/testing/selftests/ftrace/test.d/ftrace/func-filter-stacktrace.tc
> 
> 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
> new file mode 100644
> index 000000000000..ec0d8216d509
> --- /dev/null
> +++ b/tools/testing/selftests/ftrace/test.d/ftrace/func-filter-stacktrace.tc
> @@ -0,0 +1,12 @@
> +#!/bin/sh
> +# SPDX-License-Identifier: GPL2.0
> +# description: ftrace - stacktrace filter command

Add:

 # flags: instance

> +
> +echo _do_fork:stacktrace >> set_ftrace_filter
> +
> +grep -q "_do_fork:stacktrace:unlimited" set_ftrace_filter
> +
> +(echo "forked"; sleep 1)
> +
> +grep -q "<stack trace>" trace

> +

Can remove the extra line.

-- Steve

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

* Re: [PATCH v2 03/32] selftests/ftrace: Add --console hidden option
  2018-08-24 20:37   ` Steven Rostedt
@ 2018-08-25  1:35     ` Masami Hiramatsu
  2018-08-25  1:42       ` Steven Rostedt
  0 siblings, 1 reply; 78+ messages in thread
From: Masami Hiramatsu @ 2018-08-25  1:35 UTC (permalink / raw)
  To: Steven Rostedt; +Cc: Shuah Khan, Ingo Molnar, linux-kselftest, linux-kernel

On Fri, 24 Aug 2018 16:37:37 -0400
Steven Rostedt <rostedt@goodmis.org> wrote:

> On Fri, 17 Aug 2018 01:30:36 +0900
> Masami Hiramatsu <mhiramat@kernel.org> wrote:
> 
> > Add --console hidden option for debug test cases.
> > This option allows to put "sh" or something else
> > when the test case hits a bug.
> 
> Can you add more information to why and how this would be used.

For example, if you find a testcase which doesn't
pass, you can insert sh for interactive debug as below

  #!/bin/sh
  # description: sample test case

  good-command
  suspicious-wrong-command
  sh # <- add this for interactive debug


Thank you,

-- 
Masami Hiramatsu <mhiramat@kernel.org>

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

* Re: [PATCH v2 03/32] selftests/ftrace: Add --console hidden option
  2018-08-25  1:35     ` Masami Hiramatsu
@ 2018-08-25  1:42       ` Steven Rostedt
  2018-08-26  7:28         ` Masami Hiramatsu
  0 siblings, 1 reply; 78+ messages in thread
From: Steven Rostedt @ 2018-08-25  1:42 UTC (permalink / raw)
  To: Masami Hiramatsu; +Cc: Shuah Khan, Ingo Molnar, linux-kselftest, linux-kernel

On Sat, 25 Aug 2018 10:35:13 +0900
Masami Hiramatsu <mhiramat@kernel.org> wrote:

> On Fri, 24 Aug 2018 16:37:37 -0400
> Steven Rostedt <rostedt@goodmis.org> wrote:
> 
> > On Fri, 17 Aug 2018 01:30:36 +0900
> > Masami Hiramatsu <mhiramat@kernel.org> wrote:
> >   
> > > Add --console hidden option for debug test cases.
> > > This option allows to put "sh" or something else
> > > when the test case hits a bug.  
> > 
> > Can you add more information to why and how this would be used.  
> 
> For example, if you find a testcase which doesn't
> pass, you can insert sh for interactive debug as below
> 
>   #!/bin/sh
>   # description: sample test case
> 
>   good-command
>   suspicious-wrong-command
>   sh # <- add this for interactive debug
> 

Ah! OK. But this needs to be explained a little better in the change
log as well as in the comments for it.

Thanks!

-- Steve

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

* Re: [PATCH v2 24/32] selftests/ftrace: Add max stack tracer testcase
  2018-08-24 23:23   ` Steven Rostedt
@ 2018-08-25  1:45     ` Masami Hiramatsu
  2018-08-25  2:41       ` Steven Rostedt
  0 siblings, 1 reply; 78+ messages in thread
From: Masami Hiramatsu @ 2018-08-25  1:45 UTC (permalink / raw)
  To: Steven Rostedt; +Cc: Shuah Khan, Ingo Molnar, linux-kselftest, linux-kernel

On Fri, 24 Aug 2018 19:23:52 -0400
Steven Rostedt <rostedt@goodmis.org> wrote:

> On Fri, 17 Aug 2018 01:40:30 +0900
> Masami Hiramatsu <mhiramat@kernel.org> wrote:
> 
> > Add a testcase for max stack tracer, which checks basic
> > max stack usage tracing and its filter feature.
> > 
> > Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
> > ---
> >  .../ftrace/test.d/ftrace/func_stack_tracer.tc      |   39 ++++++++++++++++++++
> >  1 file changed, 39 insertions(+)
> >  create mode 100644 tools/testing/selftests/ftrace/test.d/ftrace/func_stack_tracer.tc
> > 
> > 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
> > new file mode 100644
> > index 000000000000..b414f0e3c646
> > --- /dev/null
> > +++ b/tools/testing/selftests/ftrace/test.d/ftrace/func_stack_tracer.tc
> > @@ -0,0 +1,39 @@
> > +#!/bin/sh
> > +# SPDX-License-Identifier: GPL-2.0
> > +# description: ftrace - Max stack tracer
> > +# Test the basic function of max-stack usage tracing
> > +
> > +if [ ! -f stack_trace ]; then
> > +  echo "Max stack tracer is not supported - please make CONFIG_STACK_TRACER=y"
> > +  exit_unsupported
> > +fi
> > +
> > +echo > stack_trace_filter
> > +echo 0 > stack_max_size
> > +echo 1 > /proc/sys/kernel/stack_tracer_enabled
> > +
> > +: "Fork and wait for the first entry become !lock"
> > +timeout=10
> > +while [ $timeout -ne 0 ]; do
> > +  ( echo "forked" )
> > +  FL=`grep " 0)" stack_trace`
> > +  echo $FL | grep -q "lock" || break;
> > +  timeout=$((timeout - 1))
> > +done
> > +echo 0 > /proc/sys/kernel/stack_tracer_enabled
> > +
> > +echo '*lock*' > stack_trace_filter
> > +test `cat stack_trace_filter | wc -l` -eq `grep lock stack_trace_filter | wc -l`
> > +
> > +echo 0 > stack_max_size
> > +echo 1 > /proc/sys/kernel/stack_tracer_enabled
> 
> This test fails quite a bit because it doesn't guarantee that another
> stack trace gets in that is bigger, and we don't find the "lock".

Hmm, maybe I misunderstand what is the stack_trace_filter.
I thought it filtered the function that triggered stack trace,
so the top of stack trace was always filtered function.
If not, what does this filter?

Thank you,

> 
> -- Steve
> 
> > +
> > +: "Fork and always the first entry including lock"
> > +timeout=10
> > +while [ $timeout -ne 0 ]; do
> > +  ( echo "forked" )
> > +  FL=`grep " 0)" stack_trace`
> > +  echo $FL | grep -q "lock"
> > +  timeout=$((timeout - 1))
> > +done
> > +echo 0 > /proc/sys/kernel/stack_tracer_enabled
> 


-- 
Masami Hiramatsu <mhiramat@kernel.org>

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

* Re: [PATCH v2 11/32] selftests/ftrace: Use loopback address instead of localhost
  2018-08-24 21:52   ` Steven Rostedt
@ 2018-08-25  1:47     ` Masami Hiramatsu
  0 siblings, 0 replies; 78+ messages in thread
From: Masami Hiramatsu @ 2018-08-25  1:47 UTC (permalink / raw)
  To: Steven Rostedt; +Cc: Shuah Khan, Ingo Molnar, linux-kselftest, linux-kernel

On Fri, 24 Aug 2018 17:52:11 -0400
Steven Rostedt <rostedt@goodmis.org> wrote:

> On Fri, 17 Aug 2018 01:34:23 +0900
> Masami Hiramatsu <mhiramat@kernel.org> wrote:
> 
> > Use raw loopback address instead of localhost, because
> > "localhost" can depend on nsswitch and in some case
> > we can not resolve the localhost.
> > 
> > Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
> > ---
> >  .../selftests/ftrace/test.d/event/event-enable.tc  |    2 +-
> >  .../selftests/ftrace/test.d/event/event-pid.tc     |    2 +-
> >  .../ftrace/test.d/event/subsystem-enable.tc        |    2 +-
> >  .../ftrace/test.d/event/toplevel-enable.tc         |    2 +-
> >  .../ftrace/test.d/ftrace/func-filter-pid.tc        |    2 +-
> >  .../inter-event/trigger-field-variable-support.tc  |    2 +-
> >  .../trigger-inter-event-combined-hist.tc           |    2 +-
> >  .../inter-event/trigger-onmatch-action-hist.tc     |    2 +-
> >  .../trigger-onmatch-onmax-action-hist.tc           |    2 +-
> >  .../inter-event/trigger-onmax-action-hist.tc       |    2 +-
> >  10 files changed, 10 insertions(+), 10 deletions(-)
> > 
> > diff --git a/tools/testing/selftests/ftrace/test.d/event/event-enable.tc b/tools/testing/selftests/ftrace/test.d/event/event-enable.tc
> > index 386dbddbdc11..a028628cdd0e 100644
> > --- a/tools/testing/selftests/ftrace/test.d/event/event-enable.tc
> > +++ b/tools/testing/selftests/ftrace/test.d/event/event-enable.tc
> > @@ -14,7 +14,7 @@ fail() { #msg
> >  }
> >  
> >  yield() {
> > -    ping localhost -c 1 || sleep .001 || usleep 1 || sleep 1
> > +    ping 127.0.0.1 -c 1 || sleep .001 || usleep 1 || sleep 1
> >  }
> >  
> >  if [ ! -f set_event -o ! -d events/sched ]; then
> > diff --git a/tools/testing/selftests/ftrace/test.d/event/event-pid.tc b/tools/testing/selftests/ftrace/test.d/event/event-pid.tc
> > index 6dbf67544fde..6d2897f6a106 100644
> > --- a/tools/testing/selftests/ftrace/test.d/event/event-pid.tc
> > +++ b/tools/testing/selftests/ftrace/test.d/event/event-pid.tc
> > @@ -17,7 +17,7 @@ fail() { #msg
> >  }
> >  
> >  yield() {
> > -    ping localhost -c 1 || sleep .001 || usleep 1 || sleep 1
> > +    ping 127.0.0.1 -c 1 || sleep .001 || usleep 1 || sleep 1
> >  }
> >  
> >  if [ ! -f set_event -o ! -d events/sched ]; then
> > diff --git a/tools/testing/selftests/ftrace/test.d/event/subsystem-enable.tc b/tools/testing/selftests/ftrace/test.d/event/subsystem-enable.tc
> > index 10eb17f161b7..9f0221b39d4d 100644
> > --- a/tools/testing/selftests/ftrace/test.d/event/subsystem-enable.tc
> > +++ b/tools/testing/selftests/ftrace/test.d/event/subsystem-enable.tc
> > @@ -14,7 +14,7 @@ fail() { #msg
> >  }
> >  
> >  yield() {
> > -    ping localhost -c 1 || sleep .001 || usleep 1 || sleep 1
> > +    ping 127.0.0.1 -c 1 || sleep .001 || usleep 1 || sleep 1
> >  }
> >  
> >  if [ ! -f set_event -o ! -d events/sched ]; then
> > diff --git a/tools/testing/selftests/ftrace/test.d/event/toplevel-enable.tc b/tools/testing/selftests/ftrace/test.d/event/toplevel-enable.tc
> > index 8d55a233c1a4..5f3611047d3a 100644
> > --- a/tools/testing/selftests/ftrace/test.d/event/toplevel-enable.tc
> > +++ b/tools/testing/selftests/ftrace/test.d/event/toplevel-enable.tc
> > @@ -13,7 +13,7 @@ fail() { #msg
> >  }
> >  
> >  yield() {
> > -    ping localhost -c 1 || sleep .001 || usleep 1 || sleep 1
> > +    ping 127.0.0.1 -c 1 || sleep .001 || usleep 1 || sleep 1
> >  }
> >  
> >  if [ ! -f available_events -o ! -f set_event -o ! -d events ]; then
> > 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 970903cb7834..cd52cf6a1fc4 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
> > @@ -49,7 +49,7 @@ fail() { # msg
> >  }
> >  
> >  yield() {
> > -    ping localhost -c 1 || sleep .001 || usleep 1 || sleep 1
> > +    ping 127.0.0.1 -c 1 || sleep .001 || usleep 1 || sleep 1
> >  }
> 
> Perhaps we should make this a helper function since it's used so much.

Yeah, agree. OK, I'll add a patch to move it in common place.

> 
> >  
> >  do_test() {
> > diff --git a/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-field-variable-support.tc b/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-field-variable-support.tc
> > index 575af23df04e..59b58c77e9ce 100644
> > --- a/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-field-variable-support.tc
> > +++ b/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-field-variable-support.tc
> > @@ -23,7 +23,7 @@ echo 'hist:keys=comm:ts0=common_timestamp.usecs if comm=="ping"' > events/sched/
> >  echo 'hist:keys=next_comm:wakeup_lat=common_timestamp.usecs-$ts0:onmatch(sched.sched_waking).wakeup_latency($wakeup_lat,next_pid,sched.sched_waking.prio,next_comm) if next_comm=="ping"' > events/sched/sched_switch/trigger
> >  echo 'hist:keys=pid,prio,comm:vals=lat:sort=pid,prio' > events/synthetic/wakeup_latency/trigger
> >  
> > -ping localhost -c 3
> > +ping 127.0.0.1 -c 3
> >  if ! grep -q "ping" events/synthetic/wakeup_latency/hist; then
> >      fail "Failed to create inter-event histogram"
> >  fi
> > diff --git a/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-inter-event-combined-hist.tc b/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-inter-event-combined-hist.tc
> > index 92aef26e2631..0a7709fdfd8e 100644
> > --- a/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-inter-event-combined-hist.tc
> > +++ b/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-inter-event-combined-hist.tc
> > @@ -37,7 +37,7 @@ echo 'waking+wakeup_latency u64 lat; pid_t pid' >> synthetic_events
> >  echo 'hist:keys=pid,lat:sort=pid,lat:ww_lat=$waking_lat+$wakeup_lat:onmatch(synthetic.wakeup_latency).waking+wakeup_latency($ww_lat,pid)' >> events/synthetic/wakeup_latency/trigger
> >  echo 'hist:keys=pid,lat:sort=pid,lat' >> events/synthetic/waking+wakeup_latency/trigger
> >  
> > -ping localhost -c 3
> > +ping 127.0.0.1 -c 3
> >  if ! grep -q "pid:" events/synthetic/waking+wakeup_latency/hist; then
> >      fail "Failed to create combined histogram"
> >  fi
> > diff --git a/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-onmatch-action-hist.tc b/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-onmatch-action-hist.tc
> > index 1ef5dd4521f0..c5bdf8338aeb 100644
> > --- a/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-onmatch-action-hist.tc
> > +++ b/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-onmatch-action-hist.tc
> > @@ -29,7 +29,7 @@ echo "Test histogram variables,simple expression support and onmatch action"
> >  echo 'hist:keys=pid:ts0=common_timestamp.usecs if comm=="ping"' > events/sched/sched_wakeup/trigger
> >  echo 'hist:keys=next_pid:wakeup_lat=common_timestamp.usecs-$ts0:onmatch(sched.sched_wakeup).wakeup_latency($wakeup_lat,next_pid,next_comm) if next_comm=="ping"' > events/sched/sched_switch/trigger
> >  echo 'hist:keys=comm,pid,lat:wakeup_lat=lat:sort=lat' > events/synthetic/wakeup_latency/trigger
> > -ping localhost -c 5
> > +ping 127.0.0.1 -c 5
> >  if ! grep -q "ping" events/synthetic/wakeup_latency/hist; then
> >      fail "Failed to create onmatch action inter-event histogram"
> >  fi
> > diff --git a/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-onmatch-onmax-action-hist.tc b/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-onmatch-onmax-action-hist.tc
> > index 7234683ee5e5..47cb76bfd9c0 100644
> > --- a/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-onmatch-onmax-action-hist.tc
> > +++ b/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-onmatch-onmax-action-hist.tc
> > @@ -29,7 +29,7 @@ echo "Test histogram variables,simple expression support and onmatch-onmax actio
> >  echo 'hist:keys=pid:ts0=common_timestamp.usecs if comm=="ping"' > events/sched/sched_wakeup/trigger
> >  echo 'hist:keys=next_pid:wakeup_lat=common_timestamp.usecs-$ts0:onmatch(sched.sched_wakeup).wakeup_latency($wakeup_lat,next_pid,next_comm):onmax($wakeup_lat).save(next_comm,prev_pid,prev_prio,prev_comm) if next_comm=="ping"' >> events/sched/sched_switch/trigger
> >  echo 'hist:keys=comm,pid,lat:wakeup_lat=lat:sort=lat' > events/synthetic/wakeup_latency/trigger
> > -ping localhost -c 5
> > +ping 127.0.0.1 -c 5
> >  if [ ! grep -q "ping" events/synthetic/wakeup_latency/hist -o ! grep -q "max:" events/sched/sched_switch/hist]; then
> >      fail "Failed to create onmatch-onmax action inter-event histogram"
> >  fi
> > diff --git a/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-onmax-action-hist.tc b/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-onmax-action-hist.tc
> > index 55b9630a1d70..6fa0c449035c 100644
> > --- a/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-onmax-action-hist.tc
> > +++ b/tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-onmax-action-hist.tc
> > @@ -27,7 +27,7 @@ echo "Test onmax action"
> >  
> >  echo 'hist:keys=pid:ts0=common_timestamp.usecs if comm=="ping"' >> events/sched/sched_waking/trigger
> >  echo 'hist:keys=next_pid:wakeup_lat=common_timestamp.usecs-$ts0:onmax($wakeup_lat).save(next_comm,prev_pid,prev_prio,prev_comm) if next_comm=="ping"' >> events/sched/sched_switch/trigger
> > -ping localhost -c 3
> > +ping 127.0.0.1 -c 3
> 
> Perhaps we should also add a variable LOCALHOST="127.0.0.1" and use
> that. I rather not have the raw address all over the place, in case we
> want to change its meaning, it's best to do it in one place.

Agreed. That should be moved in the common place too.

Thank you,

> 
> -- Steve
> 
> >  if ! grep -q "max:" events/sched/sched_switch/hist; then
> >      fail "Failed to create onmax action inter-event histogram"
> >  fi
> 


-- 
Masami Hiramatsu <mhiramat@kernel.org>

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

* Re: [PATCH v2 29/32] selftests/ftrace: Add wakeup_rt tracer testcase
  2018-08-16 16:42 ` [PATCH v2 29/32] selftests/ftrace: Add wakeup_rt " Masami Hiramatsu
@ 2018-08-25  2:09   ` Steven Rostedt
  2018-08-26 11:22     ` Masami Hiramatsu
  0 siblings, 1 reply; 78+ messages in thread
From: Steven Rostedt @ 2018-08-25  2:09 UTC (permalink / raw)
  To: Masami Hiramatsu; +Cc: Shuah Khan, Ingo Molnar, linux-kselftest, linux-kernel

On Fri, 17 Aug 2018 01:42:52 +0900
Masami Hiramatsu <mhiramat@kernel.org> wrote:

> Add a testcase for wakeup_rt tracer. This requires chrt
> command to test.
> 
> Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
> ---
>  .../selftests/ftrace/test.d/tracer/wakeup_rt.tc    |   25 ++++++++++++++++++++
>  1 file changed, 25 insertions(+)
>  create mode 100644 tools/testing/selftests/ftrace/test.d/tracer/wakeup_rt.tc
> 
> diff --git a/tools/testing/selftests/ftrace/test.d/tracer/wakeup_rt.tc b/tools/testing/selftests/ftrace/test.d/tracer/wakeup_rt.tc
> new file mode 100644
> index 000000000000..3f279072ec2d
> --- /dev/null
> +++ b/tools/testing/selftests/ftrace/test.d/tracer/wakeup_rt.tc
> @@ -0,0 +1,25 @@
> +#!/bin/sh
> +# SPDX-License-Identifier: GPL2.0
> +# description: Test wakeup RT tracer
> +
> +if ! which nice ; then
> +  echo "chrt is not found. This test requires chrt command."
> +  exit_unresolved
> +fi
> +
> +if ! grep -wq "wakeup_rt" available_tracers ; then
> +  echo "wakeup_rt tracer is not supported"
> +  exit_unsupported
> +fi
> +
> +echo wakeup > current_tracer

I think you meant "echo wakeup_rt" ;-)

-- Steve

> +echo 1 > tracing_on
> +echo 0 > tracing_max_latency
> +
> +: "Wakeup a realtime task"
> +chrt -f 5 sleep 1
> +
> +echo 0 > tracing_on
> +grep "+ \[[[:digit:]]*\]" trace
> +grep "==> \[[[:digit:]]*\]" trace
> +


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

* Re: [PATCH v2 30/32] selftests/ftrace: Add ftrace cpumask testcase
  2018-08-16 16:43 ` [PATCH v2 30/32] selftests/ftrace: Add ftrace cpumask testcase Masami Hiramatsu
@ 2018-08-25  2:18   ` Steven Rostedt
  2018-08-27 12:16     ` Masami Hiramatsu
  0 siblings, 1 reply; 78+ messages in thread
From: Steven Rostedt @ 2018-08-25  2:18 UTC (permalink / raw)
  To: Masami Hiramatsu; +Cc: Shuah Khan, Ingo Molnar, linux-kselftest, linux-kernel

On Fri, 17 Aug 2018 01:43:20 +0900
Masami Hiramatsu <mhiramat@kernel.org> wrote:

> Add a testcase for tracing_cpumask with function tracer.
> 
> Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
> ---
>  .../selftests/ftrace/test.d/ftrace/func_cpumask.tc |   34 ++++++++++++++++++++
>  1 file changed, 34 insertions(+)
>  create mode 100644 tools/testing/selftests/ftrace/test.d/ftrace/func_cpumask.tc
> 
> diff --git a/tools/testing/selftests/ftrace/test.d/ftrace/func_cpumask.tc b/tools/testing/selftests/ftrace/test.d/ftrace/func_cpumask.tc
> new file mode 100644
> index 000000000000..37420e355445
> --- /dev/null
> +++ b/tools/testing/selftests/ftrace/test.d/ftrace/func_cpumask.tc
> @@ -0,0 +1,34 @@
> +#!/bin/sh
> +# SPDX-License-Identifier: GPL2.0
> +# description: ftrace - function trace with cpumask
> +
> +NP=`grep "^processor" /proc/cpuinfo | wc -l`

A better way to find the number of CPUs is to either use "nproc" or
just look at /sys/devices/system/cpu/cpu[0-9]*. Because what I learned
from experience is that searching for strings in /proc/cpuinfo is not
cross arch compatible. For example, other archs don't use "processor"
in the stings and would come up with a box with 0 CPUs. Something we've
been working on for some time ;-)

-- Steve

> +
> +if [ $NP -eq 1 ] ;then
> +  echo "We can not test cpumask on UP environment"
> +  exit_unresolved
> +fi
> +
> +do_reset() {
> +  echo ffff > tracing_cpumask

Why ffff? Should we save what was in tracing_cpumask first and just
reuse it?

-- Steve


> +}
> +
> +echo 0 > tracing_on
> +echo > trace
> +: "Bitmask only record on CPU1"
> +echo 2 > tracing_cpumask
> +MASK=0x`cat tracing_cpumask`
> +test `printf "%d" $MASK` -eq 2 || do_reset
> +
> +echo function > current_tracer
> +echo 1 > tracing_on
> +(echo "forked")
> +echo 0 > tracing_on
> +
> +: "Check CPU1 events are recorded"
> +grep -q -e "\[001\]" trace || do_reset
> +
> +: "There should be No other cpu events"
> +! grep -qv -e "\[001\]" -e "^#" trace || do_reset
> +
> +do_reset


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

* Re: [PATCH v2 31/32] selftests/ftrace: Add output format testcase
  2018-08-16 16:43 ` [PATCH v2 31/32] selftests/ftrace: Add output format testcase Masami Hiramatsu
@ 2018-08-25  2:19   ` Steven Rostedt
  2018-08-30  7:48     ` Masami Hiramatsu
  0 siblings, 1 reply; 78+ messages in thread
From: Steven Rostedt @ 2018-08-25  2:19 UTC (permalink / raw)
  To: Masami Hiramatsu; +Cc: Shuah Khan, Ingo Molnar, linux-kselftest, linux-kernel

On Fri, 17 Aug 2018 01:43:49 +0900
Masami Hiramatsu <mhiramat@kernel.org> wrote:

> Add a testcase for tracing output format using trace_marker.
> This tests raw, hex and bin format output.

I'd like to deprecate these formats. They are useless ever since we
implemented trace_pipe_raw.

Let's not add this test.

Thanks,

-- Steve

> 
> Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
> ---
>  .../ftrace/test.d/00basic/print_format.tc          |   51 ++++++++++++++++++++
>  1 file changed, 51 insertions(+)
>  create mode 100644 tools/testing/selftests/ftrace/test.d/00basic/print_format.tc
> 
> diff --git a/tools/testing/selftests/ftrace/test.d/00basic/print_format.tc b/tools/testing/selftests/ftrace/test.d/00basic/print_format.tc
> new file mode 100644
> index 000000000000..55feb542e83e
> --- /dev/null
> +++ b/tools/testing/selftests/ftrace/test.d/00basic/print_format.tc
> @@ -0,0 +1,51 @@
> +#!/bin/sh
> +# SPDX-License-Identifier: GPL2.0
> +# description: Change print trace format
> +
> +if [ ! -f trace_marker ]; then
> +  echo "trace_marker is not supported, can not continue testing"
> +  exit_unresolved
> +fi
> +
> +do_reset() {
> +  if [ `cat options/bin` -eq 1 ]; then
> +    grep -v "^#" trace | od -h | cut -f 2- -d " " | xargs echo
> +  fi
> +  echo 0 > options/hex
> +  echo 0 > options/raw
> +  echo 0 > options/bin
> +  cat trace
> +  exit 1
> +}
> +
> +echo > trace
> +echo "abcdefgh" > trace_marker
> +echo 0 > tracing_on
> +
> +: "Get the pid and cpu#"
> +IDS=`grep -v "^#" trace | sed -e 's/[[:space:]]*.*-\([[:digit:]]*\)[[:space:]]*\[\([[:digit:]]*\)\].*/\1 \2/'`
> +
> +read_pid_cpu() {
> +  _PID=$1
> +  _CPU=`printf "%d" $2`
> +}
> +
> +read_pid_cpu $IDS
> +
> +: "Test raw output format"
> +echo 1 > options/raw
> +grep -v "^#" trace | grep "^$_PID $_CPU" || do_reset
> +echo 0 > options/raw
> +
> +: "Test hex output format"
> +echo 1 > options/hex
> +PAT=`printf "%08x %08x" $_PID $_CPU`
> +grep -v "^#" trace | grep "^$PAT" || do_reset
> +echo 0 > options/hex
> +
> +: "Test bin output format"
> +echo 1 > options/bin
> +PAT=`printf "%04x [[:xdigit:]]* [[:xdigit:]]*%02x" $_PID $_CPU`
> +# Make a stream of hexdump
> +grep -v "^#" trace | od -h | cut -f 2- -d " " | xargs echo | grep "$PAT" || do_reset
> +echo 0 > options/bin


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

* Re: [PATCH v2 32/32] selftests/ftrace: Add blktrace testcase
  2018-08-16 16:44 ` [PATCH v2 32/32] selftests/ftrace: Add blktrace testcase Masami Hiramatsu
@ 2018-08-25  2:22   ` Steven Rostedt
  2018-08-30  7:53     ` Masami Hiramatsu
  0 siblings, 1 reply; 78+ messages in thread
From: Steven Rostedt @ 2018-08-25  2:22 UTC (permalink / raw)
  To: Masami Hiramatsu
  Cc: Shuah Khan, Ingo Molnar, linux-kselftest, linux-kernel, Jens Axboe

On Fri, 17 Aug 2018 01:44:18 +0900
Masami Hiramatsu <mhiramat@kernel.org> wrote:

> Add a basic testcase for blktrace. For making it portable,
> this test uses a loop device.

blktrace is a bit special, as it's maintained by the block subsystem
and not really truly part of ftrace. It lives in the tracing directory,
but the changes go through Jens's tree. I'm guessing that Jens already
has tests for this. Not sure we should add a test to the ftrace
selftests for this tracer.

Jens, you have thoughts on this?

-- Steve

> 
> Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
> ---
>  tools/testing/selftests/ftrace/config              |    1 
>  .../testing/selftests/ftrace/test.d/tracer/blk.tc  |   91 ++++++++++++++++++++
>  2 files changed, 92 insertions(+)
>  create mode 100644 tools/testing/selftests/ftrace/test.d/tracer/blk.tc
> 
> diff --git a/tools/testing/selftests/ftrace/config b/tools/testing/selftests/ftrace/config
> index c2c8de4fafff..d999032442e1 100644
> --- a/tools/testing/selftests/ftrace/config
> +++ b/tools/testing/selftests/ftrace/config
> @@ -5,6 +5,7 @@ CONFIG_TRACER_SNAPSHOT=y
>  CONFIG_STACK_TRACER=y
>  CONFIG_HIST_TRIGGERS=y
>  CONFIG_SCHED_TRACER=y
> +CONFIG_BLK_DEV_IO_TRACE=y
>  CONFIG_PREEMPT_TRACER=y
>  CONFIG_IRQSOFF_TRACER=y
>  CONFIG_PREEMPTIRQ_DELAY_TEST=m
> diff --git a/tools/testing/selftests/ftrace/test.d/tracer/blk.tc b/tools/testing/selftests/ftrace/test.d/tracer/blk.tc
> new file mode 100644
> index 000000000000..9d6e72810c8a
> --- /dev/null
> +++ b/tools/testing/selftests/ftrace/test.d/tracer/blk.tc
> @@ -0,0 +1,91 @@
> +#!/bin/sh
> +# SPDX-License-Identifier: GPL2.0
> +# description: Test blktrace
> +
> +IMG=$TMPDIR/fs.img
> +MNTDIR=$TMPDIR/mnt
> +
> +if ! grep -wq "blk" available_tracers ; then
> +  echo "blktrace is not supported"
> +  exit_unsupported
> +fi
> +
> +available_fs() { #fstype
> +  grep -q $1 /proc/filesystems && which mkfs.$1
> +}
> +
> +if available_fs ext3; then
> +  FSTYPE=ext3
> +elif available_fs ext4; then
> +  FSTYPE=ext4
> +elif available_fs ext2; then
> +  FSTYPE=ext2
> +elif available_fs xfs; then
> +  FSTYPE=xfs
> +elif available_fs btrfs; then
> +  FSTYPE=btrfs
> +else
> +  echo "No available block-based filesystems"
> +  exit_unresolved
> +fi
> +
> +if ! which losetup; then
> +  echo "No losetup found"
> +  exit_unresolved
> +fi
> +LODEV=`losetup -f`
> +LODEVTRACE=/sys/block/`basename $LODEV`/trace
> +
> +do_cleanup() {
> +  if [ -d $MNTDIR ]; then
> +   umount $MNTDIR ||:
> +  fi
> +  losetup -d $LODEV ||:
> +  rm -f $IMG
> +}
> +
> +# workload failure is not a tracer's failure
> +workload_fail() {
> +  do_cleanup
> +  echo "Failed to run workload"
> +  exit_unresolved
> +}
> +
> +do_fail() {
> +  do_cleanup
> +  echo "Test failed"
> +  exit 1
> +}
> +
> +enable_lodevtrace() {
> +  if [ `cat $LODEVTRACE/enable` -ne 1 ]; then
> +    echo 1 > $LODEVTRACE/enable
> +  fi
> +}
> +
> +echo blk > current_tracer
> +
> +dd if=/dev/zero of=$IMG bs=1M count=10 &&\
> +losetup $LODEV $IMG &&\
> +mkfs.$FSTYPE $LODEV &&\
> +mkdir -p $MNTDIR &&\
> +mount -t $FSTYPE $LODEV $MNTDIR &&\
> +enable_lodevtrace &&\
> +dd if=/dev/urandom of=$MNTDIR/testfile bs=1M count=1 &&\
> +sync &&\
> +umount $MNTDIR || workload_fail
> +
> +grep -q "[dd]" trace || do_fail
> +grep -q "[umount]" trace || do_fail
> +echo > trace
> +
> +losetup $LODEV $IMG &&\
> +mount -t $FSTYPE $LODEV $MNTDIR &&\
> +cat $MNTDIR/testfile > /dev/null &&\
> +echo 0 > $LODEVTRACE/enable &&\
> +umount $MNTDIR || workload_fail
> +
> +grep -q "[cat]" trace || do_fail
> +grep -q "[mount]" trace || do_fail
> +
> +do_cleanup


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

* Re: [PATCH v2 24/32] selftests/ftrace: Add max stack tracer testcase
  2018-08-25  1:45     ` Masami Hiramatsu
@ 2018-08-25  2:41       ` Steven Rostedt
  2018-08-26  8:42         ` Masami Hiramatsu
  0 siblings, 1 reply; 78+ messages in thread
From: Steven Rostedt @ 2018-08-25  2:41 UTC (permalink / raw)
  To: Masami Hiramatsu; +Cc: Shuah Khan, Ingo Molnar, linux-kselftest, linux-kernel

On Sat, 25 Aug 2018 10:45:09 +0900
Masami Hiramatsu <mhiramat@kernel.org> wrote:

> On Fri, 24 Aug 2018 19:23:52 -0400
> Steven Rostedt <rostedt@goodmis.org> wrote:
> 
> > On Fri, 17 Aug 2018 01:40:30 +0900
> > Masami Hiramatsu <mhiramat@kernel.org> wrote:
> >   
> > > Add a testcase for max stack tracer, which checks basic
> > > max stack usage tracing and its filter feature.
> > > 
> > > Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
> > > ---
> > >  .../ftrace/test.d/ftrace/func_stack_tracer.tc      |   39 ++++++++++++++++++++
> > >  1 file changed, 39 insertions(+)
> > >  create mode 100644 tools/testing/selftests/ftrace/test.d/ftrace/func_stack_tracer.tc
> > > 
> > > 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
> > > new file mode 100644
> > > index 000000000000..b414f0e3c646
> > > --- /dev/null
> > > +++ b/tools/testing/selftests/ftrace/test.d/ftrace/func_stack_tracer.tc
> > > @@ -0,0 +1,39 @@
> > > +#!/bin/sh
> > > +# SPDX-License-Identifier: GPL-2.0
> > > +# description: ftrace - Max stack tracer
> > > +# Test the basic function of max-stack usage tracing
> > > +
> > > +if [ ! -f stack_trace ]; then
> > > +  echo "Max stack tracer is not supported - please make CONFIG_STACK_TRACER=y"
> > > +  exit_unsupported
> > > +fi
> > > +
> > > +echo > stack_trace_filter
> > > +echo 0 > stack_max_size
> > > +echo 1 > /proc/sys/kernel/stack_tracer_enabled
> > > +
> > > +: "Fork and wait for the first entry become !lock"
> > > +timeout=10
> > > +while [ $timeout -ne 0 ]; do
> > > +  ( echo "forked" )
> > > +  FL=`grep " 0)" stack_trace`
> > > +  echo $FL | grep -q "lock" || break;
> > > +  timeout=$((timeout - 1))
> > > +done
> > > +echo 0 > /proc/sys/kernel/stack_tracer_enabled
> > > +
> > > +echo '*lock*' > stack_trace_filter
> > > +test `cat stack_trace_filter | wc -l` -eq `grep lock stack_trace_filter | wc -l`
> > > +
> > > +echo 0 > stack_max_size
> > > +echo 1 > /proc/sys/kernel/stack_tracer_enabled  
> > 
> > This test fails quite a bit because it doesn't guarantee that another
> > stack trace gets in that is bigger, and we don't find the "lock".  
> 
> Hmm, maybe I misunderstand what is the stack_trace_filter.
> I thought it filtered the function that triggered stack trace,
> so the top of stack trace was always filtered function.
> If not, what does this filter?

Ah, I missed the filter part, no its correct, and actually found a
bug ;-) By adding this patch, it works again:

diff --git a/kernel/trace/trace_stack.c b/kernel/trace/trace_stack.c
index 4237eba4ef20..2b0d1ee3241c 100644
--- a/kernel/trace/trace_stack.c
+++ b/kernel/trace/trace_stack.c
@@ -111,7 +111,7 @@ check_stack(unsigned long ip, unsigned long *stack)
 	stack_trace_max_size = this_size;
 
 	stack_trace_max.nr_entries = 0;
-	stack_trace_max.skip = 3;
+	stack_trace_max.skip = 0;
 
 	save_stack_trace(&stack_trace_max);
 


-- Steve

> >   
> > > +
> > > +: "Fork and always the first entry including lock"
> > > +timeout=10
> > > +while [ $timeout -ne 0 ]; do
> > > +  ( echo "forked" )
> > > +  FL=`grep " 0)" stack_trace`
> > > +  echo $FL | grep -q "lock"
> > > +  timeout=$((timeout - 1))
> > > +done
> > > +echo 0 > /proc/sys/kernel/stack_tracer_enabled  
> >   
> 
> 


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

* Re: [PATCH v2 03/32] selftests/ftrace: Add --console hidden option
  2018-08-25  1:42       ` Steven Rostedt
@ 2018-08-26  7:28         ` Masami Hiramatsu
  0 siblings, 0 replies; 78+ messages in thread
From: Masami Hiramatsu @ 2018-08-26  7:28 UTC (permalink / raw)
  To: Steven Rostedt; +Cc: Shuah Khan, Ingo Molnar, linux-kselftest, linux-kernel

On Fri, 24 Aug 2018 21:42:04 -0400
Steven Rostedt <rostedt@goodmis.org> wrote:

> On Sat, 25 Aug 2018 10:35:13 +0900
> Masami Hiramatsu <mhiramat@kernel.org> wrote:
> 
> > On Fri, 24 Aug 2018 16:37:37 -0400
> > Steven Rostedt <rostedt@goodmis.org> wrote:
> > 
> > > On Fri, 17 Aug 2018 01:30:36 +0900
> > > Masami Hiramatsu <mhiramat@kernel.org> wrote:
> > >   
> > > > Add --console hidden option for debug test cases.
> > > > This option allows to put "sh" or something else
> > > > when the test case hits a bug.  
> > > 
> > > Can you add more information to why and how this would be used.  
> > 
> > For example, if you find a testcase which doesn't
> > pass, you can insert sh for interactive debug as below
> > 
> >   #!/bin/sh
> >   # description: sample test case
> > 
> >   good-command
> >   suspicious-wrong-command
> >   sh # <- add this for interactive debug
> > 
> 
> Ah! OK. But this needs to be explained a little better in the change
> log as well as in the comments for it.

Ah sorry I missed "I will add following example"... yes, of course
I add this to description.

Thank you,

> 
> Thanks!
> 
> -- Steve


-- 
Masami Hiramatsu <mhiramat@kernel.org>

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

* Re: [PATCH v2 19/32] selftests/ftrace: Add a testcase for nop tracer
  2018-08-24 22:53   ` Steven Rostedt
@ 2018-08-26  7:30     ` Masami Hiramatsu
  0 siblings, 0 replies; 78+ messages in thread
From: Masami Hiramatsu @ 2018-08-26  7:30 UTC (permalink / raw)
  To: Steven Rostedt; +Cc: Shuah Khan, Ingo Molnar, linux-kselftest, linux-kernel

On Fri, 24 Aug 2018 18:53:42 -0400
Steven Rostedt <rostedt@goodmis.org> wrote:

> On Fri, 17 Aug 2018 01:38:09 +0900
> Masami Hiramatsu <mhiramat@kernel.org> wrote:
> 
> > Add a testcase for nop tracer. This tracer has 2 test
> > options, so check it too.
> > 
> 
> I'd rather not include this. In fact, I'd love to get rid of the nop
> options. They were added to make sure options worked when we first
> added them. They are actually pointless.

Got it. I was thinking it was an odd option when I was writing a test. :)

> The only point of this test is to know if options work or not. Hmm, I
> guess that is something that could possibly be valuable :-/

Actually setting "nop" is already done in basic testcase. So I think
we can just drop this test.


Thank you,
 
> -- Steve
> 
> 
> > Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
> > ---
> >  .../testing/selftests/ftrace/test.d/tracer/nop.tc  |   22 ++++++++++++++++++++
> >  1 file changed, 22 insertions(+)
> >  create mode 100644 tools/testing/selftests/ftrace/test.d/tracer/nop.tc
> > 
> > diff --git a/tools/testing/selftests/ftrace/test.d/tracer/nop.tc b/tools/testing/selftests/ftrace/test.d/tracer/nop.tc
> > new file mode 100644
> > index 000000000000..ca63e316e0f5
> > --- /dev/null
> > +++ b/tools/testing/selftests/ftrace/test.d/tracer/nop.tc
> > @@ -0,0 +1,22 @@
> > +#!/bin/sh
> > +# SPDX-License-Identifier: GPL-2.0
> > +# description: Test nop tracer
> > +
> > +# nop must be supported always
> > +grep -q "nop" available_tracers
> > +
> > +echo "nop" > current_tracer
> > +
> > +# nop provides 2 test options
> > +grep -q "test_nop_accept" trace_options
> > +grep -q "test_nop_refuse" trace_options
> > +
> > +# nop_accept always success
> > +echo "test_nop_accept" > trace_options
> > +echo "notest_nop_accept" > trace_options
> > +
> > +# nop_refuse always failed
> > +! echo "test_nop_refuse" > trace_options
> > +! echo "notest_nop_refuse" > trace_options
> > +
> > +exit 0
> 


-- 
Masami Hiramatsu <mhiramat@kernel.org>

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

* Re: [PATCH v2 24/32] selftests/ftrace: Add max stack tracer testcase
  2018-08-25  2:41       ` Steven Rostedt
@ 2018-08-26  8:42         ` Masami Hiramatsu
  0 siblings, 0 replies; 78+ messages in thread
From: Masami Hiramatsu @ 2018-08-26  8:42 UTC (permalink / raw)
  To: Steven Rostedt; +Cc: Shuah Khan, Ingo Molnar, linux-kselftest, linux-kernel

On Fri, 24 Aug 2018 22:41:22 -0400
Steven Rostedt <rostedt@goodmis.org> wrote:

> On Sat, 25 Aug 2018 10:45:09 +0900
> Masami Hiramatsu <mhiramat@kernel.org> wrote:
> 
> > On Fri, 24 Aug 2018 19:23:52 -0400
> > Steven Rostedt <rostedt@goodmis.org> wrote:
> > 
> > > On Fri, 17 Aug 2018 01:40:30 +0900
> > > Masami Hiramatsu <mhiramat@kernel.org> wrote:
> > >   
> > > > Add a testcase for max stack tracer, which checks basic
> > > > max stack usage tracing and its filter feature.
> > > > 
> > > > Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
> > > > ---
> > > >  .../ftrace/test.d/ftrace/func_stack_tracer.tc      |   39 ++++++++++++++++++++
> > > >  1 file changed, 39 insertions(+)
> > > >  create mode 100644 tools/testing/selftests/ftrace/test.d/ftrace/func_stack_tracer.tc
> > > > 
> > > > 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
> > > > new file mode 100644
> > > > index 000000000000..b414f0e3c646
> > > > --- /dev/null
> > > > +++ b/tools/testing/selftests/ftrace/test.d/ftrace/func_stack_tracer.tc
> > > > @@ -0,0 +1,39 @@
> > > > +#!/bin/sh
> > > > +# SPDX-License-Identifier: GPL-2.0
> > > > +# description: ftrace - Max stack tracer
> > > > +# Test the basic function of max-stack usage tracing
> > > > +
> > > > +if [ ! -f stack_trace ]; then
> > > > +  echo "Max stack tracer is not supported - please make CONFIG_STACK_TRACER=y"
> > > > +  exit_unsupported
> > > > +fi
> > > > +
> > > > +echo > stack_trace_filter
> > > > +echo 0 > stack_max_size
> > > > +echo 1 > /proc/sys/kernel/stack_tracer_enabled
> > > > +
> > > > +: "Fork and wait for the first entry become !lock"
> > > > +timeout=10
> > > > +while [ $timeout -ne 0 ]; do
> > > > +  ( echo "forked" )
> > > > +  FL=`grep " 0)" stack_trace`
> > > > +  echo $FL | grep -q "lock" || break;
> > > > +  timeout=$((timeout - 1))
> > > > +done
> > > > +echo 0 > /proc/sys/kernel/stack_tracer_enabled
> > > > +
> > > > +echo '*lock*' > stack_trace_filter
> > > > +test `cat stack_trace_filter | wc -l` -eq `grep lock stack_trace_filter | wc -l`
> > > > +
> > > > +echo 0 > stack_max_size
> > > > +echo 1 > /proc/sys/kernel/stack_tracer_enabled  
> > > 
> > > This test fails quite a bit because it doesn't guarantee that another
> > > stack trace gets in that is bigger, and we don't find the "lock".  
> > 
> > Hmm, maybe I misunderstand what is the stack_trace_filter.
> > I thought it filtered the function that triggered stack trace,
> > so the top of stack trace was always filtered function.
> > If not, what does this filter?
> 
> Ah, I missed the filter part, no its correct, and actually found a
> bug ;-) By adding this patch, it works again:

Great! this shows ftracetest really works :)
Anyway, with this fix, we don't need the timeout things anymore.

Thanks!

> 
> diff --git a/kernel/trace/trace_stack.c b/kernel/trace/trace_stack.c
> index 4237eba4ef20..2b0d1ee3241c 100644
> --- a/kernel/trace/trace_stack.c
> +++ b/kernel/trace/trace_stack.c
> @@ -111,7 +111,7 @@ check_stack(unsigned long ip, unsigned long *stack)
>  	stack_trace_max_size = this_size;
>  
>  	stack_trace_max.nr_entries = 0;
> -	stack_trace_max.skip = 3;
> +	stack_trace_max.skip = 0;
>  
>  	save_stack_trace(&stack_trace_max);
>  
> 
> 
> -- Steve
> 
> > >   
> > > > +
> > > > +: "Fork and always the first entry including lock"
> > > > +timeout=10
> > > > +while [ $timeout -ne 0 ]; do
> > > > +  ( echo "forked" )
> > > > +  FL=`grep " 0)" stack_trace`
> > > > +  echo $FL | grep -q "lock"
> > > > +  timeout=$((timeout - 1))
> > > > +done
> > > > +echo 0 > /proc/sys/kernel/stack_tracer_enabled  
> > >   
> > 
> > 
> 


-- 
Masami Hiramatsu <mhiramat@kernel.org>

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

* Re: [PATCH v2 21/32] selftests/ftrace: Add trace_printk sample module test
  2018-08-24 23:06   ` Steven Rostedt
@ 2018-08-26  8:43     ` Masami Hiramatsu
  0 siblings, 0 replies; 78+ messages in thread
From: Masami Hiramatsu @ 2018-08-26  8:43 UTC (permalink / raw)
  To: Steven Rostedt; +Cc: Shuah Khan, Ingo Molnar, linux-kselftest, linux-kernel

On Fri, 24 Aug 2018 19:06:21 -0400
Steven Rostedt <rostedt@goodmis.org> wrote:

> On Fri, 17 Aug 2018 01:39:06 +0900
> Masami Hiramatsu <mhiramat@kernel.org> wrote:
> 
> > Add trace_printk sample module test. This requires to
> > enable trace_printk.ko module for test.
> > 
> > Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
> > ---
> >  .../selftests/ftrace/test.d/event/trace_printk.tc  |   27 ++++++++++++++++++++
> >  1 file changed, 27 insertions(+)
> >  create mode 100644 tools/testing/selftests/ftrace/test.d/event/trace_printk.tc
> > 
> > diff --git a/tools/testing/selftests/ftrace/test.d/event/trace_printk.tc b/tools/testing/selftests/ftrace/test.d/event/trace_printk.tc
> > new file mode 100644
> > index 000000000000..4da4d739f03d
> > --- /dev/null
> > +++ b/tools/testing/selftests/ftrace/test.d/event/trace_printk.tc
> > @@ -0,0 +1,27 @@
> > +#!/bin/sh
> > +# SPDX-License-Identifier: GPL-2.0
> > +# description: Test trace_printk from module
> > +
> > +rmmod trace-printk ||:
> > +if ! modprobe trace-printk.ko ; then
> 
> "modprobe trace-printk.ko" doesn't work. You need to drop the ".ko"

Ah, I'm using busybox's modprobe, which acccepts .ko :(

I'll fix that.

Thanks!

> 
> -- Steve
> 
> > +  echo "No trace-printk sample module - please make CONFIG_SAMPLE_TRACE_PRINTK=m"
> > +  exit_unresolved;
> > +fi
> > +
> > +echo "Waiting for irq work"
> > +sleep 1
> > +
> > +grep -q ": This .* trace_bputs" trace
> > +grep -q ": This .* trace_puts" trace
> > +grep -q ": This .* trace_bprintk" trace
> > +grep -q ": This .* trace_printk" trace
> > +
> > +grep -q ": (irq) .* trace_bputs" trace
> > +grep -q ": (irq) .* trace_puts" trace
> > +grep -q ": (irq) .* trace_bprintk" trace
> > +grep -q ": (irq) .* trace_printk" trace
> > +
> > +grep -q "This is a %s that will use trace_bprintk" printk_formats
> > +grep -q "(irq) This is a static string that will use trace_bputs" printk_formats
> > +
> > +rmmod trace-printk ||:
> 


-- 
Masami Hiramatsu <mhiramat@kernel.org>

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

* Re: [PATCH v2 23/32] selftests/ftrace: Add function profiling stat testcase
  2018-08-24 23:20   ` Steven Rostedt
@ 2018-08-26 11:20     ` Masami Hiramatsu
  0 siblings, 0 replies; 78+ messages in thread
From: Masami Hiramatsu @ 2018-08-26 11:20 UTC (permalink / raw)
  To: Steven Rostedt; +Cc: Shuah Khan, Ingo Molnar, linux-kselftest, linux-kernel

On Fri, 24 Aug 2018 19:20:18 -0400
Steven Rostedt <rostedt@goodmis.org> wrote:

> On Fri, 17 Aug 2018 01:40:02 +0900
> Masami Hiramatsu <mhiramat@kernel.org> wrote:
> 
> > Add a testcase for function profiling per-cpu statistics
> > interface. There is already func_profile.tc, but that is
> > mainly focusing on the combination of function-profiler
> > and function tracer. This testcase ensures trace_stat
> > per-cpu function statistics is correctly updated.
> > 
> > Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
> > ---
> >  .../ftrace/test.d/ftrace/func_profile_stat.tc      |   23 ++++++++++++++++++++
> >  1 file changed, 23 insertions(+)
> >  create mode 100644 tools/testing/selftests/ftrace/test.d/ftrace/func_profile_stat.tc
> > 
> > diff --git a/tools/testing/selftests/ftrace/test.d/ftrace/func_profile_stat.tc b/tools/testing/selftests/ftrace/test.d/ftrace/func_profile_stat.tc
> > new file mode 100644
> > index 000000000000..1d2440d80ec3
> > --- /dev/null
> > +++ b/tools/testing/selftests/ftrace/test.d/ftrace/func_profile_stat.tc
> > @@ -0,0 +1,23 @@
> > +#!/bin/sh
> > +# SPDX-License-Identifier: GPL-2.0
> > +# description: ftrace - function profiling
> > +
> > +[ ! -f function_profile_enabled ] && exit_unsupported
> > +
> > +: "Enable function profile"
> > +echo 1 > function_profile_enabled
> > +
> > +: "Profile must be updated"
> > +cp trace_stat/function0 $TMPDIR/
> > +( echo "forked"; sleep 1 )
> > +: "diff returns 0 if there is no difference"
> > +! diff trace_stat/function0 $TMPDIR/function0
> > +
> > +echo 0 > function_profile_enabled
> > +
> > +: "Profile must NOT be updated"
> > +cp trace_stat/function0 $TMPDIR/
> > +( echo "forked"; sleep 1 )
> > +: "diff returns 0 if there is no difference"
> > +diff trace_stat/function0 $TMPDIR/function0
> 
> > +
> 
> Can remove the last empty line from the file.

Yes, thank you for pointing it out.

> 
> Other than that...
> 
> Acked-by: Steven Rostedt (VMware) <rostedt@goodmis.org>

Thanks!

> 
> -- Steve
> 
> -- Steve


-- 
Masami Hiramatsu <mhiramat@kernel.org>

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

* Re: [PATCH v2 26/32] selftests/ftrace: Add trace_pipe testcase
  2018-08-24 23:26   ` Steven Rostedt
@ 2018-08-26 11:20     ` Masami Hiramatsu
  0 siblings, 0 replies; 78+ messages in thread
From: Masami Hiramatsu @ 2018-08-26 11:20 UTC (permalink / raw)
  To: Steven Rostedt; +Cc: Shuah Khan, Ingo Molnar, linux-kselftest, linux-kernel

On Fri, 24 Aug 2018 19:26:29 -0400
Steven Rostedt <rostedt@goodmis.org> wrote:

> On Fri, 17 Aug 2018 01:41:27 +0900
> Masami Hiramatsu <mhiramat@kernel.org> wrote:
> 
> > Add a simple testcase for trace_pipe which can consume
> > ringbuffer.
> > 
> > Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
> > ---
> >  .../selftests/ftrace/test.d/00basic/trace_pipe.tc  |   15 +++++++++++++++
> >  1 file changed, 15 insertions(+)
> >  create mode 100644 tools/testing/selftests/ftrace/test.d/00basic/trace_pipe.tc
> > 
> > diff --git a/tools/testing/selftests/ftrace/test.d/00basic/trace_pipe.tc b/tools/testing/selftests/ftrace/test.d/00basic/trace_pipe.tc
> > new file mode 100644
> > index 000000000000..a7dd6fda487a
> > --- /dev/null
> > +++ b/tools/testing/selftests/ftrace/test.d/00basic/trace_pipe.tc
> > @@ -0,0 +1,15 @@
> > +#!/bin/sh
> > +# SPDX-License-Identifier: GPL-2.0
> > +# description: trace_pipe and trace_marker
> 
> Should add:
> 
>  # flags: instance

Ah, right!

Thanks!

> 
> -- Steve
> 
> > +
> > +[ ! -f trace_marker ] && exit_unsupported
> > +
> > +echo "test input 1" > trace_marker
> > +
> > +: "trace interface never consume the ring buffer"
> > +grep -q "test input 1" trace
> > +grep -q "test input 1" trace
> > +
> > +: "trace interface never consume the ring buffer"
> > +head -n 1 trace_pipe | grep -q "test input 1"
> > +! grep -q "test input 1" trace
> 


-- 
Masami Hiramatsu <mhiramat@kernel.org>

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

* Re: [PATCH v2 29/32] selftests/ftrace: Add wakeup_rt tracer testcase
  2018-08-25  2:09   ` Steven Rostedt
@ 2018-08-26 11:22     ` Masami Hiramatsu
  0 siblings, 0 replies; 78+ messages in thread
From: Masami Hiramatsu @ 2018-08-26 11:22 UTC (permalink / raw)
  To: Steven Rostedt; +Cc: Shuah Khan, Ingo Molnar, linux-kselftest, linux-kernel

On Fri, 24 Aug 2018 22:09:49 -0400
Steven Rostedt <rostedt@goodmis.org> wrote:

> On Fri, 17 Aug 2018 01:42:52 +0900
> Masami Hiramatsu <mhiramat@kernel.org> wrote:
> 
> > Add a testcase for wakeup_rt tracer. This requires chrt
> > command to test.
> > 
> > Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
> > ---
> >  .../selftests/ftrace/test.d/tracer/wakeup_rt.tc    |   25 ++++++++++++++++++++
> >  1 file changed, 25 insertions(+)
> >  create mode 100644 tools/testing/selftests/ftrace/test.d/tracer/wakeup_rt.tc
> > 
> > diff --git a/tools/testing/selftests/ftrace/test.d/tracer/wakeup_rt.tc b/tools/testing/selftests/ftrace/test.d/tracer/wakeup_rt.tc
> > new file mode 100644
> > index 000000000000..3f279072ec2d
> > --- /dev/null
> > +++ b/tools/testing/selftests/ftrace/test.d/tracer/wakeup_rt.tc
> > @@ -0,0 +1,25 @@
> > +#!/bin/sh
> > +# SPDX-License-Identifier: GPL2.0
> > +# description: Test wakeup RT tracer
> > +
> > +if ! which nice ; then
> > +  echo "chrt is not found. This test requires chrt command."
> > +  exit_unresolved
> > +fi
> > +
> > +if ! grep -wq "wakeup_rt" available_tracers ; then
> > +  echo "wakeup_rt tracer is not supported"
> > +  exit_unsupported
> > +fi
> > +
> > +echo wakeup > current_tracer
> 
> I think you meant "echo wakeup_rt" ;-)

Oops, that's my fault....

Thanks!

> 
> -- Steve
> 
> > +echo 1 > tracing_on
> > +echo 0 > tracing_max_latency
> > +
> > +: "Wakeup a realtime task"
> > +chrt -f 5 sleep 1
> > +
> > +echo 0 > tracing_on
> > +grep "+ \[[[:digit:]]*\]" trace
> > +grep "==> \[[[:digit:]]*\]" trace
> > +
> 


-- 
Masami Hiramatsu <mhiramat@kernel.org>

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

* Re: [PATCH v2 30/32] selftests/ftrace: Add ftrace cpumask testcase
  2018-08-25  2:18   ` Steven Rostedt
@ 2018-08-27 12:16     ` Masami Hiramatsu
  0 siblings, 0 replies; 78+ messages in thread
From: Masami Hiramatsu @ 2018-08-27 12:16 UTC (permalink / raw)
  To: Steven Rostedt; +Cc: Shuah Khan, Ingo Molnar, linux-kselftest, linux-kernel

On Fri, 24 Aug 2018 22:18:22 -0400
Steven Rostedt <rostedt@goodmis.org> wrote:

> On Fri, 17 Aug 2018 01:43:20 +0900
> Masami Hiramatsu <mhiramat@kernel.org> wrote:
> 
> > Add a testcase for tracing_cpumask with function tracer.
> > 
> > Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
> > ---
> >  .../selftests/ftrace/test.d/ftrace/func_cpumask.tc |   34 ++++++++++++++++++++
> >  1 file changed, 34 insertions(+)
> >  create mode 100644 tools/testing/selftests/ftrace/test.d/ftrace/func_cpumask.tc
> > 
> > diff --git a/tools/testing/selftests/ftrace/test.d/ftrace/func_cpumask.tc b/tools/testing/selftests/ftrace/test.d/ftrace/func_cpumask.tc
> > new file mode 100644
> > index 000000000000..37420e355445
> > --- /dev/null
> > +++ b/tools/testing/selftests/ftrace/test.d/ftrace/func_cpumask.tc
> > @@ -0,0 +1,34 @@
> > +#!/bin/sh
> > +# SPDX-License-Identifier: GPL2.0
> > +# description: ftrace - function trace with cpumask
> > +
> > +NP=`grep "^processor" /proc/cpuinfo | wc -l`
> 
> A better way to find the number of CPUs is to either use "nproc" or
> just look at /sys/devices/system/cpu/cpu[0-9]*. Because what I learned
> from experience is that searching for strings in /proc/cpuinfo is not
> cross arch compatible. For example, other archs don't use "processor"
> in the stings and would come up with a box with 0 CPUs. Something we've
> been working on for some time ;-)

OK, I'll use nproc. 

> 
> -- Steve
> 
> > +
> > +if [ $NP -eq 1 ] ;then
> > +  echo "We can not test cpumask on UP environment"
> > +  exit_unresolved
> > +fi
> > +
> > +do_reset() {
> > +  echo ffff > tracing_cpumask
> 
> Why ffff? Should we save what was in tracing_cpumask first and just
> reuse it?

OK, it also works. I just took a margin :) 

Thanks!

> 
> -- Steve
> 
> 
> > +}
> > +
> > +echo 0 > tracing_on
> > +echo > trace
> > +: "Bitmask only record on CPU1"
> > +echo 2 > tracing_cpumask
> > +MASK=0x`cat tracing_cpumask`
> > +test `printf "%d" $MASK` -eq 2 || do_reset
> > +
> > +echo function > current_tracer
> > +echo 1 > tracing_on
> > +(echo "forked")
> > +echo 0 > tracing_on
> > +
> > +: "Check CPU1 events are recorded"
> > +grep -q -e "\[001\]" trace || do_reset
> > +
> > +: "There should be No other cpu events"
> > +! grep -qv -e "\[001\]" -e "^#" trace || do_reset
> > +
> > +do_reset
> 


-- 
Masami Hiramatsu <mhiramat@kernel.org>

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

* Re: [PATCH v2 22/32] selftests/ftrace: Add ringbuffer size changing testcase
  2018-08-24 23:18   ` Steven Rostedt
@ 2018-08-30  7:12     ` Masami Hiramatsu
  2018-08-30 15:50       ` Steven Rostedt
  0 siblings, 1 reply; 78+ messages in thread
From: Masami Hiramatsu @ 2018-08-30  7:12 UTC (permalink / raw)
  To: Steven Rostedt; +Cc: Shuah Khan, Ingo Molnar, linux-kselftest, linux-kernel

On Fri, 24 Aug 2018 19:18:36 -0400
Steven Rostedt <rostedt@goodmis.org> wrote:

> On Fri, 17 Aug 2018 01:39:34 +0900
> Masami Hiramatsu <mhiramat@kernel.org> wrote:
> 
> > Add a testcase for changing ringbuffer size. This tests
> > not only ringbuffer size but also tests the imbalance
> > per-cpu buffer size change too.
> > 
> > Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
> 
> I'm fine with this, but one day I need to port over some of my other
> tests. I have a test that stresses the ring buffer size (basically
> checks to see if it can cause an oom). I need to port that to
> selftests. But for now...

Hmm, such stress test is not good for kselftest, since it can cause
oom and kill some test process. Maybe we should have such stresstest
framework (which allows test to crash kernel)

> 
> Acked-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
> 
> But, one more thing..
> 
> > ---
> >  .../ftrace/test.d/00basic/ringbuffer_size.tc       |   21 ++++++++++++++++++++
> >  1 file changed, 21 insertions(+)
> >  create mode 100644 tools/testing/selftests/ftrace/test.d/00basic/ringbuffer_size.tc
> > 
> > diff --git a/tools/testing/selftests/ftrace/test.d/00basic/ringbuffer_size.tc b/tools/testing/selftests/ftrace/test.d/00basic/ringbuffer_size.tc
> > new file mode 100644
> > index 000000000000..9224f33b3194
> > --- /dev/null
> > +++ b/tools/testing/selftests/ftrace/test.d/00basic/ringbuffer_size.tc
> > @@ -0,0 +1,21 @@
> > +#!/bin/sh
> > +# SPDX-License-Identifier: GPL-2.0
> > +# description: Change the ringbuffer size
> 
> Should add:
> 
>  # flags: instance

OK, I'll add it.

Thank you!

> 
> As this works for instances as well.
> 
> -- Steve
> 
> > +
> > +rb_size_test() {
> > +ORIG=`cat buffer_size_kb`
> > +
> > +expr $ORIG / 2 > buffer_size_kb
> > +
> > +expr $ORIG \* 2 > buffer_size_kb
> > +
> > +echo $ORIG > buffer_size_kb
> > +}
> > +
> > +rb_size_test
> > +
> > +: "If per-cpu buffer is supported, imbalance it"
> > +if [ -d per_cpu/cpu0 ]; then
> > +  cd per_cpu/cpu0
> > +  rb_size_test
> > +fi
> 


-- 
Masami Hiramatsu <mhiramat@kernel.org>

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

* Re: [PATCH v2 31/32] selftests/ftrace: Add output format testcase
  2018-08-25  2:19   ` Steven Rostedt
@ 2018-08-30  7:48     ` Masami Hiramatsu
  0 siblings, 0 replies; 78+ messages in thread
From: Masami Hiramatsu @ 2018-08-30  7:48 UTC (permalink / raw)
  To: Steven Rostedt; +Cc: Shuah Khan, Ingo Molnar, linux-kselftest, linux-kernel

On Fri, 24 Aug 2018 22:19:26 -0400
Steven Rostedt <rostedt@goodmis.org> wrote:

> On Fri, 17 Aug 2018 01:43:49 +0900
> Masami Hiramatsu <mhiramat@kernel.org> wrote:
> 
> > Add a testcase for tracing output format using trace_marker.
> > This tests raw, hex and bin format output.
> 
> I'd like to deprecate these formats. They are useless ever since we
> implemented trace_pipe_raw.
> 
> Let's not add this test.

OK, I'll drop it.
I think this test code itself can reuse for testing trace_pipe_raw too.
(for next time?)

Thank you,

> 
> Thanks,
> 
> -- Steve
> 
> > 
> > Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
> > ---
> >  .../ftrace/test.d/00basic/print_format.tc          |   51 ++++++++++++++++++++
> >  1 file changed, 51 insertions(+)
> >  create mode 100644 tools/testing/selftests/ftrace/test.d/00basic/print_format.tc
> > 
> > diff --git a/tools/testing/selftests/ftrace/test.d/00basic/print_format.tc b/tools/testing/selftests/ftrace/test.d/00basic/print_format.tc
> > new file mode 100644
> > index 000000000000..55feb542e83e
> > --- /dev/null
> > +++ b/tools/testing/selftests/ftrace/test.d/00basic/print_format.tc
> > @@ -0,0 +1,51 @@
> > +#!/bin/sh
> > +# SPDX-License-Identifier: GPL2.0
> > +# description: Change print trace format
> > +
> > +if [ ! -f trace_marker ]; then
> > +  echo "trace_marker is not supported, can not continue testing"
> > +  exit_unresolved
> > +fi
> > +
> > +do_reset() {
> > +  if [ `cat options/bin` -eq 1 ]; then
> > +    grep -v "^#" trace | od -h | cut -f 2- -d " " | xargs echo
> > +  fi
> > +  echo 0 > options/hex
> > +  echo 0 > options/raw
> > +  echo 0 > options/bin
> > +  cat trace
> > +  exit 1
> > +}
> > +
> > +echo > trace
> > +echo "abcdefgh" > trace_marker
> > +echo 0 > tracing_on
> > +
> > +: "Get the pid and cpu#"
> > +IDS=`grep -v "^#" trace | sed -e 's/[[:space:]]*.*-\([[:digit:]]*\)[[:space:]]*\[\([[:digit:]]*\)\].*/\1 \2/'`
> > +
> > +read_pid_cpu() {
> > +  _PID=$1
> > +  _CPU=`printf "%d" $2`
> > +}
> > +
> > +read_pid_cpu $IDS
> > +
> > +: "Test raw output format"
> > +echo 1 > options/raw
> > +grep -v "^#" trace | grep "^$_PID $_CPU" || do_reset
> > +echo 0 > options/raw
> > +
> > +: "Test hex output format"
> > +echo 1 > options/hex
> > +PAT=`printf "%08x %08x" $_PID $_CPU`
> > +grep -v "^#" trace | grep "^$PAT" || do_reset
> > +echo 0 > options/hex
> > +
> > +: "Test bin output format"
> > +echo 1 > options/bin
> > +PAT=`printf "%04x [[:xdigit:]]* [[:xdigit:]]*%02x" $_PID $_CPU`
> > +# Make a stream of hexdump
> > +grep -v "^#" trace | od -h | cut -f 2- -d " " | xargs echo | grep "$PAT" || do_reset
> > +echo 0 > options/bin
> 


-- 
Masami Hiramatsu <mhiramat@kernel.org>

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

* Re: [PATCH v2 32/32] selftests/ftrace: Add blktrace testcase
  2018-08-25  2:22   ` Steven Rostedt
@ 2018-08-30  7:53     ` Masami Hiramatsu
  0 siblings, 0 replies; 78+ messages in thread
From: Masami Hiramatsu @ 2018-08-30  7:53 UTC (permalink / raw)
  To: Steven Rostedt
  Cc: Shuah Khan, Ingo Molnar, linux-kselftest, linux-kernel, Jens Axboe

On Fri, 24 Aug 2018 22:22:19 -0400
Steven Rostedt <rostedt@goodmis.org> wrote:

> On Fri, 17 Aug 2018 01:44:18 +0900
> Masami Hiramatsu <mhiramat@kernel.org> wrote:
> 
> > Add a basic testcase for blktrace. For making it portable,
> > this test uses a loop device.
> 
> blktrace is a bit special, as it's maintained by the block subsystem
> and not really truly part of ftrace. It lives in the tracing directory,
> but the changes go through Jens's tree. I'm guessing that Jens already
> has tests for this. Not sure we should add a test to the ftrace
> selftests for this tracer.

I see. But as far as it is in the ftrace, and can easily wake it up
from tracefs interface, I think we can have a basic testcase in
ftracetest, just for keeping it doesn't break anything.

> 
> Jens, you have thoughts on this?

Jens, ping?

Thank you,

> 
> -- Steve
> 
> > 
> > Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
> > ---
> >  tools/testing/selftests/ftrace/config              |    1 
> >  .../testing/selftests/ftrace/test.d/tracer/blk.tc  |   91 ++++++++++++++++++++
> >  2 files changed, 92 insertions(+)
> >  create mode 100644 tools/testing/selftests/ftrace/test.d/tracer/blk.tc
> > 
> > diff --git a/tools/testing/selftests/ftrace/config b/tools/testing/selftests/ftrace/config
> > index c2c8de4fafff..d999032442e1 100644
> > --- a/tools/testing/selftests/ftrace/config
> > +++ b/tools/testing/selftests/ftrace/config
> > @@ -5,6 +5,7 @@ CONFIG_TRACER_SNAPSHOT=y
> >  CONFIG_STACK_TRACER=y
> >  CONFIG_HIST_TRIGGERS=y
> >  CONFIG_SCHED_TRACER=y
> > +CONFIG_BLK_DEV_IO_TRACE=y
> >  CONFIG_PREEMPT_TRACER=y
> >  CONFIG_IRQSOFF_TRACER=y
> >  CONFIG_PREEMPTIRQ_DELAY_TEST=m
> > diff --git a/tools/testing/selftests/ftrace/test.d/tracer/blk.tc b/tools/testing/selftests/ftrace/test.d/tracer/blk.tc
> > new file mode 100644
> > index 000000000000..9d6e72810c8a
> > --- /dev/null
> > +++ b/tools/testing/selftests/ftrace/test.d/tracer/blk.tc
> > @@ -0,0 +1,91 @@
> > +#!/bin/sh
> > +# SPDX-License-Identifier: GPL2.0
> > +# description: Test blktrace
> > +
> > +IMG=$TMPDIR/fs.img
> > +MNTDIR=$TMPDIR/mnt
> > +
> > +if ! grep -wq "blk" available_tracers ; then
> > +  echo "blktrace is not supported"
> > +  exit_unsupported
> > +fi
> > +
> > +available_fs() { #fstype
> > +  grep -q $1 /proc/filesystems && which mkfs.$1
> > +}
> > +
> > +if available_fs ext3; then
> > +  FSTYPE=ext3
> > +elif available_fs ext4; then
> > +  FSTYPE=ext4
> > +elif available_fs ext2; then
> > +  FSTYPE=ext2
> > +elif available_fs xfs; then
> > +  FSTYPE=xfs
> > +elif available_fs btrfs; then
> > +  FSTYPE=btrfs
> > +else
> > +  echo "No available block-based filesystems"
> > +  exit_unresolved
> > +fi
> > +
> > +if ! which losetup; then
> > +  echo "No losetup found"
> > +  exit_unresolved
> > +fi
> > +LODEV=`losetup -f`
> > +LODEVTRACE=/sys/block/`basename $LODEV`/trace
> > +
> > +do_cleanup() {
> > +  if [ -d $MNTDIR ]; then
> > +   umount $MNTDIR ||:
> > +  fi
> > +  losetup -d $LODEV ||:
> > +  rm -f $IMG
> > +}
> > +
> > +# workload failure is not a tracer's failure
> > +workload_fail() {
> > +  do_cleanup
> > +  echo "Failed to run workload"
> > +  exit_unresolved
> > +}
> > +
> > +do_fail() {
> > +  do_cleanup
> > +  echo "Test failed"
> > +  exit 1
> > +}
> > +
> > +enable_lodevtrace() {
> > +  if [ `cat $LODEVTRACE/enable` -ne 1 ]; then
> > +    echo 1 > $LODEVTRACE/enable
> > +  fi
> > +}
> > +
> > +echo blk > current_tracer
> > +
> > +dd if=/dev/zero of=$IMG bs=1M count=10 &&\
> > +losetup $LODEV $IMG &&\
> > +mkfs.$FSTYPE $LODEV &&\
> > +mkdir -p $MNTDIR &&\
> > +mount -t $FSTYPE $LODEV $MNTDIR &&\
> > +enable_lodevtrace &&\
> > +dd if=/dev/urandom of=$MNTDIR/testfile bs=1M count=1 &&\
> > +sync &&\
> > +umount $MNTDIR || workload_fail
> > +
> > +grep -q "[dd]" trace || do_fail
> > +grep -q "[umount]" trace || do_fail
> > +echo > trace
> > +
> > +losetup $LODEV $IMG &&\
> > +mount -t $FSTYPE $LODEV $MNTDIR &&\
> > +cat $MNTDIR/testfile > /dev/null &&\
> > +echo 0 > $LODEVTRACE/enable &&\
> > +umount $MNTDIR || workload_fail
> > +
> > +grep -q "[cat]" trace || do_fail
> > +grep -q "[mount]" trace || do_fail
> > +
> > +do_cleanup
> 


-- 
Masami Hiramatsu <mhiramat@kernel.org>

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

* Re: [PATCH v2 22/32] selftests/ftrace: Add ringbuffer size changing testcase
  2018-08-30  7:12     ` Masami Hiramatsu
@ 2018-08-30 15:50       ` Steven Rostedt
  2018-08-30 23:35         ` Masami Hiramatsu
  0 siblings, 1 reply; 78+ messages in thread
From: Steven Rostedt @ 2018-08-30 15:50 UTC (permalink / raw)
  To: Masami Hiramatsu; +Cc: Shuah Khan, Ingo Molnar, linux-kselftest, linux-kernel

On Thu, 30 Aug 2018 16:12:18 +0900
Masami Hiramatsu <mhiramat@kernel.org> wrote:

> > I'm fine with this, but one day I need to port over some of my other
> > tests. I have a test that stresses the ring buffer size (basically
> > checks to see if it can cause an oom). I need to port that to
> > selftests. But for now...  
> 
> Hmm, such stress test is not good for kselftest, since it can cause
> oom and kill some test process. Maybe we should have such stresstest
> framework (which allows test to crash kernel)

The point of the test is to make sure that it doesn't kill
everything :-)  The ring buffer code is suppose to detect that it will
cause an OOM, and if it does that's considered a failure.

Just like any other test, if it fails, it can crash the kernel. But the
ring buffer code is suppose to be able to keep the kernel from crashing
(including triggering OOM) if the buffer size is stressed.

Maybe I'll port that over today :-/


-- Steve

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

* Re: [PATCH v2 22/32] selftests/ftrace: Add ringbuffer size changing testcase
  2018-08-30 15:50       ` Steven Rostedt
@ 2018-08-30 23:35         ` Masami Hiramatsu
  2018-08-30 23:40           ` Steven Rostedt
  0 siblings, 1 reply; 78+ messages in thread
From: Masami Hiramatsu @ 2018-08-30 23:35 UTC (permalink / raw)
  To: Steven Rostedt; +Cc: Shuah Khan, Ingo Molnar, linux-kselftest, linux-kernel

On Thu, 30 Aug 2018 11:50:55 -0400
Steven Rostedt <rostedt@goodmis.org> wrote:

> On Thu, 30 Aug 2018 16:12:18 +0900
> Masami Hiramatsu <mhiramat@kernel.org> wrote:
> 
> > > I'm fine with this, but one day I need to port over some of my other
> > > tests. I have a test that stresses the ring buffer size (basically
> > > checks to see if it can cause an oom). I need to port that to
> > > selftests. But for now...  
> > 
> > Hmm, such stress test is not good for kselftest, since it can cause
> > oom and kill some test process. Maybe we should have such stresstest
> > framework (which allows test to crash kernel)
> 
> The point of the test is to make sure that it doesn't kill
> everything :-)  The ring buffer code is suppose to detect that it will
> cause an OOM, and if it does that's considered a failure.

Ah, OK, so the test itself must not cause OOM. That's reasonable. :)

> 
> Just like any other test, if it fails, it can crash the kernel. But the
> ring buffer code is suppose to be able to keep the kernel from crashing
> (including triggering OOM) if the buffer size is stressed.
> 
> Maybe I'll port that over today :-/

Looking forward it!

Thank you,

> 
> 
> -- Steve


-- 
Masami Hiramatsu <mhiramat@kernel.org>

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

* Re: [PATCH v2 22/32] selftests/ftrace: Add ringbuffer size changing testcase
  2018-08-30 23:35         ` Masami Hiramatsu
@ 2018-08-30 23:40           ` Steven Rostedt
  0 siblings, 0 replies; 78+ messages in thread
From: Steven Rostedt @ 2018-08-30 23:40 UTC (permalink / raw)
  To: Masami Hiramatsu; +Cc: Shuah Khan, Ingo Molnar, linux-kselftest, linux-kernel

On Fri, 31 Aug 2018 08:35:28 +0900
Masami Hiramatsu <mhiramat@kernel.org> wrote:

> On Thu, 30 Aug 2018 11:50:55 -0400
> Steven Rostedt <rostedt@goodmis.org> wrote:
> 
> > On Thu, 30 Aug 2018 16:12:18 +0900
> > Masami Hiramatsu <mhiramat@kernel.org> wrote:
> >   
> > > > I'm fine with this, but one day I need to port over some of my other
> > > > tests. I have a test that stresses the ring buffer size (basically
> > > > checks to see if it can cause an oom). I need to port that to
> > > > selftests. But for now...    
> > > 
> > > Hmm, such stress test is not good for kselftest, since it can cause
> > > oom and kill some test process. Maybe we should have such stresstest
> > > framework (which allows test to crash kernel)  
> > 
> > The point of the test is to make sure that it doesn't kill
> > everything :-)  The ring buffer code is suppose to detect that it will
> > cause an OOM, and if it does that's considered a failure.  
> 
> Ah, OK, so the test itself must not cause OOM. That's reasonable. :)
> 
> > 
> > Just like any other test, if it fails, it can crash the kernel. But the
> > ring buffer code is suppose to be able to keep the kernel from crashing
> > (including triggering OOM) if the buffer size is stressed.
> > 
> > Maybe I'll port that over today :-/  
> 
> Looking forward it!
> 

Unfortunately, I didn't get to it, and will be on PTO for the next 4
days. Perhaps next week.

-- Steve

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

end of thread, other threads:[~2018-08-30 23:40 UTC | newest]

Thread overview: 78+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-08-16 16:29 [PATCH v2 00/32] selftests/ftrace: Improve ftracetest with coverage check Masami Hiramatsu
2018-08-16 16:29 ` [PATCH v2 01/32] tracing: Allow gcov profiling on only ftrace subsystem Masami Hiramatsu
2018-08-20 15:32   ` Steven Rostedt
2018-08-20 15:33     ` Steven Rostedt
2018-08-21  6:53       ` Masami Hiramatsu
2018-08-21  7:27       ` [PATCH v2.1] " Masami Hiramatsu
2018-08-21 13:12         ` Steven Rostedt
2018-08-16 16:30 ` [PATCH v2 02/32] selftests/ftrace: Add --stop-fail hidden option for debug Masami Hiramatsu
2018-08-24 20:38   ` Steven Rostedt
2018-08-16 16:30 ` [PATCH v2 03/32] selftests/ftrace: Add --console hidden option Masami Hiramatsu
2018-08-24 20:37   ` Steven Rostedt
2018-08-25  1:35     ` Masami Hiramatsu
2018-08-25  1:42       ` Steven Rostedt
2018-08-26  7:28         ` Masami Hiramatsu
2018-08-16 16:31 ` [PATCH v2 04/32] selftests/ftrace: Add case number prefix to logfile Masami Hiramatsu
2018-08-24 21:47   ` Steven Rostedt
2018-08-16 16:31 ` [PATCH v2 05/32] selftests/ftrace: More initialize features in initialize_ftrace Masami Hiramatsu
2018-08-24 21:24   ` Steven Rostedt
2018-08-24 21:46   ` Steven Rostedt
2018-08-24 21:46     ` Steven Rostedt
2018-08-16 16:32 ` [PATCH v2 06/32] selftests/ftrace: Add SPDX License Identifier to template Masami Hiramatsu
2018-08-16 16:32 ` [PATCH v2 07/32] selftests/ftrace: Cleanup ftrace after running test Masami Hiramatsu
2018-08-16 16:32 ` [PATCH v2 08/32] selftests/ftrace: Remove unneeded per-test init/cleanup ftrace Masami Hiramatsu
2018-08-16 16:33 ` [PATCH v2 09/32] selftests/ftrace: Fix to test kprobe $comm arg only if available Masami Hiramatsu
2018-08-16 16:33 ` [PATCH v2 10/32] selftests/ftrace: Fix checkbashisms errors Masami Hiramatsu
2018-08-24 21:50   ` Steven Rostedt
2018-08-16 16:34 ` [PATCH v2 11/32] selftests/ftrace: Use loopback address instead of localhost Masami Hiramatsu
2018-08-24 21:52   ` Steven Rostedt
2018-08-25  1:47     ` Masami Hiramatsu
2018-08-16 16:34 ` [PATCH v2 12/32] selftests/ftrace: Improve kprobe on module testcase to load/unload module Masami Hiramatsu
2018-08-24 23:07   ` Steven Rostedt
2018-08-16 16:35 ` [PATCH v2 13/32] selftests/ftrace: Improve kprobe testcase to check log data Masami Hiramatsu
2018-08-16 16:35 ` [PATCH v2 14/32] selftests/ftrace: Improve kretprobe " Masami Hiramatsu
2018-08-16 16:36 ` [PATCH v2 15/32] selftests/ftrace: Test kprobe-event argument with various bitsize Masami Hiramatsu
2018-08-16 16:36 ` [PATCH v2 16/32] selftests/ftrace: Check set_event_pid result Masami Hiramatsu
2018-08-16 16:37 ` [PATCH v2 17/32] selftests/ftrace: Add kprobe event with $comm argument testcase Masami Hiramatsu
2018-08-16 16:37 ` [PATCH v2 18/32] selftests/ftrace: Add kprobe profile testcase Masami Hiramatsu
2018-08-16 16:38 ` [PATCH v2 19/32] selftests/ftrace: Add a testcase for nop tracer Masami Hiramatsu
2018-08-24 22:53   ` Steven Rostedt
2018-08-26  7:30     ` Masami Hiramatsu
2018-08-16 16:38 ` [PATCH v2 20/32] selftests/ftrace: Add kprobe-event with symbol argument test Masami Hiramatsu
2018-08-16 16:39 ` [PATCH v2 21/32] selftests/ftrace: Add trace_printk sample module test Masami Hiramatsu
2018-08-24 23:06   ` Steven Rostedt
2018-08-26  8:43     ` Masami Hiramatsu
2018-08-16 16:39 ` [PATCH v2 22/32] selftests/ftrace: Add ringbuffer size changing testcase Masami Hiramatsu
2018-08-24 23:18   ` Steven Rostedt
2018-08-30  7:12     ` Masami Hiramatsu
2018-08-30 15:50       ` Steven Rostedt
2018-08-30 23:35         ` Masami Hiramatsu
2018-08-30 23:40           ` Steven Rostedt
2018-08-16 16:40 ` [PATCH v2 23/32] selftests/ftrace: Add function profiling stat testcase Masami Hiramatsu
2018-08-24 23:20   ` Steven Rostedt
2018-08-26 11:20     ` Masami Hiramatsu
2018-08-16 16:40 ` [PATCH v2 24/32] selftests/ftrace: Add max stack tracer testcase Masami Hiramatsu
2018-08-24 23:23   ` Steven Rostedt
2018-08-25  1:45     ` Masami Hiramatsu
2018-08-25  2:41       ` Steven Rostedt
2018-08-26  8:42         ` Masami Hiramatsu
2018-08-16 16:40 ` [PATCH v2 25/32] selftests/ftrace: Add function filter on module testcase Masami Hiramatsu
2018-08-24 23:25   ` Steven Rostedt
2018-08-16 16:41 ` [PATCH v2 26/32] selftests/ftrace: Add trace_pipe testcase Masami Hiramatsu
2018-08-24 23:26   ` Steven Rostedt
2018-08-26 11:20     ` Masami Hiramatsu
2018-08-16 16:41 ` [PATCH v2 27/32] selftests/ftrace: Add stacktrace ftrace filter command testcase Masami Hiramatsu
2018-08-24 23:28   ` Steven Rostedt
2018-08-16 16:42 ` [PATCH v2 28/32] selftests/ftrace: Add wakeup tracer testcase Masami Hiramatsu
2018-08-16 16:42 ` [PATCH v2 29/32] selftests/ftrace: Add wakeup_rt " Masami Hiramatsu
2018-08-25  2:09   ` Steven Rostedt
2018-08-26 11:22     ` Masami Hiramatsu
2018-08-16 16:43 ` [PATCH v2 30/32] selftests/ftrace: Add ftrace cpumask testcase Masami Hiramatsu
2018-08-25  2:18   ` Steven Rostedt
2018-08-27 12:16     ` Masami Hiramatsu
2018-08-16 16:43 ` [PATCH v2 31/32] selftests/ftrace: Add output format testcase Masami Hiramatsu
2018-08-25  2:19   ` Steven Rostedt
2018-08-30  7:48     ` Masami Hiramatsu
2018-08-16 16:44 ` [PATCH v2 32/32] selftests/ftrace: Add blktrace testcase Masami Hiramatsu
2018-08-25  2:22   ` Steven Rostedt
2018-08-30  7:53     ` 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).