License cleanup: add SPDX GPL-2.0 license identifier to files with no license
[linux-block.git] / tools / testing / selftests / ftrace / test.d / kprobe / kprobe_ftrace.tc
1 #!/bin/sh
2 # SPDX-License-Identifier: GPL-2.0
3 # description: Kprobe dynamic event with function tracer
4
5 [ -f kprobe_events ] || exit_unsupported # this is configurable
6 grep function available_tracers || exit_unsupported # this is configurable
7
8 # prepare
9 echo nop > current_tracer
10 echo _do_fork > set_ftrace_filter
11 echo 0 > events/enable
12 echo > kprobe_events
13 echo 'p:testprobe _do_fork' > kprobe_events
14
15 # kprobe on / ftrace off
16 echo 1 > events/kprobes/testprobe/enable
17 echo > trace
18 ( echo "forked")
19 grep testprobe trace
20 ! grep '_do_fork <-' trace
21
22 # kprobe on / ftrace on
23 echo function > current_tracer
24 echo > trace
25 ( echo "forked")
26 grep testprobe trace
27 grep '_do_fork <-' trace
28
29 # kprobe off / ftrace on
30 echo 0 > events/kprobes/testprobe/enable
31 echo > trace
32 ( echo "forked")
33 ! grep testprobe trace
34 grep '_do_fork <-' trace
35
36 # kprobe on / ftrace on
37 echo 1 > events/kprobes/testprobe/enable
38 echo function > current_tracer
39 echo > trace
40 ( echo "forked")
41 grep testprobe trace
42 grep '_do_fork <-' trace
43
44 # kprobe on / ftrace off
45 echo nop > current_tracer
46 echo > trace
47 ( echo "forked")
48 grep testprobe trace
49 ! grep '_do_fork <-' trace
50
51 # cleanup
52 echo nop > current_tracer
53 echo > set_ftrace_filter
54 echo 0 > events/kprobes/testprobe/enable
55 echo > kprobe_events
56 echo > trace