All of lore.kernel.org
 help / color / mirror / Atom feed
From: Masami Hiramatsu <mhiramat@kernel.org>
To: Steven Rostedt <rostedt@goodmis.org>, linux-kernel@vger.kernel.org
Cc: mhiramat@kernel.org, Ingo Molnar <mingo@redhat.com>,
	Namhyung Kim <namhyung@kernel.org>,
	Tom Zanussi <tom.zanussi@linux.intel.com>,
	Arnaldo Carvalho de Melo <acme@kernel.org>,
	linux-trace-users@vger.kernel.org,
	linux-kselftest@vger.kernel.org, shuah@kernel.org
Subject: [PATCH v5 17/19] selftests: ftrace: Add a testcase for symbol type
Date: Thu,  8 Mar 2018 17:51:20 +0900	[thread overview]
Message-ID: <152049908037.7289.10781368517931604646.stgit@devbox> (raw)
In-Reply-To: <152049860385.7289.14079393589900496424.stgit@devbox>

Add a testcase for symbol type with kprobe event.
This tests good/bad syntax combinations and also
the traced data.
If the kernel doesn't support symbol type, it skips
the test as UNSUPPORTED.

Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
---
 Changes in v3:
  - Use IP/PC register to test the symbol type
---
 .../ftrace/test.d/kprobe/kprobe_args_symbol.tc     |   77 ++++++++++++++++++++
 1 file changed, 77 insertions(+)
 create mode 100644 tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_symbol.tc

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..20a8664a838b
--- /dev/null
+++ b/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_symbol.tc
@@ -0,0 +1,77 @@
+#!/bin/sh
+# SPDX-License-Identifier: GPL-2.0
+# description: Kprobe event argument symbol type
+
+[ -f kprobe_events ] || exit_unsupported # this is configurable
+
+grep -qe "type:.* symbol" README || exit_unsupported # version issue
+
+echo 0 > events/enable
+echo > kprobe_events
+
+PROBEFUNC="vfs_read"
+GOODREG=
+BADREG=
+REG=
+GOODSYM="_sdata"
+if ! grep -qw ${GOODSYM} /proc/kallsyms ; then
+  GOODSYM=$PROBEFUNC
+fi
+
+case `uname -m` in
+x86_64|i[3456]86)
+  GOODREG=%ax
+  BADREG=%ex
+  REG=%ip
+;;
+aarch64)
+  GOODREG=%x0
+  BADREG=%ax
+  REG=%pc
+;;
+arm*)
+  GOODREG=%r0
+  BADREG=%ax
+  REG=%pc
+;;
+*)
+  echo "Please implement other architecture here"
+  exit_untested
+esac
+
+test_goodarg() # Good-args
+{
+  while [ "$1" ]; do
+    echo "p ${PROBEFUNC} $1" > kprobe_events
+    shift 1
+  done;
+}
+
+test_badarg() # Bad-args
+{
+  while [ "$1" ]; do
+    ! echo "p ${PROBEFUNC} $1" > kprobe_events
+    shift 1
+  done;
+}
+
+echo > kprobe_events
+
+: "Symbol type"
+test_goodarg "${GOODREG}:symbol" "@${GOODSYM}:symbol" "@${GOODSYM}+10:symbol" \
+	 "\$stack0:symbol" "+0(\$stack):symbol"
+test_badarg "\$comm:symbol"
+
+: "Retval with symbol type"
+echo "r ${PROBEFUNC} \$retval:symbol" > kprobe_events
+
+echo > kprobe_events
+
+: "Test get symbol"
+echo "p:testprobe create_trace_kprobe ${REG}:symbol" > kprobe_events
+echo 1 > events/kprobes/testprobe/enable
+! echo test >> kprobe_events
+tail -n 1 trace | grep -q "arg1=create_trace_kprobe"
+
+echo 0 > events/enable
+echo > kprobe_events


WARNING: multiple messages have this Message-ID (diff)
From: mhiramat at kernel.org (Masami Hiramatsu)
Subject: [PATCH v5 17/19] selftests: ftrace: Add a testcase for symbol type
Date: Thu,  8 Mar 2018 17:51:20 +0900	[thread overview]
Message-ID: <152049908037.7289.10781368517931604646.stgit@devbox> (raw)
In-Reply-To: <152049860385.7289.14079393589900496424.stgit@devbox>

