diff mbox series

[v3,2/2] selftests/ftrace: Add new test case which checks for optimized probes

Message ID 20230428163842.95118-3-akanksha@linux.ibm.com (mailing list archive)
State Accepted
Commit 3ecb4a459a1eeab1ad135f87057aa3ea4c9af1b8
Headers show
Series selftests/ftrace: Add tests for kprobes and optimized probes | expand

Commit Message

Akanksha J N April 28, 2023, 4:38 p.m. UTC
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

Comments

Masami Hiramatsu (Google) April 30, 2023, 1:52 a.m. UTC | #1
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
>
Shuah Khan May 8, 2023, 5:36 p.m. UTC | #2
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
Steven Rostedt May 12, 2023, 10:15 p.m. UTC | #3
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
Shuah Khan May 17, 2023, 4:26 p.m. UTC | #4
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
Masami Hiramatsu (Google) May 18, 2023, 4:29 a.m. UTC | #5
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
>
diff mbox series

Patch

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