1#!/bin/sh
2# SPDX-License-Identifier: GPL-2.0
3# description: Generic dynamic event - add/remove tracepoint probe events
4# requires: dynamic_events "t[:[<group>/][<event>]] <tracepoint> [<args>]":README
5
6echo 0 > events/enable
7echo > dynamic_events
8
9SUBSYSTEM=kmem
10TRACEPOINT1=kmem_cache_alloc
11TRACEPOINT2=kmem_cache_free
12
13echo "t:myevent1 $TRACEPOINT1" >> dynamic_events
14echo "t:myevent2 $TRACEPOINT2" >> dynamic_events
15
16grep -q myevent1 dynamic_events
17grep -q myevent2 dynamic_events
18test -d events/tracepoints/myevent1
19test -d events/tracepoints/myevent2
20
21echo "-:myevent2" >> dynamic_events
22
23grep -q myevent1 dynamic_events
24! grep -q myevent2 dynamic_events
25
26echo > dynamic_events
27
28# auto naming check
29echo "t $TRACEPOINT1" >> dynamic_events
30
31test -d events/tracepoints/$TRACEPOINT1
32
33echo > dynamic_events
34
35# SUBSYSTEM is not supported
36echo "t $SUBSYSTEM/$TRACEPOINT1" >> dynamic_events && exit_fail ||:
37echo "t $SUBSYSTEM:$TRACEPOINT1" >> dynamic_events && exit_fail ||:
38echo "t:myevent3 $SUBSYSTEM/$TRACEPOINT1" >> dynamic_events && exit_fail ||:
39echo "t:myevent3 $SUBSYSTEM:$TRACEPOINT1" >> dynamic_events && exit_fail ||:
40
41clear_trace
42