linux-trace-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [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).