2020-05-01 13:40:09

by Masami Hiramatsu

[permalink] [raw]
Subject: [PATCH 2/3] selftests/ftrace: Pick only the first kprobe event to test

Since the kprobe/kprobe_args_type.tc reads out all event logs
from the trace buffer, the test can fail if there is another
fork event happens.
Use head command to pick only the first kprobe event from
the trace buffer to test the argument types.

Signed-off-by: Masami Hiramatsu <[email protected]>
---
.../ftrace/test.d/kprobe/kprobe_args_type.tc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_type.tc b/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_type.tc
index 1bcb67dcae26..81490ecaaa92 100644
--- a/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_type.tc
+++ b/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_type.tc
@@ -38,7 +38,7 @@ for width in 64 32 16 8; do
echo 0 > events/kprobes/testprobe/enable

: "Confirm the arguments is recorded in given types correctly"
- ARGS=`grep "testprobe" trace | sed -e 's/.* arg1=\(.*\) arg2=\(.*\) arg3=\(.*\) arg4=\(.*\)/\1 \2 \3 \4/'`
+ ARGS=`grep "testprobe" trace | head -n 1 | sed -e 's/.* arg1=\(.*\) arg2=\(.*\) arg3=\(.*\) arg4=\(.*\)/\1 \2 \3 \4/'`
check_types $ARGS $width

: "Clear event for next loop"


2020-05-01 14:20:12

by Steven Rostedt

[permalink] [raw]
Subject: Re: [PATCH 2/3] selftests/ftrace: Pick only the first kprobe event to test

On Fri, 1 May 2020 22:37:51 +0900
Masami Hiramatsu <[email protected]> wrote:

> Since the kprobe/kprobe_args_type.tc reads out all event logs
> from the trace buffer, the test can fail if there is another
> fork event happens.
> Use head command to pick only the first kprobe event from
> the trace buffer to test the argument types.
>
> Signed-off-by: Masami Hiramatsu <[email protected]>
> ---
> .../ftrace/test.d/kprobe/kprobe_args_type.tc | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_type.tc b/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_type.tc
> index 1bcb67dcae26..81490ecaaa92 100644
> --- a/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_type.tc
> +++ b/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_type.tc
> @@ -38,7 +38,7 @@ for width in 64 32 16 8; do
> echo 0 > events/kprobes/testprobe/enable
>
> : "Confirm the arguments is recorded in given types correctly"
> - ARGS=`grep "testprobe" trace | sed -e 's/.* arg1=\(.*\) arg2=\(.*\) arg3=\(.*\) arg4=\(.*\)/\1 \2 \3 \4/'`
> + ARGS=`grep "testprobe" trace | head -n 1 | sed -e 's/.* arg1=\(.*\) arg2=\(.*\) arg3=\(.*\) arg4=\(.*\)/\1 \2 \3 \4/'`
> check_types $ARGS $width
>
> : "Clear event for next loop"

I think I've manually added this exact change to my tests to keep it from
failing.

Reviewed-by: Steven Rostedt (VMware) <[email protected]>

-- Steve

2020-05-01 15:42:00

by Shuah Khan

[permalink] [raw]
Subject: Re: [PATCH 2/3] selftests/ftrace: Pick only the first kprobe event to test

On 5/1/20 8:17 AM, Steven Rostedt wrote:
> On Fri, 1 May 2020 22:37:51 +0900
> Masami Hiramatsu <[email protected]> wrote:
>
>> Since the kprobe/kprobe_args_type.tc reads out all event logs
>> from the trace buffer, the test can fail if there is another
>> fork event happens.
>> Use head command to pick only the first kprobe event from
>> the trace buffer to test the argument types.
>>
>> Signed-off-by: Masami Hiramatsu <[email protected]>
>> ---
>> .../ftrace/test.d/kprobe/kprobe_args_type.tc | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_type.tc b/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_type.tc
>> index 1bcb67dcae26..81490ecaaa92 100644
>> --- a/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_type.tc
>> +++ b/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_type.tc
>> @@ -38,7 +38,7 @@ for width in 64 32 16 8; do
>> echo 0 > events/kprobes/testprobe/enable
>>
>> : "Confirm the arguments is recorded in given types correctly"
>> - ARGS=`grep "testprobe" trace | sed -e 's/.* arg1=\(.*\) arg2=\(.*\) arg3=\(.*\) arg4=\(.*\)/\1 \2 \3 \4/'`
>> + ARGS=`grep "testprobe" trace | head -n 1 | sed -e 's/.* arg1=\(.*\) arg2=\(.*\) arg3=\(.*\) arg4=\(.*\)/\1 \2 \3 \4/'`
>> check_types $ARGS $width
>>
>> : "Clear event for next loop"
>
> I think I've manually added this exact change to my tests to keep it from
> failing.
>
> Reviewed-by: Steven Rostedt (VMware) <[email protected]>
>

