#!/bin/bash # Copyright 2020 Joshua Bakita # Runs TACLeBench in every configuration needed # for the paper and schedulability studies maxJobs=$1 runID=$2 coreCPU=${3:-15} threadCPU=${4:-31} if [ $# -lt 2 ]; then echo "Usage $0 " echo "CPU IDs are optional, otherwise assumed to be $coreCPU and $threadCPU respectively." exit fi if [[ "$EUID" != 0 ]]; then echo "You need to be root to enable spatial isolation!" exit fi date # Configure libextra for benchmarking sed -i "s/LITMUS 1/LITMUS 0/g" extra.h # Run the pairs baseline and some comparisons to examine the effect of less cache cd baseline make all -j32 # Full L3, full L2 - xi is the baseline for the pairs baseXI=baseline/$(date +"%b%d-%H")-c-xi-$runID.txt echo "" | ../run_bench.sh -m base -p $coreCPU -l $maxJobs -b tacleNames.txt -B -I xi $runID # Half L3, full L2 - i3 sees effect of half L3 baseI3=baseline/$(date +"%b%d-%H")-c-i3-$runID.txt echo "" | ../run_bench.sh -m base -p $coreCPU -l $maxJobs -b tacleNames.txt -B -I i3 $runID # Half L3, half L2 - additional effect of half L2 baseI=baseline/$(date +"%b%d-%H")-c-i-$runID.txt echo "" | ../run_bench.sh -m base -p $coreCPU -l $maxJobs -b tacleNames.txt -B -I i $runID date # Run the Level-A/-B pairs cd ../all_pairs make all -j32 # No cache isolation pairXI=all_pairs/$(date +"%b%d-%H")-c-xi-$runID"-A.txt and -B.txt" echo "" | ../run_bench.sh -m pair -p $coreCPU -P $threadCPU -l $maxJobs -b tacleNames.txt -B -I xi $runID # Shared L2, split L3 pairI3=all_pairs/$(date +"%b%d-%H")-c-i3-$runID"-A.txt and -B.txt" echo "" | ../run_bench.sh -m pair -p $coreCPU -P $threadCPU -l $maxJobs -b tacleNames.txt -B -I i3 $runID # Split L2, split L3 pairI=all_pairs/$(date +"%b%d-%H")-c-i-$runID"-A.txt and -B.txt" echo "" | ../run_bench.sh -m pair -p $coreCPU -P $threadCPU -l $maxJobs -b tacleNames.txt -B -I i $runID date # Run the Level-C pairs cd ../baseline pairC=baseline/$(date +"%b%d-%H")-c-xi-async-$runID.txt echo "" | ../run_bench.sh -m pair -p $coreCPU -P $threadCPU -l $maxJobs -b tacleNames.txt -B -I xi -A $runID date echo "==== DONE ====" echo "Results are in:" echo "- baseline/$baseXI" echo "- baseline/$baseI3" echo "- baseline/$baseI" echo "- all_pairs/$pairXI" echo "- all_pairs/$pairI3" echo "- all_pairs/$pairI" echo "- baseline/$pairC"