5 source $TESTDIR/utils
/tap.sh
10 : ${NR_EVENTS:=7000000}
13 : ${TIME:="./$CURDIR/ptime"}
15 : ${PROG_NOTRACING:="./$CURDIR/bench1 $NR_CPUS $NR_EVENTS"}
16 : ${PROG_TRACING:="./$CURDIR/bench2 $NR_CPUS $NR_EVENTS"}
18 function signal_cleanup
()
20 killall lttng-sessiond
23 trap signal_cleanup SIGTERM SIGINT
25 CMD_NOTRACING
="$TIME '$PROG_NOTRACING >/dev/null 2>&1'"
26 CMD_TRACING
="$TIME '$PROG_TRACING >/dev/null 2>&1'"
28 for i
in $
(seq $ITERS); do
29 time_notrace
[i
]=$
(sh
-c "$CMD_NOTRACING")
33 lttng-sessiond
-d --no-kernel
34 lttng
-q create
--snapshot
35 lttng
-q enable-event
-u -a
38 for i
in $
(seq $ITERS); do
39 time_trace
[i
]=$
(sh
-c "$CMD_TRACING")
44 killall lttng-sessiond
46 pass
"Trace benchmark"
49 for i
in $
(seq $ITERS); do
50 delta
[$i]=$
(echo "( ((${time_trace[$i]}) - (${time_notrace[$i]})) / $NR_EVENTS)" |
bc -l)
51 avg_delta
=$
(echo "(${avg_delta} + ${delta[$i]})" |
bc -l)
53 avg_delta
=$
(echo "(${avg_delta} / $ITERS)" |
bc -l)
56 for i
in $
(seq $ITERS); do
57 dev
[$i]=$
(echo "(( (${delta[$i]}) - (${avg_delta}) ) ^ 2)" |
bc -l)
58 std_dev
=$
(echo "( (${std_dev}) + (${dev[i]}) )" |
bc -l)
60 std_dev
=$
(echo "( (${std_dev}) / $ITERS )" |
bc -l)
61 std_dev
=$
(echo "(sqrt(${std_dev}))" |
bc -l)
63 NS_PER_EVENT
=$
(echo "($avg_delta * 1000000000)" |
bc -l)
65 NS_PER_EVENT
=${NS_PER_EVENT%%.*}
67 STD_DEV_NS_PER_EVENT
=$
(echo "($std_dev * 1000000000)" |
bc -l)
68 STD_DEV_NS_PER_EVENT
=${STD_DEV_NS_PER_EVENT%%.*}
70 diag
"Average tracing overhead per event is ${NS_PER_EVENT}ns, std.dev.: ${STD_DEV_NS_PER_EVENT}ns"