Does this conflict with:

Author: Xiao Yang <[email protected]>
Date: Tue Apr 7 14:34:19 2020 +0800

selftests/ftrace: Check the first record for kprobe_args_type.tc

https://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest.git/commit/?h=next&id=f0c0d0cf590f71b2213b29a7ded2cde3d0a1a0ba

I went into mainline yesterday in my rc4 pull request.

Exact change it appears.

diff --git
a/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_type.tc
b/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_type.tc
index 1bcb67dcae26..81490ecaaa92 100644
--- a/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_type.tc
+++ b/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_type.tc
@@ -38,7 +38,7 @@ for width in 64 32 16 8; do
echo 0 > events/kprobes/testprobe/enable

: "Confirm the arguments is recorded in given types correctly"
- ARGS=`grep "testprobe" trace | sed -e 's/.* arg1=\(.*\) arg2=\(.*\)
arg3=\(.*\) arg4=\(.*\)/\1 \2 \3 \4/'`
+ ARGS=`grep "testprobe" trace | head -n 1 | sed -e 's/.* arg1=\(.*\)
arg2=\(.*\) arg3=\(.*\) arg4=\(.*\)/\1 \2 \3 \4/'`
check_types $ARGS $width

: "Clear event for next loop"

thanks,
-- Shuah

2020-05-01 16:25:28

by Steven Rostedt

[permalink] [raw]
Subject: Re: [PATCH 2/3] selftests/ftrace: Pick only the first kprobe event to test

On Fri, 1 May 2020 09:38:59 -0600
shuah <[email protected]> wrote:

> On 5/1/20 8:17 AM, Steven Rostedt wrote:
> > On Fri, 1 May 2020 22:37:51 +0900
> > Masami Hiramatsu <[email protected]> wrote:
> >
> >> Since the kprobe/kprobe_args_type.tc reads out all event logs
> >> from the trace buffer, the test can fail if there is another
> >> fork event happens.
> >> Use head command to pick only the first kprobe event from
> >> the trace buffer to test the argument types.
> >>
> >> Signed-off-by: Masami Hiramatsu <[email protected]>
> >> ---
> >> .../ftrace/test.d/kprobe/kprobe_args_type.tc | 2 +-
> >> 1 file changed, 1 insertion(+), 1 deletion(-)
> >>
> >> diff --git a/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_type.tc b/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_type.tc
> >> index 1bcb67dcae26..81490ecaaa92 100644
> >> --- a/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_type.tc
> >> +++ b/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_type.tc
> >> @@ -38,7 +38,7 @@ for width in 64 32 16 8; do
> >> echo 0 > events/kprobes/testprobe/enable
> >>
> >> : "Confirm the arguments is recorded in given types correctly"
> >> - ARGS=`grep "testprobe" trace | sed -e 's/.* arg1=\(.*\) arg2=\(.*\) arg3=\(.*\) arg4=\(.*\)/\1 \2 \3 \4/'`
> >> + ARGS=`grep "testprobe" trace | head -n 1 | sed -e 's/.* arg1=\(.*\) arg2=\(.*\) arg3=\(.*\) arg4=\(.*\)/\1 \2 \3 \4/'`
> >> check_types $ARGS $width
> >>
> >> : "Clear event for next loop"
> >
> > I think I've manually added this exact change to my tests to keep it from
> > failing.
> >
> > Reviewed-by: Steven Rostedt (VMware) <[email protected]>
> >
>
> Does this conflict with:
>
> Author: Xiao Yang <[email protected]>
> Date: Tue Apr 7 14:34:19 2020 +0800
>
> selftests/ftrace: Check the first record for kprobe_args_type.tc
>
> https://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest.git/commit/?h=next&id=f0c0d0cf590f71b2213b29a7ded2cde3d0a1a0ba
>
> I went into mainline yesterday in my rc4 pull request.
>
> Exact change it appears.

