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