1#!/bin/sh 2# SPDX-License-Identifier: GPL-2.0 3# description: Generic dynamic event - generic clear event 4# requires: dynamic_events 5 6grep -q "place: \[<module>:\]<symbol>" README || exit_unsupported 7grep -q "place (kretprobe): \[<module>:\]<symbol>" README || exit_unsupported 8 9grep -q "s:\[synthetic/\]" README || exit_unsupported 10 11echo 0 > events/enable 12echo > dynamic_events 13 14PLACE=_do_fork 15 16setup_events() { 17echo "p:myevent1 $PLACE" >> dynamic_events 18echo "s:latency1 u64 lat; pid_t pid;" >> dynamic_events 19echo "r:myevent2 $PLACE" >> dynamic_events 20echo "s:latency2 u64 lat; pid_t pid;" >> dynamic_events 21 22grep -q myevent1 dynamic_events 23grep -q myevent2 dynamic_events 24grep -q latency1 dynamic_events 25grep -q latency2 dynamic_events 26} 27 28setup_events 29 30echo "!p:myevent1 $PLACE" >> dynamic_events 31! grep -q myevent1 dynamic_events 32grep -q myevent2 dynamic_events 33grep -q latency1 dynamic_events 34grep -q latency2 dynamic_events 35 36echo "!s:latency1 u64 lat; pid_t pid;" >> dynamic_events 37grep -q myevent2 dynamic_events 38! grep -q latency1 dynamic_events 39grep -q latency2 dynamic_events 40 41echo "!r:myevent2 $PLACE" >> dynamic_events 42! grep -q myevent2 dynamic_events 43grep -q latency2 dynamic_events 44 45echo "!s:latency2 u64 lat; pid_t pid;" >> dynamic_events 46! grep -q latency2 dynamic_events 47 48echo > dynamic_events 49