From: Masami Hiramatsu <mhiramat@kernel.org>
To: Shuah Khan <shuah@kernel.org>, Steven Rostedt <rostedt@goodmis.org>
Cc: Ingo Molnar <mingo@redhat.com>,
Masami Hiramatsu <mhiramat@kernel.org>,
linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: [PATCH v3 18/28] selftests/ftrace: Add kprobe-event with symbol argument test
Date: Thu, 30 Aug 2018 23:20:56 +0900 [thread overview]
Message-ID: <153563885658.29700.6187948400657100401.stgit@devbox> (raw)
In-Reply-To: <153563834333.29700.11242968505215651399.stgit@devbox>
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"
next prev parent reply other threads:[~2018-08-30 14:21 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-08-30 14:12 [PATCH v3 00/28] selftests/ftrace: Improve ftracetest with coverage check Masami Hiramatsu
2018-08-30 14:12 ` [PATCH v3 01/28] selftests/ftrace: Add --stop-fail hidden option for debug Masami Hiramatsu
2018-08-30 14:13 ` [PATCH v3 02/28] selftests/ftrace: Add --console hidden option Masami Hiramatsu
2018-08-30 14:13 ` [PATCH v3 03/28] selftests/ftrace: Add case number prefix to logfile Masami Hiramatsu
2018-08-30 14:14 ` [PATCH v3 04/28] selftests/ftrace: More initialize features in initialize_ftrace Masami Hiramatsu
2018-08-30 14:14 ` [PATCH v3 05/28] selftests/ftrace: Add SPDX License Identifier to template Masami Hiramatsu
2018-08-30 14:15 ` [PATCH v3 06/28] selftests/ftrace: Cleanup ftrace after running test Masami Hiramatsu
2018-08-30 14:15 ` [PATCH v3 07/28] selftests/ftrace: Remove unneeded per-test init/cleanup ftrace Masami Hiramatsu
2018-08-30 14:16 ` [PATCH v3 08/28] selftests/ftrace: Fix to test kprobe $comm arg only if available Masami Hiramatsu
2018-08-30 14:16 ` [PATCH v3 09/28] selftests/ftrace: Fix checkbashisms errors Masami Hiramatsu
2018-08-30 14:17 ` [PATCH v3 10/28] selftests/ftrace: Use loopback address instead of localhost Masami Hiramatsu
2018-08-30 14:17 ` [PATCH v3 11/28] selftests/ftrace: Improve kprobe on module testcase to load/unload module Masami Hiramatsu
2018-08-30 14:18 ` [PATCH v3 12/28] selftests/ftrace: Improve kprobe testcase to check log data Masami Hiramatsu
2018-08-30 14:18 ` [PATCH v3 13/28] selftests/ftrace: Improve kretprobe " Masami Hiramatsu
2018-08-30 14:19 ` [PATCH v3 14/28] selftests/ftrace: Test kprobe-event argument with various bitsize Masami Hiramatsu
2018-08-30 14:19 ` [PATCH v3 15/28] selftests/ftrace: Check set_event_pid result Masami Hiramatsu
2018-08-30 14:19 ` [PATCH v3 16/28] selftests/ftrace: Add kprobe event with $comm argument testcase Masami Hiramatsu
2018-08-30 14:20 ` [PATCH v3 17/28] selftests/ftrace: Add kprobe profile testcase Masami Hiramatsu
2018-08-30 14:20 ` Masami Hiramatsu [this message]
2018-08-30 14:21 ` [PATCH v3 19/28] selftests/ftrace: Add trace_printk sample module test Masami Hiramatsu
2018-08-30 14:21 ` [PATCH v3 20/28] selftests/ftrace: Add ringbuffer size changing testcase Masami Hiramatsu
2018-08-30 14:22 ` [PATCH v3 21/28] selftests/ftrace: Add function profiling stat testcase Masami Hiramatsu
2018-08-30 14:22 ` [PATCH v3 22/28] selftests/ftrace: Add max stack tracer testcase Masami Hiramatsu
2018-08-30 14:23 ` [PATCH v3 23/28] selftests/ftrace: Add function filter on module testcase Masami Hiramatsu
2018-08-30 14:23 ` [PATCH v3 24/28] selftests/ftrace: Add trace_pipe testcase Masami Hiramatsu
2018-08-30 14:24 ` [PATCH v3 25/28] selftests/ftrace: Add stacktrace ftrace filter command testcase Masami Hiramatsu
2018-08-30 14:24 ` [PATCH v3 26/28] selftests/ftrace: Add wakeup tracer testcase Masami Hiramatsu
2018-08-30 14:25 ` [PATCH v3 27/28] selftests/ftrace: Add wakeup_rt " Masami Hiramatsu
2018-08-30 14:25 ` [PATCH v3 28/28] selftests/ftrace: Add ftrace cpumask testcase Masami Hiramatsu
2018-09-12 9:57 ` [PATCH v3 00/28] selftests/ftrace: Improve ftracetest with coverage check Masami Hiramatsu
2018-09-21 21:24 ` Shuah Khan
2018-09-27 22:49 ` 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=153563885658.29700.6187948400657100401.stgit@devbox \
--to=mhiramat@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=rostedt@goodmis.org \
--cc=shuah@kernel.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox