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>
This commit is contained in:
Родитель
e6745a4da9
Коммит
7f09d639b8
|
@ -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
|
Загрузка…
Ссылка в новой задаче