Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1#!/bin/sh
2# SPDX-License-Identifier: GPL-2.0
3# description: Test ftrace direct functions against tracers
4
5rmmod ftrace-direct ||:
6if ! modprobe ftrace-direct ; then
7 echo "No ftrace-direct sample module - please make CONFIG_SAMPLE_FTRACE_DIRECT=m"
8 exit_unresolved;
9fi
10
11echo "Let the module run a little"
12sleep 1
13
14grep -q "my_direct_func: waking up" trace
15
16rmmod ftrace-direct
17
18test_tracer() {
19 tracer=$1
20
21 # tracer -> direct -> no direct > no tracer
22 echo $tracer > current_tracer
23 modprobe ftrace-direct
24 rmmod ftrace-direct
25 echo nop > current_tracer
26
27 # tracer -> direct -> no tracer > no direct
28 echo $tracer > current_tracer
29 modprobe ftrace-direct
30 echo nop > current_tracer
31 rmmod ftrace-direct
32
33 # direct -> tracer -> no tracer > no direct
34 modprobe ftrace-direct
35 echo $tracer > current_tracer
36 echo nop > current_tracer
37 rmmod ftrace-direct
38
39 # direct -> tracer -> no direct > no notracer
40 modprobe ftrace-direct
41 echo $tracer > current_tracer
42 rmmod ftrace-direct
43 echo nop > current_tracer
44}
45
46for t in `cat available_tracers`; do
47 if [ "$t" != "nop" ]; then
48 test_tracer $t
49 fi
50done
51
52echo nop > current_tracer
53rmmod ftrace-direct ||:
54
55# Now do the same thing with another direct function registered
56echo "Running with another ftrace direct function"
57
58rmmod ftrace-direct-too ||:
59modprobe ftrace-direct-too
60
61for t in `cat available_tracers`; do
62 if [ "$t" != "nop" ]; then
63 test_tracer $t
64 fi
65done
66
67echo nop > current_tracer
68rmmod ftrace-direct ||:
69rmmod ftrace-direct-too ||: