summaryrefslogtreecommitdiffstats
path: root/run_all_tacle.sh
diff options
context:
space:
mode:
authorJoshua Bakita <jbakita@cs.unc.edu>2020-10-22 00:08:12 -0400
committerJoshua Bakita <jbakita@cs.unc.edu>2020-10-22 00:08:12 -0400
commit3b0aa125061b362b23ecf66afe8319e3a268c874 (patch)
tree9323b85d5a3a0d14e33a28caa9ffc3b8ce7225be /run_all_tacle.sh
parentedb491490ccd0cae4bd28ca9c9a7e095a47c749b (diff)
Add pair benchmarking and isolation specification into run_bench.sh
This allows `run_bench.sh` to replace all previous general paired benchmarking scripts. See `run_everything.sh` for an example of how to use the new script. This also fixes two critical bugs present in the old scripts: 1. The cpus_list was incorrectly set for resctrl when running synchronous pair timing with L2+L3 isolation (i). Each write to that file replaces the previous contents, and it was previously written once for each core. This prevented the entire 1st core from using any L3 cache. 2. The competing task list was indexed improperly in the asynchronous pair timing script. This caused the competing task to always be identical to the task being profiled. These issues combine to imply that in the rejected RTSS'20 paper: - All Level-C SMT timing data is suspect - Level-A and -B SMT timing data with L2+L3 isolation (i) is wildly optimistic
Diffstat (limited to 'run_all_tacle.sh')
-rwxr-xr-xrun_all_tacle.sh58
1 files changed, 58 insertions, 0 deletions
diff --git a/run_all_tacle.sh b/run_all_tacle.sh
new file mode 100755
index 0000000..c0f07cc
--- /dev/null
+++ b/run_all_tacle.sh
@@ -0,0 +1,58 @@
1#!/bin/bash
2# Copyright 2020 Joshua Bakita
3# Runs TACLeBench in every configuration needed
4# for the paper and schedulability studies
5
6maxJobs=$1
7runID=$2
8
9if [ $# -lt 2 ]; then
10 echo "Usage $0 <number of iterations> <run ID>"
11 exit
12fi
13date
14
15# Run the pairs baseline and some comparisons to examine the effect of less cache
16cd baseline
17make all -j32
18# Full L3, full L2 - xi is the baseline for the pairs
19baseXI=baseline/$(date +"%b%d-%H")-c-xi-$runID.txt
20echo "" | ../run_bench.sh -m base -p 15 -l $maxJobs -b tacleNames.txt -B -I xi $runID
21# Half L3, full L2 - i3 sees effect of half L3
22baseI3=baseline/$(date +"%b%d-%H")-c-i3-$runID.txt
23echo "" | ../run_bench.sh -m base -p 15 -l $maxJobs -b tacleNames.txt -B -I i3 $runID
24# Half L3, half L2 - additional effect of half L2
25baseI=baseline/$(date +"%b%d-%H")-c-i-$runID.txt
26echo "" | ../run_bench.sh -m base -p 15 -l $maxJobs -b tacleNames.txt -B -I i $runID
27date
28
29# Run the Level-A/-B pairs
30cd ../all_pairs
31make all -j32
32# No cache isolation
33pairXI=all_pairs/$(date +"%b%d-%H")-c-xi-$runID.txt
34echo "" | ../run_bench.sh -m pair -p 15 -P 31 -l $maxJobs -b tacleNames.txt -B -I xi $runID
35# Shared L2, split L3
36pairI3=all_pairs/$(date +"%b%d-%H")-c-i3-$runID.txt
37echo "" | ../run_bench.sh -m pair -p 15 -P 31 -l $maxJobs -b tacleNames.txt -B -I i3 $runID
38# Split L2, split L3
39pairI=all_pairs/$(date +"%b%d-%H")-c-i-$runID.txt
40echo "" | ../run_bench.sh -m pair -p 15 -P 31 -l $maxJobs -b tacleNames.txt -B -I i $runID
41date
42
43# Run the Level-C pairs
44cd ../baseline
45pairC=baseline/$(date +"%b%d-%H")-c-xi-async-$runID.txt
46echo "" | ../run_bench.sh -m pair -p 15 -P 31 -l $maxJobs -b tacleNames.txt -B -I xi -A $runID
47date
48
49echo "==== DONE ===="
50echo "Results are in:"
51echo "- $baseXI"
52echo "- $baseI3"
53echo "- $baseI"
54echo "- $pairXI"
55echo "- $pairI3"
56echo "- $pairI"
57echo "- $pairC"
58