From 4d4525a05c63a3592a97af1919d547fb0e05d0f1 Mon Sep 17 00:00:00 2001 From: federicamontes Date: Wed, 7 Jun 2023 21:55:26 +0200 Subject: [PATCH 1/4] refactor(recoverable.c): added logged_state->total_log_size to log_size when we use mprotection --- src/mm/recoverable.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mm/recoverable.c b/src/mm/recoverable.c index f10de73a..f8acd70e 100644 --- a/src/mm/recoverable.c +++ b/src/mm/recoverable.c @@ -113,7 +113,7 @@ size_t get_log_size(malloc_state *logged_state){ if (pdes_config.iss_mode == DDYMELOR) { log_size = sizeof(malloc_state) + sizeof(seed_type) + logged_state->dirty_areas * sizeof(malloc_area) + logged_state->bitmap_size + logged_state->dirty_bitmap_size + logged_state->total_inc_size; } else { - log_size = sizeof(malloc_state) + sizeof(seed_type) + logged_state->busy_areas * sizeof(malloc_area) + logged_state->bitmap_size + sizeof(void *); + log_size = sizeof(malloc_state) + sizeof(seed_type) + logged_state->busy_areas * sizeof(malloc_area) + logged_state->bitmap_size + logged_state->total_log_size + sizeof(void *); } } From b8137681d0723ac58d602079bdee2e5ae8089086 Mon Sep 17 00:00:00 2001 From: federicamontes Date: Wed, 7 Jun 2023 22:41:17 +0200 Subject: [PATCH 2/4] refactor(ROOT-Sim.h): corrected if-else in MODEL_WRITE --- src/include/ROOT-Sim.h | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/include/ROOT-Sim.h b/src/include/ROOT-Sim.h index 7704c22c..d50c1e1d 100644 --- a/src/include/ROOT-Sim.h +++ b/src/include/ROOT-Sim.h @@ -144,17 +144,16 @@ int Zipf(double skew, int limit); extern void dirty(void*, size_t); -extern void set_chunk_dirty_from_address(void *, int); #define MODEL_WRITE(var,val)({\ if(pdes_config.checkpointing == INCREMENTAL_STATE_SAVING){\ if (pdes_config.iss_mode == MPROTECT) {\ - do{ dirty(&(var), sizeof((var)));(var) = (val);} while(0);\ - }else {\ - do { set_chunk_dirty_from_address(&(var), val); (var) = (val); } while (0);\ + do{ dirty(&(var), sizeof((var))); (var) = (val); } while(0);\ }\ - }\ - }) + } else {\ + do { set_chunk_dirty_from_address(&(var), val); (var) = (val); } while(0);\ + }\ + }) From 8bf9571ed337738c457b88224d9702eba7a0d639 Mon Sep 17 00:00:00 2001 From: federicamontes Date: Wed, 7 Jun 2023 23:44:35 +0200 Subject: [PATCH 3/4] refactor(configuration.c): added back iss_enabled to enabled incremental state saving --- src/core/configuration.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/core/configuration.c b/src/core/configuration.c index f9559676..50f8b7e1 100644 --- a/src/core/configuration.c +++ b/src/core/configuration.c @@ -51,6 +51,7 @@ static struct argp_option options[] = { {"ckpt-fossil-period", CKPT_FOSSIL_PERIOD_KEY , "#EVENTS" , 0 , "Number of events to be executed before collection committed snapshot" , 0 }, {"ckpt-autonomic-period", CKPT_AUTONOMIC_PERIOD_KEY, 0 , OPTION_ARG_OPTIONAL, "Enable autonomic checkpointing period" , 0 }, {"ckpt_forced_full_period", CKPT_FORCED_FULL_PERIOD_KEY, "#CHECKPOINTS" , 0, "Number of incremental checkpoints before taking a full log" , 0 }, + {"iss_enabled", ISS_ENABLED , 0 , OPTION_ARG_OPTIONAL, "Use mprotect as tracking mechanism for write accesses" , 0 }, {"iss_mode", ISS_MODE , 0 , OPTION_ARG_OPTIONAL, "Use mprotect as tracking mechanism for write accesses" , 0 }, {"distributed-fetch", DISTRIBUTED_FETCH_KEY , 0 , OPTION_ARG_OPTIONAL, "Enable distributed fetch" , 0 }, @@ -97,8 +98,11 @@ static error_t parse_opt(int key, char *arg, struct argp_state *state) pdes_config.ckpt_autonomic_period = 1; break; - case ISS_MODE: + case ISS_ENABLED: pdes_config.checkpointing = INCREMENTAL_STATE_SAVING; + break; + + case ISS_MODE: pdes_config.iss_mode = MPROTECT; break; From f140f6fc324fe489358df099dc12d9d187e8de76 Mon Sep 17 00:00:00 2001 From: federicamontes Date: Wed, 7 Jun 2023 23:45:08 +0200 Subject: [PATCH 4/4] refactor(ROOT-Sim.h): corrected if-else cases of MODEL_WRITE --- src/include/ROOT-Sim.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/include/ROOT-Sim.h b/src/include/ROOT-Sim.h index d50c1e1d..c6852dc2 100644 --- a/src/include/ROOT-Sim.h +++ b/src/include/ROOT-Sim.h @@ -149,10 +149,10 @@ extern void dirty(void*, size_t); if(pdes_config.checkpointing == INCREMENTAL_STATE_SAVING){\ if (pdes_config.iss_mode == MPROTECT) {\ do{ dirty(&(var), sizeof((var))); (var) = (val); } while(0);\ - }\ - } else {\ + } else {\ do { set_chunk_dirty_from_address(&(var), val); (var) = (val); } while(0);\ }\ + }\ })