diff mbox series

[2/2] tracing/selftests: Add test for event filtering on function name

Message ID 20221219183214.075559302@goodmis.org (mailing list archive)
State Accepted
Commit 7f09d639b8c4959736ff112d0fb42780c37ff6db
Headers show
Series tracing: Add a way to filter function addresses to function names | expand

Commit Message

Steven Rostedt Dec. 19, 2022, 6:31 p.m. UTC
From: "Steven Rostedt (Google)" <rostedt@goodmis.org>

With the new filter logic of passing in the name of a function to match an
instruction pointer (or the address of the function), add a test to make
sure that it is functional.

This is also the first test to test plain filtering. The filtering has
been tested via the trigger logic, which uses the same code, but there was
nothing to test just the event filter, so this test is the first to add
such a case.

Cc: Shuah Khan <shuah@kernel.org>
Cc: Shuah Khan <skhan@linuxfoundation.org>
Cc: linux-kselftest@vger.kernel.org
Suggested-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
---
 .../test.d/filter/event-filter-function.tc    | 58 +++++++++++++++++++
 1 file changed, 58 insertions(+)
 create mode 100644 tools/testing/selftests/ftrace/test.d/filter/event-filter-function.tc

Comments

Ross Zwisler Dec. 19, 2022, 8:57 p.m. UTC | #1
On Mon, Dec 19, 2022 at 01:31:08PM -0500, Steven Rostedt wrote:
> From: "Steven Rostedt (Google)" <rostedt@goodmis.org>
> 
> With the new filter logic of passing in the name of a function to match an
> instruction pointer (or the address of the function), add a test to make
> sure that it is functional.
> 
> This is also the first test to test plain filtering. The filtering has
> been tested via the trigger logic, which uses the same code, but there was
> nothing to test just the event filter, so this test is the first to add
> such a case.
> 
> Cc: Shuah Khan <shuah@kernel.org>
> Cc: Shuah Khan <skhan@linuxfoundation.org>
> Cc: linux-kselftest@vger.kernel.org
> Suggested-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
> Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>

Reviewed-by: Ross Zwisler <zwisler@google.com>
Shuah Khan Dec. 19, 2022, 10:11 p.m. UTC | #2
On 12/19/22 13:57, Ross Zwisler wrote:
> On Mon, Dec 19, 2022 at 01:31:08PM -0500, Steven Rostedt wrote:
>> From: "Steven Rostedt (Google)" <rostedt@goodmis.org>
>>
>> With the new filter logic of passing in the name of a function to match an
>> instruction pointer (or the address of the function), add a test to make
>> sure that it is functional.
>>
>> This is also the first test to test plain filtering. The filtering has
>> been tested via the trigger logic, which uses the same code, but there was
>> nothing to test just the event filter, so this test is the first to add
>> such a case.
>>
>> Cc: Shuah Khan <shuah@kernel.org>
>> Cc: Shuah Khan <skhan@linuxfoundation.org>
>> Cc: linux-kselftest@vger.kernel.org
>> Suggested-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
>> Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
> 
> Reviewed-by: Ross Zwisler <zwisler@google.com>

Thank you both. I will apply this after rc1 comes out.

thanks,
-- Shuah
Steven Rostedt Dec. 19, 2022, 10:35 p.m. UTC | #3
On Mon, 19 Dec 2022 15:11:39 -0700
Shuah Khan <skhan@linuxfoundation.org> wrote:

> On 12/19/22 13:57, Ross Zwisler wrote:
> > On Mon, Dec 19, 2022 at 01:31:08PM -0500, Steven Rostedt wrote:  
> >> From: "Steven Rostedt (Google)" <rostedt@goodmis.org>
> >>
> >> With the new filter logic of passing in the name of a function to match an
> >> instruction pointer (or the address of the function), add a test to make
> >> sure that it is functional.
> >>
> >> This is also the first test to test plain filtering. The filtering has
> >> been tested via the trigger logic, which uses the same code, but there was
> >> nothing to test just the event filter, so this test is the first to add
> >> such a case.
> >>
> >> Cc: Shuah Khan <shuah@kernel.org>
> >> Cc: Shuah Khan <skhan@linuxfoundation.org>
> >> Cc: linux-kselftest@vger.kernel.org
> >> Suggested-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
> >> Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>  
> > 
> > Reviewed-by: Ross Zwisler <zwisler@google.com>  
> 
> Thank you both. I will apply this after rc1 comes out.

It's dependent on the first patch.

