2 # SPDX-License-Identifier: GPL-2.0
3 # description: Kprobe dynamic event - probing module
4 # requires: kprobe_events
7 if ! modprobe trace-printk
; then
8 echo "No trace-printk sample module - please make CONFIG_SAMPLE_TRACE_PRINTK=
14 FUNC
=trace_printk_irq_work
16 :;: "Add an event on a module function without specifying event name" ;:
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
22 :;: "Add an event on a module function with new event name" ;:
24 echo "p:event1 $MOD:$FUNC" > kprobe_events
25 test -d events
/kprobes
/event1 || exit_failure
27 :;: "Add an event on a module function with new event and group name" ;:
29 echo "p:kprobes1/event1 $MOD:$FUNC" > kprobe_events
30 test -d events
/kprobes
1/event1 || exit_failure
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"
37 test -d events
/kprobes
1/event1
39 :;: "Check posibility to defining events on unloaded module";:
40 echo "p:event2 $MOD:$FUNC" >> kprobe_events
42 :;: "Target is gone, but we can prepare for next time";:
43 echo 1 > events
/kprobes
1/event
1/enable
45 :;: "Load module again, which means the event1 should be recorded";:
49 :;: "Remove the module again and check the event is not locked"
51 echo 0 > events
/kprobes
1/event
1/enable
52 echo "-:kprobes1/event1" >> kprobe_events