simcall_set_category (action, TRACE_internal_smpi_get_category());
#endif
simcall_host_execution_wait(action);
+ smpi_switch_data_segment(smpi_process_index());
}
void smpi_execute(double duration)
memcpy(smpi_privatisation_regions[i].address,TOPAGE(start_data_exe),size_data_exe);
}
}
+
int current = smpi_privatisation_regions[dest].file_descriptor;
- XBT_VERB("Switching data frame to the one of process %d", dest);
+ XBT_DEBUG("Switching data frame to the one of process %d", 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");
}
smpi_privatisation_regions = (smpi_privatisation_region_t) malloc(
- sizeof(struct s_smpi_privatisation_region) * sizeof(int));
+ smpi_process_count() * sizeof(struct s_smpi_privatisation_region));
for (i=0; i< SIMIX_process_count(); i++){
//create SIMIX_process_count() mappings of this size with the same data inside