Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
[smpi] Use SMPI namespace for some public variables/functions
authorGabriel Corona <gabriel.corona@loria.fr>
Fri, 5 Sep 2014 09:26:44 +0000 (11:26 +0200)
committerGabriel Corona <gabriel.corona@loria.fr>
Fri, 5 Sep 2014 10:04:07 +0000 (12:04 +0200)
src/mc/mc_checkpoint.c
src/smpi/private.h
src/smpi/smpi_base.c
src/smpi/smpi_bench.c
src/smpi/smpi_comm.c
src/smpi/smpi_global.c
src/smpi/smpi_mpi_dt.c

index 808de73..cc4d219 100644 (file)
@@ -195,7 +195,7 @@ static void MC_get_memory_regions(mc_snapshot_t snapshot)
       snapshot->privatization_regions[i] =
         MC_region_new(-1, mc_binary_info->start_rw, mappings[i], size_data_exe, ref_reg);
     }
-    snapshot->privatization_index = loaded_page;
+    snapshot->privatization_index = smpi_loaded_page;
     snapshot->regions[2] = NULL;
   } else
 #endif
@@ -669,7 +669,7 @@ void MC_restore_snapshot(mc_snapshot_t snapshot)
     }
   }
   if(snapshot->privatization_index >= 0) {
-    switch_data_segment(snapshot->privatization_index);
+    smpi_switch_data_segment(snapshot->privatization_index);
   }
 #endif
 
index 4dcd4f1..6010a59 100644 (file)
@@ -393,7 +393,7 @@ extern char* start_data_exe; //start of the data+bss segment of the executable
 extern int size_data_exe; //size of the data+bss segment of the executable
 
 
-void switch_data_segment(int);
+void smpi_switch_data_segment(int);
 void smpi_get_executable_global_size(void);
 void smpi_initialize_global_memory_segments(void);
 void smpi_destroy_global_memory_segments(void);
@@ -691,7 +691,7 @@ const char* encode_datatype(MPI_Datatype datatype);
 
 // TODO, make this static and expose it more cleanly
 extern void** mappings;
-extern int loaded_page;
+extern int smpi_loaded_page;
 
 int SIMIX_process_get_PID(smx_process_t self);
 
index 3ea6ac2..ccbd026 100644 (file)
@@ -401,7 +401,7 @@ void smpi_mpi_start(MPI_Request request)
              && ((char*)request->buf >= start_data_exe)
              && ((char*)request->buf < start_data_exe + size_data_exe )){
             XBT_DEBUG("Privatization : We are sending from a zone inside global memory. Switch data segment ");
-                   switch_data_segment(request->src);
+                   smpi_switch_data_segment(request->src);
          }
           buf = xbt_malloc(request->size);
           memcpy(buf,oldbuf,request->size);
@@ -650,7 +650,7 @@ static void finish_wait(MPI_Request * request, MPI_Status * status)
             && ((char*)req->old_buf < start_data_exe + size_data_exe )
         ){
             XBT_VERB("Privatization : We are unserializing to a zone in global memory - Switch data segment ");
-            switch_data_segment(smpi_process_index());
+            smpi_switch_data_segment(smpi_process_index());
         }
       }
 
index 4138cac..a7e06c0 100644 (file)
@@ -73,10 +73,9 @@ xbt_dict_t calls = NULL;           /* Allocated on first use */
 double smpi_cpu_threshold;
 double smpi_running_power;
 
-int* fds;
-size_t mappings_count = 0;
+static int* fds;
 void** mappings;
-int loaded_page = -1;
+int smpi_loaded_page = -1;
 char* start_data_exe = NULL;
 int size_data_exe = 0;
 int smpi_privatize_global_variables;
@@ -186,11 +185,11 @@ void smpi_execute(double duration)
   }
 }
 
-void switch_data_segment(int dest);
+void smpi_switch_data_segment(int dest);
 
 void smpi_bench_begin(void)
 {
-  switch_data_segment(smpi_process_index());
+  smpi_switch_data_segment(smpi_process_index());
   xbt_os_threadtimer_start(smpi_process_timer());
 }
 
