Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Convert enum shared_malloc_type to enum class.
authorArnaud Giersch <arnaud.giersch@univ-fcomte.fr>
Fri, 25 May 2018 19:41:16 +0000 (21:41 +0200)
committerArnaud Giersch <arnaud.giersch@univ-fcomte.fr>
Sun, 27 May 2018 19:28:54 +0000 (21:28 +0200)
src/smpi/include/private.hpp
src/smpi/internals/smpi_bench.cpp
src/smpi/internals/smpi_global.cpp
src/smpi/internals/smpi_shared.cpp

index 4e1f6dd..870f2ec 100644 (file)
@@ -88,8 +88,8 @@ extern XBT_PRIVATE double smpi_host_speed;
 extern XBT_PRIVATE char* smpi_data_exe_start; // start of the data+bss segment of the executable
 extern XBT_PRIVATE int smpi_data_exe_size;    // size of the data+bss segment of the executable
 
 extern XBT_PRIVATE char* smpi_data_exe_start; // start of the data+bss segment of the executable
 extern XBT_PRIVATE int smpi_data_exe_size;    // size of the data+bss segment of the executable
 
-enum shared_malloc_type { shmalloc_none, shmalloc_local, shmalloc_global };
-extern XBT_PRIVATE shared_malloc_type smpi_cfg_shared_malloc; // Whether to activate shared malloc
+enum class SharedMallocType { NONE, LOCAL, GLOBAL };
+extern XBT_PRIVATE SharedMallocType smpi_cfg_shared_malloc; // Whether to activate shared malloc
 
 XBT_PRIVATE void smpi_switch_data_segment(simgrid::s4u::ActorPtr actor);
 XBT_PRIVATE void smpi_really_switch_data_segment(simgrid::s4u::ActorPtr actor);
 
 XBT_PRIVATE void smpi_switch_data_segment(simgrid::s4u::ActorPtr actor);
 XBT_PRIVATE void smpi_really_switch_data_segment(simgrid::s4u::ActorPtr actor);
