From: "Steven Rostedt (VMware)" rostedt@goodmis.org
Add a selftest that makes sure that eprobes and kprobes can not be created with the same group and name as existing events.
Cc: Shuah Khan shuah@kernel.org Cc: Shuah Khan skhan@linuxfoundation.org Cc: linux-kselftest@vger.kernel.org Signed-off-by: Steven Rostedt (VMware) rostedt@goodmis.org --- .../ftrace/test.d/dynevent/test_duplicates.tc | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 tools/testing/selftests/ftrace/test.d/dynevent/test_duplicates.tc
diff --git a/tools/testing/selftests/ftrace/test.d/dynevent/test_duplicates.tc b/tools/testing/selftests/ftrace/test.d/dynevent/test_duplicates.tc new file mode 100644 index 000000000000..022b569267ed --- /dev/null +++ b/tools/testing/selftests/ftrace/test.d/dynevent/test_duplicates.tc @@ -0,0 +1,28 @@ +#!/bin/sh +# SPDX-License-Identifier: GPL-2.0 +# description: Generic dynamic event - check if duplicate events are caught +# requires: dynamic_events "e[:[<group>/]<event>] <attached-group>.<attached-event>o [<args>]":README + +echo 0 > events/enable + +clear_dynamic_events + +# first create dynamic events for eprobes and kprobes. + +echo 'e:egroup/eevent syscalls/sys_enter_openat file=+0($filename):ustring' >> dynamic_events +echo 'p:kgroup/kevent vfs_open file=+0($arg2)' >> dynamic_events + +# Test eprobe for same eprobe, existing kprobe and existing event +! echo 'e:egroup/eevent syscalls/sys_enter_openat file=+0($filename):ustring' >> dynamic_events +! echo 'e:kgroup/kevent syscalls/sys_enter_openat file=+0($filename):ustring' >> dynamic_events +! echo 'e:syscalls/sys_enter_open syscalls/sys_enter_openat file=+0($filename):ustring' >> dynamic_events + +# Test kprobe for same kprobe, existing eprobe and existing event +! echo 'p:kgroup/kevent vfs_open file=+0($arg2)' >> dynamic_events +! echo 'p:egroup/eevent vfs_open file=+0($arg2)' >> dynamic_events +! echo 'p:syscalls/sys_enter_open vfs_open file=+0($arg2)' >> dynamic_events + +echo '-:egroup/eevent' >> dynamic_events +echo '-:kgroup/kevent' >> dynamic_events + +clear_trace
On Thu, 19 Aug 2021 11:26:09 -0400 Steven Rostedt rostedt@goodmis.org wrote:
From: "Steven Rostedt (VMware)" rostedt@goodmis.org
Add a selftest that makes sure that eprobes and kprobes can not be created with the same group and name as existing events.
Hmm, can you also remove kprobe event dependency from this test case? The event probe depends on CONFIG_PROBE_EVENTS meta config, but that is enabled both of CONFIG_KPROBE_EVENTS and CONFIG_UPROBE_EVENTS. This means if the kernel configs CONFIG_KPROBE_EVENTS=n and CONFIG_UPROBE_EVENTS=y, this will be executed but should fail.
Thank you,
Cc: Shuah Khan shuah@kernel.org Cc: Shuah Khan skhan@linuxfoundation.org Cc: linux-kselftest@vger.kernel.org Signed-off-by: Steven Rostedt (VMware) rostedt@goodmis.org
.../ftrace/test.d/dynevent/test_duplicates.tc | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 tools/testing/selftests/ftrace/test.d/dynevent/test_duplicates.tc
diff --git a/tools/testing/selftests/ftrace/test.d/dynevent/test_duplicates.tc b/tools/testing/selftests/ftrace/test.d/dynevent/test_duplicates.tc new file mode 100644 index 000000000000..022b569267ed --- /dev/null +++ b/tools/testing/selftests/ftrace/test.d/dynevent/test_duplicates.tc @@ -0,0 +1,28 @@ +#!/bin/sh +# SPDX-License-Identifier: GPL-2.0 +# description: Generic dynamic event - check if duplicate events are caught +# requires: dynamic_events "e[:[<group>/]<event>] <attached-group>.<attached-event>o [<args>]":README
+echo 0 > events/enable
+clear_dynamic_events
+# first create dynamic events for eprobes and kprobes.
+echo 'e:egroup/eevent syscalls/sys_enter_openat file=+0($filename):ustring' >> dynamic_events +echo 'p:kgroup/kevent vfs_open file=+0($arg2)' >> dynamic_events
+# Test eprobe for same eprobe, existing kprobe and existing event +! echo 'e:egroup/eevent syscalls/sys_enter_openat file=+0($filename):ustring' >> dynamic_events +! echo 'e:kgroup/kevent syscalls/sys_enter_openat file=+0($filename):ustring' >> dynamic_events +! echo 'e:syscalls/sys_enter_open syscalls/sys_enter_openat file=+0($filename):ustring' >> dynamic_events
+# Test kprobe for same kprobe, existing eprobe and existing event +! echo 'p:kgroup/kevent vfs_open file=+0($arg2)' >> dynamic_events +! echo 'p:egroup/eevent vfs_open file=+0($arg2)' >> dynamic_events +! echo 'p:syscalls/sys_enter_open vfs_open file=+0($arg2)' >> dynamic_events
+echo '-:egroup/eevent' >> dynamic_events +echo '-:kgroup/kevent' >> dynamic_events
+clear_trace
2.30.2
On Fri, 20 Aug 2021 09:53:59 +0900 Masami Hiramatsu mhiramat@kernel.org wrote:
Hmm, can you also remove kprobe event dependency from this test case? The event probe depends on CONFIG_PROBE_EVENTS meta config, but that is enabled both of CONFIG_KPROBE_EVENTS and CONFIG_UPROBE_EVENTS. This means if the kernel configs CONFIG_KPROBE_EVENTS=n and CONFIG_UPROBE_EVENTS=y, this will be executed but should fail.
I'll add a check if kprobes are available before testing the kprobes.
-- Steve
linux-kselftest-mirror@lists.linaro.org