2024-05-31 09:43:41

by Masami Hiramatsu

[permalink] [raw]
Subject: [PATCH 0/2] selftests/tracing: Fix ftracetest testcase issues

Here is a couple of patches to fix issues related to runing environment
and kernel configuration.

Thank you,
---

Masami Hiramatsu (Google) (2):
selftests/tracing: Fix event filter test to retry up to 10 times
selftests/tracing: Fix to check the required syscall event


.../ftrace/test.d/dynevent/test_duplicates.tc | 2 +-
.../ftrace/test.d/filter/event-filter-function.tc | 20 +++++++++++++++++++-
2 files changed, 20 insertions(+), 2 deletions(-)

--
Masami Hiramatsu (Google) <[email protected]>


2024-05-31 09:43:54

by Masami Hiramatsu

[permalink] [raw]
Subject: [PATCH 1/2] selftests/tracing: Fix event filter test to retry up to 10 times

From: Masami Hiramatsu (Google) <[email protected]>

Commit eb50d0f250e9 ("selftests/ftrace: Choose target function for filter
test from samples") choose the target function from samples, but sometimes
this test failes randomly because the target function does not hit at the
next time. So retry getting samples up to 10 times.

Fixes: eb50d0f250e9 ("selftests/ftrace: Choose target function for filter test from samples")
Signed-off-by: Masami Hiramatsu (Google) <[email protected]>
---
.../ftrace/test.d/filter/event-filter-function.tc | 20 +++++++++++++++++++-
1 file changed, 19 insertions(+), 1 deletion(-)

diff --git a/tools/testing/selftests/ftrace/test.d/filter/event-filter-function.tc b/tools/testing/selftests/ftrace/test.d/filter/event-filter-function.tc
index 3f74c09c56b6..118247b8dd84 100644
--- a/tools/testing/selftests/ftrace/test.d/filter/event-filter-function.tc
+++ b/tools/testing/selftests/ftrace/test.d/filter/event-filter-function.tc
@@ -10,7 +10,6 @@ fail() { #msg
}

sample_events() {
- echo > trace
echo 1 > events/kmem/kmem_cache_free/enable
echo 1 > tracing_on
ls > /dev/null
@@ -22,6 +21,7 @@ echo 0 > tracing_on
echo 0 > events/enable

echo "Get the most frequently calling function"
+echo > trace
sample_events

target_func=`cat trace | grep -o 'call_site=\([^+]*\)' | sed 's/call_site=//' | sort | uniq -c | sort | tail -n 1 | sed 's/^[ 0-9]*//'`
@@ -32,7 +32,16 @@ echo > trace

echo "Test event filter function name"
echo "call_site.function == $target_func" > events/kmem/kmem_cache_free/filter
+
+sample_events
+max_retry=10
+while [ `grep kmem_cache_free trace| wc -l` -eq 0 ]; do
sample_events
+max_retry=$((max_retry - 1))
+if [ $max_retry -eq 0 ]; then
+ exit_fail
+fi
+done

hitcnt=`grep kmem_cache_free trace| grep $target_func | wc -l`
misscnt=`grep kmem_cache_free trace| grep -v $target_func | wc -l`
@@ -49,7 +58,16 @@ address=`grep " ${target_func}\$" /proc/kallsyms | cut -d' ' -f1`

echo "Test event filter function address"
echo "call_site.function == 0x$address" > events/kmem/kmem_cache_free/filter
+echo > trace
+sample_events
+max_retry=10
+while [ `grep kmem_cache_free trace| wc -l` -eq 0 ]; do
sample_events
+max_retry=$((max_retry - 1))
+if [ $max_retry -eq 0 ]; then
+ exit_fail
+fi
+done

hitcnt=`grep kmem_cache_free trace| grep $target_func | wc -l`
misscnt=`grep kmem_cache_free trace| grep -v $target_func | wc -l`


2024-05-31 09:44:08

by Masami Hiramatsu

[permalink] [raw]
Subject: [PATCH 2/2] selftests/tracing: Fix to check the required syscall event

From: Masami Hiramatsu (Google) <[email protected]>

Since test_duplicates.tc depends on syscalls/sys_enter_openat event,
it must add the event file to `requires`.
Without this fix, the test fails if CONFIG_FTRACE_SYSCALLS=n.

Fixes: 297e1dcdca3d ("selftests/ftrace: Add selftest for testing duplicate eprobes and kprobes")
Signed-off-by: Masami Hiramatsu (Google) <[email protected]>
---
.../ftrace/test.d/dynevent/test_duplicates.tc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/testing/selftests/ftrace/test.d/dynevent/test_duplicates.tc b/tools/testing/selftests/ftrace/test.d/dynevent/test_duplicates.tc
index d3a79da215c8..5f72abe6fa79 100644
--- a/tools/testing/selftests/ftrace/test.d/dynevent/test_duplicates.tc
+++ b/tools/testing/selftests/ftrace/test.d/dynevent/test_duplicates.tc
@@ -1,7 +1,7 @@
#!/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> [<args>]":README
+# requires: dynamic_events "e[:[<group>/][<event>]] <attached-group>.<attached-event> [<args>]":README events/syscalls/sys_enter_openat

echo 0 > events/enable



2024-05-31 14:42:14

by Shuah Khan

[permalink] [raw]
Subject: Re: [PATCH 1/2] selftests/tracing: Fix event filter test to retry up to 10 times

On 5/31/24 03:43, Masami Hiramatsu (Google) wrote:
> From: Masami Hiramatsu (Google) <[email protected]>
>
> Commit eb50d0f250e9 ("selftests/ftrace: Choose target function for filter
> test from samples") choose the target function from samples, but sometimes
> this test failes randomly because the target function does not hit at the
> next time. So retry getting samples up to 10 times.
>
> Fixes: eb50d0f250e9 ("selftests/ftrace: Choose target function for filter test from samples")
> Signed-off-by: Masami Hiramatsu (Google) <[email protected]>
> ---

Applied to linux-kselftest fixes for the next rc

thanks,
-- Shuah

2024-05-31 14:42:19

by Shuah Khan

[permalink] [raw]
Subject: Re: [PATCH 2/2] selftests/tracing: Fix to check the required syscall event

On 5/31/24 03:43, Masami Hiramatsu (Google) wrote:
> From: Masami Hiramatsu (Google) <[email protected]>
>
> Since test_duplicates.tc depends on syscalls/sys_enter_openat event,
> it must add the event file to `requires`.
> Without this fix, the test fails if CONFIG_FTRACE_SYSCALLS=n.
>
> Fixes: 297e1dcdca3d ("selftests/ftrace: Add selftest for testing duplicate eprobes and kprobes")
> Signed-off-by: Masami Hiramatsu (Google) <[email protected]>
> ---
> .../ftrace/test.d/dynevent/test_duplicates.tc | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/testing/selftests/ftrace/test.d/dynevent/test_duplicates.tc b/tools/testing/selftests/ftrace/test.d/dynevent/test_duplicates.tc
> index d3a79da215c8..5f72abe6fa79 100644
> --- a/tools/testing/selftests/ftrace/test.d/dynevent/test_duplicates.tc
> +++ b/tools/testing/selftests/ftrace/test.d/dynevent/test_duplicates.tc
> @@ -1,7 +1,7 @@
> #!/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> [<args>]":README
> +# requires: dynamic_events "e[:[<group>/][<event>]] <attached-group>.<attached-event> [<args>]":README events/syscalls/sys_enter_openat
>
> echo 0 > events/enable
>
>
>

This change is already in mainline. I sent the fix up in my 6.10-rc1 pr?
The short log is a slightly different:

commit f6c3c83db1d939ebdb8c8922748ae647d8126d91
Author: Masami Hiramatsu (Google) <[email protected]>
Date: Tue May 21 09:00:22 2024 +0900

selftests/ftrace: Fix to check required event file

The dynevent/test_duplicates.tc test case uses `syscalls/sys_enter_openat`
event for defining eprobe on it. Since this `syscalls` events depend on
CONFIG_FTRACE_SYSCALLS=y, if it is not set, the test will fail.

Add the event file to `required` line so that the test will return
`unsupported` result.

Fixes: 297e1dcdca3d ("selftests/ftrace: Add selftest for testing duplicate eprobes and kprobes")
Signed-off-by: Masami Hiramatsu (Google) <[email protected]>
Signed-off-by: Shuah Khan <[email protected]>

thanks,
-- Shuah

2024-05-31 15:00:59

by Masami Hiramatsu

[permalink] [raw]
Subject: Re: [PATCH 2/2] selftests/tracing: Fix to check the required syscall event

On Fri, 31 May 2024 08:41:00 -0600
Shuah Khan <[email protected]> wrote:

> On 5/31/24 03:43, Masami Hiramatsu (Google) wrote:
> > From: Masami Hiramatsu (Google) <[email protected]>
> >
> > Since test_duplicates.tc depends on syscalls/sys_enter_openat event,
> > it must add the event file to `requires`.
> > Without this fix, the test fails if CONFIG_FTRACE_SYSCALLS=n.
> >
> > Fixes: 297e1dcdca3d ("selftests/ftrace: Add selftest for testing duplicate eprobes and kprobes")
> > Signed-off-by: Masami Hiramatsu (Google) <[email protected]>
> > ---
> > .../ftrace/test.d/dynevent/test_duplicates.tc | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/tools/testing/selftests/ftrace/test.d/dynevent/test_duplicates.tc b/tools/testing/selftests/ftrace/test.d/dynevent/test_duplicates.tc
> > index d3a79da215c8..5f72abe6fa79 100644
> > --- a/tools/testing/selftests/ftrace/test.d/dynevent/test_duplicates.tc
> > +++ b/tools/testing/selftests/ftrace/test.d/dynevent/test_duplicates.tc
> > @@ -1,7 +1,7 @@
> > #!/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> [<args>]":README
> > +# requires: dynamic_events "e[:[<group>/][<event>]] <attached-group>.<attached-event> [<args>]":README events/syscalls/sys_enter_openat
> >
> > echo 0 > events/enable
> >
> >
> >
>
> This change is already in mainline. I sent the fix up in my 6.10-rc1 pr?

Oops, sorry, I forgot to pick it to my working branch...

Thanks!

> The short log is a slightly different:
>
> commit f6c3c83db1d939ebdb8c8922748ae647d8126d91
> Author: Masami Hiramatsu (Google) <[email protected]>
> Date: Tue May 21 09:00:22 2024 +0900
>
> selftests/ftrace: Fix to check required event file
>
> The dynevent/test_duplicates.tc test case uses `syscalls/sys_enter_openat`
> event for defining eprobe on it. Since this `syscalls` events depend on
> CONFIG_FTRACE_SYSCALLS=y, if it is not set, the test will fail.
>
> Add the event file to `required` line so that the test will return
> `unsupported` result.
>
> Fixes: 297e1dcdca3d ("selftests/ftrace: Add selftest for testing duplicate eprobes and kprobes")
> Signed-off-by: Masami Hiramatsu (Google) <[email protected]>
> Signed-off-by: Shuah Khan <[email protected]>
>
> thanks,
> -- Shuah


--
Masami Hiramatsu (Google) <[email protected]>