@@ -198,7 +197,7 @@ void smpi_bench_end(void)
 {
   xbt_os_timer_t timer = smpi_process_timer();
   xbt_os_threadtimer_stop(timer);
-//  switch_data_segment(smpi_process_count());
+//  smpi_switch_data_segment(smpi_process_count());
   if (smpi_process_get_sampling()) {
     XBT_CRITICAL("Cannot do recursive benchmarks.");
     XBT_CRITICAL("Are you trying to make a call to MPI within a SMPI_SAMPLE_ block?");
@@ -505,7 +504,7 @@ void smpi_shared_free(void *ptr)
   shared_metadata_t* meta;
   shared_data_t* data;
   if (sg_cfg_get_boolean("smpi/use_shared_malloc")){
-  
+
     if (!allocs) {
       XBT_WARN("Cannot free: nothing was allocated");
       return;
@@ -603,17 +602,17 @@ void* smpi_shared_set_call(const char* func, const char* input, void* data) {
 
 
 
-void switch_data_segment(int dest){
+void smpi_switch_data_segment(int dest){
 
   if(size_data_exe == 0)//no need to switch
     return;
 
-  if (loaded_page==dest)//no need to switch either
+  if (smpi_loaded_page==dest)//no need to switch either
     return;
 
 #ifdef HAVE_MMAP
   int i;
-  if(loaded_page==-1){//initial switch, do the copy from the real page here
+  if(smpi_loaded_page==-1){//initial switch, do the copy from the real page here
     for (i=0; i< SIMIX_process_count(); i++){
       memcpy(mappings[i],TOPAGE(start_data_exe),size_data_exe);
     }
@@ -623,7 +622,7 @@ void switch_data_segment(int dest){
   void* tmp = mmap (TOPAGE(start_data_exe), size_data_exe, PROT_READ | PROT_WRITE, MAP_FIXED | MAP_SHARED, current, 0);
   if (tmp != TOPAGE(start_data_exe))
     xbt_die("Couldn't map the new region");
-  loaded_page=dest;
+  smpi_loaded_page=dest;
 #endif
 }
 
@@ -684,7 +683,7 @@ void smpi_get_executable_global_size(){
         found++;
       }else if(strcmp(lfields[1], ".bss") == 0){
         //the beginning of bss is not exactly the end of data if not aligned, grow bss reported size accordingly
-        //TODO : check if this is OK, as some segments may be inserted between them.. 
+        //TODO : check if this is OK, as some segments may be inserted between them..
         size_bss_binary = ((char*) strtoul(lfields[4], NULL, 16) - (start_data_exe + size_data_binary))
                           + strtoul(lfields[2], NULL, 16);
         found++;
@@ -777,4 +776,3 @@ void smpi_destroy_global_memory_segments(){
 #endif
 
 }
-
index 2b23e7c..d71c475 100644 (file)
@@ -277,7 +277,7 @@ void smpi_comm_init_smp(MPI_Comm comm){
   int comm_size =smpi_comm_size(comm);
 
   if(smpi_privatize_global_variables){ //we need to switch here, as the called function may silently touch global variables
-     switch_data_segment(smpi_process_index());
+     smpi_switch_data_segment(smpi_process_index());
    }
   //identify neighbours in comm
   //get the indexes of all processes sharing the same simix host
index f6ec03a..246772c 100644 (file)
@@ -109,7 +109,7 @@ void smpi_process_init(int *argc, char ***argv)
     XBT_DEBUG("<%d> New process in the game: %p", index, proc);
 
     if(smpi_privatize_global_variables){
-      switch_data_segment(index);
+      smpi_switch_data_segment(index);
     }
 
   }
@@ -121,7 +121,7 @@ void smpi_process_destroy(void)
 {
   int index = smpi_process_index();
   if(smpi_privatize_global_variables){
-    switch_data_segment(index);
+    smpi_switch_data_segment(index);
   }
   process_data[index_to_process_data[index]]->state = SMPI_FINALIZED;
   XBT_DEBUG("<%d> Process left the game", index);
@@ -328,7 +328,7 @@ void smpi_comm_copy_buffer_callback(smx_action_t comm,
       && ((char*)buff < start_data_exe + size_data_exe )
     ){
        XBT_DEBUG("Privatization : We are copying from a zone inside global memory... Saving data to temp buffer !");
-       switch_data_segment(((smpi_process_data_t)SIMIX_process_get_data(comm->comm.src_proc))->index);
+       smpi_switch_data_segment(((smpi_process_data_t)SIMIX_process_get_data(comm->comm.src_proc))->index);
        tmpbuff = (void*)xbt_malloc(buff_size);
        memcpy(tmpbuff, buff, buff_size);
   }
@@ -339,7 +339,7 @@ void smpi_comm_copy_buffer_callback(smx_action_t comm,
       && ((char*)comm->comm.dst_buff < start_data_exe + size_data_exe )
     ){
        XBT_DEBUG("Privatization : We are copying to a zone inside global memory - Switch data segment");
-       switch_data_segment(((smpi_process_data_t)SIMIX_process_get_data(comm->comm.dst_proc))->index);
+       smpi_switch_data_segment(((smpi_process_data_t)SIMIX_process_get_data(comm->comm.dst_proc))->index);
   }
 
 
index 07bec7c..cd0f586 100644 (file)
@@ -213,7 +213,7 @@ int smpi_datatype_copy(void *sendbuf, int sendcount, MPI_Datatype sendtype,
 {
   int count;
   if(smpi_privatize_global_variables){
-    switch_data_segment(smpi_process_index());
+    smpi_switch_data_segment(smpi_process_index());
   }
   /* First check if we really have something to do */
   if (recvcount > 0 && recvbuf != sendbuf) {
@@ -1617,7 +1617,7 @@ void smpi_op_apply(MPI_Op op, void *invec, void *inoutvec, int *len,
 {
   if(smpi_privatize_global_variables){ //we need to switch here, as the called function may silently touch global variables
     XBT_VERB("Applying operation, switch to the right data frame ");
-    switch_data_segment(smpi_process_index());
+    smpi_switch_data_segment(smpi_process_index());
   }
 
   if(!_xbt_replay_is_active())