Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1253718 > unrolled thread

Re: [PATCH 00/26] tracing: 'hist' triggers

Started byMasami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
First post2015-10-22 13:30 +0200
Last post2015-10-23 08:50 +0200
Articles 5 — 3 participants

Back to article view | Back to linux.kernel

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  Re: [PATCH 00/26] tracing: 'hist' triggers Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com> - 2015-10-22 13:30 +0200
    [PATCH 1/2] kselftests/ftrace : Add event trigger testcases Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com> - 2015-10-22 13:30 +0200
    [PATCH 2/2] kselftests/ftrace: Add hist trigger testcases Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com> - 2015-10-22 13:30 +0200
    Re: [PATCH 00/26] tracing: 'hist' triggers Tom Zanussi <tom.zanussi@linux.intel.com> - 2015-10-22 20:20 +0200
      RE: Re: [PATCH 00/26] tracing: 'hist' triggers 平松雅巳 / HIRAMATU,MASAMI   <masami.hiramatsu.pt@hitachi.com> - 2015-10-23 08:50 +0200

#1253718 — Re: [PATCH 00/26] tracing: 'hist' triggers

FromMasami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Date2015-10-22 13:30 +0200
SubjectRe: [PATCH 00/26] tracing: 'hist' triggers
Message-ID<qmmed-Wq-7@gated-at.bofh.it>
Hi Tom,

I've tested your series of the hist trigger v10 with
these testcases included in the couple of patches, which
tests following features.

     - traceon-traceoff trigger
     - enable/disable_event trigger
     - snapshot trigger
     - stacktrace trigger
     - trigger filters

     - Histogram trigger itself
     - Histogram with string key
     - Histogram with compound keys
     - Histogram with sort key
     - Histogram trigger modifiers (execname, hex, syscall)
     - Multiple histograms on an event
     - Named histogram
     - Named histogram on multi events

Here is the test result.
  ----
  # ./ftracetest test.d/trigger/
  === Ftrace unit tests ===
  [1] event trigger - test event enable/disable trigger   [PASS]
  [2] event trigger - test trigger filter [PASS]
  [3] event trigger - test histogram modifiers    [PASS]
  [4] event trigger - test histogram trigger      [PASS]
  [5] event trigger - test multiple histogram triggers    [PASS]
  [6] event trigger - test snapshot-trigger       [PASS]
  [7] event trigger - test stacktrace-trigger     [PASS]
  [8] event trigger - test traceon/off trigger    [PASS]

  # of passed:  8
  # of failed:  0
  # of unresolved:  0
  # of untested:  0
  # of unsupported:  0
  # of xfailed:  0
  # of undefined(test bug):  0
  ----

So I'm OK for your hist trigger series.
If you would not mind, please include these patches and my tested-by 
in your series to prove your series is good :)

Tested-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>

Thank you,


---

Masami Hiramatsu (2):
      kselftests/ftrace : Add event trigger testcases
      kselftests/ftrace: Add hist trigger testcases


 tools/testing/selftests/ftrace/test.d/functions    |    9 ++
 .../ftrace/test.d/trigger/trigger-eventonoff.tc    |   64 +++++++++++++++
 .../ftrace/test.d/trigger/trigger-filter.tc        |   59 ++++++++++++++
 .../ftrace/test.d/trigger/trigger-hist-mod.tc      |   65 ++++++++++++++++
 .../ftrace/test.d/trigger/trigger-hist.tc          |   83 ++++++++++++++++++++
 .../ftrace/test.d/trigger/trigger-multihist.tc     |   73 ++++++++++++++++++
 .../ftrace/test.d/trigger/trigger-snapshot.tc      |   56 +++++++++++++
 .../ftrace/test.d/trigger/trigger-stacktrace.tc    |   53 +++++++++++++
 .../ftrace/test.d/trigger/trigger-traceonoff.tc    |   58 ++++++++++++++
 9 files changed, 520 insertions(+)
 create mode 100644 tools/testing/selftests/ftrace/test.d/trigger/trigger-eventonoff.tc
 create mode 100644 tools/testing/selftests/ftrace/test.d/trigger/trigger-filter.tc
 create mode 100644 tools/testing/selftests/ftrace/test.d/trigger/trigger-hist-mod.tc
 create mode 100644 tools/testing/selftests/ftrace/test.d/trigger/trigger-hist.tc
 create mode 100644 tools/testing/selftests/ftrace/test.d/trigger/trigger-multihist.tc
 create mode 100644 tools/testing/selftests/ftrace/test.d/trigger/trigger-snapshot.tc
 create mode 100644 tools/testing/selftests/ftrace/test.d/trigger/trigger-stacktrace.tc
 create mode 100644 tools/testing/selftests/ftrace/test.d/trigger/trigger-traceonoff.tc

--
Masami HIRAMATSU
Linux Technology Research Center, System Productivity Research Dept.
Center for Technology Innovation - Systems Engineering
Hitachi, Ltd., Research & Development Group
E-mail: masami.hiramatsu.pt@hitachi.com
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [next] | [standalone]


