A
lgorithmique
N
umérique
D
istribuée
Public GIT Repository
projects
/
simgrid.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[mc] Make Snapshot::stack_sizes a std::vector
[simgrid.git]
/
src
/
mc
/
mc_checkpoint.cpp
diff --git
a/src/mc/mc_checkpoint.cpp
b/src/mc/mc_checkpoint.cpp
index
f813c74
..
1ef9834
100644
(file)
--- a/
src/mc/mc_checkpoint.cpp
+++ b/
src/mc/mc_checkpoint.cpp
@@
-84,21
+84,21
@@
extern "C" {
static void MC_region_restore(mc_mem_region_t region)
{
switch(region->storage_type()) {
static void MC_region_restore(mc_mem_region_t region)
{
switch(region->storage_type()) {
- case
MC_REGION_STORAGE_TYPE_NONE
:
+ case
simgrid::mc::StorageType::NoData
:
default:
xbt_die("Storage type not supported");
break;
default:
xbt_die("Storage type not supported");
break;
- case
MC_REGION_STORAGE_TYPE_FLAT
:
+ case
simgrid::mc::StorageType::Flat
:
mc_model_checker->process().write_bytes(region->flat_data().data(),
region->size(), region->permanent_address());
break;
mc_model_checker->process().write_bytes(region->flat_data().data(),
region->size(), region->permanent_address());
break;
- case
MC_REGION_STORAGE_TYPE_CHUNKED
:
+ case
simgrid::mc::StorageType::Chunked
:
mc_region_restore_sparse(&mc_model_checker->process(), region);
break;
mc_region_restore_sparse(&mc_model_checker->process(), region);
break;
- case
MC_REGION_STORAGE_TYPE_PRIVATIZED
:
+ case
simgrid::mc::StorageType::Privatized
:
for (auto& p : region->privatized_data())
MC_region_restore(&p);
break;
for (auto& p : region->privatized_data())
MC_region_restore(&p);
break;
@@
-111,7
+111,7
@@
namespace simgrid {
namespace mc {
simgrid::mc::RegionSnapshot privatized_region(
namespace mc {
simgrid::mc::RegionSnapshot privatized_region(
-
mc_region_type_t
region_type, void *start_addr, void* permanent_addr, size_t size
+
RegionType
region_type, void *start_addr, void* permanent_addr, size_t size
)
{
size_t process_count = MC_smpi_process_count();
)
{
size_t process_count = MC_smpi_process_count();
@@
-145,13
+145,14
@@
simgrid::mc::RegionSnapshot privatized_region(
extern "C" {
extern "C" {
-static void MC_snapshot_add_region(int index, mc_snapshot_t snapshot, mc_region_type_t type,
+static void MC_snapshot_add_region(int index, mc_snapshot_t snapshot,
+ simgrid::mc::RegionType type,
mc_object_info_t object_info,
void *start_addr, void* permanent_addr, size_t size)
{
mc_object_info_t object_info,
void *start_addr, void* permanent_addr, size_t size)
{
- if (type ==
MC_REGION_TYPE_DATA
)
+ if (type ==
simgrid::mc::RegionType::Data
)
xbt_assert(object_info, "Missing object info for object.");
xbt_assert(object_info, "Missing object info for object.");
- else if (type ==
MC_REGION_TYPE_HEAP
)
+ else if (type ==
simgrid::mc::RegionType::Heap
)
xbt_assert(!object_info, "Unexpected object info for heap region.");
const bool privatization_aware = MC_object_info_is_privatized(object_info);
xbt_assert(!object_info, "Unexpected object info for heap region.");
const bool privatization_aware = MC_object_info_is_privatized(object_info);
@@
-176,7
+177,7
@@
static void MC_get_memory_regions(mc_process_t process, mc_snapshot_t snapshot)
for (size_t i = 0; i!=n; ++i) {
mc_object_info_t object_info = process->object_infos[i];
for (size_t i = 0; i!=n; ++i) {
mc_object_info_t object_info = process->object_infos[i];
- MC_snapshot_add_region(i, snapshot,
MC_REGION_TYPE_DATA
, object_info,
+ MC_snapshot_add_region(i, snapshot,
simgrid::mc::RegionType::Data
, object_info,
object_info->start_rw, object_info->start_rw,
object_info->end_rw - object_info->start_rw);
}
object_info->start_rw, object_info->start_rw,
object_info->end_rw - object_info->start_rw);
}
@@
-185,7
+186,7
@@
static void MC_get_memory_regions(mc_process_t process, mc_snapshot_t snapshot)
void *start_heap = heap->base;
void *end_heap = heap->breakval;
void *start_heap = heap->base;
void *end_heap = heap->breakval;
- MC_snapshot_add_region(n, snapshot,
MC_REGION_TYPE_HEAP
, NULL,
+ MC_snapshot_add_region(n, snapshot,
simgrid::mc::RegionType::Heap
, NULL,
start_heap, start_heap,
(char *) end_heap - (char *) start_heap);
snapshot->heap_bytes_used = mmalloc_get_bytes_used_remote(
start_heap, start_heap,
(char *) end_heap - (char *) start_heap);
snapshot->heap_bytes_used = mmalloc_get_bytes_used_remote(
@@
-467,10
+468,9
@@
static xbt_dynar_t MC_take_snapshot_stacks(mc_snapshot_t * snapshot)
unw_word_t sp = xbt_dynar_get_as(st->stack_frames, 0, mc_stack_frame_t)->sp;
xbt_dynar_push(res, &st);
unw_word_t sp = xbt_dynar_get_as(st->stack_frames, 0, mc_stack_frame_t)->sp;
xbt_dynar_push(res, &st);
- (*snapshot)->stack_sizes = (size_t*)
- xbt_realloc((*snapshot)->stack_sizes, (cursor + 1) * sizeof(size_t));
- (*snapshot)->stack_sizes[cursor] =
+ size_t stack_size =
(char*) current_stack->address + current_stack->size - (char*) sp;
(char*) current_stack->address + current_stack->size - (char*) sp;
+ (*snapshot)->stack_sizes.push_back(stack_size);
}
return res;
}
return res;
@@
-635,11
+635,9
@@
mc_snapshot_t MC_take_snapshot(int num_state)
snapshot->process = mc_process;
snapshot->num_state = num_state;
snapshot->process = mc_process;
snapshot->num_state = num_state;
- snapshot->enabled_processes = xbt_dynar_new(sizeof(int), NULL);
-
smx_process_t process;
MC_EACH_SIMIX_PROCESS(process,
smx_process_t process;
MC_EACH_SIMIX_PROCESS(process,
-
xbt_dynar_push_as(snapshot->enabled_processes, int, (int)
process->pid));
+
snapshot->enabled_processes.insert(
process->pid));
MC_snapshot_handle_ignore(snapshot);
MC_snapshot_handle_ignore(snapshot);