1 #!/bin/sh 2 # SPDX-License-Identifier: GPL-2.0 3 # description: Test ftrace direct functions against kprobes 4 # requires: kprobe_events 5 6 rmmod ftrace-direct ||: 7 if ! modprobe ftrace-direct ; then 8 echo "No ftrace-direct sample module - please build with CONFIG_SAMPLE_FTRACE_DIRECT=m" 9 exit_unresolved; 10 fi 11 12 echo "Let the module run a little" 13 sleep 1 14 15 grep -q "my_direct_func: waking up" trace 16 17 rmmod ftrace-direct 18 19 echo 'p:kwake wake_up_process task=$arg1' > kprobe_events 20 21 start_direct() { 22 echo > trace 23 modprobe ftrace-direct 24 sleep 1 25 grep -q "my_direct_func: waking up" trace 26 } 27 28 stop_direct() { 29 rmmod ftrace-direct 30 } 31 32 enable_probe() { 33 echo > trace 34 echo 1 > events/kprobes/kwake/enable 35 sleep 1 36 grep -q "kwake:" trace 37 } 38 39 disable_probe() { 40 echo 0 > events/kprobes/kwake/enable 41 } 42 43 test_kprobes() { 44 # probe -> direct -> no direct > no probe 45 enable_probe 46 start_direct 47 stop_direct 48 disable_probe 49 50 # probe -> direct -> no probe > no direct 51 enable_probe 52 start_direct 53 disable_probe 54 stop_direct 55 56 # direct -> probe -> no probe > no direct 57 start_direct 58 enable_probe 59 disable_probe 60 stop_direct 61 62 # direct -> probe -> no direct > no noprobe 63 start_direct 64 enable_probe 65 stop_direct 66 disable_probe 67 } 68 69 test_kprobes 70 71 # Now do this with a second registered direct function 72 echo "Running with another ftrace direct function" 73 74 modprobe ftrace-direct-too 75 76 test_kprobes 77 78 rmmod ftrace-direct-too 79 80 echo > kprobe_events
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.