1 #!/bin/sh 2 # SPDX-License-Identifier: GPL-2.0 3 # description: Kprobe dynamic event - probing module 4 # requires: kprobe_events 5 6 rmmod trace-printk ||: 7 if ! modprobe trace-printk ; then 8 echo "No trace-printk sample module - please make CONFIG_SAMPLE_TRACE_PRINTK= 9 m" 10 exit_unresolved; 11 fi 12 13 MOD=trace_printk 14 FUNC=trace_printk_irq_work 15 16 :;: "Add an event on a module function without specifying event name" ;: 17 18 echo "p $MOD:$FUNC" > kprobe_events 19 PROBE_NAME=`echo $MOD:$FUNC | tr ".:" "_"` 20 test -d events/kprobes/p_${PROBE_NAME}_0 || exit_failure 21 22 :;: "Add an event on a module function with new event name" ;: 23 24 echo "p:event1 $MOD:$FUNC" > kprobe_events 25 test -d events/kprobes/event1 || exit_failure 26 27 :;: "Add an event on a module function with new event and group name" ;: 28 29 echo "p:kprobes1/event1 $MOD:$FUNC" > kprobe_events 30 test -d events/kprobes1/event1 || exit_failure 31 32 :;: "Remove target module, but event still be there" ;: 33 if ! rmmod trace-printk ; then 34 echo "Failed to unload module - please enable CONFIG_MODULE_UNLOAD" 35 exit_unresolved; 36 fi 37 test -d events/kprobes1/event1 38 39 :;: "Check posibility to defining events on unloaded module";: 40 echo "p:event2 $MOD:$FUNC" >> kprobe_events 41 42 :;: "Target is gone, but we can prepare for next time";: 43 echo 1 > events/kprobes1/event1/enable 44 45 :;: "Load module again, which means the event1 should be recorded";: 46 modprobe trace-printk 47 grep "event1:" trace 48 49 :;: "Remove the module again and check the event is not locked" 50 rmmod trace-printk 51 echo 0 > events/kprobes1/event1/enable 52 echo "-:kprobes1/event1" >> 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.