index 0b0c168..e98b812 100644 (file)
@@ -30,7 +30,7 @@ XBT_LOG_NEW_DEFAULT_SUBCATEGORY(smpi_bench, smpi, "Logging specific to SMPI (ben
 double smpi_cpu_threshold = -1;
 double smpi_host_speed;
 
 double smpi_cpu_threshold = -1;
 double smpi_host_speed;
 
-shared_malloc_type smpi_cfg_shared_malloc = shmalloc_global;
+SharedMallocType smpi_cfg_shared_malloc = SharedMallocType::GLOBAL;
 double smpi_total_benched_time = 0;
 
 extern "C" XBT_PUBLIC void smpi_execute_flops_(double* flops);
 double smpi_total_benched_time = 0;
 
 extern "C" XBT_PUBLIC void smpi_execute_flops_(double* flops);
index 47ee856..35b3289 100644 (file)
@@ -391,11 +391,11 @@ static void smpi_init_options(){
 
   std::string val = simgrid::config::get_value<std::string>("smpi/shared-malloc");
   if ((val == "yes") || (val == "1") || (val == "on") || (val == "global")) {
 
   std::string val = simgrid::config::get_value<std::string>("smpi/shared-malloc");
   if ((val == "yes") || (val == "1") || (val == "on") || (val == "global")) {
-    smpi_cfg_shared_malloc = shmalloc_global;
+    smpi_cfg_shared_malloc = SharedMallocType::GLOBAL;
   } else if (val == "local") {
   } else if (val == "local") {
-    smpi_cfg_shared_malloc = shmalloc_local;
+    smpi_cfg_shared_malloc = SharedMallocType::LOCAL;
   } else if ((val == "no") || (val == "0") || (val == "off")) {
   } else if ((val == "no") || (val == "0") || (val == "off")) {
-    smpi_cfg_shared_malloc = shmalloc_none;
+    smpi_cfg_shared_malloc = SharedMallocType::NONE;
   } else {
     xbt_die("Invalid value '%s' for option smpi/shared-malloc. Possible values: 'on' or 'global', 'local', 'off'",
             val.c_str());
   } else {
     xbt_die("Invalid value '%s' for option smpi/shared-malloc. Possible values: 'on' or 'global', 'local', 'off'",
             val.c_str());
index 446cb08..958c9bc 100644 (file)
@@ -340,9 +340,9 @@ void* smpi_shared_malloc_partial(size_t size, size_t* shared_block_offsets, int
 }
 
 void *smpi_shared_malloc(size_t size, const char *file, int line) {
 }
 
 void *smpi_shared_malloc(size_t size, const char *file, int line) {
-  if (size > 0 && smpi_cfg_shared_malloc == shmalloc_local) {
+  if (size > 0 && smpi_cfg_shared_malloc == SharedMallocType::LOCAL) {
     return smpi_shared_malloc_local(size, file, line);
     return smpi_shared_malloc_local(size, file, line);
-  } else if (smpi_cfg_shared_malloc == shmalloc_global) {
+  } else if (smpi_cfg_shared_malloc == SharedMallocType::GLOBAL) {
     int nb_shared_blocks = 1;
     size_t shared_block_offsets[2] = {0, size};
     return smpi_shared_malloc_partial(size, shared_block_offsets, nb_shared_blocks);
     int nb_shared_blocks = 1;
     size_t shared_block_offsets[2] = {0, size};
     return smpi_shared_malloc_partial(size, shared_block_offsets, nb_shared_blocks);
@@ -355,7 +355,7 @@ int smpi_is_shared(void* ptr, std::vector<std::pair<size_t, size_t>> &private_bl
   private_blocks.clear(); // being paranoid
   if (allocs_metadata.empty())
     return 0;
   private_blocks.clear(); // being paranoid
   if (allocs_metadata.empty())
     return 0;
-  if ( smpi_cfg_shared_malloc == shmalloc_local || smpi_cfg_shared_malloc == shmalloc_global) {
+  if (smpi_cfg_shared_malloc == SharedMallocType::LOCAL || smpi_cfg_shared_malloc == SharedMallocType::GLOBAL) {
     auto low = allocs_metadata.lower_bound(ptr);
     if (low != allocs_metadata.end() && low->first == ptr) {
       private_blocks = low->second.private_blocks;
     auto low = allocs_metadata.lower_bound(ptr);
     if (low != allocs_metadata.end() && low->first == ptr) {
       private_blocks = low->second.private_blocks;
@@ -419,7 +419,7 @@ std::vector<std::pair<size_t, size_t>> merge_private_blocks(const std::vector<st
 
 void smpi_shared_free(void *ptr)
 {
 
 void smpi_shared_free(void *ptr)
 {
-  if (smpi_cfg_shared_malloc == shmalloc_local) {
+  if (smpi_cfg_shared_malloc == SharedMallocType::LOCAL) {
     char loc[PTR_STRLEN];
     snprintf(loc, PTR_STRLEN, "%p", ptr);
     auto meta = allocs_metadata.find(ptr);
     char loc[PTR_STRLEN];
     snprintf(loc, PTR_STRLEN, "%p", ptr);
     auto meta = allocs_metadata.find(ptr);
@@ -441,7 +441,7 @@ void smpi_shared_free(void *ptr)
       XBT_DEBUG("Shared free - no removal - of %p, count = %d", ptr, data->count);
     }
 
       XBT_DEBUG("Shared free - no removal - of %p, count = %d", ptr, data->count);
     }
 
-  } else if (smpi_cfg_shared_malloc == shmalloc_global) {
+  } else if (smpi_cfg_shared_malloc == SharedMallocType::GLOBAL) {
     auto meta = allocs_metadata.find(ptr);
     if (meta != allocs_metadata.end()){
       meta->second.data->second.count--;
     auto meta = allocs_metadata.find(ptr);
     if (meta != allocs_metadata.end()){
       meta->second.data->second.count--;