#!/bin/bash # Copyright 2020 Joshua Bakita # Runs SD-VBS in every configuration needed # for the paper and schedulability studies maxJobs=$1 runID=$2 if [ $# -lt 2 ]; then echo "Usage $0 " exit fi if [[ "$EUID" != 0 ]]; then echo "You need to be root to enable spatial isolation!" exit fi date # Run the pairs baseline and some comparisons to examine the effect of less cache echo "Building benchmarks in unpaired configuration..." cd SD-VBS/benchmarks make compile -j30 > /dev/null # Suppress noisy output cd .. echo "Done. Running experiments..." # Full L3, full L2 - xi is the baseline for the pairs baseXI=SD-VBS/$(date +"%b%d-%H")-c-xi-$runID.txt echo "" | ../run_bench.sh -m base -p 15 -l $maxJobs -b sd-vbsNames.txt -B -I xi $runID # Half L3, full L2 - i3 sees effect of half L3 baseI3=SD-VBS/$(date +"%b%d-%H")-c-i3-$runID.txt echo "" | ../run_bench.sh -m base -p 15 -l $maxJobs -b sd-vbsNames.txt -B -I i3 $runID # Half L3, half L2 - additional effect of half L2 baseI=SD-VBS/$(date +"%b%d-%H")-c-i-$runID.txt echo "" | ../run_bench.sh -m base -p 15 -l $maxJobs -b sd-vbsNames.txt -B -I i $runID date # Run the Level-C pairs pairC=SD-VBS/$(date +"%b%d-%H")-c-xi-async-$runID.txt echo "" | ../run_bench.sh -m pair -p 15 -P 31 -l $maxJobs -b sd-vbsNames.txt -B -I xi -A $runID date # Run the Level-A/-B pairs echo "Building benchmarks in paired configuration..." cd benchmarks make CFLAGS=-DPAIRED compile -j30 > /dev/null # Suppress noisy output cd .. echo "Done. Continuing experiments..." # No cache isolation pairXI=SD-VBS/$(date +"%b%d-%H")-c-xi-$runID"-A.txt and -B.txt" echo "" | ../run_bench.sh -m pair -p 15 -P 31 -l $maxJobs -b sd-vbsNames.txt -B -I xi $runID # Shared L2, split L3 pairI3=SD-VBS/$(date +"%b%d-%H")-c-i3-$runID"-A.txt and -B.txt" echo "" | ../run_bench.sh -m pair -p 15 -P 31 -l $maxJobs -b sd-vbsNames.txt -B -I i3 $runID # Split L2, split L3 pairI=SD-VBS/$(date +"%b%d-%H")-c-i-$runID"-A.txt and -B.txt" echo "" | ../run_bench.sh -m pair -p 15 -P 31 -l $maxJobs -b sd-vbsNames.txt -B -I i $runID date echo "==== DONE ====" echo "Results are in:" echo "- $baseXI" echo "- $baseI3" echo "- $baseI" echo "- $pairXI" echo "- $pairI3" echo "- $pairI" echo "- $pairC"