Ah, then I guess we don't need this patch ;-)

-- Steve


>
> diff --git
> a/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_type.tc
> b/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_type.tc
> index 1bcb67dcae26..81490ecaaa92 100644
> --- a/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_type.tc
> +++ b/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_type.tc
> @@ -38,7 +38,7 @@ for width in 64 32 16 8; do
> echo 0 > events/kprobes/testprobe/enable
>
> : "Confirm the arguments is recorded in given types correctly"
> - ARGS=`grep "testprobe" trace | sed -e 's/.* arg1=\(.*\) arg2=\(.*\)
> arg3=\(.*\) arg4=\(.*\)/\1 \2 \3 \4/'`
> + ARGS=`grep "testprobe" trace | head -n 1 | sed -e 's/.* arg1=\(.*\)
> arg2=\(.*\) arg3=\(.*\) arg4=\(.*\)/\1 \2 \3 \4/'`
> check_types $ARGS $width
>
> : "Clear event for next loop"
>
> thanks,
> -- Shuah

2020-05-01 16:32:41

by Shuah Khan

[permalink] [raw]
Subject: Re: [PATCH 2/3] selftests/ftrace: Pick only the first kprobe event to test

On 5/1/20 10:20 AM, Steven Rostedt wrote:
> On Fri, 1 May 2020 09:38:59 -0600
> shuah <[email protected]> wrote:
>
>> On 5/1/20 8:17 AM, Steven Rostedt wrote:
>>> On Fri, 1 May 2020 22:37:51 +0900
>>> Masami Hiramatsu <[email protected]> wrote:
>>>
>>>> Since the kprobe/kprobe_args_type.tc reads out all event logs
>>>> from the trace buffer, the test can fail if there is another
>>>> fork event happens.
>>>> Use head command to pick only the first kprobe event from
>>>> the trace buffer to test the argument types.
>>>>
>>>> Signed-off-by: Masami Hiramatsu <[email protected]>
>>>> ---
>>>> .../ftrace/test.d/kprobe/kprobe_args_type.tc | 2 +-
>>>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>>>
>>>> diff --git a/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_type.tc b/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_type.tc
>>>> index 1bcb67dcae26..81490ecaaa92 100644
>>>> --- a/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_type.tc
>>>> +++ b/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_type.tc
>>>> @@ -38,7 +38,7 @@ for width in 64 32 16 8; do
>>>> echo 0 > events/kprobes/testprobe/enable
>>>>
>>>> : "Confirm the arguments is recorded in given types correctly"
>>>> - ARGS=`grep "testprobe" trace | sed -e 's/.* arg1=\(.*\) arg2=\(.*\) arg3=\(.*\) arg4=\(.*\)/\1 \2 \3 \4/'`
>>>> + ARGS=`grep "testprobe" trace | head -n 1 | sed -e 's/.* arg1=\(.*\) arg2=\(.*\) arg3=\(.*\) arg4=\(.*\)/\1 \2 \3 \4/'`
>>>> check_types $ARGS $width
>>>>
>>>> : "Clear event for next loop"
>>>
>>> I think I've manually added this exact change to my tests to keep it from
>>> failing.
>>>
>>> Reviewed-by: Steven Rostedt (VMware) <[email protected]>
>>>
>>
>> Does this conflict with:
>>
>> Author: Xiao Yang <[email protected]>
>> Date: Tue Apr 7 14:34:19 2020 +0800
>>
>> selftests/ftrace: Check the first record for kprobe_args_type.tc
>>
>> https://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest.git/commit/?h=next&id=f0c0d0cf590f71b2213b29a7ded2cde3d0a1a0ba
>>
>> I went into mainline yesterday in my rc4 pull request.
>>
>> Exact change it appears.
>
> Ah, then I guess we don't need this patch ;-)
>

