Skip to content

Commit 4e78dd6

Browse files
committed
sefltests/tracing: Add a test for tracepoint events on modules
Add a test case for tracepoint events on modules. This checks if it can add and remove the events correctly. Link: https://lore.kernel.org/all/172397781494.286558.7581515061075998225.stgit@devnote2/ Signed-off-by: Masami Hiramatsu (Google) <[email protected]>
1 parent 57a7e6d commit 4e78dd6

File tree

2 files changed

+62
-0
lines changed

2 files changed

+62
-0
lines changed

tools/testing/selftests/ftrace/config

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ CONFIG_PREEMPT_TRACER=y
2020
CONFIG_PROBE_EVENTS_BTF_ARGS=y
2121
CONFIG_SAMPLES=y
2222
CONFIG_SAMPLE_FTRACE_DIRECT=m
23+
CONFIG_SAMPLE_TRACE_EVENTS=m
2324
CONFIG_SAMPLE_TRACE_PRINTK=m
2425
CONFIG_SCHED_TRACER=y
2526
CONFIG_STACK_TRACER=y
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
#!/bin/sh
2+
# SPDX-License-Identifier: GPL-2.0
3+
# description: Generic dynamic event - add/remove tracepoint probe events on module
4+
# requires: dynamic_events "t[:[<group>/][<event>]] <tracepoint> [<args>]":README
5+
6+
rmmod trace-events-sample ||:
7+
if ! modprobe trace-events-sample ; then
8+
echo "No trace-events sample module - please make CONFIG_SAMPLE_TRACE_EVENTS=m"
9+
exit_unresolved;
10+
fi
11+
trap "rmmod trace-events-sample" EXIT
12+
13+
echo 0 > events/enable
14+
echo > dynamic_events
15+
16+
TRACEPOINT1=foo_bar
17+
TRACEPOINT2=foo_bar_with_cond
18+
19+
echo "t:myevent1 $TRACEPOINT1" >> dynamic_events
20+
echo "t:myevent2 $TRACEPOINT2" >> dynamic_events
21+
22+
grep -q myevent1 dynamic_events
23+
grep -q myevent2 dynamic_events
24+
test -d events/tracepoints/myevent1
25+
test -d events/tracepoints/myevent2
26+
27+
echo "-:myevent2" >> dynamic_events
28+
29+
grep -q myevent1 dynamic_events
30+
! grep -q myevent2 dynamic_events
31+
32+
echo > dynamic_events
33+
34+
clear_trace
35+
36+
:;: "Try to put a probe on a tracepoint in non-loaded module" ;:
37+
rmmod trace-events-sample
38+
39+
echo "t:myevent1 $TRACEPOINT1" >> dynamic_events
40+
echo "t:myevent2 $TRACEPOINT2" >> dynamic_events
41+
42+
grep -q myevent1 dynamic_events
43+
grep -q myevent2 dynamic_events
44+
test -d events/tracepoints/myevent1
45+
test -d events/tracepoints/myevent2
46+
47+
echo 1 > events/tracepoints/enable
48+
49+
modprobe trace-events-sample
50+
51+
sleep 2
52+
53+
grep -q "myevent1" trace
54+
grep -q "myevent2" trace
55+
56+
rmmod trace-events-sample
57+
trap "" EXIT
58+
59+
echo 0 > events/tracepoints/enable
60+
echo > dynamic_events
61+
clear_trace

0 commit comments

Comments
 (0)