Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
SMPI: add option to inject a barrier before every collective call, to allow better...
[simgrid.git] / src / smpi / internals / smpi_config.cpp
index 0f2b3a9..2a0ec18 100644 (file)
@@ -3,16 +3,18 @@
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
-#ifdef _GNU_SOURCE
+#if defined(_GNU_SOURCE)
   #define DEFINED_GNUSOURCE 1
 #else
   #define _GNU_SOURCE
 #endif
 
-#include <features.h>
+#if defined(__linux__)
+  #include <features.h>
 //inspired by https://stackoverflow.com/a/70211227
-#if defined(__linux__) and not defined(__USE_GNU)
-  #define __MUSL__
+  #if not defined(__USE_GNU)
+    #define __MUSL__
+  #endif
 #endif
 
 #ifndef DEFINED_GNUSOURCE
@@ -150,6 +152,9 @@ simgrid::config::Flag<int> _smpi_cfg_list_leaks("smpi/list-leaks",
                                                 "Whether we should display the n first MPI handle leaks (addresses and type only) after simulation",
                                                 -1);
 
+simgrid::config::Flag<bool> _smpi_cfg_colls_inject_barrier{
+  "smpi/colls-inject-barrier", "Inject a barrier in each colllective operation, to detect some deadlocks in incorrect MPI codes, which may not be triggered in all cases", false };
+
 double smpi_cfg_host_speed(){
   return _smpi_cfg_host_speed;
 }