3 # SPDX-License-Identifier: LGPL-2.1-only
7 source $TESTDIR/utils
/tap.sh
12 : ${NR_EVENTS:=7000000}
15 : ${TIME:="./$CURDIR/ptime"}
17 : ${PROG_NOTRACING:="./$CURDIR/bench1 $NR_CPUS $NR_EVENTS"}
18 : ${PROG_TRACING:="./$CURDIR/bench2 $NR_CPUS $NR_EVENTS"}
20 function signal_cleanup
()
22 killall lttng-sessiond
25 trap signal_cleanup SIGTERM SIGINT
27 CMD_NOTRACING
="$TIME '$PROG_NOTRACING >/dev/null 2>&1'"
28 CMD_TRACING
="$TIME '$PROG_TRACING >/dev/null 2>&1'"
30 for i
in $
(seq $ITERS); do
31 time_notrace
[i
]=$
(sh
-c "$CMD_NOTRACING")
35 lttng-sessiond
-d --no-kernel
36 lttng
-q create
--snapshot
37 lttng
-q enable-event
-u -a
40 for i
in $
(seq $ITERS); do
41 time_trace
[i
]=$
(sh
-c "$CMD_TRACING")
46 killall lttng-sessiond
48 pass
"Trace benchmark"
51 for i
in $
(seq $ITERS); do
52 delta
[$i]=$
(echo "( ((${time_trace[$i]}) - (${time_notrace[$i]})) / $NR_EVENTS)" |
bc -l)
53 avg_delta
=$
(echo "(${avg_delta} + ${delta[$i]})" |
bc -l)
55 avg_delta
=$
(echo "(${avg_delta} / $ITERS)" |
bc -l)
58 for i
in $
(seq $ITERS); do
59 dev
[$i]=$
(echo "(( (${delta[$i]}) - (${avg_delta}) ) ^ 2)" |
bc -l)
60 std_dev
=$
(echo "( (${std_dev}) + (${dev[i]}) )" |
bc -l)
62 std_dev
=$
(echo "( (${std_dev}) / $ITERS )" |
bc -l)
63 std_dev
=$
(echo "(sqrt(${std_dev}))" |
bc -l)
65 NS_PER_EVENT
=$
(echo "($avg_delta * 1000000000)" |
bc -l)
67 NS_PER_EVENT
=${NS_PER_EVENT%%.*}
69 STD_DEV_NS_PER_EVENT
=$
(echo "($std_dev * 1000000000)" |
bc -l)
70 STD_DEV_NS_PER_EVENT
=${STD_DEV_NS_PER_EVENT%%.*}
72 diag
"Average tracing overhead per event is ${NS_PER_EVENT}ns, std.dev.: ${STD_DEV_NS_PER_EVENT}ns"