Add a testcase for symbol type with kprobe event.
This tests good/bad syntax combinations and also
the traced data.
If the kernel doesn't support symbol type, it skips
the test as UNSUPPORTED.

Signed-off-by: Masami Hiramatsu <mhiramat at kernel.org>
---
 Changes in v3:
  - Use IP/PC register to test the symbol type
---
 .../ftrace/test.d/kprobe/kprobe_args_symbol.tc     |   77 ++++++++++++++++++++
 1 file changed, 77 insertions(+)
 create mode 100644 tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_symbol.tc

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..20a8664a838b
--- /dev/null
+++ b/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_symbol.tc
@@ -0,0 +1,77 @@
+#!/bin/sh
+# SPDX-License-Identifier: GPL-2.0
+# description: Kprobe event argument symbol type
+
+[ -f kprobe_events ] || exit_unsupported # this is configurable
+
+grep -qe "type:.* symbol" README || exit_unsupported # version issue
+
+echo 0 > events/enable
+echo > kprobe_events
+
+PROBEFUNC="vfs_read"
+GOODREG=
+BADREG=
+REG=
+GOODSYM="_sdata"
+if ! grep -qw ${GOODSYM} /proc/kallsyms ; then
+  GOODSYM=$PROBEFUNC
+fi
+
+case `uname -m` in
+x86_64|i[3456]86)
+  GOODREG=%ax
+  BADREG=%ex
+  REG=%ip
+;;
+aarch64)
+  GOODREG=%x0
+  BADREG=%ax
+  REG=%pc
+;;
+arm*)
+  GOODREG=%r0
+  BADREG=%ax
+  REG=%pc
+;;
+*)
+  echo "Please implement other architecture here"
+  exit_untested
+esac
+
+test_goodarg() # Good-args
+{
+  while [ "$1" ]; do
+    echo "p ${PROBEFUNC} $1" > kprobe_events
+    shift 1
+  done;
+}
+
+test_badarg() # Bad-args
+{
+  while [ "$1" ]; do
+    ! echo "p ${PROBEFUNC} $1" > kprobe_events
+    shift 1
+  done;
+}
+
+echo > kprobe_events
+
+: "Symbol type"
+test_goodarg "${GOODREG}:symbol" "@${GOODSYM}:symbol" "@${GOODSYM}+10:symbol" \
+	 "\$stack0:symbol" "+0(\$stack):symbol"
+test_badarg "\$comm:symbol"
+
+: "Retval with symbol type"
+echo "r ${PROBEFUNC} \$retval:symbol" > kprobe_events
+
+echo > kprobe_events
+
+: "Test get symbol"
+echo "p:testprobe create_trace_kprobe ${REG}:symbol" > kprobe_events
+echo 1 > events/kprobes/testprobe/enable
+! echo test >> kprobe_events
+tail -n 1 trace | grep -q "arg1=create_trace_kprobe"
+
+echo 0 > events/enable
+echo > kprobe_events

--
To unsubscribe from this list: send the line "unsubscribe linux-kselftest" in
the body of a message to majordomo at vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

WARNING: multiple messages have this Message-ID (diff)
From: mhiramat@kernel.org (Masami Hiramatsu)
Subject: [PATCH v5 17/19] selftests: ftrace: Add a testcase for symbol type
Date: Thu,  8 Mar 2018 17:51:20 +0900	[thread overview]
Message-ID: <152049908037.7289.10781368517931604646.stgit@devbox> (raw)
Message-ID: <20180308085120.KoVIP8ZICWn3A5BgZLnenVf9CFaXoIR9hAOu-pleFvc@z> (raw)
In-Reply-To: <152049860385.7289.14079393589900496424.stgit@devbox>

Add a testcase for symbol type with kprobe event.
This tests good/bad syntax combinations and also
the traced data.
If the kernel doesn't support symbol type, it skips
the test as UNSUPPORTED.

Signed-off-by: Masami Hiramatsu <mhiramat at kernel.org>
---
 Changes in v3:
  - Use IP/PC register to test the symbol type
