tests: improve benchmark script
[lttng-ust.git] / tests / benchmark / test_benchmark
CommitLineData
a44af49d
ZT
1#!/bin/bash
2
3CURDIR=$(dirname $0)/
4TESTDIR=$CURDIR/..
5source $TESTDIR/utils/tap.sh
6
7plan_tests 1
8
9: ${ITERS:=20}
10: ${NR_EVENTS:=7000000}
11: ${NR_CPUS:=1}
12
13: ${TIME:="./$CURDIR/ptime"}
14
15: ${PROG_NOTRACING:="./$CURDIR/bench1 $NR_CPUS $NR_EVENTS"}
16: ${PROG_TRACING:="./$CURDIR/bench2 $NR_CPUS $NR_EVENTS"}
17
57aff1c0
MD
18function signal_cleanup ()
19{
20 killall lttng-sessiond
21}
22
23trap signal_cleanup SIGTERM SIGINT
24
a44af49d
ZT
25CMD_NOTRACING="$TIME '$PROG_NOTRACING >/dev/null 2>&1'"
26CMD_TRACING="$TIME '$PROG_TRACING >/dev/null 2>&1'"
27
28time_notrace=0
29for i in $(seq $ITERS); do
57aff1c0
MD
30 if [[ $EUID -eq 0 ]]; then
31 echo 3 >/proc/sys/vm/drop_caches
32 fi
a44af49d
ZT
33 time_notrace="$time_notrace+$(sh -c "$CMD_NOTRACING")"
34done
35
57aff1c0 36
a44af49d 37lttng-sessiond -d --no-kernel
57aff1c0 38lttng -q create --snapshot
a44af49d
ZT
39lttng -q enable-event -u -a
40lttng -q start
41
42time_trace=0
43for i in $(seq $ITERS); do
57aff1c0
MD
44 if [[ $EUID -eq 0 ]]; then
45 echo 3 >/proc/sys/vm/drop_caches
46 fi
a44af49d
ZT
47 time_trace="$time_trace+$(sh -c "$CMD_TRACING")"
48done
49
50lttng -q stop
51lttng -q destroy
57aff1c0 52killall lttng-sessiond
a44af49d
ZT
53
54pass "Trace benchmark"
57aff1c0
MD
55S_PER_EVENT=$(echo "( ($time_trace) - ($time_notrace) ) / $ITERS / $NR_EVENTS" | bc -l)
56NS_PER_EVENT=$(echo "$S_PER_EVENT * 1000000000" | bc -l)
57# Remove fractions
58NS_PER_EVENT=${NS_PER_EVENT%%.*}
59
60diag "Average tracing overhead per event is ${NS_PER_EVENT}ns"
This page took 0.026977 seconds and 4 git commands to generate.