#!/bin/sh
-#UST scalability test
+# UST vs SystemTap scalability test
+# This script can run 4 different tests :
+# - UST in flight recorder mode
+# - UST writing the trace to disk
+# - SystemTap in flight recorder mode
+# - SystemTap writing the trace to disk
-BINARY=tracepoint_benchmark
+# You need to be root to run the SystemTap tests because of the rmmod
+
+BINARY=./tracepoint_benchmark
+MODNAME=tpbench
REPORT=/tmp/testreport
TMPLOG=/tmp/testlog
WRAPPER=""
+CLEANUP=""
STAP=stap
STAPTMP=/tmp/stapconsole
STAPPROBE=testutrace.stp
stap_flight_recorder() {
echo -n "* SystemTap Flight recorder : " | tee >> $REPORT
WRAPPER=""
- $STAP $STAPPROBE -F -m $BINARY
+ $STAP $STAPPROBE -F -m $MODNAME
}
stap_disk() {
echo -n "* SystemTap Write to disk : " | tee >> $REPORT
WRAPPER=""
- $STAP $STAPPROBE -o $STAPTMP -m $BINARY &
+ $STAP $STAPPROBE -o $STAPTMP -m $MODNAME &
sleep 5
}
;;
stap_flight_recorder)
TEST=stap_flight_recorder
+ CLEANUP="rmmod $MODNAME 2>/dev/null"
;;
stap_disk)
TEST=stap_disk
+ CLEANUP="killall stapio 2>/dev/null"
;;
*)
echo "Usage : $0 {ust_flight_recorder|ust_disk|stap_flight_recorder|stap_disk}"
echo Number of threads: $nr_threads | tee >> $REPORT
echo -n "* Baseline : " | tee >> $REPORT
- # just some cleanup
- killall stapio 2>/dev/null
- rmmod $BINARY 2>/dev/null
+ eval $CLEANUP
sync
- /usr/bin/time -f "%E" -o $TMPLOG ./$BINARY ${nr_threads}
+ /usr/bin/time -f "%E" -o $TMPLOG $BINARY ${nr_threads}
cat $TMPLOG >> $REPORT
$TEST
sync
- /usr/bin/time -f "%E" -o $TMPLOG $WRAPPER ./$BINARY ${nr_threads}
+ /usr/bin/time -f "%E" -o $TMPLOG $WRAPPER $BINARY ${nr_threads}
cat $TMPLOG >> $REPORT
done