diff --git a/experiments/memcached.shared.sh b/experiments/memcached.shared.sh index 0ade27c0f421fdd9e27e944ffc1bd45399c9ef68..fcd1fa7e2e0f309d0c1af400f435640c86d04ef4 100644 --- a/experiments/memcached.shared.sh +++ b/experiments/memcached.shared.sh @@ -51,7 +51,7 @@ run_mutilate() { fi echo "Running mutilate with $CONNS connections per agent (core) and QPS = $QPS" perf_stat_start "$1" - sudo -u $SSH_USER $MUTILATE --noload -c$CONNS $MUTCLIENTS -t30 -u 0 -q $QPS | tee $DATA_OUT/$1.txt + sudo -u $SSH_USER $MUTILATE --noload -c$CONNS $MUTCLIENTS -t30 -u 0 -q $QPS | tee $DATA_OUT/$1$EXP_AUX_SUFFIX.txt perf_stat_stop NO_RUNS=$((NO_RUNS + 1)) } diff --git a/experiments/perf.shared.sh b/experiments/perf.shared.sh index db84939e8e284bc1717f89258c02256795a1d44c..6012f24a608899f03d9edbfbf7bfc2d7d92eab96 100644 --- a/experiments/perf.shared.sh +++ b/experiments/perf.shared.sh @@ -1,5 +1,5 @@ perf_stat_start() { - $PERF stat -C 0-$((THREADS - 1)) -e LLC-load-misses:u,LLC-load-misses:k,mem_load_uops_retired.llc_miss,mem_uops_retired.all_loads,cycles,cycles:u,cycles:k,instructions,instructions:u,instructions:k,stalled-cycles-frontend,stalled-cycles-backend -o "$DATA_OUT/stat_$1.txt" & + $PERF stat -C 0-$((THREADS - 1)) -e LLC-load-misses:u,LLC-load-misses:k,mem_load_uops_retired.llc_miss,mem_uops_retired.all_loads,cycles,cycles:u,cycles:k,instructions,instructions:u,instructions:k,stalled-cycles-frontend,stalled-cycles-backend -o "$DATA_OUT/stat_$1$EXP_AUX_SUFFIX.txt" & PERF_STAT_PID=$! } diff --git a/run.sh b/run.sh index 47c2facd387ad8630710e24980e9f59c60bcd8b7..02eb196b21c6ee8ea5a596491da9a9771313de44 100755 --- a/run.sh +++ b/run.sh @@ -46,6 +46,15 @@ while [[ $# -gt 0 ]]; do USERSTACK=true shift ;; + -f|--force) + FORCE_REMOVE=true + shift + ;; + --aux) + EXP_AUX_SUFFIX="_aux$2" + shift + shift + ;; *) echo "Unknown option $1" exit 1 @@ -122,8 +131,16 @@ fi DATA_OUT="$EXP_ROOT/data/$EXPERIMENT_NAME" -rm -rf "$DATA_OUT" -mkdir -p "$DATA_OUT" +if [ -d "$DATA_OUT" ] && [ -z "$EXP_AUX_SUFFIX" ]; then + if [ "$FORCE_REMOVE" == "true" ]; then + rm -rf "$DATA_OUT" + else + echo "Experiment directory $DATA_OUT already exists. Remove it manually or use --force. To run auxillary experiments for multiple sets of data, use --aux <num>" + exit 1 + fi +else + mkdir -p "$DATA_OUT" +fi run_exp