All of lore.kernel.org
 help / color / mirror / Atom feed
From: mhiramat at kernel.org (Masami Hiramatsu)
Subject: [PATCH v4 04/19] selftests: ftrace: Add a testcase for probepoint
Date: Wed, 28 Feb 2018 12:21:25 +0900	[thread overview]
Message-ID: <151978808571.2577.15710045326082964965.stgit@devbox> (raw)
In-Reply-To: <151978796240.2577.6531711990653677529.stgit@devbox>

Add a testcase for probe point definition. This tests
symbol, address and symbol+offset syntax. The offset
must be positive and smaller than UINT_MAX.

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

diff --git a/tools/testing/selftests/ftrace/test.d/kprobe/probepoint.tc b/tools/testing/selftests/ftrace/test.d/kprobe/probepoint.tc
new file mode 100644
index 000000000000..4fda01a08da4
--- /dev/null
+++ b/tools/testing/selftests/ftrace/test.d/kprobe/probepoint.tc
@@ -0,0 +1,43 @@
+#!/bin/sh
+# SPDX-License-Identifier: GPL-2.0
+# description: Kprobe events - probe points
+
+[ -f kprobe_events ] || exit_unsupported # this is configurable
+
+TARGET_FUNC=create_trace_kprobe
+
+dec_addr() { # hexaddr
+  printf "%d" "0x"`echo $1 | tail -c 8`
+}
+
+set_offs() { # prev target next
+  A1=`dec_addr $1`
+  A2=`dec_addr $2`
+  A3=`dec_addr $3`
+  TARGET="0x$2" # an address
+  PREV=`expr $A1 - $A2` # offset to previous symbol
+  NEXT=+`expr $A3 - $A2` # offset to next symbol
+  OVERFLOW=+`printf "0x%x" ${PREV}` # overflow offset to previous symbol
+}
+
+# We have to decode symbol addresses to get correct offsets.
+# If the offset is not an instruction boundary, it cause -EILSEQ.
+set_offs `grep -A1 -B1 ${TARGET_FUNC} /proc/kallsyms | cut -f 1 -d " " | xargs`
+
+UINT_TEST=no
+# printf "%x" -1 returns (unsigned long)-1.
+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
+! echo "p:testprobe ${TARGET_FUNC}${PREV}" > kprobe_events
+if [ "${UINT_TEST}" = yes ]; then
+! echo "p:testprobe ${TARGET_FUNC}${OVERFLOW}" > kprobe_events
+fi
+echo > kprobe_events
+clear_trace

--
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 v4 04/19] selftests: ftrace: Add a testcase for probepoint
Date: Wed, 28 Feb 2018 12:21:25 +0900	[thread overview]
Message-ID: <151978808571.2577.15710045326082964965.stgit@devbox> (raw)
Message-ID: <20180228032125.UMQVYusgY1b-VXeU_BFXpKFFY2_enVcA9BMuciA7cLA@z> (raw)
In-Reply-To: <151978796240.2577.6531711990653677529.stgit@devbox>

Add a testcase for probe point definition. This tests
symbol, address and symbol+offset syntax. The offset
must be positive and smaller than UINT_MAX.

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

diff --git a/tools/testing/selftests/ftrace/test.d/kprobe/probepoint.tc b/tools/testing/selftests/ftrace/test.d/kprobe/probepoint.tc
new file mode 100644
index 000000000000..4fda01a08da4
--- /dev/null
+++ b/tools/testing/selftests/ftrace/test.d/kprobe/probepoint.tc
@@ -0,0 +1,43 @@
+#!/bin/sh
+# SPDX-License-Identifier: GPL-2.0
+# description: Kprobe events - probe points
+
+[ -f kprobe_events ] || exit_unsupported # this is configurable
+
+TARGET_FUNC=create_trace_kprobe
+
+dec_addr() { # hexaddr
+  printf "%d" "0x"`echo $1 | tail -c 8`
+}
+
+set_offs() { # prev target next
+  A1=`dec_addr $1`
+  A2=`dec_addr $2`
+  A3=`dec_addr $3`
+  TARGET="0x$2" # an address
+  PREV=`expr $A1 - $A2` # offset to previous symbol
+  NEXT=+`expr $A3 - $A2` # offset to next symbol
+  OVERFLOW=+`printf "0x%x" ${PREV}` # overflow offset to previous symbol
+}
+
+# We have to decode symbol addresses to get correct offsets.
+# If the offset is not an instruction boundary, it cause -EILSEQ.
+set_offs `grep -A1 -B1 ${TARGET_FUNC} /proc/kallsyms | cut -f 1 -d " " | xargs`
+
+UINT_TEST=no
+# printf "%x" -1 returns (unsigned long)-1.
+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
+! echo "p:testprobe ${TARGET_FUNC}${PREV}" > kprobe_events
+if [ "${UINT_TEST}" = yes ]; then
+! echo "p:testprobe ${TARGET_FUNC}${OVERFLOW}" > kprobe_events
+fi
+echo > kprobe_events
+clear_trace

