| #!/bin/sh |
| # SPDX-License-Identifier: GPL-2.0 |
| # description: Generic dynamic event - generic clear event |
| |
| [ -f dynamic_events ] || exit_unsupported |
| |
| grep -q "place: \[<module>:\]<symbol>" README || exit_unsupported |
| grep -q "place (kretprobe): \[<module>:\]<symbol>" README || exit_unsupported |
| |
| grep -q "s:\[synthetic/\]" README || exit_unsupported |
| |
| echo 0 > events/enable |
| echo > dynamic_events |
| |
| PLACE=_do_fork |
| |
| setup_events() { |
| echo "p:myevent1 $PLACE" >> dynamic_events |
| echo "s:latency1 u64 lat; pid_t pid;" >> dynamic_events |
| echo "r:myevent2 $PLACE" >> dynamic_events |
| echo "s:latency2 u64 lat; pid_t pid;" >> dynamic_events |
| |
| grep -q myevent1 dynamic_events |
| grep -q myevent2 dynamic_events |
| grep -q latency1 dynamic_events |
| grep -q latency2 dynamic_events |
| } |
| |
| setup_events |
| |
| echo "!p:myevent1 $PLACE" >> dynamic_events |
| ! grep -q myevent1 dynamic_events |
| grep -q myevent2 dynamic_events |
| grep -q latency1 dynamic_events |
| grep -q latency2 dynamic_events |
| |
| echo "!s:latency1 u64 lat; pid_t pid;" >> dynamic_events |
| grep -q myevent2 dynamic_events |
| ! grep -q latency1 dynamic_events |
| grep -q latency2 dynamic_events |
| |
| echo "!r:myevent2 $PLACE" >> dynamic_events |
| ! grep -q myevent2 dynamic_events |
| grep -q latency2 dynamic_events |
| |
| echo "!s:latency2 u64 lat; pid_t pid;" >> dynamic_events |
| ! grep -q latency2 dynamic_events |
| |
| echo > dynamic_events |