summaryrefslogtreecommitdiffstats
path: root/dis/run_dis.sh
diff options
context:
space:
mode:
authorJoshua Bakita <jbakita@cs.unc.edu>2020-10-17 21:22:08 -0400
committerJoshua Bakita <jbakita@cs.unc.edu>2020-10-17 21:30:01 -0400
commitecf6547fdce39b3ec0f333c9b391b0f1c25deba5 (patch)
treec6f25afe348be22172bed024ffe8881323e74aaf /dis/run_dis.sh
parent1120161286ee5c855b630bccc9e0b37bb8a3ee65 (diff)
All the DIS runner scripts as used for the (rejected) RTSS'20 submission
DANGER! There's an inconsistency in the input files used for the all-pairs tests and those used for the baseline tests. Baselines: run_all_dis.sh calls run_dis.sh to do all baselines. All-pairs: Uses old TACLe script (not included here). Cache allocation 2nd-order effects on SMT friendliness: run_pair_convexity.sh
Diffstat (limited to 'dis/run_dis.sh')
-rwxr-xr-xdis/run_dis.sh35
1 files changed, 23 insertions, 12 deletions
diff --git a/dis/run_dis.sh b/dis/run_dis.sh
index 3e82bfb..78745ec 100755
--- a/dis/run_dis.sh
+++ b/dis/run_dis.sh
@@ -4,7 +4,7 @@ core=$1
4maxJobs=$2 4maxJobs=$2
5runID=$3 5runID=$3
6benchmark=${4,} 6benchmark=${4,}
7template_input=inputs/$4/in1 7template_input=inputs/$4/in0
8wss_settings=inputs/WSSS 8wss_settings=inputs/WSSS
9cache_settings=inputs/caches 9cache_settings=inputs/caches
10 10
@@ -36,7 +36,6 @@ echo "Done. Disabling real-time throttling..."
36echo -1 > /proc/sys/kernel/sched_rt_runtime_us 36echo -1 > /proc/sys/kernel/sched_rt_runtime_us
37echo "Done. Redirecting all interrupts to core 0..." 37echo "Done. Redirecting all interrupts to core 0..."
38 38
39# TODO: Make this cleaner
40# Redirect all interrupts to core 0 39# Redirect all interrupts to core 0
41i=0 40i=0
42for IRQ in /proc/irq/* 41for IRQ in /proc/irq/*
@@ -44,27 +43,39 @@ do
44 # Skip default_smp_affinity 43 # Skip default_smp_affinity
45 if [ -d $IRQ ]; then 44 if [ -d $IRQ ]; then
46 irqList[$i]=$(cat $IRQ/smp_affinity_list) 45 irqList[$i]=$(cat $IRQ/smp_affinity_list)
47 echo 0 > $IRQ/smp_affinity_list 46 echo 0 2> /dev/null > $IRQ/smp_affinity_list
48 fi 47 fi
49 i=$(( $i + 1 )) 48 i=$(( $i + 1 ))
50done 49done
51echo "Done. Beginning benchmarks..."
52 50
53# Setup cache control group 51echo "Done. Checking for wbinvd module..."
52if [[ ! -f "/proc/wbinvd" ]]; then
53 echo "ERROR: wbinvd module not loaded. Exiting..."
54 exit
55fi
56
57# Enable L3 isolation
58echo "Done. Enabling L3 isolation..."
54mount -t resctrl resctrl /sys/fs/resctrl 59mount -t resctrl resctrl /sys/fs/resctrl
55mkdir /sys/fs/resctrl/benchmarks 60mkdir -p /sys/fs/resctrl/benchmarks
56sleep 1 # Wait a second for the group to initialize 61echo $1 > /sys/fs/resctrl/benchmarks/cpus_list
57echo $core > /sys/fs/resctrl/benchmarks/cpus_list 62# Reset global bandwith control and remove L3 from global
63echo "L3:0=ffff;1=ffff;2=ffff;3=0000" > /sys/fs/resctrl/schemata
64echo "MB:0=2048;1=2048;2=2048;3=2048" > /sys/fs/resctrl/schemata
65# Alloc L3 to benchmark
66echo "L3:0=0000;1=0000;2=0000;3=ffff" > /sys/fs/resctrl/benchmarks/schemata
67echo "MB:0=2048;1=2048;2=2048;3=2048" > /sys/fs/resctrl/benchmarks/schemata
68echo "Done. Beginning benchmarks..."
58 69
59# Execute the benchmark for each WSS and cache config 70# Execute the benchmark for each WSS and cache config
60while read j; do 71while read j; do
61 echo $j > /sys/fs/resctrl/benchmarks/schemata 72 echo $j > /sys/fs/resctrl/benchmarks/schemata
62 while read i; do 73 while read i; do
63 if grep -q "#define LITMUS 1" ../../baseline/source/extra.h; then 74 if grep -q "#define LITMUS 1" ../baseline/source/extra.h; then
64 echo "Using LITMUS-RT!" 75 echo "Using LITMUS-RT!"
65 ./gen_input.py $benchmark $template_input $i | ./$benchmark $benchmark-$i-$j $maxJobs $core $runID 1 76 ./gen_input.py $benchmark $template_input $i | numactl -m 0 ./$benchmark $benchmark-$i-$j $maxJobs $core $runID 1
66 else 77 else
67 ./gen_input.py $benchmark $template_input $i | chrt -r 97 taskset -c $core ./$benchmark $benchmark-$i-$j $maxJobs $core $runID 1 78 ./gen_input.py $benchmark $template_input $i | chrt -r 97 numactl -m 0 taskset -c $core ./$benchmark $benchmark-$i-$j $maxJobs $core $runID 1
68 fi 79 fi
69 done < $wss_settings 80 done < $wss_settings
70done < $cache_settings 81done < $cache_settings
@@ -74,7 +85,7 @@ i=0
74for IRQ in /proc/irq/* 85for IRQ in /proc/irq/*
75do 86do
76 if [ -d $IRQ ]; then 87 if [ -d $IRQ ]; then
77 echo ${irqList[$i]} > $IRQ/smp_affinity_list 88 echo ${irqList[$i]} 2> /dev/null > $IRQ/smp_affinity_list
78 fi 89 fi
79 i=$(( $i + 1 )) 90 i=$(( $i + 1 ))
80done 91done