--
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: 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 v4 04/19] selftests: ftrace: Add a testcase for probepoint
Date: Wed, 28 Feb 2018 12:21:25 +0900	[thread overview]
Message-ID: <151978808571.2577.15710045326082964965.stgit@devbox> (raw)
In-Reply-To: <151978796240.2577.6531711990653677529.stgit@devbox>

Add a testcase for probe point definition. This tests
symbol, address and symbol+offset syntax. The offset
must be positive and smaller than UINT_MAX.

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

diff --git a/tools/testing/selftests/ftrace/test.d/kprobe/probepoint.tc b/tools/testing/selftests/ftrace/test.d/kprobe/probepoint.tc
new file mode 100644
index 000000000000..4fda01a08da4
--- /dev/null
+++ b/tools/testing/selftests/ftrace/test.d/kprobe/probepoint.tc
@@ -0,0 +1,43 @@
+#!/bin/sh
+# SPDX-License-Identifier: GPL-2.0
+# description: Kprobe events - probe points
+
+[ -f kprobe_events ] || exit_unsupported # this is configurable
+
+TARGET_FUNC=create_trace_kprobe
+
+dec_addr() { # hexaddr
+  printf "%d" "0x"`echo $1 | tail -c 8`
+}
+
+set_offs() { # prev target next
+  A1=`dec_addr $1`
+  A2=`dec_addr $2`
+  A3=`dec_addr $3`
+  TARGET="0x$2" # an address
+  PREV=`expr $A1 - $A2` # offset to previous symbol
+  NEXT=+`expr $A3 - $A2` # offset to next symbol
+  OVERFLOW=+`printf "0x%x" ${PREV}` # overflow offset to previous symbol
+}
+
+# We have to decode symbol addresses to get correct offsets.
+# If the offset is not an instruction boundary, it cause -EILSEQ.
+set_offs `grep -A1 -B1 ${TARGET_FUNC} /proc/kallsyms | cut -f 1 -d " " | xargs`
+
+UINT_TEST=no
+# printf "%x" -1 returns (unsigned long)-1.
+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
+! echo "p:testprobe ${TARGET_FUNC}${PREV}" > kprobe_events
+if [ "${UINT_TEST}" = yes ]; then
+! echo "p:testprobe ${TARGET_FUNC}${OVERFLOW}" > kprobe_events
+fi
+echo > kprobe_events
+clear_trace


  parent reply	other threads:[~2018-02-28  3:21 UTC|newest]

