
Add a kprobes on ftrace testcase. The testcase verifies that - enabling and disabling function tracing works on a function which already contains a dynamic kprobe - adding and removing a dynamic kprobe works on a function which is already enabled for function tracing Link: http://lkml.kernel.org/p/1413802323-5297-2-git-send-email-heiko.carstens@de.ibm.com Acked-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com> Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com> Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
55 lines
1.2 KiB
Bash
55 lines
1.2 KiB
Bash
#!/bin/sh
|
|
# description: Kprobe dynamic event with function tracer
|
|
|
|
[ -f kprobe_events ] || exit_unsupported # this is configurable
|
|
grep function available_tracers || exit_unsupported # this is configurable
|
|
|
|
# prepare
|
|
echo nop > current_tracer
|
|
echo do_fork > set_ftrace_filter
|
|
echo 0 > events/enable
|
|
echo > kprobe_events
|
|
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
|
|
|
|
# cleanup
|
|
echo nop > current_tracer
|
|
echo > set_ftrace_filter
|
|
echo 0 > events/kprobes/testprobe/enable
|
|
echo > kprobe_events
|
|
echo > trace
|