Without CONFIG_DYNAMIC_FTRACE, some tests get failure because required filter files(set_ftrace_filter/available_filter_functions/stack_trace_filter) are missing. So implement check_filter_file() and make all related tests check required filter files by it. BTW: set_ftrace_filter and available_filter_functions are introduced together so just check either of them. Signed-off-by: Xiao Yang <yangx.jy@cn.fujitsu.com> Acked-by: Masami Hiramatsu <mhiramat@kernel.org> Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
50 lines
1.1 KiB
Bash
50 lines
1.1 KiB
Bash
#!/bin/sh
|
|
# SPDX-License-Identifier: GPL-2.0
|
|
# description: Kprobe dynamic event with function tracer
|
|
|
|
[ -f kprobe_events ] || exit_unsupported # this is configurable
|
|
grep "function" available_tracers || exit_unsupported # this is configurable
|
|
|
|
check_filter_file set_ftrace_filter
|
|
|
|
# prepare
|
|
echo nop > current_tracer
|
|
echo _do_fork > set_ftrace_filter
|
|
echo 'p:testprobe _do_fork' > kprobe_events
|
|
|
|
# kprobe on / ftrace off
|
|
echo 1 > events/kprobes/testprobe/enable
|
|
echo > trace
|
|
( echo "forked")
|
|
grep testprobe trace
|
|
! grep '_do_fork <-' trace
|
|
|
|
# kprobe on / ftrace on
|
|
echo function > current_tracer
|
|
echo > trace
|
|
( echo "forked")
|
|
grep testprobe trace
|
|
grep '_do_fork <-' trace
|
|
|
|
# kprobe off / ftrace on
|
|
echo 0 > events/kprobes/testprobe/enable
|
|
echo > trace
|
|
( echo "forked")
|
|
! grep testprobe trace
|
|
grep '_do_fork <-' trace
|
|
|
|
# kprobe on / ftrace on
|
|
echo 1 > events/kprobes/testprobe/enable
|
|
echo function > current_tracer
|
|
echo > trace
|
|
( echo "forked")
|
|
grep testprobe trace
|
|
grep '_do_fork <-' trace
|
|
|
|
# kprobe on / ftrace off
|
|
echo nop > current_tracer
|
|
echo > trace
|
|
( echo "forked")
|
|
grep testprobe trace
|
|
! grep '_do_fork <-' trace
|