#1253720 — [PATCH 1/2] kselftests/ftrace : Add event trigger testcases

FromMasami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Date2015-10-22 13:30 +0200
Subject[PATCH 1/2] kselftests/ftrace : Add event trigger testcases
Message-ID<qmmed-Wq-5@gated-at.bofh.it>
In reply to#1253718
This adds simple event trigger testcases for ftracetest,
which covers following triggers.
 - traceon-traceoff trigger
 - enable/disable_event trigger
 - snapshot trigger
 - stacktrace trigger
 - trigger filters

Here is the test result.

  ----
  # ./ftracetest test.d/trigger/
  === Ftrace unit tests ===
  [1] event trigger - test event enable/disable trigger   [PASS]
  [2] event trigger - test trigger filter [PASS]
  [3] event trigger - test snapshot-trigger       [PASS]
  [4] event trigger - test stacktrace-trigger     [PASS]
  [5] event trigger - test traceon/off trigger    [PASS]

  # of passed:  5
  # of failed:  0
  # of unresolved:  0
  # of untested:  0
  # of unsupported:  0
  # of xfailed:  0
  # of undefined(test bug):  0
  ----


Signed-off-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Shuah Khan <shuahkh@osg.samsung.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Tom Zanussi <tom.zanussi@linux.intel.com>
---
 tools/testing/selftests/ftrace/test.d/functions    |    9 +++
 .../ftrace/test.d/trigger/trigger-eventonoff.tc    |   64 ++++++++++++++++++++
 .../ftrace/test.d/trigger/trigger-filter.tc        |   59 ++++++++++++++++++
 .../ftrace/test.d/trigger/trigger-snapshot.tc      |   56 ++++++++++++++++++
 .../ftrace/test.d/trigger/trigger-stacktrace.tc    |   53 +++++++++++++++++
 .../ftrace/test.d/trigger/trigger-traceonoff.tc    |   58 ++++++++++++++++++
 6 files changed, 299 insertions(+)
 create mode 100644 tools/testing/selftests/ftrace/test.d/trigger/trigger-eventonoff.tc
 create mode 100644 tools/testing/selftests/ftrace/test.d/trigger/trigger-filter.tc
 create mode 100644 tools/testing/selftests/ftrace/test.d/trigger/trigger-snapshot.tc
 create mode 100644 tools/testing/selftests/ftrace/test.d/trigger/trigger-stacktrace.tc
 create mode 100644 tools/testing/selftests/ftrace/test.d/trigger/trigger-traceonoff.tc

