* \ | |
* ----
*/
-#include <cstring>
-
#include <unordered_map>
-#include <utility>
-#include "src/internal_config.h"
#include "private.h"
#include "private.hpp"
-#include <xbt/ex.hpp>
#include "xbt/dict.h"
-//#include "xbt/sysdep.h"
-//#include "xbt/ex.h"
-#include "surf/surf.h"
-#include "simgrid/sg_config.h"
-//#include "simgrid/modelchecker.h"
-//#include "src/mc/mc_replay.h"
+#include <errno.h>
#include <sys/types.h>
#ifndef WIN32
#include <sys/mman.h>
#endif
#include <sys/stat.h>
-#include <errno.h>
#include <fcntl.h>
-//#include <math.h> // sqrt
-#include <unistd.h>
#include <string.h>
#include <stdio.h>
if (smpi_shared_malloc_bogusfile == -1) {
/* Create a fd to a new file on disk, make it smpi_shared_malloc_blocksize big, and unlink it.
* It still exists in memory but not in the file system (thus it cannot be leaked). */
+ smpi_shared_malloc_blocksize = static_cast<unsigned long>(xbt_cfg_get_double("smpi/shared-malloc-blocksize"));
+ XBT_DEBUG("global shared allocation. Blocksize %lu", smpi_shared_malloc_blocksize);
char* name = xbt_strdup("/tmp/simgrid-shmalloc-XXXXXX");
smpi_shared_malloc_bogusfile = mkstemp(name);
unlink(name);
void* res = mmap(pos, smpi_shared_malloc_blocksize, PROT_READ | PROT_WRITE, MAP_FIXED | MAP_SHARED | MAP_POPULATE,
smpi_shared_malloc_bogusfile, 0);
xbt_assert(res == pos, "Could not map folded virtual memory (%s). Do you perhaps need to increase the "
- "STARPU_MALLOC_SIMULATION_FOLD environment variable or the sysctl vm.max_map_count?",
+ "size of the mapped file using --cfg=smpi/shared-malloc-blocksize=newvalue (default 1048576) ?",
+ "You can also try using the sysctl vm.max_map_count",
strerror(errno));
}
if (size % smpi_shared_malloc_blocksize) {
void* res = mmap(pos, size % smpi_shared_malloc_blocksize, PROT_READ | PROT_WRITE,
MAP_FIXED | MAP_SHARED | MAP_POPULATE, smpi_shared_malloc_bogusfile, 0);
xbt_assert(res == pos, "Could not map folded virtual memory (%s). Do you perhaps need to increase the "
- "STARPU_MALLOC_SIMULATION_FOLD environment variable or the sysctl vm.max_map_count?",
+ "size of the mapped file using --cfg=smpi/shared-malloc-blocksize=newvalue (default 1048576) ?",
+ "You can also try using the sysctl vm.max_map_count",
strerror(errno));
}
}
int smpi_is_shared(void*ptr){
+ if (allocs_metadata.empty())
+ return 0;
if ( smpi_cfg_shared_malloc == shmalloc_local || smpi_cfg_shared_malloc == shmalloc_global) {
if (allocs_metadata.count(ptr) != 0)
return 1;