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