diff --git a/tools/testing/selftests/ftrace/test.d/functions b/tools/testing/selftests/ftrace/test.d/functions
index 5d8cd06..c37262f 100644
--- a/tools/testing/selftests/ftrace/test.d/functions
+++ b/tools/testing/selftests/ftrace/test.d/functions
@@ -14,3 +14,12 @@ enable_tracing() { # start trace recording
 reset_tracer() { # reset the current tracer
     echo nop > current_tracer
 }
+
+reset_trigger() { # reset all current setting triggers
+    grep -v ^# events/*/*/trigger |
+    while read line; do
+        cmd=`echo $line | cut -f2- -d: | cut -f1 -d" "`
+	echo "!$cmd" > `echo $line | cut -f1 -d:`
+    done
+}
+
diff --git a/tools/testing/selftests/ftrace/test.d/trigger/trigger-eventonoff.tc b/tools/testing/selftests/ftrace/test.d/trigger/trigger-eventonoff.tc
new file mode 100644
index 0000000..1a94450
--- /dev/null
+++ b/tools/testing/selftests/ftrace/test.d/trigger/trigger-eventonoff.tc
@@ -0,0 +1,64 @@
+#!/bin/sh
+# description: event trigger - test event enable/disable trigger
+
+do_reset() {
+    reset_trigger
+    echo > set_event
+    clear_trace
+}
+
+fail() { #msg
+    do_reset
+    echo $1
+    exit $FAIL
+}
+
+if [ ! -f set_event -o ! -d events/sched ]; then
+    echo "event tracing is not supported"
+    exit_unsupported
+fi
+
+if [ ! -f events/sched/sched_process_fork/trigger ]; then
+    echo "event trigger is not supported"
+    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"
+    exit_unsupported
+fi
+
+echo "Test enable_event trigger"
+echo 0 > events/sched/sched_switch/enable
+echo 'enable_event:sched:sched_switch' > events/sched/sched_process_fork/trigger
+( echo "forked")
+if [ `cat events/sched/sched_switch/enable` != '1*' ]; then
+    fail "enable_event trigger on sched_process_fork did not work"
+fi
+
+reset_trigger
+
+echo "Test disable_event trigger"
+echo 1 > events/sched/sched_switch/enable
+echo 'disable_event:sched:sched_switch' > events/sched/sched_process_fork/trigger
+( echo "forked")
+if [ `cat events/sched/sched_switch/enable` != '0*' ]; then
+    fail "disable_event trigger on sched_process_fork did not work"
+fi
+
+reset_trigger
+
+echo "Test semantic error for event enable/disable trigger"
+! echo 'enable_event:nogroup:noevent' > events/sched/sched_process_fork/trigger
+! echo 'disable_event+1' > events/sched/sched_process_fork/trigger
+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
new file mode 100644
index 0000000..514e466
--- /dev/null
+++ b/tools/testing/selftests/ftrace/test.d/trigger/trigger-filter.tc
@@ -0,0 +1,59 @@
+#!/bin/sh
+# description: event trigger - test trigger filter
+
+do_reset() {
+    reset_trigger
+    echo > set_event
+    clear_trace
+}
+
+fail() { #msg
+    do_reset
+    echo $1
+    exit $FAIL
+}
+
+if [ ! -f set_event -o ! -d events/sched ]; then
+    echo "event tracing is not supported"
+    exit_unsupported
+fi
+
+if [ ! -f events/sched/sched_process_fork/trigger ]; then
+    echo "event trigger is not supported"
+    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
+( echo "forked")
+if [ `cat tracing_on` -ne 1 ]; then
+    fail "traceoff trigger on sched_process_fork did not work"
+fi
+
+reset_trigger
+
+echo "Test semantic error for trigger filter"
+! echo 'traceoff if a' > events/sched/sched_process_fork/trigger
+! echo 'traceoff if common_pid=0' > events/sched/sched_process_fork/trigger
+! echo 'traceoff if common_pid==b' > events/sched/sched_process_fork/trigger
+echo 'traceoff if common_pid == 0' > events/sched/sched_process_fork/trigger
+echo '!traceoff' > events/sched/sched_process_fork/trigger
+! echo 'traceoff if common_pid == child_pid' > events/sched/sched_process_fork/trigger
+echo 'traceoff if common_pid <= 0' > events/sched/sched_process_fork/trigger
+echo '!traceoff' > events/sched/sched_process_fork/trigger
+echo 'traceoff if common_pid >= 0' > events/sched/sched_process_fork/trigger
+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
+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-snapshot.tc b/tools/testing/selftests/ftrace/test.d/trigger/trigger-snapshot.tc
new file mode 100644
index 0000000..f84b80d
--- /dev/null
+++ b/tools/testing/selftests/ftrace/test.d/trigger/trigger-snapshot.tc
@@ -0,0 +1,56 @@
+#!/bin/sh
+# description: event trigger - test snapshot-trigger
+
+do_reset() {
+    reset_trigger
+    echo > set_event
+    clear_trace
+}
+
+fail() { #msg
+    do_reset
+    echo $1
+    exit $FAIL
+}
+
+if [ ! -f set_event -o ! -d events/sched ]; then
+    echo "event tracing is not supported"
+    exit_unsupported
+fi
+
+if [ ! -f events/sched/sched_process_fork/trigger ]; then
+    echo "event trigger is not supported"
+    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"
+    exit_unsupported
+fi
+
+echo "Test snapshot tigger"
+echo 0 > snapshot
+echo 1 > events/sched/sched_process_fork/enable
+( echo "forked")
+echo 'snapshot:1' > events/sched/sched_process_fork/trigger
+( echo "forked")
+grep sched_process_fork snapshot > /dev/null || \
+    fail "snapshot trigger on sched_process_fork did not work"
+
+reset_trigger
+echo 0 > snapshot
+echo 0 > events/sched/sched_process_fork/enable
+
+echo "Test snapshot semantic errors"
+
+! echo "snapshot+1" > events/sched/sched_process_fork/trigger
+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
new file mode 100644
index 0000000..9fa23b0
--- /dev/null
+++ b/tools/testing/selftests/ftrace/test.d/trigger/trigger-stacktrace.tc
@@ -0,0 +1,53 @@
+#!/bin/sh
+# description: event trigger - test stacktrace-trigger
+
+do_reset() {
+    reset_trigger
+    echo > set_event
+    clear_trace
+}
+
+fail() { #msg
+    do_reset
+    echo $1
+    exit $FAIL
+}
+
+if [ ! -f set_event -o ! -d events/sched ]; then
+    echo "event tracing is not supported"
+    exit_unsupported
+fi
+
+if [ ! -f events/sched/sched_process_fork/trigger ]; then
+    echo "event trigger is not supported"
+    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"
+    exit_unsupported
+fi
+
+echo "Test stacktrace tigger"
+echo 0 > trace
+echo 0 > options/stacktrace
+echo 'stacktrace' > events/sched/sched_process_fork/trigger
+( echo "forked")
+grep "<stack trace>" trace > /dev/null || \
+    fail "stacktrace trigger on sched_process_fork did not work"
+
+reset_trigger
+
+echo "Test stacktrace semantic errors"
+
+! echo "stacktrace:foo" > events/sched/sched_process_fork/trigger
+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-traceonoff.tc b/tools/testing/selftests/ftrace/test.d/trigger/trigger-traceonoff.tc
new file mode 100644
index 0000000..87648e5
--- /dev/null
+++ b/tools/testing/selftests/ftrace/test.d/trigger/trigger-traceonoff.tc
@@ -0,0 +1,58 @@
+#!/bin/sh
+# description: event trigger - test traceon/off trigger
+
+do_reset() {
+    reset_trigger
+    echo > set_event
+    clear_trace
+}
+
+fail() { #msg
+    do_reset
+    echo $1
+    exit $FAIL
+}
+
+if [ ! -f set_event -o ! -d events/sched ]; then
+    echo "event tracing is not supported"
+    exit_unsupported
+fi
+
+if [ ! -f events/sched/sched_process_fork/trigger ]; then
+    echo "event trigger is not supported"
+    exit_unsupported
+fi
+
+reset_tracer
+do_reset
+
+echo "Test traceoff trigger"
+echo 1 > tracing_on
+echo 'traceoff' > events/sched/sched_process_fork/trigger
+( echo "forked")
+if [ `cat tracing_on` -ne 0 ]; then
+    fail "traceoff trigger on sched_process_fork did not work"
+fi
+
+reset_trigger
+
+echo "Test traceon trigger"
+echo 0 > tracing_on
+echo 'traceon' > events/sched/sched_process_fork/trigger
+( echo "forked")
+if [ `cat tracing_on` -ne 1 ]; then
+    fail "traceoff trigger on sched_process_fork did not work"
+fi
+
+reset_trigger
+
+echo "Test semantic error for traceoff/on trigger"
+! echo 'traceoff:badparam' > events/sched/sched_process_fork/trigger
+! echo 'traceoff+0' > events/sched/sched_process_fork/trigger
+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

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1253722 — [PATCH 2/2] kselftests/ftrace: Add hist trigger testcases

FromMasami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Date2015-10-22 13:30 +0200
Subject[PATCH 2/2] kselftests/ftrace: Add hist trigger testcases
Message-ID<qmmee-Wq-15@gated-at.bofh.it>
In reply to#1253718
Add the hist trigger testcases for ftracetest.
This checks the basic histogram trigger behaviors like as;
 - Histogram trigger itself
 - Histogram with string key
 - Histogram with compound keys
 - Histogram with sort key
 - Histogram trigger modifiers (execname, hex, syscall)
 - Multiple histograms on an event
 - Named histogram
 - Named histogram on multi events

Here is the test result.
  ----
  # ./ftracetest test.d/trigger/*hist*.tc
  === Ftrace unit tests ===
  [1] event trigger - test histogram modifiers    [PASS]
  [2] event trigger - test histogram trigger      [PASS]
  [3] event trigger - test multiple histogram triggers    [PASS]

  # of passed:  3
  # of failed:  0
  # of unresolved:  0
  # of untested:  0
  # of unsupported:  0
  # of xfailed:  0
  # of undefined(test bug):  0
  ----

Signed-off-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Shuah Khan <shuahkh@osg.samsung.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Tom Zanussi <tom.zanussi@linux.intel.com>
---
 .../ftrace/test.d/trigger/trigger-hist-mod.tc      |   65 ++++++++++++++++
 .../ftrace/test.d/trigger/trigger-hist.tc          |   83 ++++++++++++++++++++
 .../ftrace/test.d/trigger/trigger-multihist.tc     |   73 ++++++++++++++++++
 3 files changed, 221 insertions(+)
 create mode 100644 tools/testing/selftests/ftrace/test.d/trigger/trigger-hist-mod.tc
 create mode 100644 tools/testing/selftests/ftrace/test.d/trigger/trigger-hist.tc
 create mode 100644 tools/testing/selftests/ftrace/test.d/trigger/trigger-multihist.tc

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
new file mode 100644
index 0000000..57e350a
--- /dev/null
+++ b/tools/testing/selftests/ftrace/test.d/trigger/trigger-hist-mod.tc
@@ -0,0 +1,65 @@
+#!/bin/sh
+# description: event trigger - test histogram modifiers
+
+do_reset() {
+    reset_trigger
+    echo > set_event
+    clear_trace
+}
+
+fail() { #msg
+    do_reset
+    echo $1
+    exit $FAIL
+}
+
+if [ ! -f set_event -o ! -d events/sched ]; then
+    echo "event tracing is not supported"
+    exit_unsupported
+fi
+
+if [ ! -f events/sched/sched_process_fork/trigger ]; then
+    echo "event trigger is not supported"
+    exit_unsupported
+fi
+
+reset_tracer
+do_reset
+
+FEATURE=`grep hist events/sched/sched_process_fork/trigger`
+if [ -z "$FEATURE" ]; then
+    echo "hist trigger is not supported"
+    exit_unsupported
+fi
+
+echo "Test histogram with execname modifier"
+
+echo 'hist:keys=common_pid.execname' > events/sched/sched_process_fork/trigger
+for i in `seq 1 10` ; do ( echo "forked" > /dev/null); done
+COMM=`cat /proc/$$/comm`
+grep "common_pid: $COMM" events/sched/sched_process_fork/hist > /dev/null || \
+    fail "execname modifier on sched_process_fork did not work"
+
+reset_trigger
+
+echo "Test histogram with hex modifier"
+
+echo 'hist:keys=parent_pid.hex' > events/sched/sched_process_fork/trigger
+for i in `seq 1 10` ; do ( echo "forked" > /dev/null); done
+# Note that $$ is the parent pid. $PID is current PID.
+HEX=`printf %x $PID`
+grep "parent_pid: $HEX" events/sched/sched_process_fork/hist > /dev/null || \
+    fail "hex modifier on sched_process_fork did not work"
+
+reset_trigger
+
+echo "Test histogram with syscall modifier"
+
+echo 'hist:keys=id.syscall' > events/raw_syscalls/sys_exit/trigger
+for i in `seq 1 10` ; do ( echo "forked" > /dev/null); done
+grep "id: sys_" events/raw_syscalls/sys_exit/hist > /dev/null || \
+    fail "syscall modifier on raw_syscalls/sys_exit 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
new file mode 100644
index 0000000..b2902d4
--- /dev/null
+++ b/tools/testing/selftests/ftrace/test.d/trigger/trigger-hist.tc
@@ -0,0 +1,83 @@
+#!/bin/sh
+# description: event trigger - test histogram trigger
+
+do_reset() {
+    reset_trigger
+    echo > set_event
+    clear_trace
+}
+
+fail() { #msg
+    do_reset
+    echo $1
+    exit $FAIL
+}
+
+if [ ! -f set_event -o ! -d events/sched ]; then
+    echo "event tracing is not supported"
+    exit_unsupported
+fi
+
+if [ ! -f events/sched/sched_process_fork/trigger ]; then
+    echo "event trigger is not supported"
+    exit_unsupported
+fi
+
+reset_tracer
+do_reset
+
+FEATURE=`grep hist events/sched/sched_process_fork/trigger`
+if [ -z "$FEATURE" ]; then
+    echo "hist trigger is not supported"
+    exit_unsupported
+fi
+
+echo "Test histogram basic tigger"
+
+echo 'hist:keys=parent_pid:vals=child_pid' > events/sched/sched_process_fork/trigger
+for i in `seq 1 10` ; do ( echo "forked" > /dev/null); done
+grep parent_pid events/sched/sched_process_fork/hist > /dev/null || \
+    fail "hist trigger on sched_process_fork did not work"
+grep child events/sched/sched_process_fork/hist > /dev/null || \
+    fail "hist trigger on sched_process_fork did not work"
+
+reset_trigger
+
+echo "Test histogram with compound keys"
+
+echo 'hist:keys=parent_pid,child_pid' > events/sched/sched_process_fork/trigger
+for i in `seq 1 10` ; do ( echo "forked" > /dev/null); done
+grep '^{ parent_pid:.*, child_pid:.*}' events/sched/sched_process_fork/hist > /dev/null || \
+    fail "compound keys on sched_process_fork did not work"
+
+reset_trigger
+
+echo "Test histogram with string key"
+
+echo 'hist:keys=parent_comm' > events/sched/sched_process_fork/trigger
+for i in `seq 1 10` ; do ( echo "forked" > /dev/null); done
+COMM=`cat /proc/$$/comm`
+grep "parent_comm: $COMM" events/sched/sched_process_fork/hist > /dev/null || \
+    fail "string key on sched_process_fork did not work"
+
+reset_trigger
+
+echo "Test histogram with sort key"
+
+echo 'hist:keys=parent_pid,child_pid:sort=child_pid.ascending' > events/sched/sched_process_fork/trigger
+for i in `seq 1 10` ; do ( echo "forked" > /dev/null); done
+
+check_inc() {
+    while [ $# -gt 1 ]; do
+        [ $1 -gt $2 ] && return 1
+        shift 1
+    done
+    return 0
+}
+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
new file mode 100644
index 0000000..d66f1f1
--- /dev/null
+++ b/tools/testing/selftests/ftrace/test.d/trigger/trigger-multihist.tc
@@ -0,0 +1,73 @@
+#!/bin/sh
+# description: event trigger - test multiple histogram triggers
+
+do_reset() {
+    reset_trigger
+    echo > set_event
+    clear_trace
+}
+
+fail() { #msg
+    do_reset
+    echo $1
+    exit $FAIL
+}
+
+if [ ! -f set_event -o ! -d events/sched ]; then
+    echo "event tracing is not supported"
+    exit_unsupported
+fi
+
+if [ ! -f events/sched/sched_process_fork/trigger ]; then
+    echo "event trigger is not supported"
+    exit_unsupported
+fi
+
+reset_tracer
+do_reset
+
+FEATURE=`grep hist events/sched/sched_process_fork/trigger`
+if [ -z "$FEATURE" ]; then
+    echo "hist trigger is not supported"
+    exit_unsupported
+fi
+
+reset_trigger
+
+echo "Test histogram multiple tiggers"
+
+echo 'hist:keys=parent_pid:vals=child_pid' > events/sched/sched_process_fork/trigger
+echo 'hist:keys=parent_comm:vals=child_pid' > events/sched/sched_process_fork/trigger
+for i in `seq 1 10` ; do ( echo "forked" > /dev/null); done
+grep parent_pid events/sched/sched_process_fork/hist > /dev/null || \
+    fail "hist trigger on sched_process_fork did not work"
+grep child events/sched/sched_process_fork/hist > /dev/null || \
+    fail "hist trigger on sched_process_fork did not work"
+COMM=`cat /proc/$$/comm`
+grep "parent_comm: $COMM" events/sched/sched_process_fork/hist > /dev/null || \
+    fail "string key on sched_process_fork did not work"
+
+reset_trigger
+
+echo "Test histogram with its name"
+
+echo 'hist:name=test_hist:keys=common_pid' > events/sched/sched_process_fork/trigger
+for i in `seq 1 10` ; do ( echo "forked" > /dev/null); done
+grep test_hist events/sched/sched_process_fork/hist > /dev/null || \
+    fail "named event on sched_process_fork did not work"
+
+echo "Test same named histogram on different events"
+
+echo 'hist:name=test_hist:keys=common_pid' > events/sched/sched_process_exit/trigger
+for i in `seq 1 10` ; do ( echo "forked" > /dev/null); done
+grep test_hist events/sched/sched_process_exit/hist > /dev/null || \
+    fail "named event on sched_process_fork did not work"
+
+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

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1254031

FromTom Zanussi <tom.zanussi@linux.intel.com>
Date2015-10-22 20:20 +0200
Message-ID<qmsD1-1Xu-23@gated-at.bofh.it>
In reply to#1253718
Hi Masami,

On Thu, 2015-10-22 at 20:17 +0900, Masami Hiramatsu wrote:
> Hi Tom,
> 
> I've tested your series of the hist trigger v10 with
> these testcases included in the couple of patches, which
> tests following features.
> 
>      - traceon-traceoff trigger
>      - enable/disable_event trigger
>      - snapshot trigger
>      - stacktrace trigger
>      - trigger filters
> 
>      - Histogram trigger itself
>      - Histogram with string key
>      - Histogram with compound keys
>      - Histogram with sort key
>      - Histogram trigger modifiers (execname, hex, syscall)
>      - Multiple histograms on an event
>      - Named histogram
>      - Named histogram on multi events
> 
> Here is the test result.
>   ----
>   # ./ftracetest test.d/trigger/
>   === Ftrace unit tests ===
>   [1] event trigger - test event enable/disable trigger   [PASS]
>   [2] event trigger - test trigger filter [PASS]
>   [3] event trigger - test histogram modifiers    [PASS]
>   [4] event trigger - test histogram trigger      [PASS]
>   [5] event trigger - test multiple histogram triggers    [PASS]
>   [6] event trigger - test snapshot-trigger       [PASS]
>   [7] event trigger - test stacktrace-trigger     [PASS]
>   [8] event trigger - test traceon/off trigger    [PASS]
> 
>   # of passed:  8
>   # of failed:  0
>   # of unresolved:  0
>   # of untested:  0
>   # of unsupported:  0
>   # of xfailed:  0
>   # of undefined(test bug):  0
>   ----
> 

Hey, this is great, thanks for creating this!

I'm looking forward to moving as many of my current set of tests to your
framework as I can:

http://git.yoctoproject.org/cgit/cgit.cgi/linux-yocto-contrib/commit/?h=tzanussi/hist-triggers-test&id=53d7d47bac3340b2160bf2a5b48268d6c7516734

I run all of the above tests manually every time I make a significant
change, which is about 2 hours of solid tedious work each time through.
Obviously it's about time to automate - thanks for providing the
framework to finally help do that.

> So I'm OK for your hist trigger series.
> If you would not mind, please include these patches and my tested-by 
> in your series to prove your series is good :)
> 
> Tested-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
> 

Sure, I'll do that, new series coming up shortly..

Thanks,

Tom

> Thank you,
> 
> 
> ---
> 
> Masami Hiramatsu (2):
>       kselftests/ftrace : Add event trigger testcases
>       kselftests/ftrace: Add hist trigger testcases
> 
> 
>  tools/testing/selftests/ftrace/test.d/functions    |    9 ++
>  .../ftrace/test.d/trigger/trigger-eventonoff.tc    |   64 +++++++++++++++
>  .../ftrace/test.d/trigger/trigger-filter.tc        |   59 ++++++++++++++
>  .../ftrace/test.d/trigger/trigger-hist-mod.tc      |   65 ++++++++++++++++
>  .../ftrace/test.d/trigger/trigger-hist.tc          |   83 ++++++++++++++++++++
>  .../ftrace/test.d/trigger/trigger-multihist.tc     |   73 ++++++++++++++++++
>  .../ftrace/test.d/trigger/trigger-snapshot.tc      |   56 +++++++++++++
>  .../ftrace/test.d/trigger/trigger-stacktrace.tc    |   53 +++++++++++++
>  .../ftrace/test.d/trigger/trigger-traceonoff.tc    |   58 ++++++++++++++
>  9 files changed, 520 insertions(+)
>  create mode 100644 tools/testing/selftests/ftrace/test.d/trigger/trigger-eventonoff.tc
>  create mode 100644 tools/testing/selftests/ftrace/test.d/trigger/trigger-filter.tc
>  create mode 100644 tools/testing/selftests/ftrace/test.d/trigger/trigger-hist-mod.tc
>  create mode 100644 tools/testing/selftests/ftrace/test.d/trigger/trigger-hist.tc
>  create mode 100644 tools/testing/selftests/ftrace/test.d/trigger/trigger-multihist.tc
>  create mode 100644 tools/testing/selftests/ftrace/test.d/trigger/trigger-snapshot.tc
>  create mode 100644 tools/testing/selftests/ftrace/test.d/trigger/trigger-stacktrace.tc
>  create mode 100644 tools/testing/selftests/ftrace/test.d/trigger/trigger-traceonoff.tc
> 
> --
> Masami HIRAMATSU
> Linux Technology Research Center, System Productivity Research Dept.
> Center for Technology Innovation - Systems Engineering
> Hitachi, Ltd., Research & Development Group
> E-mail: masami.hiramatsu.pt@hitachi.com


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1254361

From平松雅巳 / HIRAMATU,MASAMI <masami.hiramatsu.pt@hitachi.com>
Date2015-10-23 08:50 +0200
Message-ID<qmEkO-1Vw-1@gated-at.bofh.it>
In reply to#1254031
RnJvbTogVG9tIFphbnVzc2kgW21haWx0bzp0b20uemFudXNzaUBsaW51eC5pbnRlbC5jb21dDQo+
DQo+SGkgTWFzYW1pLA0KPg0KPk9uIFRodSwgMjAxNS0xMC0yMiBhdCAyMDoxNyArMDkwMCwgTWFz
YW1pIEhpcmFtYXRzdSB3cm90ZToNCj4+IEhpIFRvbSwNCj4+DQo+PiBJJ3ZlIHRlc3RlZCB5b3Vy
IHNlcmllcyBvZiB0aGUgaGlzdCB0cmlnZ2VyIHYxMCB3aXRoDQo+PiB0aGVzZSB0ZXN0Y2FzZXMg
aW5jbHVkZWQgaW4gdGhlIGNvdXBsZSBvZiBwYXRjaGVzLCB3aGljaA0KPj4gdGVzdHMgZm9sbG93
aW5nIGZlYXR1cmVzLg0KPj4NCj4+ICAgICAgLSB0cmFjZW9uLXRyYWNlb2ZmIHRyaWdnZXINCj4+
ICAgICAgLSBlbmFibGUvZGlzYWJsZV9ldmVudCB0cmlnZ2VyDQo+PiAgICAgIC0gc25hcHNob3Qg
dHJpZ2dlcg0KPj4gICAgICAtIHN0YWNrdHJhY2UgdHJpZ2dlcg0KPj4gICAgICAtIHRyaWdnZXIg
ZmlsdGVycw0KPj4NCj4+ICAgICAgLSBIaXN0b2dyYW0gdHJpZ2dlciBpdHNlbGYNCj4+ICAgICAg
LSBIaXN0b2dyYW0gd2l0aCBzdHJpbmcga2V5DQo+PiAgICAgIC0gSGlzdG9ncmFtIHdpdGggY29t
cG91bmQga2V5cw0KPj4gICAgICAtIEhpc3RvZ3JhbSB3aXRoIHNvcnQga2V5DQo+PiAgICAgIC0g
SGlzdG9ncmFtIHRyaWdnZXIgbW9kaWZpZXJzIChleGVjbmFtZSwgaGV4LCBzeXNjYWxsKQ0KPj4g
ICAgICAtIE11bHRpcGxlIGhpc3RvZ3JhbXMgb24gYW4gZXZlbnQNCj4+ICAgICAgLSBOYW1lZCBo
aXN0b2dyYW0NCj4+ICAgICAgLSBOYW1lZCBoaXN0b2dyYW0gb24gbXVsdGkgZXZlbnRzDQo+Pg0K
Pj4gSGVyZSBpcyB0aGUgdGVzdCByZXN1bHQuDQo+PiAgIC0tLS0NCj4+ICAgIyAuL2Z0cmFjZXRl
c3QgdGVzdC5kL3RyaWdnZXIvDQo+PiAgID09PSBGdHJhY2UgdW5pdCB0ZXN0cyA9PT0NCj4+ICAg
WzFdIGV2ZW50IHRyaWdnZXIgLSB0ZXN0IGV2ZW50IGVuYWJsZS9kaXNhYmxlIHRyaWdnZXIgICBb
UEFTU10NCj4+ICAgWzJdIGV2ZW50IHRyaWdnZXIgLSB0ZXN0IHRyaWdnZXIgZmlsdGVyIFtQQVNT
XQ0KPj4gICBbM10gZXZlbnQgdHJpZ2dlciAtIHRlc3QgaGlzdG9ncmFtIG1vZGlmaWVycyAgICBb
UEFTU10NCj4+ICAgWzRdIGV2ZW50IHRyaWdnZXIgLSB0ZXN0IGhpc3RvZ3JhbSB0cmlnZ2VyICAg
ICAgW1BBU1NdDQo+PiAgIFs1XSBldmVudCB0cmlnZ2VyIC0gdGVzdCBtdWx0aXBsZSBoaXN0b2dy
YW0gdHJpZ2dlcnMgICAgW1BBU1NdDQo+PiAgIFs2XSBldmVudCB0cmlnZ2VyIC0gdGVzdCBzbmFw
c2hvdC10cmlnZ2VyICAgICAgIFtQQVNTXQ0KPj4gICBbN10gZXZlbnQgdHJpZ2dlciAtIHRlc3Qg
c3RhY2t0cmFjZS10cmlnZ2VyICAgICBbUEFTU10NCj4+ICAgWzhdIGV2ZW50IHRyaWdnZXIgLSB0
ZXN0IHRyYWNlb24vb2ZmIHRyaWdnZXIgICAgW1BBU1NdDQo+Pg0KPj4gICAjIG9mIHBhc3NlZDog
IDgNCj4+ICAgIyBvZiBmYWlsZWQ6ICAwDQo+PiAgICMgb2YgdW5yZXNvbHZlZDogIDANCj4+ICAg
IyBvZiB1bnRlc3RlZDogIDANCj4+ICAgIyBvZiB1bnN1cHBvcnRlZDogIDANCj4+ICAgIyBvZiB4
ZmFpbGVkOiAgMA0KPj4gICAjIG9mIHVuZGVmaW5lZCh0ZXN0IGJ1Zyk6ICAwDQo+PiAgIC0tLS0N
Cj4+DQo+DQo+SGV5LCB0aGlzIGlzIGdyZWF0LCB0aGFua3MgZm9yIGNyZWF0aW5nIHRoaXMhDQoN
ClRoYW5rcyENCg0KPkknbSBsb29raW5nIGZvcndhcmQgdG8gbW92aW5nIGFzIG1hbnkgb2YgbXkg
Y3VycmVudCBzZXQgb2YgdGVzdHMgdG8geW91cg0KPmZyYW1ld29yayBhcyBJIGNhbjoNCj4NCj5o
dHRwOi8vZ2l0LnlvY3RvcHJvamVjdC5vcmcvY2dpdC9jZ2l0LmNnaS9saW51eC15b2N0by1jb250
cmliL2NvbW1pdC8/aD10emFudXNzaS9oaXN0LXRyaWdnZXJzLXRlc3QmaWQ9NTNkN2Q0N2JhYzMz
NDBiMjE2MGJmMmE1YjQ4MjY4ZA0KPjZjNzUxNjczNA0KDQpTb3VuZHMgbmljZSEgOikNCg0KPkkg
cnVuIGFsbCBvZiB0aGUgYWJvdmUgdGVzdHMgbWFudWFsbHkgZXZlcnkgdGltZSBJIG1ha2UgYSBz
aWduaWZpY2FudA0KPmNoYW5nZSwgd2hpY2ggaXMgYWJvdXQgMiBob3VycyBvZiBzb2xpZCB0ZWRp
b3VzIHdvcmsgZWFjaCB0aW1lIHRocm91Z2guDQo+T2J2aW91c2x5IGl0J3MgYWJvdXQgdGltZSB0
byBhdXRvbWF0ZSAtIHRoYW5rcyBmb3IgcHJvdmlkaW5nIHRoZQ0KPmZyYW1ld29yayB0byBmaW5h
bGx5IGhlbHAgZG8gdGhhdC4NCg0KWWVhaCwgdGhlIGZ0cmFjZXRlc3QgaXMgYWxyZWFkeSBpbnRl
Z3JhdGVkIHRvIGtzZWxmdGVzdHMsIHNvIGl0IGlzIGhlbHBmdWwgdG8NCnByb3ZlIHlvdXIgY29k
ZSBoYXMgbm8gc2lkZS1lZmZlY3RzIHRvbyA6KQ0KDQo+DQo+PiBTbyBJJ20gT0sgZm9yIHlvdXIg
aGlzdCB0cmlnZ2VyIHNlcmllcy4NCj4+IElmIHlvdSB3b3VsZCBub3QgbWluZCwgcGxlYXNlIGlu
Y2x1ZGUgdGhlc2UgcGF0Y2hlcyBhbmQgbXkgdGVzdGVkLWJ5DQo+PiBpbiB5b3VyIHNlcmllcyB0
byBwcm92ZSB5b3VyIHNlcmllcyBpcyBnb29kIDopDQo+Pg0KPj4gVGVzdGVkLWJ5OiBNYXNhbWkg
SGlyYW1hdHN1IDxtYXNhbWkuaGlyYW1hdHN1LnB0QGhpdGFjaGkuY29tPg0KPj4NCj4NCj5TdXJl
LCBJJ2xsIGRvIHRoYXQsIG5ldyBzZXJpZXMgY29taW5nIHVwIHNob3J0bHkuLg0KDQpUaGFua3Mg
YWdhaW4hDQoNCg0K
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web