53 lines · plain
1#!/bin/sh2# SPDX-License-Identifier: GPL-2.03# description: Kprobe dynamic event - probing module4# requires: kprobe_events5 6rmmod trace-printk ||:7if ! modprobe trace-printk ; then8 echo "No trace-printk sample module - please make CONFIG_SAMPLE_TRACE_PRINTK=9m"10 exit_unresolved;11fi12 13MOD=trace_printk14FUNC=trace_printk_irq_work15 16:;: "Add an event on a module function without specifying event name" ;:17 18echo "p $MOD:$FUNC" > kprobe_events19PROBE_NAME=`echo $MOD:$FUNC | tr ".:" "_"`20test -d events/kprobes/p_${PROBE_NAME}_0 || exit_failure21 22:;: "Add an event on a module function with new event name" ;:23 24echo "p:event1 $MOD:$FUNC" > kprobe_events25test -d events/kprobes/event1 || exit_failure26 27:;: "Add an event on a module function with new event and group name" ;:28 29echo "p:kprobes1/event1 $MOD:$FUNC" > kprobe_events30test -d events/kprobes1/event1 || exit_failure31 32:;: "Remove target module, but event still be there" ;:33if ! rmmod trace-printk ; then34 echo "Failed to unload module - please enable CONFIG_MODULE_UNLOAD"35 exit_unresolved;36fi37test -d events/kprobes1/event138 39:;: "Check posibility to defining events on unloaded module";:40echo "p:event2 $MOD:$FUNC" >> kprobe_events41 42:;: "Target is gone, but we can prepare for next time";:43echo 1 > events/kprobes1/event1/enable44 45:;: "Load module again, which means the event1 should be recorded";:46modprobe trace-printk47grep "event1:" trace48 49:;: "Remove the module again and check the event is not locked"50rmmod trace-printk51echo 0 > events/kprobes1/event1/enable52echo "-:kprobes1/event1" >> kprobe_events53