Skip to content

Commit c349d4a

Browse files
committed
tracing/selftest: Add selftests to test trace_marker histogram triggers
Add a couple of tests that test the trace_marker histogram triggers. One does a straight histogram test, the other will create a synthetic event and test the latency between two different writes (using filters to differentiate between them). Acked-by: Masami Hiramatsu <[email protected]> Reviewed-by: Namhyung Kim <[email protected]> Signed-off-by: Steven Rostedt (VMware) <[email protected]>
1 parent 922a418 commit c349d4a

File tree

2 files changed

+115
-0
lines changed

2 files changed

+115
-0
lines changed
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
#!/bin/sh
2+
# SPDX-License-Identifier: GPL-2.0
3+
# description: trace_marker trigger - test histogram trigger
4+
# flags: instance
5+
6+
do_reset() {
7+
reset_trigger
8+
echo > set_event
9+
clear_trace
10+
}
11+
12+
fail() { #msg
13+
do_reset
14+
echo $1
15+
exit_fail
16+
}
17+
18+
if [ ! -f set_event ]; then
19+
echo "event tracing is not supported"
20+
exit_unsupported
21+
fi
22+
23+
if [ ! -d events/ftrace/print ]; then
24+
echo "event trace_marker is not supported"
25+
exit_unsupported
26+
fi
27+
28+
if [ ! -f events/ftrace/print/trigger ]; then
29+
echo "event trigger is not supported"
30+
exit_unsupported
31+
fi
32+
33+
if [ ! -f events/ftrace/print/hist ]; then
34+
echo "hist trigger is not supported"
35+
exit_unsupported
36+
fi
37+
38+
do_reset
39+
40+
echo "Test histogram trace_marker tigger"
41+
42+
echo 'hist:keys=common_pid' > events/ftrace/print/trigger
43+
for i in `seq 1 10` ; do echo "hello" > trace_marker; done
44+
grep 'hitcount: *10$' events/ftrace/print/hist > /dev/null || \
45+
fail "hist trigger did not trigger correct times on trace_marker"
46+
47+
do_reset
48+
49+
exit 0
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
#!/bin/sh
2+
# SPDX-License-Identifier: GPL-2.0
3+
# description: trace_marker trigger - test histogram with synthetic event
4+
# flags:
5+
6+
do_reset() {
7+
reset_trigger
8+
echo > set_event
9+
echo > synthetic_events
10+
clear_trace
11+
}
12+
13+
fail() { #msg
14+
do_reset
15+
echo $1
16+
exit_fail
17+
}
18+
19+
if [ ! -f set_event ]; then
20+
echo "event tracing is not supported"
21+
exit_unsupported
22+
fi
23+
24+
if [ ! -f synthetic_events ]; then
25+
echo "synthetic events not supported"
26+
exit_unsupported
27+
fi
28+
29+
if [ ! -d events/ftrace/print ]; then
30+
echo "event trace_marker is not supported"
31+
exit_unsupported
32+
fi
33+
34+
if [ ! -f events/ftrace/print/trigger ]; then
35+
echo "event trigger is not supported"
36+
exit_unsupported
37+
fi
38+
39+
if [ ! -f events/ftrace/print/hist ]; then
40+
echo "hist trigger is not supported"
41+
exit_unsupported
42+
fi
43+
44+
do_reset
45+
46+
echo "Test histogram trace_marker to trace_marker latency histogram trigger"
47+
48+
echo 'latency u64 lat' > synthetic_events
49+
echo 'hist:keys=common_pid:ts0=common_timestamp.usecs if buf == "start"' > events/ftrace/print/trigger
50+
echo 'hist:keys=common_pid:lat=common_timestamp.usecs-$ts0:onmatch(ftrace.print).latency($lat) if buf == "end"' >> events/ftrace/print/trigger
51+
echo 'hist:keys=common_pid,lat:sort=lat' > events/synthetic/latency/trigger
52+
echo -n "start" > trace_marker
53+
echo -n "end" > trace_marker
54+
55+
cnt=`grep 'hitcount: *1$' events/ftrace/print/hist | wc -l`
56+
57+
if [ $cnt -ne 2 ]; then
58+
fail "hist trace_marker trigger did not trigger correctly"
59+
fi
60+
61+
grep 'hitcount: *1$' events/synthetic/latency/hist > /dev/null || \
62+
fail "hist trigger did not trigger "
63+
64+
do_reset
65+
66+
exit 0

0 commit comments

Comments
 (0)