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