diff --git a/artifact/common_util.py b/artifact/common_util.py index a7270c1..43470e4 100644 --- a/artifact/common_util.py +++ b/artifact/common_util.py @@ -7,10 +7,10 @@ from collections import defaultdict import csv -pwd_mac = "/Users/victoryang00/Documents/project/MVVM-bench/" +pwd_mac = "/mnt/MVVM" pwd = "/mnt/MVVM" slowtier = "giga-root" -burst = "mac" +burst = "giga-root" energy = "bana" @@ -215,7 +215,7 @@ def plot_whole(results, file_name): def get_avg_99percent(data): - group_size = 1000 + group_size = 10 num_groups = len(data) // group_size grouped_data = np.reshape(data[: num_groups * group_size], (num_groups, group_size)) avg_values = np.mean(grouped_data, axis=1) @@ -730,13 +730,13 @@ def run_checkpoint_restore_outrage( exec_with_log(f"ssh -t {slowtier} rm {pwd}/build/*.out") # Execute run_restore with the same arguments (or modify as needed) exec_with_log( - f"script -f -q /dev/null -c 'ssh -t {energy} ./MVVM_restore -t ./bench/{aot_file} {extra2}' >> MVVM_restore.1.out &" + f"script -f -q /dev/null -c 'ssh -t {energy} \" cd /mnt/osdi23/MVVM/build && ./MVVM_restore -t ./bench/{aot_file} {extra2}\"' >> MVVM_restore.1.out &" ) exec_with_log( - f"script -f -q /dev/null -c 'ssh -t {slowtier} ./MVVM_restore -t ./bench/{aot_file} {extra3}' >> MVVM_restore.2.out &" + f"script -f -q /dev/null -c 'ssh -t {slowtier} \"cd /mnt/MVVM/build && ./MVVM_restore -t ./bench/{aot_file} {extra3}\"' >> MVVM_restore.2.out &" ) exec_with_log( - f"script -f -q /dev/null -c './MVVM_restore -t ./bench/{aot_file} {extra4}' >> MVVM_restore.3.out &" + f"script -f -q /dev/null -c '\./MVVM_restore -t ./bench/{aot_file} {extra4}' >> MVVM_restore.3.out &" ) exec_with_log(f"sleep {time}") exec_with_log( @@ -744,7 +744,28 @@ def run_checkpoint_restore_outrage( ) exec_with_log(f"sleep {time1}") exec_with_log(f"ssh -t {energy} pkill -SIGINT MVVM_restore") + + exec_with_log("sleep 14") + exec_with_log(f"ssh -t {energy} pkill -SIGINT MVVM_restore") + exec_with_log("sleep 14") + exec_with_log(f"ssh -t {energy} pkill -SIGINT MVVM_restore") + exec_with_log("sleep 14") + exec_with_log(f"ssh -t {energy} pkill -SIGINT MVVM_restore") + exec_with_log(f"sleep {time2}") + exec_with_log("sleep 14") + exec_with_log(f"ssh -t {slowtier} pkill -SIGINT MVVM_restore") + exec_with_log("sleep 14") + exec_with_log(f"ssh -t {slowtier} pkill -SIGINT MVVM_restore") + exec_with_log("sleep 14") + exec_with_log(f"ssh -t {slowtier} pkill -SIGINT MVVM_restore") + exec_with_log("sleep 14") + + exec_with_log("sleep 14") + exec_with_log(f"ssh -t {slowtier} pkill -SIGINT MVVM_restore") + exec_with_log("sleep 14") + exec_with_log(f"ssh -t {slowtier} pkill -SIGINT MVVM_restore") + exec_with_log("sleep 14") exec_with_log(f"ssh -t {slowtier} pkill -SIGINT MVVM_restore") exec_with_log(f"sleep 100") @@ -779,73 +800,139 @@ def run_checkpoint_restore_burst( extra8: str = "", extra9: str = "", ): - # Execute run_checkpoint and capture its result res = [] - exec_with_log("rm ./*.out") - exec_with_log("pkill MVVM_checkpoint") - exec_with_log("pkill MVVM_restore") - exec_with_log(f"ssh -t {burst} pkill MVVM_checkpoint") - exec_with_log(f"ssh -t {burst} pkill MVVM_restore") - exec_with_log(f"ssh -t {burst} rm {pwd_mac}/build/*.out") - # Execute run_restore with the same arguments (or modify as needed) - exec_with_log( - f"script -f -q /dev/null -c 'ssh -t {burst} ./MVVM_restore -t ./bench/{aot_file1} {extra2}' >> MVVM_restore.0.out &" - ) - exec_with_log( - f"ssh -t {burst} {pwd_mac}/artifact/run_with_energy_monitoring_mac.sh MVVM_restore 0 {aot_file} &" - ) - - exec_with_log( - f"script -f -q /dev/null -c './MVVM_restore -t ./bench/{aot_file1} {extra3}' >> MVVM_restore.1.out &" - ) - exec_with_log( - f"../artifact/run_with_energy_monitoring.sh MVVM_restore 1 {aot_file} &" - ) - exec_with_log( - f"script -f -q /dev/null -c './MVVM_restore -t ./bench/{aot_file} {extra7}' >> MVVM_restore.4.out &" - ) - exec_with_log( - f"../artifact/run_with_energy_monitoring.sh MVVM_restore 4 {aot_file1} &" - ) - exec_with_log("sleep 10") - exec_with_log( - f"./MVVM_checkpoint -t ./bench/{aot_file1} {' '.join(['-a ' + str(x) for x in arg1])} -e {env} {extra1} > MVVM_checkpoint.0.out &" - ) - exec_with_log( - f"../artifact/run_with_energy_monitoring.sh MVVM_checkpoint 0 {aot_file} &" - ) - - exec_with_log("sleep 10") - exec_with_log( - f"script -f -q /dev/null -c 'ssh -t {burst} ./MVVM_checkpoint -t ./bench/{aot_file} {' '.join(['-a ' + str(x) for x in arg])} -e {env} {extra6}' > MVVM_checkpoint.1.out &" - ) - # exec_with_log(f"ssh -t mac ../artifact/run_with_energy_monitoring_mac.sh MVVM_checkpoint 1 {aot_file} &") - exec_with_log(f"pkill -SIGINT MVVM_checkpoint") - - exec_with_log("sleep 100") - - exec_with_log(f"ssh -t {burst} pkill -SIGINT MVVM_restore") - exec_with_log(f"ssh -t {burst} pkill -SIGINT MVVM_checkpoint") - exec_with_log( - f"script -f -q /dev/null -c 'ssh -t {burst} ./MVVM_restore -t ./bench/{aot_file1} {extra4}' >> MVVM_restore.2.out &" - ) - exec_with_log( - f"script -f -q /dev/null -c 'ssh -t {burst} ./MVVM_restore -t ./bench/{aot_file} {extra8}' >> MVVM_restore.5.out &" - ) - exec_with_log("sleep 100") - exec_with_log(f"pkill -SIGINT MVVM_restore") - exec_with_log( - f"script -f -q /dev/null -c './MVVM_restore -t ./bench/{aot_file} {extra9}' >> MVVM_restore.6.out &" - ) - exec_with_log( - f"script -f -q /dev/null -c './MVVM_restore -t ./bench/{aot_file1} {extra5}' >> MVVM_restore.3.out &" - ) - # Return a combined result or just the checkpoint result as needed - - exec_with_log("sleep 100") - exec_with_log(f"ssh -t {burst} pkill -SIGINT MVVM_restore") - exec_with_log(f"sleep 1000") - exec_with_log(f"scp {burst}:{pwd_mac}/build/*.*.out ./") + # exec_with_log("rm ./*.out") + # exec_with_log("sudo pkill -9 MVVM_checkpoint") + # exec_with_log("sudo pkill -9 MVVM_restore") + # exec_with_log(f"ssh -t {burst} pkill -9 MVVM_checkpoint") + # exec_with_log(f"ssh -t {burst} pkill -9 MVVM_restore") + # exec_with_log(f"ssh -t {burst} \"cd /mnt/MVVM/build && rm {pwd_mac}/build/*.out\"") + # # Execute run_checkpoint and capture its result + # exec_with_log( + # f"script -f -q /dev/null -c 'ssh -t {burst} \"cd /mnt/MVVM/build && ./MVVM_restore -t ./bench/{aot_file1} {extra2}\"' >> MVVM_restore.0.out &" + # ) + # # exec_with_log( + # # f"ssh -t {burst} {pwd_mac}/artifact/run_with_energy_monitoring_mac.sh MVVM_restore 0 {aot_file} &" + # # ) + + # exec_with_log( + # f"script -f -q /dev/null -c ' SPDLOG_LEVEL=debug ./MVVM_restore -t ./bench/{aot_file1} {extra3}' >> MVVM_restore.1.out &" + # ) + # # exec_with_log( + # # f"sudo ../artifact/run_with_energy_monitoring.sh MVVM_restore 1 {aot_file} &" + # # ) + # exec_with_log( + # f"script -f -q /dev/null -c ' SPDLOG_LEVEL=debug ./MVVM_restore -t ./bench/{aot_file} {extra7}' >> MVVM_restore.4.out &" + # ) + # # exec_with_log( + # # f"sudo ../artifact/run_with_energy_monitoring.sh MVVM_restore 4 {aot_file1} &" + # # ) + # exec_with_log("sleep 100") + + # exec_with_log( + # f"./MVVM_checkpoint -t ./bench/{aot_file1} {' '.join(['-a ' + str(x) for x in arg1])} -e {env} {extra1} > MVVM_checkpoint.0.out &" + # ) + # # exec_with_log( + # # f"sudo ../artifact/run_with_energy_monitoring.sh MVVM_checkpoint 0 {aot_file} &" + # # ) + + # exec_with_log("sleep 1000") + + # exec_with_log( + # f"script -f -q /dev/null -c 'ssh -t {burst} \"cd /mnt/MVVM/build && SPDLOG_LEVEL=debug ./MVVM_checkpoint -t ./bench/{aot_file} {' '.join(['-a ' + str(x) for x in arg])} -e {env} {extra6}\"' > MVVM_checkpoint.1.out &" + # ) + # # exec_with_log( + # # f"ssh -t {burst} {pwd_mac}/artifact/run_with_energy_monitoring_mac.sh MVVM_checkpoint 1 {aot_file1} &" + # # ) + # exec_with_log("sleep 20") + # # exec_with_log(f"ssh -t mac ../artifact/run_with_energy_monitoring_mac.sh MVVM_checkpoint 1 {aot_file} &") + # exec_with_log(f"pkill -SIGINT MVVM_checkpoint") + # exec_with_log("sleep 15") + # exec_with_log(f"pkill -SIGINT MVVM_checkpoint") + # exec_with_log("sleep 15") + # exec_with_log(f"pkill -SIGINT MVVM_checkpoint") + # exec_with_log("sleep 15") + # exec_with_log(f"pkill -SIGINT MVVM_checkpoint") + + # exec_with_log("sleep 100") + # exec_with_log(f"ssh -t {burst} pkill -SIGINT -f MVVM_checkpoint") # pkill 0 and checkpoint 1 + # exec_with_log("sleep 15") + # exec_with_log(f"ssh -t {burst} pkill -SIGINT -f MVVM_checkpoint") # pkill 0 and checkpoint 1 + # exec_with_log("sleep 15") + # exec_with_log(f"ssh -t {burst} pkill -SIGINT -f MVVM_checkpoint") # pkill 0 and checkpoint 1 + # exec_with_log("sleep 15") + # exec_with_log(f"ssh -t {burst} pkill -SIGINT -f MVVM_checkpoint") # pkill 0 and checkpoint 1 + # exec_with_log("sleep 15") + # # exec_with_log(f"ssh -t {burst} pkill -SIGINT -f MVVM_restore") + # # exec_with_log("sleep 15") + # # exec_with_log(f"ssh -t {burst} pkill -SIGINT -f MVVM_restore") + # # exec_with_log("sleep 15") + # # exec_with_log(f"ssh -t {burst} pkill -SIGINT -f MVVM_restore") + # # exec_with_log("sleep 15") + # # exec_with_log(f"ssh -t {burst} pkill -SIGINT -f MVVM_restore") + + + # # exec_with_log("sleep 100") + # # exec_with_log(f"pkill -SIGINT MVVM_restore") + # # exec_with_log("sleep 15") + # # exec_with_log(f"pkill -SIGINT MVVM_restore") + # # exec_with_log("sleep 15") + # # exec_with_log(f"pkill -SIGINT MVVM_restore") + # # exec_with_log("sleep 15") + # # exec_with_log(f"pkill -SIGINT MVVM_restore") + # exec_with_log( + # f"script -f -q /dev/null -c 'ssh -t {burst} \"cd /mnt/MVVM/build && SPDLOG_LEVEL=debug ./MVVM_restore -t ./bench/{aot_file1} {extra4}\"' >> MVVM_restore.2.out &" + # ) + # # exec_with_log( + # # f"ssh -t {burst} {pwd_mac}/artifact/run_with_energy_monitoring_mac.sh MVVM_restore 2 {aot_file} &" + # # ) + # exec_with_log( + # f"script -f -q /dev/null -c 'ssh -t {burst} \"cd /mnt/MVVM/build && SPDLOG_LEVEL=debug ./MVVM_restore -t ./bench/{aot_file} {extra8}\"' >> MVVM_restore.5.out &" + # ) + # # exec_with_log( + # # f"ssh -t {burst} {pwd_mac}/artifact/run_with_energy_monitoring_mac.sh MVVM_restore 5 {aot_file1} &" + # # ) + # exec_with_log(f"ssh -t {burst} pkill -SIGINT -f MVVM_restore") + # exec_with_log("sleep 15") + # exec_with_log(f"ssh -t {burst} pkill -SIGINT -f MVVM_restore") + # exec_with_log("sleep 15") + # exec_with_log(f"ssh -t {burst} pkill -SIGINT -f MVVM_restore") + # exec_with_log("sleep 15") + # exec_with_log(f"ssh -t {burst} pkill -SIGINT -f MVVM_restore") + + # exec_with_log("sleep 150") + # exec_with_log(f"pkill -SIGINT MVVM_restore") + # exec_with_log(f"sleep 15") + # exec_with_log(f"pkill -SIGINT MVVM_restore") + # exec_with_log(f"sleep 15") + # exec_with_log(f"pkill -SIGINT MVVM_restore") + # exec_with_log(f"sleep 15") + # exec_with_log(f"pkill -SIGINT MVVM_restore") + # exec_with_log(f"sleep 15") + # exec_with_log( + # f"script -f -q /dev/null -c ' SPDLOG_LEVEL=debug ./MVVM_restore -t ./bench/{aot_file} {extra9}' >> MVVM_restore.6.out &" + # ) + # # exec_with_log( + # # f"sudo ../artifact/run_with_energy_monitoring.sh MVVM_restore 6 {aot_file1} &" + # # ) + # exec_with_log( + # f"script -f -q /dev/null -c 'SPDLOG_LEVEL=debug ./MVVM_restore -t ./bench/{aot_file1} {extra5}' >> MVVM_restore.3.out &" + # ) + # # exec_with_log( + # # f"sudo ../artifact/run_with_energy_monitoring.sh MVVM_restore 3 {aot_file} &" + # # ) + # # Return a combined result or just the checkpoint result as needed + + # exec_with_log("sleep 50") + # exec_with_log(f"ssh -t {burst} pkill -SIGINT MVVM_restore") + # exec_with_log("sleep 15") + # exec_with_log(f"ssh -t {burst} pkill -SIGINT MVVM_restore") + # exec_with_log("sleep 15") + # exec_with_log(f"ssh -t {burst} pkill -SIGINT MVVM_restore") + # exec_with_log("sleep 15") + # exec_with_log(f"ssh -t {burst} pkill -SIGINT MVVM_restore") + # exec_with_log(f"sleep 1000") + # exec_with_log(f"scp {burst}:{pwd_mac}/build/*.*.out ./") cmd = f"cat ./MVVM_checkpoint.0.out ./MVVM_checkpoint.1.out ./MVVM_restore.0.out ./MVVM_restore.1.out ./MVVM_restore.2.out ./MVVM_restore.3.out ./MVVM_restore.4.out ./MVVM_restore.5.out ./MVVM_restore.6.out" cmd = cmd.split() result = subprocess.run(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) diff --git a/artifact/result/burst/burst.pdf b/artifact/result/burst/burst.pdf new file mode 100644 index 0000000..a9d5575 Binary files /dev/null and b/artifact/result/burst/burst.pdf differ diff --git a/artifact/usecase_burst_computing.py b/artifact/usecase_burst_computing.py index ef262ed..47babe5 100644 --- a/artifact/usecase_burst_computing.py +++ b/artifact/usecase_burst_computing.py @@ -7,7 +7,7 @@ from collections import defaultdict import subprocess -ip = ["128.114.53.32", "128.114.59.134"] +ip = ["192.168.0.24", "192.168.0.23"] port = 12347 port2 = 12346 new_port = 1235 @@ -27,7 +27,7 @@ [ "./ORBvoc.txt", "./TUM3.yaml", - "./", + "./rgbd_dataset_freiburg3_long_office_household_validation", "./associations/fr3_office_val.txt", ], ] @@ -263,8 +263,10 @@ def plot_time(reu, aot_energy, aot_ps, aot1_energy, aot1_ps): # print("exec_time ",exec_time[-1]) if line.__contains__("ttrack"): to_append = float(line.split(" ")[-1].replace("\\r", "")) + # print(exec_time) + # print("exec_time ",exec_time[-1]) if to_append > 0: - exec_time[state].append(to_append + 1) + exec_time[state].append(to_append) if line.__contains__("Snapshot "): # print("line ", line) time.append( @@ -277,11 +279,11 @@ def plot_time(reu, aot_energy, aot_ps, aot1_energy, aot1_ps): time.append(parse_time(line.split(" ")[1].replace("]", ""))) print("time ", time) state += 1 - except: + except : print(line) # print(exec_time) # print(exec_time1) - # # print(time) + # print(time) # record time fig, ax = plt.subplots() base = time[0] - sum(exec_time[0]) @@ -299,7 +301,9 @@ def plot_time(reu, aot_energy, aot_ps, aot1_energy, aot1_ps): time_spots.pop(to_pop) if idx != len(exec_time) - 1: time_spots.append(time[idx + 1] - sum(exec_time[idx + 1]) - base) - + print(len(time)) + print(len(exec_time1)) + print(len(exec_time)) time_spots1 = [time[5] - sum(exec_time1[0]) - base] for idx, i in enumerate(exec_time1): @@ -310,8 +314,9 @@ def plot_time(reu, aot_energy, aot_ps, aot1_energy, aot1_ps): # Append the new time spot to the sequence time_spots1.append(new_time_spot) time_spots1.pop(to_pop) - if idx != len(exec_time1) - 1: - time_spots1.append(time[idx + 6] - sum(exec_time1[idx + 1]) - base) + print(idx, len(exec_time1) - 1, len(time) - 1, len(time_spots1) - 1) + if idx != len(exec_time1) -1: + time_spots1.append(time[idx + 6] - sum(exec_time1[idx+1]) - base) avg_extended, percentile99_extended = get_avg_99percent(sum_aot) avg_exec_time1, percentile_99_exec_time1 = get_avg_99percent(sum_aot1) ax.plot(time_spots, avg_extended, "blue") @@ -445,64 +450,64 @@ def plot_time(reu, aot_energy, aot_ps, aot1_energy, aot1_ps): reu = "" with open("burst.txt", "r") as f: reu = f.read() - with open("MVVM_checkpoint.ps.1.out") as f: - checkpoint1 = f.read() - with open("MVVM_checkpoint.ps.out") as f: - checkpoint = f.read() - with open("MVVM_restore.ps.6.out") as f: - restore6 = f.read() - with open("MVVM_restore.ps.5.out") as f: - restore5 = f.read() - with open("MVVM_restore.ps.4.out") as f: - restore4 = f.read() - with open("MVVM_restore.ps.3.out") as f: - restore3 = f.read() - with open("MVVM_restore.ps.2.out") as f: - restore2 = f.read() - with open("MVVM_restore.ps.1.out") as f: - restore1 = f.read() - with open("MVVM_restore.ps.out") as f: - restore = f.read() - - with open("MVVM_checkpoint.energy.1.out") as f: - checkpoint_energy1 = f.read() - with open("MVVM_checkpoint.energy.out") as f: - checkpoint_energy = f.read() - with open("MVVM_restore.energy.6.out") as f: - restore_energy6 = f.read() - with open("MVVM_restore.energy.5.out") as f: - restore_energy5 = f.read() - with open("MVVM_restore.energy.4.out") as f: - restore_energy4 = f.read() - with open("MVVM_restore.energy.3.out") as f: - restore_energy3 = f.read() - with open("MVVM_restore.energy.2.out") as f: - restore_energy2 = f.read() - with open("MVVM_restore.energy.1.out") as f: - restore_energy1 = f.read() - with open("MVVM_restore.energy.out") as f: - restore_energy = f.read() + # with open("MVVM_checkpoint.ps.1.out") as f: + # checkpoint1 = f.read() + # with open("MVVM_checkpoint.ps.out") as f: + # checkpoint = f.read() + # with open("MVVM_restore.ps.6.out") as f: + # restore6 = f.read() + # with open("MVVM_restore.ps.5.out") as f: + # restore5 = f.read() + # with open("MVVM_restore.ps.4.out") as f: + # restore4 = f.read() + # with open("MVVM_restore.ps.3.out") as f: + # restore3 = f.read() + # with open("MVVM_restore.ps.2.out") as f: + # restore2 = f.read() + # with open("MVVM_restore.ps.1.out") as f: + # restore1 = f.read() + # with open("MVVM_restore.ps.out") as f: + # restore = f.read() + + # with open("MVVM_checkpoint.energy.1.out") as f: + # checkpoint_energy1 = f.read() + # with open("MVVM_checkpoint.energy.out") as f: + # checkpoint_energy = f.read() + # with open("MVVM_restore.energy.6.out") as f: + # restore_energy6 = f.read() + # with open("MVVM_restore.energy.5.out") as f: + # restore_energy5 = f.read() + # with open("MVVM_restore.energy.4.out") as f: + # restore_energy4 = f.read() + # with open("MVVM_restore.energy.3.out") as f: + # restore_energy3 = f.read() + # with open("MVVM_restore.energy.2.out") as f: + # restore_energy2 = f.read() + # with open("MVVM_restore.energy.1.out") as f: + # restore_energy1 = f.read() + # with open("MVVM_restore.energy.out") as f: + # restore_energy = f.read() plot_time( reu, - # None, - # None, - # None, - # None, - [ - checkpoint_energy, - restore_energy, - restore_energy1, - restore_energy3, - restore_energy2, - ], - [checkpoint1, restore3, restore4, restore5, restore6], - [ - checkpoint_energy1, - restore_energy3, - restore_energy4, - restore_energy5, - restore_energy6, - ], - [checkpoint1, restore3, restore4, restore5, restore6], + None, + None, + None, + None, + # [ + # checkpoint_energy, + # restore_energy, + # restore_energy1, + # restore_energy3, + # restore_energy2, + # ], + # [checkpoint1, restore3, restore4, restore5, restore6], + # [ + # checkpoint_energy1, + # restore_energy3, + # restore_energy4, + # restore_energy5, + # restore_energy6, + # ], + # [checkpoint1, restore3, restore4, restore5, restore6], ) \ No newline at end of file diff --git a/artifact/usecase_energy_outrage.py b/artifact/usecase_energy_outrage.py index 1240473..211fdde 100644 --- a/artifact/usecase_energy_outrage.py +++ b/artifact/usecase_energy_outrage.py @@ -102,7 +102,7 @@ def predict_outages(state, start_date, end_date): print(predictions) # Convert the CSV data to a DataFrame - df = pd.read_csv(pd.compat.StringIO(data)) + df = pd.read_csv(data) # Convert the 'run_start_time' column to datetime format df['run_start_time'] = pd.to_datetime(df['run_start_time']) @@ -196,8 +196,8 @@ def read_from_csv(filename): # write_to_csv("outrage_computing.csv") time,time1,time2 = get_cloud_result("eaglei_outages_2020.csv") - # plot(results) - reu = get_eneragy_outrage(time,time1,time2) + print(time,time1,time2) + reu = get_eneragy_outrage(10,30,40) with open("outrage.txt", "w") as f: f.write(str(reu)) reu = "" diff --git a/bench/nas b/bench/nas index fae7521..fa64f5b 160000 --- a/bench/nas +++ b/bench/nas @@ -1 +1 @@ -Subproject commit fae7521ab4b5ffcf5ff29d101aa4e7b813c1e46f +Subproject commit fa64f5bdc12a1b19374b9a6c5b2443b9f5b9a175 diff --git a/lib/wasm-micro-runtime b/lib/wasm-micro-runtime index caa27c2..4629d19 160000 --- a/lib/wasm-micro-runtime +++ b/lib/wasm-micro-runtime @@ -1 +1 @@ -Subproject commit caa27c2a34bc3f890a9a76c4d07f5697619636d0 +Subproject commit 4629d1964b6008fb7c3396b43c6c509f4e5c3e7b