X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/96cedde3cdbc0b8ffc3f096a1b65d021b0226f99..6f5a3a45f1fc86d0ca10bc6c31e22e5686071f45:/src/smpi/internals/smpi_shared.cpp?ds=sidebyside diff --git a/src/smpi/internals/smpi_shared.cpp b/src/smpi/internals/smpi_shared.cpp index f4ccaaadd1..642eff5557 100644 --- a/src/smpi/internals/smpi_shared.cpp +++ b/src/smpi/internals/smpi_shared.cpp @@ -139,6 +139,8 @@ static void* shm_map(int fd, size_t size, shared_data_key_type* data) { snprintf(loc, PTR_STRLEN, "%p", mem); meta.size = size; meta.data = data; + meta.allocated_ptr = mem; + meta.allocated_size = size; allocs_metadata[mem] = meta; XBT_DEBUG("MMAP %zu to %p", size, mem); return mem; @@ -178,11 +180,11 @@ static void *smpi_shared_malloc_local(size_t size, const char *file, int line) } // Align functions, from http://stackoverflow.com/questions/4840410/how-to-align-a-pointer-in-c -#define PAGE_SIZE 0x1000 #define ALIGN_UP(n, align) (((n) + (align)-1) & -(align)) #define ALIGN_DOWN(n, align) ((n) & -(align)) -#define HUGE_PAGE_SIZE 1<<21 +constexpr unsigned PAGE_SIZE = 0x1000; +constexpr unsigned HUGE_PAGE_SIZE = 1U << 21; /* Similar to smpi_shared_malloc, but only sharing the blocks described by shared_block_offsets. * This array contains the offsets (in bytes) of the block to share. @@ -436,9 +438,9 @@ void smpi_shared_free(void *ptr) close(data->fd); allocs.erase(allocs.find(meta->second.data->first)); allocs_metadata.erase(ptr); - XBT_DEBUG("Shared free - with removal - of %p", ptr); + XBT_DEBUG("Shared free - Local - with removal - of %p", ptr); } else { - XBT_DEBUG("Shared free - no removal - of %p, count = %d", ptr, data->count); + XBT_DEBUG("Shared free - Local - no removal - of %p, count = %d", ptr, data->count); } } else if (smpi_cfg_shared_malloc == SharedMallocType::GLOBAL) { @@ -448,7 +450,7 @@ void smpi_shared_free(void *ptr) if(meta->second.data->second.count==0) delete meta->second.data; } - + XBT_DEBUG("Shared free - Global - of %p", ptr); munmap(ptr, meta->second.size); } else { XBT_DEBUG("Classic deallocation of %p", ptr);