summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--all_pairs/Makefile2
-rw-r--r--baseline/Makefile2
-rwxr-xr-xdis/Makefile2
-rw-r--r--extra.h58
-rw-r--r--run_case_study.py28
5 files changed, 30 insertions, 62 deletions
diff --git a/all_pairs/Makefile b/all_pairs/Makefile
index 592db70..5eef323 100644
--- a/all_pairs/Makefile
+++ b/all_pairs/Makefile
@@ -1,4 +1,4 @@
1LIBLITMUS ?= /playpen/mc2/liblitmus 1LIBLITMUS ?= /home/litmus/liblitmus
2CC ?= gcc 2CC ?= gcc
3override CFLAGS += -pthread -O2 -I.. -DPAIRED 3override CFLAGS += -pthread -O2 -I.. -DPAIRED
4LDFLAGS += -lrt 4LDFLAGS += -lrt
diff --git a/baseline/Makefile b/baseline/Makefile
index a929bc6..1d90c7f 100644
--- a/baseline/Makefile
+++ b/baseline/Makefile
@@ -1,4 +1,4 @@
1LIBLITMUS ?= /playpen/mc2/liblitmus 1LIBLITMUS ?= /home/litmus/liblitmus
2CC ?= gcc 2CC ?= gcc
3override CFLAGS = -pthread -O2 -I.. 3override CFLAGS = -pthread -O2 -I..
4LDFLAGS = -lrt 4LDFLAGS = -lrt
diff --git a/dis/Makefile b/dis/Makefile
index d18761b..77e0b8a 100755
--- a/dis/Makefile
+++ b/dis/Makefile
@@ -2,7 +2,7 @@
2# Build the DIS benchmarks with all-pairs or unpaired instrumentation 2# Build the DIS benchmarks with all-pairs or unpaired instrumentation
3# (I know that this Makefile is mildly evil and breaks so many rules 3# (I know that this Makefile is mildly evil and breaks so many rules
4# that a good Makefile should follow. Sorry - at least I have one.) 4# that a good Makefile should follow. Sorry - at least I have one.)
5LIBLITMUS ?= /playpen/mc2/liblitmus 5LIBLITMUS ?= /home/litmus/liblitmus
6CC ?= gcc 6CC ?= gcc
7override CFLAGS += -pthread -O2 -I.. 7override CFLAGS += -pthread -O2 -I..
8LDFLAGS = -lrt -lm 8LDFLAGS = -lrt -lm
diff --git a/extra.h b/extra.h
index 8c894f6..3f1df9d 100644
--- a/extra.h
+++ b/extra.h
@@ -29,13 +29,8 @@ extern int sched_getcpu();
29#include <sys/syscall.h> 29#include <sys/syscall.h>
30#endif 30#endif
31 31
32<<<<<<< HEAD
33#define LITMUS 1
34#define MC2 0
35=======
36// This is a proxy for "case study mode" now 32// This is a proxy for "case study mode" now
37#define LITMUS 0 33#define LITMUS 1
38>>>>>>> rtas20-wip
39#define MMDC_PROF 0 34#define MMDC_PROF 0
40 35
41#if LITMUS 36#if LITMUS
@@ -269,57 +264,6 @@ static void _rt_load_params_itrl(int argc, char **argv) {
269 mmdc->madpcr1 = axi_arm1;\ 264 mmdc->madpcr1 = axi_arm1;\
270 msync(&(mmdc->madpcr1),4,MS_SYNC); 265 msync(&(mmdc->madpcr1),4,MS_SYNC);
271 266
272<<<<<<< HEAD
273#define SETUP_LITMUS \
274 unsigned int wait = 0; \
275 if (be_migrate_to_domain(_rt_core) < 0) { \
276 perror("Unable to migrate to specified CPU"); \
277 exit(1); \
278 } \
279 struct rt_task rt_param; \
280 init_rt_task_param(&rt_param); \
281 /* Supposedly the next two parameters are irrelevant when reservations are enabled, but I'm leaving them anyway... */ \
282 rt_param.exec_cost = ms2ns(999); \
283 rt_param.period = ms2ns(1000); \
284 rt_param.priority = LITMUS_HIGHEST_PRIORITY; \
285 rt_param.cls = RT_CLASS_HARD; \
286 rt_param.release_policy = TASK_PERIODIC; \
287 rt_param.budget_policy = NO_ENFORCEMENT; \
288 rt_param.cpu = _rt_core; \
289 if (set_rt_task_param(gettid(), &rt_param) < 0) { \
290 perror("Unable to set real-time parameters"); \
291 exit(1); \
292 } \
293 if (init_litmus() != 0) { \
294 perror("init_litmus failed"); \
295 exit(1); \
296 } \
297 MC2_SETUP \
298 if (task_mode(LITMUS_RT_TASK) != 0) { \
299 perror("Unable to become real-time task"); \
300 exit(1); \
301 } \
302 if (wait && wait_for_ts_release() != 0) { \
303 perror("Unable to wait for taskset release"); \
304 exit(1); \
305 }
306
307#if MC2
308#define MC2_SETUP \
309
310 set_page_color(rt_param.cpu);
311#else
312#define MC2_SETUP
313#endif
314
315#define CLEANUP_LITMUS \
316 if (task_mode(BACKGROUND_TASK) != 0) { \
317 perror("Unable to become a real-time task"); \
318 exit(1); \
319 } \
320
321=======
322>>>>>>> rtas20-wip
323#if __arm__ 267#if __arm__
324// On ARM, manually flush the cache 268// On ARM, manually flush the cache
325#define FLUSH_CACHES \ 269#define FLUSH_CACHES \
diff --git a/run_case_study.py b/run_case_study.py
index b960d38..d715644 100644
--- a/run_case_study.py
+++ b/run_case_study.py
@@ -28,8 +28,32 @@ def main():
28 if line > 0: 28 if line > 0:
29 levelC.append(row) 29 levelC.append(row)
30 line += 1 30 line += 1
31 #os.system('echo "L3:0=L3:0=0000,1=0000,2=0000,3=0000" > /sys/fs/resctrl/schemata')
31 32
32 for task in all_tasks: 33 with open(pathName+"/l3alloc.csv", "r") as csv_file:
33 print(task[0]) 34 csv_reader = csv.reader(csv_file, delimiter = ',')
35 line = 0
36 ccx = 0
37 for row in csv_reader:
38 if line > 0:
39 core = int(row[0])
40 way_AB = int(row[1])
41 way_C = int(row[3])
42 # Level C allocation
43 if(core == 1):
44 os.system("mkdir /sys/fs/resctrl/level-c-ccx-0")
45 os.system('echo "L3:0=' + ("%0.4x" % (int("1"*way_C, 2))) + ',1=0000,2=0000,3=0000" > /sys/fs/resctrl/level-c-ccx-0/schemata')
46
47 if(core == 4):
48 os.system("mkdir /sys/fs/resctrl/level-c-ccx-1")
49 os.system('echo "L3:0=0000, 1=' + ("%0.4x" % (int("1"*way_C, 2))) + ',2=0000,3=0000" > /sys/fs/resctrl/level-c-ccx-0/schemata')
50 os.system('mkdir /sys/fs/resctrl/level-ab-core-' + core)
51 if(core < 4):
52 os.system('echo "L3:0=' + ("%0.4x" % (int("1"*way_C + "0"*(16-way_AB), 2))) + ',1=0000,2=0000,3=0000" > /sys/fs/resctrl/level-ab-core-' + core + '/schemata')
53 else:
54 os.system('echo "L3:0=0000,1=' + ("%0.4x" % (int("1"*way_C + "0"*(16-way_AB), 2))) + ',2=0000,3=0000" > /sys/fs/resctrl/level-ab-core-' + core + '/schemata')
55 for task in levelAB:
56
57 #os.system("ls")
34if __name__ == "__main__": 58if __name__ == "__main__":
35 main() 59 main()