---
 .../ftrace/test.d/kprobe/kprobe_args_symbol.tc     |   77 ++++++++++++++++++++
 1 file changed, 77 insertions(+)
 create mode 100644 tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_symbol.tc

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..20a8664a838b
--- /dev/null
+++ b/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_symbol.tc
@@ -0,0 +1,77 @@
+#!/bin/sh
+# SPDX-License-Identifier: GPL-2.0
+# description: Kprobe event argument symbol type
+
+[ -f kprobe_events ] || exit_unsupported # this is configurable
+
+grep -qe "type:.* symbol" README || exit_unsupported # version issue
+
+echo 0 > events/enable
+echo > kprobe_events
+
+PROBEFUNC="vfs_read"
+GOODREG=
+BADREG=
+REG=
+GOODSYM="_sdata"
+if ! grep -qw ${GOODSYM} /proc/kallsyms ; then
+  GOODSYM=$PROBEFUNC
+fi
+
+case `uname -m` in
+x86_64|i[3456]86)
+  GOODREG=%ax
+  BADREG=%ex
+  REG=%ip
+;;
+aarch64)
+  GOODREG=%x0
+  BADREG=%ax
+  REG=%pc
+;;
+arm*)
+  GOODREG=%r0
+  BADREG=%ax
+  REG=%pc
+;;
+*)
+  echo "Please implement other architecture here"
+  exit_untested
+esac
+
+test_goodarg() # Good-args
+{
+  while [ "$1" ]; do
+    echo "p ${PROBEFUNC} $1" > kprobe_events
+    shift 1
+  done;
+}
+
+test_badarg() # Bad-args
+{
+  while [ "$1" ]; do
+    ! echo "p ${PROBEFUNC} $1" > kprobe_events
+    shift 1
+  done;
+}
+
+echo > kprobe_events
+
+: "Symbol type"
+test_goodarg "${GOODREG}:symbol" "@${GOODSYM}:symbol" "@${GOODSYM}+10:symbol" \
+	 "\$stack0:symbol" "+0(\$stack):symbol"
+test_badarg "\$comm:symbol"
+
+: "Retval with symbol type"
+echo "r ${PROBEFUNC} \$retval:symbol" > kprobe_events
+
+echo > kprobe_events
+
+: "Test get symbol"
+echo "p:testprobe create_trace_kprobe ${REG}:symbol" > kprobe_events
+echo 1 > events/kprobes/testprobe/enable
+! echo test >> kprobe_events
+tail -n 1 trace | grep -q "arg1=create_trace_kprobe"
+
+echo 0 > events/enable
+echo > kprobe_events

--
To unsubscribe from this list: send the line "unsubscribe linux-kselftest" in
the body of a message to majordomo at vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

  parent reply	other threads:[~2018-03-08  8:51 UTC|newest]

