#ifndef SMPI_PRIVATE_HPP
#define SMPI_PRIVATE_HPP
-#include "include/xbt/config.hpp"
#include "simgrid/msg.h" // msg_bar_t
#include "smpi/smpi.h"
#include "src/instr/instr_smpi.hpp"
XBT_PUBLIC smpi_trace_call_location_t* smpi_trace_get_call_location();
}
- enum smpi_priv_strategies {
- SMPI_PRIVATIZE_NONE = 0,
- SMPI_PRIVATIZE_MMAP = 1,
- SMPI_PRIVATIZE_DLOPEN = 2,
- SMPI_PRIVATIZE_DEFAULT = SMPI_PRIVATIZE_DLOPEN
- };
+ enum class SmpiPrivStrategies { None = 0, Mmap = 1, Dlopen = 2, Default = Dlopen };
- extern XBT_PRIVATE int smpi_privatize_global_variables;
+ extern XBT_PRIVATE SmpiPrivStrategies smpi_privatize_global_variables;
#endif
#include "src/internal_config.h"
#include "src/mc/mc_replay.hpp"
#include "src/simix/ActorImpl.hpp"
+#include "xbt/config.hpp"
+
#include <unordered_map>
#ifndef WIN32
void smpi_bench_begin()
{
- if (smpi_privatize_global_variables == SMPI_PRIVATIZE_MMAP) {
+ if (smpi_privatize_global_variables == SmpiPrivStrategies::Mmap) {
smpi_switch_data_segment(simgrid::s4u::Actor::self());
}
#include "src/kernel/activity/CommImpl.hpp"
#include "src/mc/mc_replay.hpp"
#include "src/simix/ActorImpl.hpp"
+#include "xbt/config.hpp"
#include <algorithm>
if (not(old_type_->flags() & DT_FLAG_DERIVED)) {
oldbuf = buf_;
if (not process->replaying() && oldbuf != nullptr && size_ != 0) {
- if ((smpi_privatize_global_variables != 0) && (static_cast<char*>(buf_) >= smpi_data_exe_start) &&
+ if ((smpi_privatize_global_variables != SmpiPrivStrategies::None) &&
+ (static_cast<char*>(buf_) >= smpi_data_exe_start) &&
(static_cast<char*>(buf_) < smpi_data_exe_start + smpi_data_exe_size)) {
XBT_DEBUG("Privatization : We are sending from a zone inside global memory. Switch data segment ");
smpi_switch_data_segment(simgrid::s4u::Actor::byPid(src_));
if (((req->flags_ & ACCUMULATE) != 0) ||
(datatype->flags() & DT_FLAG_DERIVED)) { // && (not smpi_is_shared(req->old_buf_))){
- if (not smpi_process()->replaying() && smpi_privatize_global_variables != 0 &&
+ if (not smpi_process()->replaying() && smpi_privatize_global_variables != SmpiPrivStrategies::None &&
static_cast<char*>(req->old_buf_) >= smpi_data_exe_start &&
static_cast<char*>(req->old_buf_) < smpi_data_exe_start + smpi_data_exe_size) {
XBT_VERB("Privatization : We are unserializing to a zone in global memory Switch data segment ");