X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/2b0d4aa36f4ef3a0e253b6104b317b5737e075e8..9692d43fa911bdc2d6d0263a3cb3e22d5e3167fe:/src/mc/RegionSnapshot.cpp diff --git a/src/mc/RegionSnapshot.cpp b/src/mc/RegionSnapshot.cpp index 94acf100e2..7884740527 100644 --- a/src/mc/RegionSnapshot.cpp +++ b/src/mc/RegionSnapshot.cpp @@ -7,6 +7,9 @@ #include #include +#ifdef __FreeBSD__ +# define MAP_POPULATE MAP_PREFAULT_READ +#endif #include "mc/mc.h" #include "src/mc/mc_snapshot.h" @@ -78,7 +81,7 @@ RegionSnapshot dense_region( void *start_addr, void* permanent_addr, size_t size) { // When KSM support is enables, we allocate memory using mmap: - // * we don't want to madvise bits of the heap; + // * we don't want to advise bits of the heap as mergable; // * mmap gives data aligned on page boundaries which is merge friendly. simgrid::mc::Buffer data; if (_sg_mc_ksm) @@ -90,10 +93,12 @@ RegionSnapshot dense_region( remote(permanent_addr), simgrid::mc::ProcessIndexDisabled); +#ifdef __linux__ if (_sg_mc_ksm) // Mark the region as mergeable *after* we have written into it. // Trying to merge them before is useless/counterproductive. madvise(data.get(), size, MADV_MERGEABLE); +#endif simgrid::mc::RegionSnapshot region( region_type, start_addr, permanent_addr, size);