Thread overview: 78+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-28  3:19 [PATCH v4 00/19] tracing: probeevent: Improve fetcharg features mhiramat
2018-02-28  3:19 ` Masami Hiramatsu
2018-02-28  3:19 ` Masami Hiramatsu
2018-02-28  3:19 ` [PATCH v4 01/19] [BUGFIX] tracing: probeevent: Fix to support minus offset from symbol mhiramat
2018-02-28  3:19   ` Masami Hiramatsu
2018-02-28  3:19   ` Masami Hiramatsu
2018-03-02  4:49   ` namhyung
2018-03-02  4:49     ` Namhyung Kim
2018-03-02  4:49     ` Namhyung Kim
2018-03-02  6:32     ` mhiramat
2018-03-02  6:32       ` Masami Hiramatsu
2018-03-02  6:32       ` Masami Hiramatsu
2018-03-05  2:28       ` namhyung
2018-03-05  2:28         ` Namhyung Kim
2018-03-05  2:28         ` Namhyung Kim
2018-03-05 10:05         ` mhiramat
2018-03-05 10:05           ` Masami Hiramatsu
2018-03-05 10:05           ` Masami Hiramatsu
2018-02-28  3:20 ` [PATCH v4 02/19] selftests: ftrace: Add probe event argument syntax testcase mhiramat
2018-02-28  3:20   ` Masami Hiramatsu
2018-02-28  3:20   ` Masami Hiramatsu
2018-02-28  3:20 ` [PATCH v4 03/19] selftests: ftrace: Add a testcase for string type with kprobe_event mhiramat
2018-02-28  3:20   ` Masami Hiramatsu
2018-02-28  3:20   ` Masami Hiramatsu
2018-02-28  3:21 ` mhiramat [this message]
2018-02-28  3:21   ` [PATCH v4 04/19] selftests: ftrace: Add a testcase for probepoint Masami Hiramatsu
2018-02-28  3:21   ` Masami Hiramatsu
2018-02-28  3:21 ` [PATCH v4 05/19] tracing: probeevent: Cleanup print argument functions mhiramat
2018-02-28  3:21   ` Masami Hiramatsu
2018-02-28  3:21   ` Masami Hiramatsu
2018-02-28  3:22 ` [PATCH v4 06/19] tracing: probeevent: Cleanup argument field definition mhiramat
2018-02-28  3:22   ` Masami Hiramatsu
2018-02-28  3:22   ` Masami Hiramatsu
2018-02-28  3:22 ` [PATCH v4 07/19] tracing: probeevent: Remove NOKPROBE_SYMBOL from print functions mhiramat
2018-02-28  3:22   ` Masami Hiramatsu
2018-02-28  3:22   ` Masami Hiramatsu
2018-02-28  3:23 ` [PATCH v4 08/19] tracing: probeevent: Introduce new argument fetching code mhiramat
2018-02-28  3:23   ` Masami Hiramatsu
2018-02-28  3:23   ` Masami Hiramatsu
2018-02-28  3:23 ` [PATCH v4 09/19] tracing: probeevent: Unify fetch type tables mhiramat
2018-02-28  3:23   ` Masami Hiramatsu
2018-02-28  3:23   ` Masami Hiramatsu
2018-02-28  3:24 ` [PATCH v4 10/19] tracing: probeevent: Return consumed bytes of dynamic area mhiramat
2018-02-28  3:24   ` Masami Hiramatsu
2018-02-28  3:24   ` Masami Hiramatsu
2018-02-28  3:24 ` [PATCH v4 11/19] tracing: probeevent: Append traceprobe_ for exported function mhiramat
2018-02-28  3:24   ` Masami Hiramatsu
2018-02-28  3:24   ` Masami Hiramatsu
2018-02-28  3:25 ` [PATCH v4 12/19] tracing: probeevent: Unify fetch_insn processing common part mhiramat
2018-02-28  3:25   ` Masami Hiramatsu
2018-02-28  3:25   ` Masami Hiramatsu
2018-02-28  3:25 ` [PATCH v4 13/19] tracing: probeevent: Add symbol type mhiramat
2018-02-28  3:25   ` Masami Hiramatsu
2018-02-28  3:25   ` Masami Hiramatsu
2018-02-28  3:26 ` [PATCH v4 14/19] x86: ptrace: Add function argument access API mhiramat
2018-02-28  3:26   ` Masami Hiramatsu
2018-02-28  3:26   ` Masami Hiramatsu
2018-02-28  3:26 ` [PATCH v4 15/19] tracing: probeevent: Add $argN for accessing function args mhiramat
2018-02-28  3:26   ` Masami Hiramatsu
2018-02-28  3:26   ` Masami Hiramatsu
2018-02-28  3:27 ` [PATCH v4 16/19] tracing: probeevent: Add array type support mhiramat
2018-02-28  3:27   ` Masami Hiramatsu
2018-02-28  3:27   ` Masami Hiramatsu
2018-02-28  3:27 ` [PATCH v4 17/19] selftests: ftrace: Add a testcase for symbol type mhiramat
2018-02-28  3:27   ` Masami Hiramatsu
2018-02-28  3:27   ` Masami Hiramatsu
2018-02-28  3:28 ` [PATCH v4 18/19] selftests: ftrace: Add a testcase for $argN with kprobe_event mhiramat
2018-02-28  3:28   ` Masami Hiramatsu
2018-02-28  3:28   ` Masami Hiramatsu
2018-03-02  5:31   ` namhyung
2018-03-02  5:31     ` Namhyung Kim
2018-03-02  5:31     ` Namhyung Kim
2018-03-02  6:20     ` mhiramat
2018-03-02  6:20       ` Masami Hiramatsu
2018-03-02  6:20       ` Masami Hiramatsu
2018-02-28  3:28 ` [PATCH v4 19/19] selftests: ftrace: Add a testcase for array type " mhiramat
2018-02-28  3:28   ` Masami Hiramatsu
2018-02-28  3:28   ` Masami Hiramatsu

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=151978808571.2577.15710045326082964965.stgit@devbox \
    --to=unknown@example.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.