X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/05f306119e96e0429a97b53a5faf5c791f6b59a8..c7df79fb2ff6e105b83092e142fbe74214fd3b75:/src/mc/RegionSnapshot.cpp diff --git a/src/mc/RegionSnapshot.cpp b/src/mc/RegionSnapshot.cpp index bfcc7ba35a..fc74d88e8d 100644 --- a/src/mc/RegionSnapshot.cpp +++ b/src/mc/RegionSnapshot.cpp @@ -14,13 +14,9 @@ #include "src/mc/ChunkedData.hpp" #include "src/mc/RegionSnapshot.hpp" -extern "C" { - XBT_LOG_NEW_DEFAULT_SUBCATEGORY(mc_RegionSnaphot, mc, "Logging specific to region snapshots"); -} - namespace simgrid { namespace mc { @@ -119,11 +115,10 @@ RegionSnapshot region( RegionType type, void *start_addr, void* permanent_addr, size_t size, RegionSnapshot const* ref_region) { - if (_sg_mc_sparse_checkpoint) { + if (_sg_mc_sparse_checkpoint) return sparse_region(type, start_addr, permanent_addr, size, ref_region); - } else { + else return dense_region(type, start_addr, permanent_addr, size); - } } RegionSnapshot sparse_region(RegionType region_type, @@ -141,14 +136,14 @@ RegionSnapshot sparse_region(RegionType region_type, "Not at the beginning of a page"); xbt_assert((((uintptr_t)permanent_addr) & (xbt_pagesize-1)) == 0, "Not at the beginning of a page"); - size_t page_count = mc_page_count(size); + size_t page_count = simgrid::mc::mmu::chunkCount(size); std::vector pagemap; const size_t* ref_page_numbers = nullptr; if (use_soft_dirty) { pagemap.resize(page_count); process->read_pagemap(pagemap.data(), - mc_page_number(nullptr, permanent_addr), page_count); + simgrid::mc::mmu::split((std::size_t) permanent_addr).first, page_count); ref_page_numbers = ref_region->page_data().pagenos(); }