Newer
Older
#!/usr/bin/env bash
set -e
if [ "$UID" -ne 0 ]; then
echo "Script must be run as root"
exit 1
fi
source ./configs/nic.sh
if [ -e "./configs/$(uname -r).sh" ]; then
echo "Loading kernel-specific config for $(uname -r)"
source ./configs/$(uname -r).sh
fi
source ./tunings/base.sh
while [[ $# -gt 0 ]]; do
case $1 in
-e)
EXPERIMENT="$2"
shift
shift
;;
--extra-tuning)
EXTRA_TUNING="$2"
shift
shift
;;
-t|--threads)
THREADS="$2"
shift
shift
;;
*)
break
;;
esac
done
if [ -z "$EXPERIMENT" ]; then
echo "Must specify an experiment to run"
exit 1
fi
if [ ! -f "./experiments/$EXPERIMENT.sh" ]; then
echo "$EXPERIMENT does not exist"
exit 1
fi
source "./experiments/$EXPERIMENT.sh"
EXPERIMENT_NAME="$EXPERIMENT.$(uname -r)"
if [ ! -z "$EXTRA_TUNING" ]; then
EXPERIMENT_NAME="$EXPERIMENT_NAME.$EXTRA_TUNING"
fi
if [ ! -z "$EXPERIMENT_NAME_EXT" ]; then
EXPERIMENT_NAME="$EXPERIMENT_NAME.$EXPERIMENT_NAME_EXT"
fi
DATA_OUT="$EXP_ROOT/data/$EXPERIMENT_NAME"
rm -rf "$DATA_OUT"
mkdir -p "$DATA_OUT"
source ./tunings/normalize_queues.sh
[ ! -z "$EXTRA_TUNING" ] && source ./tunings/"$EXTRA_TUNING".sh