-- Steve
Shuah Khan Dec. 20, 2022, 12:20 a.m. UTC | #4
On 12/19/22 15:35, Steven Rostedt wrote:
> On Mon, 19 Dec 2022 15:11:39 -0700
> Shuah Khan <skhan@linuxfoundation.org> wrote:
> 
>> On 12/19/22 13:57, Ross Zwisler wrote:
>>> On Mon, Dec 19, 2022 at 01:31:08PM -0500, Steven Rostedt wrote:
>>>> From: "Steven Rostedt (Google)" <rostedt@goodmis.org>
>>>>
>>>> With the new filter logic of passing in the name of a function to match an
>>>> instruction pointer (or the address of the function), add a test to make
>>>> sure that it is functional.
>>>>
>>>> This is also the first test to test plain filtering. The filtering has
>>>> been tested via the trigger logic, which uses the same code, but there was
>>>> nothing to test just the event filter, so this test is the first to add
>>>> such a case.
>>>>
>>>> Cc: Shuah Khan <shuah@kernel.org>
>>>> Cc: Shuah Khan <skhan@linuxfoundation.org>
>>>> Cc: linux-kselftest@vger.kernel.org
>>>> Suggested-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
>>>> Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
>>>
>>> Reviewed-by: Ross Zwisler <zwisler@google.com>
>>
>> Thank you both. I will apply this after rc1 comes out.
> 
> It's dependent on the first patch.
> 

In which case,

Acked-by: Shuah Khan <skhan@linuxfoundation.org>

thanks,
-- Shuah
Steven Rostedt Dec. 20, 2022, 1:21 a.m. UTC | #5
On Mon, 19 Dec 2022 17:20:39 -0700
Shuah Khan <skhan@linuxfoundation.org> wrote:

> On 12/19/22 15:35, Steven Rostedt wrote:
> > On Mon, 19 Dec 2022 15:11:39 -0700
> > Shuah Khan <skhan@linuxfoundation.org> wrote:
> >   
> >> On 12/19/22 13:57, Ross Zwisler wrote:  
> >>> On Mon, Dec 19, 2022 at 01:31:08PM -0500, Steven Rostedt wrote:  
> >>>> From: "Steven Rostedt (Google)" <rostedt@goodmis.org>
> >>>>
> >>>> With the new filter logic of passing in the name of a function to match an
> >>>> instruction pointer (or the address of the function), add a test to make
> >>>> sure that it is functional.
> >>>>
> >>>> This is also the first test to test plain filtering. The filtering has
> >>>> been tested via the trigger logic, which uses the same code, but there was
> >>>> nothing to test just the event filter, so this test is the first to add
> >>>> such a case.
> >>>>
> >>>> Cc: Shuah Khan <shuah@kernel.org>
> >>>> Cc: Shuah Khan <skhan@linuxfoundation.org>
> >>>> Cc: linux-kselftest@vger.kernel.org
> >>>> Suggested-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
> >>>> Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>  
> >>>
> >>> Reviewed-by: Ross Zwisler <zwisler@google.com>  
> >>
> >> Thank you both. I will apply this after rc1 comes out.  
> > 
> > It's dependent on the first patch.
> >   
> 
> In which case,
> 
> Acked-by: Shuah Khan <skhan@linuxfoundation.org>
>

Thanks Shuah!

-- Steve
diff mbox series

Patch

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
new file mode 100644
index 000000000000..e2ff3bf4df80
--- /dev/null
+++ b/tools/testing/selftests/ftrace/test.d/filter/event-filter-function.tc
@@ -0,0 +1,58 @@ 
+#!/bin/sh
+# SPDX-License-Identifier: GPL-2.0
+# description: event filter function - test event filtering on functions
+# requires: set_event events/kmem/kmem_cache_free/filter
+# flags: instance
+
+fail() { #msg
+    echo $1
+    exit_fail
+}
+
+echo "Test event filter function name"
+echo 0 > tracing_on
+echo 0 > events/enable
+echo > trace
+echo 'call_site.function == exit_mmap' > events/kmem/kmem_cache_free/filter
+echo 1 > events/kmem/kmem_cache_free/enable
+echo 1 > tracing_on
+ls > /dev/null
+echo 0 > events/kmem/kmem_cache_free/enable
+
+hitcnt=`grep kmem_cache_free trace| grep exit_mmap | wc -l`
+misscnt=`grep kmem_cache_free trace| grep -v exit_mmap | wc -l`
+
+if [ $hitcnt -eq 0 ]; then
+	exit_fail
+fi
+
+if [ $misscnt -gt 0 ]; then
+	exit_fail
+fi
+
+address=`grep ' exit_mmap$' /proc/kallsyms | cut -d' ' -f1`
+
+echo "Test event filter function address"
+echo 0 > tracing_on
+echo 0 > events/enable
+echo > trace
+echo "call_site.function == 0x$address" > events/kmem/kmem_cache_free/filter
+echo 1 > events/kmem/kmem_cache_free/enable
+echo 1 > tracing_on
+sleep 1
+echo 0 > events/kmem/kmem_cache_free/enable
+
+hitcnt=`grep kmem_cache_free trace| grep exit_mmap | wc -l`
+misscnt=`grep kmem_cache_free trace| grep -v exit_mmap | wc -l`
+
+if [ $hitcnt -eq 0 ]; then
+	exit_fail
+fi
+
+if [ $misscnt -gt 0 ]; then
+	exit_fail
+fi
+
+reset_events_filter
+
+exit 0