I took the first one. Will wait for patch 3 to finalize.

thanks,
-- Shuah

2020-05-02 03:07:37

by Masami Hiramatsu

[permalink] [raw]
Subject: Re: [PATCH 2/3] selftests/ftrace: Pick only the first kprobe event to test

On Fri, 1 May 2020 09:38:59 -0600
shuah <[email protected]> wrote:

> On 5/1/20 8:17 AM, Steven Rostedt wrote:
> > On Fri, 1 May 2020 22:37:51 +0900
> > Masami Hiramatsu <[email protected]> wrote:
> >
> >> Since the kprobe/kprobe_args_type.tc reads out all event logs
> >> from the trace buffer, the test can fail if there is another
> >> fork event happens.
> >> Use head command to pick only the first kprobe event from
> >> the trace buffer to test the argument types.
> >>
> >> Signed-off-by: Masami Hiramatsu <[email protected]>
> >> ---
> >> .../ftrace/test.d/kprobe/kprobe_args_type.tc | 2 +-
> >> 1 file changed, 1 insertion(+), 1 deletion(-)
> >>
> >> diff --git a/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_type.tc b/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_type.tc
> >> index 1bcb67dcae26..81490ecaaa92 100644
> >> --- a/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_type.tc
> >> +++ b/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_type.tc
> >> @@ -38,7 +38,7 @@ for width in 64 32 16 8; do
> >> echo 0 > events/kprobes/testprobe/enable
> >>
> >> : "Confirm the arguments is recorded in given types correctly"
> >> - ARGS=`grep "testprobe" trace | sed -e 's/.* arg1=\(.*\) arg2=\(.*\) arg3=\(.*\) arg4=\(.*\)/\1 \2 \3 \4/'`
> >> + ARGS=`grep "testprobe" trace | head -n 1 | sed -e 's/.* arg1=\(.*\) arg2=\(.*\) arg3=\(.*\) arg4=\(.*\)/\1 \2 \3 \4/'`
> >> check_types $ARGS $width
> >>
> >> : "Clear event for next loop"
> >
> > I think I've manually added this exact change to my tests to keep it from
> > failing.
> >
> > Reviewed-by: Steven Rostedt (VMware) <[email protected]>
> >
>
> Does this conflict with:
>
> Author: Xiao Yang <[email protected]>
> Date: Tue Apr 7 14:34:19 2020 +0800
>
> selftests/ftrace: Check the first record for kprobe_args_type.tc
>
> https://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest.git/commit/?h=next&id=f0c0d0cf590f71b2213b29a7ded2cde3d0a1a0ba
>
> I went into mainline yesterday in my rc4 pull request.
>
> Exact change it appears.
>
> diff --git
> a/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_type.tc
> b/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_type.tc
> index 1bcb67dcae26..81490ecaaa92 100644
> --- a/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_type.tc
> +++ b/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_type.tc
> @@ -38,7 +38,7 @@ for width in 64 32 16 8; do
> echo 0 > events/kprobes/testprobe/enable
>
> : "Confirm the arguments is recorded in given types correctly"
> - ARGS=`grep "testprobe" trace | sed -e 's/.* arg1=\(.*\) arg2=\(.*\)
> arg3=\(.*\) arg4=\(.*\)/\1 \2 \3 \4/'`
> + ARGS=`grep "testprobe" trace | head -n 1 | sed -e 's/.* arg1=\(.*\)
> arg2=\(.*\) arg3=\(.*\) arg4=\(.*\)/\1 \2 \3 \4/'`
> check_types $ARGS $width
>
> : "Clear event for next loop"

Oops, yes, please drop this patch.

Thank you,

>
> thanks,
> -- Shuah


--
Masami Hiramatsu <[email protected]>