Skip to content

Commit 7f09d63

Browse files
committed
tracing/selftests: Add test for event filtering on function name
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. Link: https://lkml.kernel.org/r/20221219183214.075559302@goodmis.org Cc: Andrew Morton <akpm@linux-foundation.org> Cc: Tom Zanussi <zanussi@kernel.org> Cc: Zheng Yejian <zhengyejian1@huawei.com> Cc: linux-kselftest@vger.kernel.org Suggested-by: Masami Hiramatsu (Google) <mhiramat@kernel.org> Reviewed-by: Ross Zwisler <zwisler@google.com> Acked-by: Shuah Khan <skhan@linuxfoundation.org> Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
1 parent e6745a4 commit 7f09d63

1 file changed

Lines changed: 58 additions & 0 deletions

File tree

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
#!/bin/sh
2+
# SPDX-License-Identifier: GPL-2.0
3+
# description: event filter function - test event filtering on functions
4+
# requires: set_event events/kmem/kmem_cache_free/filter
5+
# flags: instance
6+
7+
fail() { #msg
8+
echo $1
9+
exit_fail
10+
}
11+
12+
echo "Test event filter function name"
13+
echo 0 > tracing_on
14+
echo 0 > events/enable
15+
echo > trace
16+
echo 'call_site.function == exit_mmap' > events/kmem/kmem_cache_free/filter
17+
echo 1 > events/kmem/kmem_cache_free/enable
18+
echo 1 > tracing_on
19+
ls > /dev/null
20+
echo 0 > events/kmem/kmem_cache_free/enable
21+
22+
hitcnt=`grep kmem_cache_free trace| grep exit_mmap | wc -l`
23+
misscnt=`grep kmem_cache_free trace| grep -v exit_mmap | wc -l`
24+
25+
if [ $hitcnt -eq 0 ]; then
26+
exit_fail
27+
fi
28+
29+
if [ $misscnt -gt 0 ]; then
30+
exit_fail
31+
fi
32+
33+
address=`grep ' exit_mmap$' /proc/kallsyms | cut -d' ' -f1`
34+
35+
echo "Test event filter function address"
36+
echo 0 > tracing_on
37+
echo 0 > events/enable
38+
echo > trace
39+
echo "call_site.function == 0x$address" > events/kmem/kmem_cache_free/filter
40+
echo 1 > events/kmem/kmem_cache_free/enable
41+
echo 1 > tracing_on
42+
sleep 1
43+
echo 0 > events/kmem/kmem_cache_free/enable
44+
45+
hitcnt=`grep kmem_cache_free trace| grep exit_mmap | wc -l`
46+
misscnt=`grep kmem_cache_free trace| grep -v exit_mmap | wc -l`
47+
48+
if [ $hitcnt -eq 0 ]; then
49+
exit_fail
50+
fi
51+
52+
if [ $misscnt -gt 0 ]; then
53+
exit_fail
54+
fi
55+
56+
reset_events_filter
57+
58+
exit 0

0 commit comments

Comments
 (0)