Thread overview: 75+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-03-08  8:43 [PATCH v5 00/19] tracing: probeevent: Improve fetcharg features Masami Hiramatsu
2018-03-08  8:43 ` Masami Hiramatsu
2018-03-08  8:43 ` mhiramat
2018-03-08  8:44 ` [PATCH v5 01/19] [BUGFIX] tracing: probeevent: Fix to support minus offset from symbol Masami Hiramatsu
2018-03-08  8:44   ` Masami Hiramatsu
2018-03-08  8:44   ` mhiramat
2018-03-08  8:44 ` [PATCH v5 02/19] selftests: ftrace: Add probe event argument syntax testcase Masami Hiramatsu
2018-03-08  8:44   ` Masami Hiramatsu
2018-03-08  8:44   ` mhiramat
2018-03-08  8:45 ` [PATCH v5 03/19] selftests: ftrace: Add a testcase for string type with kprobe_event Masami Hiramatsu
2018-03-08  8:45   ` Masami Hiramatsu
2018-03-08  8:45   ` mhiramat
2018-03-08  8:45 ` [PATCH v5 04/19] selftests: ftrace: Add a testcase for probepoint Masami Hiramatsu
2018-03-08  8:45   ` Masami Hiramatsu
2018-03-08  8:45   ` mhiramat
2018-03-08  8:46 ` [PATCH v5 05/19] tracing: probeevent: Cleanup print argument functions Masami Hiramatsu
2018-03-08  8:46   ` Masami Hiramatsu
2018-03-08  8:46   ` mhiramat
2018-03-08  8:46 ` [PATCH v5 06/19] tracing: probeevent: Cleanup argument field definition Masami Hiramatsu
2018-03-08  8:46   ` Masami Hiramatsu
2018-03-08  8:46   ` mhiramat
2018-03-08  8:46 ` [PATCH v5 07/19] tracing: probeevent: Remove NOKPROBE_SYMBOL from print functions Masami Hiramatsu
2018-03-08  8:46   ` Masami Hiramatsu
2018-03-08  8:46   ` mhiramat
2018-03-08  8:47 ` [PATCH v5 08/19] tracing: probeevent: Introduce new argument fetching code Masami Hiramatsu
2018-03-08  8:47   ` Masami Hiramatsu
2018-03-08  8:47   ` mhiramat
2018-03-08  8:47 ` [PATCH v5 09/19] tracing: probeevent: Unify fetch type tables Masami Hiramatsu
2018-03-08  8:47   ` Masami Hiramatsu
2018-03-08  8:47   ` mhiramat
2018-03-08  8:47 ` [PATCH v5 10/19] tracing: probeevent: Return consumed bytes of dynamic area Masami Hiramatsu
2018-03-08  8:47   ` Masami Hiramatsu
2018-03-08  8:47   ` mhiramat
2018-03-08  8:48 ` [PATCH v5 11/19] tracing: probeevent: Append traceprobe_ for exported function Masami Hiramatsu
2018-03-08  8:48   ` Masami Hiramatsu
2018-03-08  8:48   ` mhiramat
2018-03-08  8:48 ` [PATCH v5 12/19] tracing: probeevent: Unify fetch_insn processing common part Masami Hiramatsu
2018-03-08  8:48   ` Masami Hiramatsu
2018-03-08  8:48   ` mhiramat
2018-03-08  8:49 ` [PATCH v5 13/19] tracing: probeevent: Add symbol type Masami Hiramatsu
2018-03-08  8:49   ` Masami Hiramatsu
2018-03-08  8:49   ` mhiramat
2018-03-08  8:49 ` [PATCH v5 14/19] x86: ptrace: Add function argument access API Masami Hiramatsu
2018-03-08  8:49   ` Masami Hiramatsu
2018-03-08  8:49   ` mhiramat
2018-03-08  8:50 ` [PATCH v5 15/19] tracing: probeevent: Add $argN for accessing function args Masami Hiramatsu
2018-03-08  8:50   ` Masami Hiramatsu
2018-03-08  8:50   ` mhiramat
2018-03-08  8:50 ` [PATCH v5 16/19] tracing: probeevent: Add array type support Masami Hiramatsu
2018-03-08  8:50   ` Masami Hiramatsu
2018-03-08  8:50   ` mhiramat
2018-03-15  5:48   ` Ravi Bangoria
2018-03-15  5:48     ` Ravi Bangoria
2018-03-15  5:48     ` ravi.bangoria
2018-03-15  7:18     ` Masami Hiramatsu
2018-03-15  7:18       ` Masami Hiramatsu
2018-03-15  7:18       ` mhiramat
2018-03-15  7:23       ` Masami Hiramatsu
2018-03-15  7:23         ` Masami Hiramatsu
2018-03-15  7:23         ` mhiramat
2018-03-15  8:01         ` Ravi Bangoria
2018-03-15  8:01           ` Ravi Bangoria
2018-03-15  8:01           ` ravi.bangoria
2018-03-16 14:48   ` Masami Hiramatsu
2018-03-16 14:48     ` Masami Hiramatsu
2018-03-16 14:48     ` mhiramat
2018-03-08  8:51 ` Masami Hiramatsu [this message]
2018-03-08  8:51   ` [PATCH v5 17/19] selftests: ftrace: Add a testcase for symbol type Masami Hiramatsu
2018-03-08  8:51   ` mhiramat
2018-03-08  8:51 ` [PATCH v5 18/19] selftests: ftrace: Add a testcase for $argN with kprobe_event Masami Hiramatsu
2018-03-08  8:51   ` Masami Hiramatsu
2018-03-08  8:51   ` mhiramat
2018-03-08  8:52 ` [PATCH v5 19/19] selftests: ftrace: Add a testcase for array type " Masami Hiramatsu
2018-03-08  8:52   ` Masami Hiramatsu
2018-03-08  8:52   ` mhiramat

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=152049908037.7289.10781368517931604646.stgit@devbox \
    --to=mhiramat@kernel.org \
    --cc=acme@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=linux-trace-users@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=namhyung@kernel.org \
    --cc=rostedt@goodmis.org \
    --cc=shuah@kernel.org \
    --cc=tom.zanussi@linux.intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.