From 863e64b15f29dc35ab646045ece7e3d40fe2a6c4 Mon Sep 17 00:00:00 2001 From: leochanj105 Date: Fri, 23 Oct 2020 16:24:51 -0400 Subject: wip --- run_case_study.py | 43 +++++++++++++++++++++++++++---------------- sudo | 1 + 2 files changed, 28 insertions(+), 16 deletions(-) create mode 100644 sudo diff --git a/run_case_study.py b/run_case_study.py index f5a4f61..7f0893a 100644 --- a/run_case_study.py +++ b/run_case_study.py @@ -3,6 +3,10 @@ import sys import re import csv import subprocess +def run(command): + print(command) + os.system(command) + def main(): pathName = sys.argv[1] tacle_pairs_path = "./all_pairs" @@ -56,7 +60,9 @@ def main(): else: row.append("s") levelC.append(row) - #os.system('echo "L3:0=L3:0=0000,1=0000,2=0000,3=0000" > /sys/fs/resctrl/schemata') + line += 1 + #os.system('mount -t resctrl resctrl /sys/fs/resctrl') + run('sudo echo "L3:0=0000,1=0000,2=0000,3=0000" > sudo /sys/fs/resctrl/schemata') with open(pathName+"/l3alloc.csv", "r") as csv_file: csv_reader = csv.reader(csv_file, delimiter = ',') @@ -69,17 +75,19 @@ def main(): way_C = int(row[3]) # Level C allocation if(core == 1): - os.system("mkdir /sys/fs/resctrl/level-c-ccx-0") - 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') + run("mkdir -p /sys/fs/resctrl/level-c-ccx-0") + run('sudo echo "L3:0=' + ("%0.4x" % (int("1"*way_C, 2))) + ',1=0000,2=0000,3=0000" > sudo /sys/fs/resctrl/level-c-ccx-0/schemata') if(core == 4): - os.system("mkdir /sys/fs/resctrl/level-c-ccx-1") - os.system('echo "L3:0=0000, 1=' + ("%0.4x" % (int("1"*way_C, 2))) + ',2=0000,3=0000" > /sys/fs/resctrl/level-c-ccx-1/schemata') - os.system('mkdir /sys/fs/resctrl/level-ab-core-' + core) + run("mkdir -p /sys/fs/resctrl/level-c-ccx-1") + run('sudo echo "L3:0=0000, 1=' + ("%0.4x" % (int("1"*way_C, 2))) + ',2=0000,3=0000" > sudo /sys/fs/resctrl/level-c-ccx-1/schemata') + run('mkdir -p /sys/fs/resctrl/level-ab-core-' + str(core)) if(core < 4): - 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') + run('sudo echo "L3:0=' + ("%0.4x" % (int("1"*way_AB + "0"*(16-way_AB), 2))) + ',1=0000,2=0000,3=0000" > sudo /sys/fs/resctrl/level-ab-core-' + str(core) + '/schemata') else: - 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') + run('sudo echo "L3:0=0000,1=' + ("%0.4x" % (int("1"*way_AB + "0"*(16-way_AB), 2))) + ',2=0000,3=0000" > sudo /sys/fs/resctrl/level-ab-core-' + str(core) + '/schemata') + line += 1 + run("sudo rm -rf /dev/shm/*") pairID = 0 i = 0 for task in levelAB: @@ -113,13 +121,14 @@ def main(): else: binary = dis_inputs[name1] + " | ./dis/" + name1 + arg proc = subprocess.open([binary + " &"], shell = True) + print(binary + " &" ) pid = proc.pid - os.system("echo " + pid + " > /sys/fs/resctrl/level-ab-core-" + core + "/tasks") + run("sudo echo " + pid + " > sudo /sys/fs/resctrl/level-ab-core-" + core + "/tasks") else: pairID += 1 arg1 = " NULL -1 " + core + " 0 NULL NULL 0 " + str(pairID) + " " + period1 + " " + criticality - arg2 = " NULL -1 " + str(int(core)+16) + " 0 NULL NULL 0 " + str(pairID) + " " + period1 + " " + criticality + arg2 = " NULL -1 " + str(int(core)+16) + " 0 NULL NULL 0 " + str(pairID) + " " + period2 + " " + criticality if(suite1 == "TACLe"): binary1 = "./all_pairs/bin/" + name1 + arg1 @@ -127,14 +136,16 @@ def main(): else: binary1 = dis_inputs[name1] + " | ./dis/" + name1 + "_all" + arg1 binary2 = dis_inputs[name2] + " | ./dis/" + name2 + "_all" + arg2 - proc1 = subprocess.Popen(["numactl --membind=0 " + binary1 + " &"], shell = True) - proc2 = subprocess.Popen(["numactl --membind=1 " + binary2 + " &"], shell = True) + proc1 = subprocess.Popen(["sudo numactl --membind=0 " + binary1 + " &"], shell = True) + proc2 = subprocess.Popen(["sudo numactl --membind=1 " + binary2 + " &"], shell = True) + print("sudo numactl --membind=0 " + binary1 + " &") + print("sudo numactl --membind=1 " + binary2 + " &") pid1 = proc1.pid pid2 = proc2.pid - os.system("echo " + str(pid1) + " > /sys/fs/resctrl/level-ab-core-" + core + "/tasks") - os.system("echo " + str(pid2) + " > /sys/fs/resctrl/level-ab-core-" + core + "/tasks") - + run("sudo echo " + str(pid1) + " > sudo /sys/fs/resctrl/level-ab-core-" + core + "/tasks") + run("sudo echo " + str(pid2) + " > sudo /sys/fs/resctrl/level-ab-core-" + core + "/tasks") + exit(1) for task in levelC: i+=1 @@ -161,7 +172,7 @@ def main(): binary = dis_inputs[name1] + " | ./dis/" + name1 + "_all" + arg proc = subprocess.Popen([binary + " &"], shell = True) pid = proc.pid - os.system("echo " + str(pid) + " > /sys/fs/resctrl/level-ab-ccx-" + ccx + "/tasks") + os.system("sudo echo " + str(pid) + " > sudo /sys/fs/resctrl/level-ab-ccx-" + ccx + "/tasks") #os.system("/playpen/mc2/liblitmus/release_ts") #os.system("ls") if __name__ == "__main__": diff --git a/sudo b/sudo new file mode 100644 index 0000000..d4e9257 --- /dev/null +++ b/sudo @@ -0,0 +1 @@ +53322 /sys/fs/resctrl/level-ab-core-1/tasks -- cgit v1.2.2