summaryrefslogtreecommitdiffstats
path: root/dis
diff options
context:
space:
mode:
Diffstat (limited to 'dis')
-rwxr-xr-xdis/bin/field_2mb2
-rwxr-xr-xdis/bin/matrix_2mb2
-rwxr-xr-xdis/bin/neighborhood_2mb2
-rwxr-xr-xdis/bin/pointer_2mb2
-rwxr-xr-xdis/bin/transitive_2mb2
-rwxr-xr-xdis/bin/update_2mb2
l---------dis/inputs/Field/in01
l---------dis/inputs/Matrix/in01
l---------dis/inputs/Neighborhood/in01
-rw-r--r--dis/inputs/Pointer/in03
l---------dis/inputs/Transitive/in01
l---------dis/inputs/Update/in01
-rw-r--r--dis/inputs/WSSS_maxstride2mb15
-rw-r--r--dis/inputs/caches_all17
-rwxr-xr-xdis/run_all_dis.sh70
-rwxr-xr-xdis/run_dis.sh35
-rw-r--r--dis/run_pair_convexity.sh184
-rwxr-xr-xdis/setup_mem_and_global.sh19
18 files changed, 343 insertions, 17 deletions
diff --git a/dis/bin/field_2mb b/dis/bin/field_2mb
new file mode 100755
index 0000000..31f2a8d
--- /dev/null
+++ b/dis/bin/field_2mb
@@ -0,0 +1,2 @@
1#!/bin/bash
2taskset -c 0 ./gen_input.py field inputs/Field/in0 2097152 | ./field $@
diff --git a/dis/bin/matrix_2mb b/dis/bin/matrix_2mb
new file mode 100755
index 0000000..72710ab
--- /dev/null
+++ b/dis/bin/matrix_2mb
@@ -0,0 +1,2 @@
1#!/bin/bash
2taskset -c 0 ./gen_input.py matrix inputs/Matrix/in4 2097152 | ./matrix $@ > /dev/null
diff --git a/dis/bin/neighborhood_2mb b/dis/bin/neighborhood_2mb
new file mode 100755
index 0000000..226bd98
--- /dev/null
+++ b/dis/bin/neighborhood_2mb
@@ -0,0 +1,2 @@
1#!/bin/bash
2taskset -c 0 ./gen_input.py neighborhood inputs/Neighborhood/in0 2097152 | ./neighborhood $@ > /dev/null
diff --git a/dis/bin/pointer_2mb b/dis/bin/pointer_2mb
new file mode 100755
index 0000000..3ce8f2b
--- /dev/null
+++ b/dis/bin/pointer_2mb
@@ -0,0 +1,2 @@
1#!/bin/bash
2taskset -c 0 ./gen_input.py pointer inputs/Pointer/in0 2097152 | ./pointer $@
diff --git a/dis/bin/transitive_2mb b/dis/bin/transitive_2mb
new file mode 100755
index 0000000..b8bcf5a
--- /dev/null
+++ b/dis/bin/transitive_2mb
@@ -0,0 +1,2 @@
1#!/bin/bash
2taskset -c 0 ./gen_input.py transitive inputs/Transitive/in0 2097152 | ./transitive $@
diff --git a/dis/bin/update_2mb b/dis/bin/update_2mb
new file mode 100755
index 0000000..3bc33f4
--- /dev/null
+++ b/dis/bin/update_2mb
@@ -0,0 +1,2 @@
1#!/bin/bash
2taskset -c 0 ./gen_input.py update inputs/Update/in0 2097152 | ./update $@
diff --git a/dis/inputs/Field/in0 b/dis/inputs/Field/in0
new file mode 120000
index 0000000..2f8d436
--- /dev/null
+++ b/dis/inputs/Field/in0
@@ -0,0 +1 @@
in1 \ No newline at end of file
diff --git a/dis/inputs/Matrix/in0 b/dis/inputs/Matrix/in0
new file mode 120000
index 0000000..2f8d436
--- /dev/null
+++ b/dis/inputs/Matrix/in0
@@ -0,0 +1 @@
in1 \ No newline at end of file
diff --git a/dis/inputs/Neighborhood/in0 b/dis/inputs/Neighborhood/in0
new file mode 120000
index 0000000..83ac113
--- /dev/null
+++ b/dis/inputs/Neighborhood/in0
@@ -0,0 +1 @@
test1.in \ No newline at end of file
diff --git a/dis/inputs/Pointer/in0 b/dis/inputs/Pointer/in0
new file mode 100644
index 0000000..3535667
--- /dev/null
+++ b/dis/inputs/Pointer/in0
@@ -0,0 +1,3 @@
110485770 15 12800000 -2 1
2
310 10485760 10485760
diff --git a/dis/inputs/Transitive/in0 b/dis/inputs/Transitive/in0
new file mode 120000
index 0000000..2f8d436
--- /dev/null
+++ b/dis/inputs/Transitive/in0
@@ -0,0 +1 @@
in1 \ No newline at end of file
diff --git a/dis/inputs/Update/in0 b/dis/inputs/Update/in0
new file mode 120000
index 0000000..2f8d436
--- /dev/null
+++ b/dis/inputs/Update/in0
@@ -0,0 +1 @@
in1 \ No newline at end of file
diff --git a/dis/inputs/WSSS_maxstride2mb b/dis/inputs/WSSS_maxstride2mb
new file mode 100644
index 0000000..8fdbbc4
--- /dev/null
+++ b/dis/inputs/WSSS_maxstride2mb
@@ -0,0 +1,15 @@
1262144
2524288
31048576
42097152
54194304
66291456
78388608
810485760
912582912
1014680064
1116777216
1218874368
1320971520
1423068672
1525165824
diff --git a/dis/inputs/caches_all b/dis/inputs/caches_all
new file mode 100644
index 0000000..92e936c
--- /dev/null
+++ b/dis/inputs/caches_all
@@ -0,0 +1,17 @@
1L3:0=0000;1=0000;2=0000;3=0000
2L3:0=0000;1=0000;2=0000;3=0001
3L3:0=0000;1=0000;2=0000;3=0003
4L3:0=0000;1=0000;2=0000;3=0007
5L3:0=0000;1=0000;2=0000;3=000f
6L3:0=0000;1=0000;2=0000;3=001f
7L3:0=0000;1=0000;2=0000;3=003f
8L3:0=0000;1=0000;2=0000;3=007f
9L3:0=0000;1=0000;2=0000;3=00ff
10L3:0=0000;1=0000;2=0000;3=01ff
11L3:0=0000;1=0000;2=0000;3=03ff
12L3:0=0000;1=0000;2=0000;3=07ff
13L3:0=0000;1=0000;2=0000;3=0fff
14L3:0=0000;1=0000;2=0000;3=1fff
15L3:0=0000;1=0000;2=0000;3=3fff
16L3:0=0000;1=0000;2=0000;3=7fff
17L3:0=0000;1=0000;2=0000;3=ffff
diff --git a/dis/run_all_dis.sh b/dis/run_all_dis.sh
new file mode 100755
index 0000000..5a6b6e1
--- /dev/null
+++ b/dis/run_all_dis.sh
@@ -0,0 +1,70 @@
1#!/bin/bash
2# Run baselines for all the DIS tasks
3if [ "$EUID" -ne 0 ]
4then
5 echo "You need to be root to enable cache way and interrupt isolation!"
6 exit
7fi
8
9if uname -a | grep -q "mc2"; then
10 echo "MC^2 detected! Cache isolation will be enabled"
11 iso="i"
12else
13 echo "MC^2 not detected."
14 iso="xi"
15fi
16
17datestring=$(date +"%b%d-%H")
18if ! grep -q irqaffinity /proc/cmdline; then
19 /playpen/move_interrupts_off_core15.sh
20else
21 echo "performance" > /sys/devices/system/cpu/cpu15/cpufreq/scaling_governor
22fi
23WSSS=WSSS_maxstride2mb
24caches=caches_all
25# Consider re-enabling this only if you're interested in exploring bandwidth effects
26#./setup_mem_and_global.sh
27if [[ $1 == "--contend" ]]; then
28 echo "Will run 6 contending tasks"
29 echo "Files will be named $datestring-<benchmark name>-c-"$iso".txt"
30 echo "Please verify the above settings. Press enter to continue..."
31 read
32 # Run two contending tasks on each other CCX
33 taskset -c 1 /playpen/mc2/imx6q-thrasher/thrasher &
34 taskset -c 2 /playpen/mc2/imx6q-thrasher/thrasher &
35 taskset -c 5 /playpen/mc2/imx6q-thrasher/thrasher &
36 taskset -c 6 /playpen/mc2/imx6q-thrasher/thrasher &
37 taskset -c 9 /playpen/mc2/imx6q-thrasher/thrasher &
38 taskset -c 10 /playpen/mc2/imx6q-thrasher/thrasher &
39 ./run_dis.sh 15 10 $datestring-field-c-$iso Field inputs/Field/in0 inputs/$WSSS inputs/$caches
40 ./postproc.sh $datestring-field-c-$iso
41 ./run_dis.sh 15 10 $datestring-matrix-c-$iso Matrix inputs/Matrix/in0 inputs/$WSSS inputs/$caches
42 ./postproc.sh $datestring-matrix-c-$iso
43 ./run_dis.sh 15 10 $datestring-neighborhood-c-$iso Neighborhood inputs/Neighborhood/in0 inputs/$WSSS inputs/$caches
44 ./postproc.sh $datestring-neighborhood-c-$iso
45 ./run_dis.sh 15 10 $datestring-pointer-c-$iso Pointer inputs/Pointer/in0 inputs/$WSSS inputs/$caches
46 ./postproc.sh $datestring-pointer-c-$iso
47 ./run_dis.sh 15 10 $datestring-transitive-c-$iso Transitive inputs/Transitive/in0 inputs/$WSSS inputs/$caches
48 ./postproc.sh $datestring-transitive-c-$iso
49 ./run_dis.sh 15 10 $datestring-update-c-$iso Update inputs/Update/in0 inputs/$WSSS inputs/$caches
50 ./postproc.sh $datestring-update-c-$iso
51 killall thrasher
52else
53 echo "Will run no contending tasks (use --contend for contending tasks)"
54 echo "Files will be named $datestring-<benchmark name>-xc-"$iso".txt"
55 echo "Please verify the above settings. Press enter to continue..."
56 read
57 killall thrasher
58 ./run_dis.sh 15 10 $datestring-field-xc-$iso Field inputs/Field/in0 inputs/$WSSS inputs/$caches
59 ./postproc.sh $datestring-field-xc-$iso
60 ./run_dis.sh 15 10 $datestring-matrix-xc-$iso Matrix inputs/Matrix/in0 inputs/$WSSS inputs/$caches
61 ./postproc.sh $datestring-matrix-xc-$iso
62 ./run_dis.sh 15 10 $datestring-neighborhood-xc-$iso Neighborhood inputs/Neighborhood/in0 inputs/$WSSS inputs/$caches
63 ./postproc.sh $datestring-neighborhood-xc-$iso
64 ./run_dis.sh 15 10 $datestring-pointer-xc-$iso Pointer inputs/Pointer/in0 inputs/$WSSS inputs/$caches
65 ./postproc.sh $datestring-pointer-xc-$iso
66 ./run_dis.sh 15 10 $datestring-transitive-xc-$iso Transitive inputs/Transitive/in0 inputs/$WSSS inputs/$caches
67 ./postproc.sh $datestring-transitive-xc-$iso
68 ./run_dis.sh 15 10 $datestring-update-xc-$iso Update inputs/Update/in0 inputs/$WSSS inputs/$caches
69 ./postproc.sh $datestring-update-xc-$iso
70fi
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..."