From 6f9d5bdabcf16a0b36012f3d7cf32a2d736bb6f0 Mon Sep 17 00:00:00 2001 From: Gabriel Corona Date: Tue, 24 Jun 2014 14:51:10 +0200 Subject: [PATCH] [mc] Add support of privatized global variables in per-page snapshot Not very useful because state comparison does not work with SMPI privatisation yet. --- src/mc/mc_checkpoint.c | 5 +++-- src/mc/mc_compare.cpp | 2 ++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/mc/mc_checkpoint.c b/src/mc/mc_checkpoint.c index c07f6661df..abb2dee35a 100644 --- a/src/mc/mc_checkpoint.c +++ b/src/mc/mc_checkpoint.c @@ -166,9 +166,10 @@ static void MC_get_memory_regions(mc_snapshot_t snapshot) snapshot->privatization_regions = xbt_new(mc_mem_region_t, SIMIX_process_count()); for (i = 0; i < SIMIX_process_count(); i++) { - // TODO, add support for sparse snapshot + mc_mem_region_t ref_reg = + mc_model_checker->parent_snapshot ? mc_model_checker->parent_snapshot->privatization_regions[i] : NULL; snapshot->privatization_regions[i] = - MC_region_new(-1, mappings[i], size_data_exe, NULL); + MC_region_new(-1, mappings[i], size_data_exe, ref_reg); } snapshot->privatization_index = loaded_page; } diff --git a/src/mc/mc_compare.cpp b/src/mc/mc_compare.cpp index 6eaa3bf79f..ada39e645a 100644 --- a/src/mc/mc_compare.cpp +++ b/src/mc/mc_compare.cpp @@ -246,6 +246,8 @@ static int compare_global_variables(int region_type, mc_mem_region_t r1, mc_mem_region_t r2, mc_snapshot_t snapshot1, mc_snapshot_t snapshot2) { + xbt_assert(r1 && r2, + "Missing region. Did you enable SMPI privatisation? It is not compatible with state comparison."); struct mc_compare_state state; xbt_dynar_t variables; -- 2.20.1