* [PATCH v3 0/2] selftests/ftrace: Add tests for kprobes and optimized probes
@ 2023-04-28 16:38 Akanksha J N
2023-04-28 16:38 ` [PATCH v3 1/2] selftests/ftrace: Add new test case which adds multiple consecutive probes in a function Akanksha J N
2023-04-28 16:38 ` [PATCH v3 2/2] selftests/ftrace: Add new test case which checks for optimized probes Akanksha J N
0 siblings, 2 replies; 8+ messages in thread
From: Akanksha J N @ 2023-04-28 16:38 UTC (permalink / raw)
To: linux-kselftest, linux-trace-kernel, linux-kernel
Cc: rostedt, mhiramat, shuah, naveen.n.rao, akanksha
This patchset adds a stress test for kprobes and a test for checking
optimized probes.
The two tests are being added based on the below discussion:
https://lore.kernel.org/all/20230128101622.ce6f8e64d929e29d36b08b73@kernel.org/
kprobe_opt_types.tc is modified as per the below review comments:
https://lore.kernel.org/all/1682506809.uus6y0ir3i.naveen@linux.ibm.com/#t
Changelog:
v3:
* Add Acked-by for kprobe_insn_boundary.tc
* Simplify test for optimized probe, as suggested by Masami
* Add exit_unresolved to exit as unresolved in case no probe was optimized
v2:
* Add an explicit fork after enabling the events ( echo "forked" )
* Remove the extended test from multiple_kprobe_types.tc which adds
multiple consecutive probes in a function and add it as a
separate test case.
* Add new test case which checks for optimized probes.
Akanksha J N (2):
selftests/ftrace: Add new test case which adds multiple consecutive
probes in a function
selftests/ftrace: Add new test case which checks for optimized probes
.../test.d/kprobe/kprobe_insn_boundary.tc | 19 +++++++++++
.../ftrace/test.d/kprobe/kprobe_opt_types.tc | 34 +++++++++++++++++++
2 files changed, 53 insertions(+)
create mode 100644 tools/testing/selftests/ftrace/test.d/kprobe/kprobe_insn_boundary.tc
create mode 100644 tools/testing/selftests/ftrace/test.d/kprobe/kprobe_opt_types.tc
--
2.31.1
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH v3 1/2] selftests/ftrace: Add new test case which adds multiple consecutive probes in a function
2023-04-28 16:38 [PATCH v3 0/2] selftests/ftrace: Add tests for kprobes and optimized probes Akanksha J N
@ 2023-04-28 16:38 ` Akanksha J N
2023-04-28 16:38 ` [PATCH v3 2/2] selftests/ftrace: Add new test case which checks for optimized probes Akanksha J N
1 sibling, 0 replies; 8+ messages in thread
From: Akanksha J N @ 2023-04-28 16:38 UTC (permalink / raw)
To: linux-kselftest, linux-trace-kernel, linux-kernel
Cc: rostedt, mhiramat, shuah, naveen.n.rao, akanksha, Naveen N . Rao
Commit 97f88a3d723162 ("powerpc/kprobes: Fix null pointer reference in
arch_prepare_kprobe()") fixed a recent kernel oops that was caused as
ftrace-based kprobe does not generate kprobe::ainsn::insn and it gets
set to NULL.
Add new test case kprobe_insn_boundary.tc which adds a
kprobe at every byte within $FUNCTION_FORK up to an offset of 256 bytes,
to be able to test potential issues with kprobes on
successive instructions.
The '|| continue' is added with the echo statement to ignore errors that
are caused by trying to add kprobes to non probeable lines and continue
with the test.
Signed-off-by: Akanksha J N <akanksha@linux.ibm.com>
Acked-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
Acked-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
---
.../test.d/kprobe/kprobe_insn_boundary.tc | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
create mode 100644 tools/testing/selftests/ftrace/test.d/kprobe/kprobe_insn_boundary.tc
diff --git a/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_insn_boundary.tc b/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_insn_boundary.tc
new file mode 100644
index 000000000000..4f7cc318f331
--- /dev/null
+++ b/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_insn_boundary.tc
@@ -0,0 +1,19 @@
+#!/bin/sh
+# SPDX-License-Identifier: GPL-2.0-or-later
+# Copyright (C) 2023 Akanksha J N, IBM corporation
+# description: Register multiple kprobe events in a function
+# requires: kprobe_events
+
+for i in `seq 0 255`; do
+ echo p $FUNCTION_FORK+${i} >> kprobe_events || continue
+done
+
+cat kprobe_events >> $testlog
+
+echo 1 > events/kprobes/enable
+( echo "forked" )
+echo 0 > events/kprobes/enable
+echo > kprobe_events
+echo "Waiting for unoptimizing & freeing"
+sleep 5
+echo "Done"
--
2.31.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v3 2/2] selftests/ftrace: Add new test case which checks for optimized probes
2023-04-28 16:38 [PATCH v3 0/2] selftests/ftrace: Add tests for kprobes and optimized probes Akanksha J N
2023-04-28 16:38 ` [PATCH v3 1/2] selftests/ftrace: Add new test case which adds multiple consecutive probes in a function Akanksha J N
@ 2023-04-28 16:38 ` Akanksha J N
2023-04-30 1:52 ` Masami Hiramatsu
1 sibling, 1 reply; 8+ messages in thread
From: Akanksha J N @ 2023-04-28 16:38 UTC (permalink / raw)
To: linux-kselftest, linux-trace-kernel, linux-kernel
Cc: rostedt, mhiramat, shuah, naveen.n.rao, akanksha
Add new test case kprobe_opt_types.tc which enables and checks
if each probe has been optimized in order to test potential issues with
optimized probes.
The '|| continue' is added with the echo statement to ignore errors that
are caused by trying to add kprobes to non probeable lines and continue
with the test.
Signed-off-by: Akanksha J N <akanksha@linux.ibm.com>
---
.../ftrace/test.d/kprobe/kprobe_opt_types.tc | 34 +++++++++++++++++++
1 file changed, 34 insertions(+)
create mode 100644 tools/testing/selftests/ftrace/test.d/kprobe/kprobe_opt_types.tc
diff --git a/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_opt_types.tc b/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_opt_types.tc
new file mode 100644
index 000000000000..9f5d99328086
--- /dev/null
+++ b/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_opt_types.tc
@@ -0,0 +1,34 @@
+#!/bin/sh
+# SPDX-License-Identifier: GPL-2.0-or-later
+# Copyright (C) 2023 Akanksha J N, IBM corporation
+# description: Register/unregister optimized probe
+# requires: kprobe_events
+
+case `uname -m` in
+x86_64)
+;;
+arm*)
+;;
+ppc*)
+;;
+*)
+ echo "Please implement other architecture here"
+ exit_unsupported
+esac
+
+DEFAULT=$(cat /proc/sys/debug/kprobes-optimization)
+echo 1 > /proc/sys/debug/kprobes-optimization
+for i in `seq 0 255`; do
+ echo "p:testprobe $FUNCTION_FORK+${i}" > kprobe_events || continue
+ echo 1 > events/kprobes/enable || continue
+ (echo "forked")
+ PROBE=$(grep $FUNCTION_FORK /sys/kernel/debug/kprobes/list)
+ echo 0 > events/kprobes/enable
+ echo > kprobe_events
+ if echo $PROBE | grep -q OPTIMIZED; then
+ echo "$DEFAULT" > /proc/sys/debug/kprobes-optimization
+ exit_pass
+ fi
+done
+echo "$DEFAULT" > /proc/sys/debug/kprobes-optimization
+exit_unresolved
--
2.31.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH v3 2/2] selftests/ftrace: Add new test case which checks for optimized probes
2023-04-28 16:38 ` [PATCH v3 2/2] selftests/ftrace: Add new test case which checks for optimized probes Akanksha J N
@ 2023-04-30 1:52 ` Masami Hiramatsu
2023-05-08 17:36 ` Shuah Khan
0 siblings, 1 reply; 8+ messages in thread
From: Masami Hiramatsu @ 2023-04-30 1:52 UTC (permalink / raw)
To: Akanksha J N
Cc: linux-kselftest, linux-trace-kernel, linux-kernel, rostedt,
mhiramat, shuah, naveen.n.rao
On Fri, 28 Apr 2023 22:08:42 +0530
Akanksha J N <akanksha@linux.ibm.com> wrote:
> Add new test case kprobe_opt_types.tc which enables and checks
> if each probe has been optimized in order to test potential issues with
> optimized probes.
> The '|| continue' is added with the echo statement to ignore errors that
> are caused by trying to add kprobes to non probeable lines and continue
> with the test.
>
> Signed-off-by: Akanksha J N <akanksha@linux.ibm.com>
Thanks! This looks good to me.
Acked-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
> ---
> .../ftrace/test.d/kprobe/kprobe_opt_types.tc | 34 +++++++++++++++++++
> 1 file changed, 34 insertions(+)
> create mode 100644 tools/testing/selftests/ftrace/test.d/kprobe/kprobe_opt_types.tc
>
> diff --git a/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_opt_types.tc b/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_opt_types.tc
> new file mode 100644
> index 000000000000..9f5d99328086
> --- /dev/null
> +++ b/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_opt_types.tc
> @@ -0,0 +1,34 @@
> +#!/bin/sh
> +# SPDX-License-Identifier: GPL-2.0-or-later
> +# Copyright (C) 2023 Akanksha J N, IBM corporation
> +# description: Register/unregister optimized probe
> +# requires: kprobe_events
> +
> +case `uname -m` in
> +x86_64)
> +;;
> +arm*)
> +;;
> +ppc*)
> +;;
> +*)
> + echo "Please implement other architecture here"
> + exit_unsupported
> +esac
> +
> +DEFAULT=$(cat /proc/sys/debug/kprobes-optimization)
> +echo 1 > /proc/sys/debug/kprobes-optimization
> +for i in `seq 0 255`; do
> + echo "p:testprobe $FUNCTION_FORK+${i}" > kprobe_events || continue
> + echo 1 > events/kprobes/enable || continue
> + (echo "forked")
> + PROBE=$(grep $FUNCTION_FORK /sys/kernel/debug/kprobes/list)
> + echo 0 > events/kprobes/enable
> + echo > kprobe_events
> + if echo $PROBE | grep -q OPTIMIZED; then
> + echo "$DEFAULT" > /proc/sys/debug/kprobes-optimization
> + exit_pass
> + fi
> +done
> +echo "$DEFAULT" > /proc/sys/debug/kprobes-optimization
> +exit_unresolved
> --
> 2.31.1
>
--
Masami Hiramatsu (Google) <mhiramat@kernel.org>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v3 2/2] selftests/ftrace: Add new test case which checks for optimized probes
2023-04-30 1:52 ` Masami Hiramatsu
@ 2023-05-08 17:36 ` Shuah Khan
2023-05-12 22:15 ` Steven Rostedt
0 siblings, 1 reply; 8+ messages in thread
From: Shuah Khan @ 2023-05-08 17:36 UTC (permalink / raw)
To: Masami Hiramatsu (Google), Akanksha J N
Cc: linux-kselftest, linux-trace-kernel, linux-kernel, rostedt, shuah,
naveen.n.rao, Shuah Khan
On 4/29/23 19:52, Masami Hiramatsu (Google) wrote:
> On Fri, 28 Apr 2023 22:08:42 +0530
> Akanksha J N <akanksha@linux.ibm.com> wrote:
>
>> Add new test case kprobe_opt_types.tc which enables and checks
>> if each probe has been optimized in order to test potential issues with
>> optimized probes.
>> The '|| continue' is added with the echo statement to ignore errors that
>> are caused by trying to add kprobes to non probeable lines and continue
>> with the test.
>>
>> Signed-off-by: Akanksha J N <akanksha@linux.ibm.com>
>
> Thanks! This looks good to me.
>
> Acked-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
>
Would you like this patch to go through kselftest tree?
If not here is my Ack:
Acked-by: Shuah Khan <skhan@linuxfoundation.org>
thanks,
-- Shuah
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v3 2/2] selftests/ftrace: Add new test case which checks for optimized probes
2023-05-08 17:36 ` Shuah Khan
@ 2023-05-12 22:15 ` Steven Rostedt
2023-05-17 16:26 ` Shuah Khan
0 siblings, 1 reply; 8+ messages in thread
From: Steven Rostedt @ 2023-05-12 22:15 UTC (permalink / raw)
To: Shuah Khan
Cc: Masami Hiramatsu (Google), Akanksha J N, linux-kselftest,
linux-trace-kernel, linux-kernel, shuah, naveen.n.rao
On Mon, 8 May 2023 11:36:28 -0600
Shuah Khan <skhan@linuxfoundation.org> wrote:
> > Acked-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
> >
>
> Would you like this patch to go through kselftest tree?
Shuah, you can take it through your kselftest tree.
Thanks!
Acked-by: Steven Rostedt (Google) <rostedt@goodmis.org>
-- Steve
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v3 2/2] selftests/ftrace: Add new test case which checks for optimized probes
2023-05-12 22:15 ` Steven Rostedt
@ 2023-05-17 16:26 ` Shuah Khan
2023-05-18 4:29 ` Masami Hiramatsu
0 siblings, 1 reply; 8+ messages in thread
From: Shuah Khan @ 2023-05-17 16:26 UTC (permalink / raw)
To: Steven Rostedt
Cc: Masami Hiramatsu (Google), Akanksha J N, linux-kselftest,
linux-trace-kernel, linux-kernel, shuah, naveen.n.rao, Shuah Khan
On 5/12/23 16:15, Steven Rostedt wrote:
> On Mon, 8 May 2023 11:36:28 -0600
> Shuah Khan <skhan@linuxfoundation.org> wrote:
>
>>> Acked-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
>>>
>>
>> Would you like this patch to go through kselftest tree?
>
> Shuah, you can take it through your kselftest tree.
>
> Thanks!
>
> Acked-by: Steven Rostedt (Google) <rostedt@goodmis.org>
>
Applied to linux-kselftest next for 6.5-rc1
thanks,
-- Shuah
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v3 2/2] selftests/ftrace: Add new test case which checks for optimized probes
2023-05-17 16:26 ` Shuah Khan
@ 2023-05-18 4:29 ` Masami Hiramatsu
0 siblings, 0 replies; 8+ messages in thread
From: Masami Hiramatsu @ 2023-05-18 4:29 UTC (permalink / raw)
To: Shuah Khan
Cc: Steven Rostedt, Masami Hiramatsu (Google), Akanksha J N,
linux-kselftest, linux-trace-kernel, linux-kernel, shuah,
naveen.n.rao
On Wed, 17 May 2023 10:26:43 -0600
Shuah Khan <skhan@linuxfoundation.org> wrote:
> On 5/12/23 16:15, Steven Rostedt wrote:
> > On Mon, 8 May 2023 11:36:28 -0600
> > Shuah Khan <skhan@linuxfoundation.org> wrote:
> >
> >>> Acked-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
> >>>
> >>
> >> Would you like this patch to go through kselftest tree?
> >
> > Shuah, you can take it through your kselftest tree.
> >
> > Thanks!
> >
> > Acked-by: Steven Rostedt (Google) <rostedt@goodmis.org>
> >
>
> Applied to linux-kselftest next for 6.5-rc1
Thank you Shuah!
>
> thanks,
> -- Shuah
>
--
Masami Hiramatsu (Google) <mhiramat@kernel.org>
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2023-05-18 4:29 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-04-28 16:38 [PATCH v3 0/2] selftests/ftrace: Add tests for kprobes and optimized probes Akanksha J N
2023-04-28 16:38 ` [PATCH v3 1/2] selftests/ftrace: Add new test case which adds multiple consecutive probes in a function Akanksha J N
2023-04-28 16:38 ` [PATCH v3 2/2] selftests/ftrace: Add new test case which checks for optimized probes Akanksha J N
2023-04-30 1:52 ` Masami Hiramatsu
2023-05-08 17:36 ` Shuah Khan
2023-05-12 22:15 ` Steven Rostedt
2023-05-17 16:26 ` Shuah Khan
2023-05-18 4:29 ` Masami Hiramatsu
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).