Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
messing around MSG
authorFrederic Suter <frederic.suter@cc.in2p3.fr>
Tue, 23 Jan 2018 08:45:19 +0000 (09:45 +0100)
committerFrederic Suter <frederic.suter@cc.in2p3.fr>
Tue, 23 Jan 2018 08:45:19 +0000 (09:45 +0100)
src/instr/instr_config.cpp
src/instr/instr_private.hpp
src/msg/instr_msg_process.cpp
src/msg/instr_msg_task.cpp
src/msg/msg_gos.cpp
src/msg/msg_mailbox.cpp
src/msg/msg_private.hpp
src/msg/msg_process.cpp
src/s4u/s4u_actor.cpp
src/surf/instr_routing.cpp

index b2623ae..c0404f0 100644 (file)
@@ -48,7 +48,7 @@ static bool trace_smpi_sleeping;
 static bool trace_view_internals;
 static bool trace_categorized;
 static bool trace_uncategorized;
 static bool trace_view_internals;
 static bool trace_categorized;
 static bool trace_uncategorized;
-static bool trace_msg_process_enabled;
+static bool trace_actor_enabled;
 static bool trace_msg_vm_enabled;
 static bool trace_buffer;
 static bool trace_onelink_only;
 static bool trace_msg_vm_enabled;
 static bool trace_buffer;
 static bool trace_onelink_only;
@@ -76,7 +76,7 @@ static void TRACE_getopts()
   trace_view_internals      = xbt_cfg_get_boolean(OPT_TRACING_SMPI_INTERNALS);
   trace_categorized         = xbt_cfg_get_boolean(OPT_TRACING_CATEGORIZED);
   trace_uncategorized       = xbt_cfg_get_boolean(OPT_TRACING_UNCATEGORIZED);
   trace_view_internals      = xbt_cfg_get_boolean(OPT_TRACING_SMPI_INTERNALS);
   trace_categorized         = xbt_cfg_get_boolean(OPT_TRACING_CATEGORIZED);
   trace_uncategorized       = xbt_cfg_get_boolean(OPT_TRACING_UNCATEGORIZED);
-  trace_msg_process_enabled = xbt_cfg_get_boolean(OPT_TRACING_MSG_PROCESS);
+  trace_actor_enabled       = trace_enabled && xbt_cfg_get_boolean(OPT_TRACING_MSG_PROCESS);
   trace_msg_vm_enabled      = xbt_cfg_get_boolean(OPT_TRACING_MSG_VM);
   trace_buffer              = xbt_cfg_get_boolean(OPT_TRACING_BUFFER);
   trace_onelink_only        = xbt_cfg_get_boolean(OPT_TRACING_ONELINK_ONLY);
   trace_msg_vm_enabled      = xbt_cfg_get_boolean(OPT_TRACING_MSG_VM);
   trace_buffer              = xbt_cfg_get_boolean(OPT_TRACING_BUFFER);
   trace_onelink_only        = xbt_cfg_get_boolean(OPT_TRACING_ONELINK_ONLY);
@@ -161,8 +161,8 @@ int TRACE_end()
 
 bool TRACE_needs_platform ()
 {
 
 bool TRACE_needs_platform ()
 {
-  return TRACE_msg_process_is_enabled() || TRACE_msg_vm_is_enabled() || TRACE_categorized() ||
-         TRACE_uncategorized() || TRACE_platform () || (TRACE_smpi_is_enabled() && TRACE_smpi_is_grouped());
+  return TRACE_actor_is_enabled() || TRACE_msg_vm_is_enabled() || TRACE_categorized() || TRACE_uncategorized() ||
+         TRACE_platform() || (TRACE_smpi_is_enabled() && TRACE_smpi_is_grouped());
 }
 
 bool TRACE_is_enabled()
 }
 
 bool TRACE_is_enabled()
@@ -220,9 +220,9 @@ bool TRACE_uncategorized ()
   return trace_uncategorized;
 }
 
   return trace_uncategorized;
 }
 
-bool TRACE_msg_process_is_enabled()
+bool TRACE_actor_is_enabled()
 {
 {
-  return trace_msg_process_enabled && TRACE_is_enabled();
+  return trace_actor_enabled;
 }
 
 bool TRACE_msg_vm_is_enabled()
 }
 
 bool TRACE_msg_vm_is_enabled()
index 263d4f4..47d8eda 100644 (file)
@@ -184,6 +184,7 @@ extern XBT_PRIVATE std::set<std::string> user_host_variables;
 extern XBT_PRIVATE std::set<std::string> user_vm_variables;
 extern XBT_PRIVATE std::set<std::string> user_link_variables;
 extern XBT_PRIVATE double TRACE_last_timestamp_to_dump;
 extern XBT_PRIVATE std::set<std::string> user_vm_variables;
 extern XBT_PRIVATE std::set<std::string> user_link_variables;
 extern XBT_PRIVATE double TRACE_last_timestamp_to_dump;
+XBT_PRIVATE std::string instr_pid(s4u_Actor* proc);
 
 /* instr_paje_header.c */
 XBT_PRIVATE void TRACE_header(bool basic, int size);
 
 /* instr_paje_header.c */
 XBT_PRIVATE void TRACE_header(bool basic, int size);
@@ -200,7 +201,7 @@ XBT_PRIVATE bool TRACE_platform_topology();
 XBT_PRIVATE bool TRACE_is_configured();
 XBT_PRIVATE bool TRACE_categorized();
 XBT_PRIVATE bool TRACE_uncategorized();
 XBT_PRIVATE bool TRACE_is_configured();
 XBT_PRIVATE bool TRACE_categorized();
 XBT_PRIVATE bool TRACE_uncategorized();
-XBT_PRIVATE bool TRACE_msg_process_is_enabled();
+XBT_PRIVATE bool TRACE_actor_is_enabled();
 XBT_PRIVATE bool TRACE_msg_vm_is_enabled();
 XBT_PRIVATE bool TRACE_buffer();
 XBT_PRIVATE bool TRACE_disable_link();
 XBT_PRIVATE bool TRACE_msg_vm_is_enabled();
 XBT_PRIVATE bool TRACE_buffer();
 XBT_PRIVATE bool TRACE_disable_link();
index a596982..61bba1d 100644 (file)
@@ -17,7 +17,7 @@ std::string instr_pid(msg_process_t proc)
 
 void TRACE_msg_process_change_host(msg_process_t process, msg_host_t new_host)
 {
 
 void TRACE_msg_process_change_host(msg_process_t process, msg_host_t new_host)
 {
-  if (TRACE_msg_process_is_enabled()){
+  if (TRACE_actor_is_enabled()) {
     static long long int counter = 0;
 
     std::string key = std::to_string(counter);
     static long long int counter = 0;
 
     std::string key = std::to_string(counter);
@@ -42,7 +42,7 @@ void TRACE_msg_process_change_host(msg_process_t process, msg_host_t new_host)
 
 void TRACE_msg_process_create(std::string process_name, int process_pid, msg_host_t host)
 {
 
 void TRACE_msg_process_create(std::string process_name, int process_pid, msg_host_t host)
 {
-  if (TRACE_msg_process_is_enabled()){
+  if (TRACE_actor_is_enabled()) {
     container_t host_container = simgrid::instr::Container::byName(host->getName());
     new simgrid::instr::Container(process_name + "-" + std::to_string(process_pid), "MSG_PROCESS", host_container);
   }
     container_t host_container = simgrid::instr::Container::byName(host->getName());
     new simgrid::instr::Container(process_name + "-" + std::to_string(process_pid), "MSG_PROCESS", host_container);
   }
@@ -50,7 +50,7 @@ void TRACE_msg_process_create(std::string process_name, int process_pid, msg_hos
 
 void TRACE_msg_process_destroy(std::string process_name, int process_pid)
 {
 
 void TRACE_msg_process_destroy(std::string process_name, int process_pid)
 {
-  if (TRACE_msg_process_is_enabled()) {
+  if (TRACE_actor_is_enabled()) {
     container_t process = simgrid::instr::Container::byNameOrNull(process_name + "-" + std::to_string(process_pid));
     if (process) {
       process->removeFromParent();
     container_t process = simgrid::instr::Container::byNameOrNull(process_name + "-" + std::to_string(process_pid));
     if (process) {
       process->removeFromParent();
@@ -61,32 +61,8 @@ void TRACE_msg_process_destroy(std::string process_name, int process_pid)
 
 void TRACE_msg_process_kill(smx_process_exit_status_t status, msg_process_t process)
 {
 
 void TRACE_msg_process_kill(smx_process_exit_status_t status, msg_process_t process)
 {
-  if (TRACE_msg_process_is_enabled() && status == SMX_EXIT_FAILURE) {
+  if (TRACE_actor_is_enabled() && status == SMX_EXIT_FAILURE) {
     //kill means that this process no longer exists, let's destroy it
     TRACE_msg_process_destroy(process->getCname(), process->getPid());
   }
 }
     //kill means that this process no longer exists, let's destroy it
     TRACE_msg_process_destroy(process->getCname(), process->getPid());
   }
 }
-
-void TRACE_msg_process_suspend(msg_process_t process)
-{
-  if (TRACE_msg_process_is_enabled())
-    simgrid::instr::Container::byName(instr_pid(process))->getState("MSG_PROCESS_STATE")->pushEvent("suspend");
-}
-
-void TRACE_msg_process_resume(msg_process_t process)
-{
-  if (TRACE_msg_process_is_enabled())
-    simgrid::instr::Container::byName(instr_pid(process))->getState("MSG_PROCESS_STATE")->popEvent();
-}
-
-void TRACE_msg_process_sleep_in(msg_process_t process)
-{
-  if (TRACE_msg_process_is_enabled())
-    simgrid::instr::Container::byName(instr_pid(process))->getState("MSG_PROCESS_STATE")->pushEvent("sleep");
-}
-
-void TRACE_msg_process_sleep_out(msg_process_t process)
-{
-  if (TRACE_msg_process_is_enabled())
-    simgrid::instr::Container::byName(instr_pid(process))->getState("MSG_PROCESS_STATE")->popEvent();
-}
index 93d6fc8..6c0d673 100644 (file)
@@ -48,7 +48,7 @@ void TRACE_msg_task_execute_start(msg_task_t task)
 {
   XBT_DEBUG("EXEC,in %p, %lld, %s", task, task->counter, task->category);
 
 {
   XBT_DEBUG("EXEC,in %p, %lld, %s", task, task->counter, task->category);
 
-  if (TRACE_msg_process_is_enabled())
+  if (TRACE_actor_is_enabled())
     simgrid::instr::Container::byName(instr_pid(MSG_process_self()))
         ->getState("MSG_PROCESS_STATE")
         ->pushEvent("task_execute");
     simgrid::instr::Container::byName(instr_pid(MSG_process_self()))
         ->getState("MSG_PROCESS_STATE")
         ->pushEvent("task_execute");
@@ -58,7 +58,7 @@ void TRACE_msg_task_execute_end(msg_task_t task)
 {
   XBT_DEBUG("EXEC,out %p, %lld, %s", task, task->counter, task->category);
 
 {
   XBT_DEBUG("EXEC,out %p, %lld, %s", task, task->counter, task->category);
 
-  if (TRACE_msg_process_is_enabled())
+  if (TRACE_actor_is_enabled())
     simgrid::instr::Container::byName(instr_pid(MSG_process_self()))->getState("MSG_PROCESS_STATE")->popEvent();
 }
 
     simgrid::instr::Container::byName(instr_pid(MSG_process_self()))->getState("MSG_PROCESS_STATE")->popEvent();
 }
 
@@ -77,7 +77,7 @@ void TRACE_msg_task_get_start()
 {
   XBT_DEBUG("GET,in");
 
 {
   XBT_DEBUG("GET,in");
 
-  if (TRACE_msg_process_is_enabled())
+  if (TRACE_actor_is_enabled())
     simgrid::instr::Container::byName(instr_pid(MSG_process_self()))
         ->getState("MSG_PROCESS_STATE")
         ->pushEvent("receive");
     simgrid::instr::Container::byName(instr_pid(MSG_process_self()))
         ->getState("MSG_PROCESS_STATE")
         ->pushEvent("receive");
@@ -87,7 +87,7 @@ void TRACE_msg_task_get_end(msg_task_t task)
 {
   XBT_DEBUG("GET,out %p, %lld, %s", task, task->counter, task->category);
 
 {
   XBT_DEBUG("GET,out %p, %lld, %s", task, task->counter, task->category);
 
-  if (TRACE_msg_process_is_enabled()){
+  if (TRACE_actor_is_enabled()) {
     container_t process_container = simgrid::instr::Container::byName(instr_pid(MSG_process_self()));
     process_container->getState("MSG_PROCESS_STATE")->popEvent();
 
     container_t process_container = simgrid::instr::Container::byName(instr_pid(MSG_process_self()));
     process_container->getState("MSG_PROCESS_STATE")->popEvent();
 
@@ -101,7 +101,7 @@ int TRACE_msg_task_put_start(msg_task_t task)
 {
   XBT_DEBUG("PUT,in %p, %lld, %s", task, task->counter, task->category);
 
 {
   XBT_DEBUG("PUT,in %p, %lld, %s", task, task->counter, task->category);
 
-  if (TRACE_msg_process_is_enabled()){
+  if (TRACE_actor_is_enabled()) {
     container_t process_container = simgrid::instr::Container::byName(instr_pid(MSG_process_self()));
     process_container->getState("MSG_PROCESS_STATE")->pushEvent("send");
 
     container_t process_container = simgrid::instr::Container::byName(instr_pid(MSG_process_self()));
     process_container->getState("MSG_PROCESS_STATE")->pushEvent("send");
 
@@ -116,6 +116,6 @@ void TRACE_msg_task_put_end()
 {
   XBT_DEBUG("PUT,out");
 
 {
   XBT_DEBUG("PUT,out");
 
-  if (TRACE_msg_process_is_enabled())
+  if (TRACE_actor_is_enabled())
     simgrid::instr::Container::byName(instr_pid(MSG_process_self()))->getState("MSG_PROCESS_STATE")->popEvent();
 }
     simgrid::instr::Container::byName(instr_pid(MSG_process_self()))->getState("MSG_PROCESS_STATE")->popEvent();
 }
index 67c0742..b378e62 100644 (file)
@@ -113,7 +113,8 @@ msg_error_t MSG_process_sleep(double nb_sec)
 {
   msg_error_t status = MSG_OK;
 
 {
   msg_error_t status = MSG_OK;
 
-  TRACE_msg_process_sleep_in(MSG_process_self());
+  if (TRACE_actor_is_enabled())
+    simgrid::instr::Container::byName(instr_pid(MSG_process_self()))->getState("MSG_PROCESS_STATE")->pushEvent("sleep");
 
   try {
     simcall_process_sleep(nb_sec);
 
   try {
     simcall_process_sleep(nb_sec);
@@ -132,7 +133,9 @@ msg_error_t MSG_process_sleep(double nb_sec)
       throw;
   }
 
       throw;
   }
 
-  TRACE_msg_process_sleep_out(MSG_process_self());
+  if (TRACE_actor_is_enabled())
+    simgrid::instr::Container::byName(instr_pid(MSG_process_self()))->getState("MSG_PROCESS_STATE")->popEvent();
+
   return status;
 }
 
   return status;
 }
 
index 791e59d..b99055d 100644 (file)
@@ -22,8 +22,7 @@ extern "C" {
  * \param alias The name of the mailbox
  */
 void MSG_mailbox_set_async(const char *alias){
  * \param alias The name of the mailbox
  */
 void MSG_mailbox_set_async(const char *alias){
-  simgrid::s4u::MailboxPtr mailbox = simgrid::s4u::Mailbox::byName(alias);
-  mailbox->setReceiver(simgrid::s4u::Actor::self());
+  simgrid::s4u::Mailbox::byName(alias)->setReceiver(simgrid::s4u::Actor::self());
   XBT_VERB("%s mailbox set to receive eagerly for myself\n",alias);
 }
 }
   XBT_VERB("%s mailbox set to receive eagerly for myself\n",alias);
 }
 }
index 49328ac..cf12610 100644 (file)
@@ -84,7 +84,6 @@ struct s_MSG_Global_t {
 };
 typedef s_MSG_Global_t* MSG_Global_t;
 
 };
 typedef s_MSG_Global_t* MSG_Global_t;
 
-XBT_PRIVATE std::string instr_pid(msg_process_t proc);
 XBT_PRIVATE void TRACE_msg_process_create(std::string process_name, int process_pid, msg_host_t host);
 XBT_PRIVATE void TRACE_msg_process_destroy(std::string process_name, int process_pid);
 
 XBT_PRIVATE void TRACE_msg_process_create(std::string process_name, int process_pid, msg_host_t host);
 XBT_PRIVATE void TRACE_msg_process_destroy(std::string process_name, int process_pid);
 
@@ -114,10 +113,6 @@ XBT_PRIVATE void TRACE_msg_task_put_end();
 /* declaration of instrumentation functions from msg_process_instr.c */
 XBT_PRIVATE void TRACE_msg_process_change_host(msg_process_t process, msg_host_t new_host);
 XBT_PRIVATE void TRACE_msg_process_kill(smx_process_exit_status_t status, msg_process_t process);
 /* declaration of instrumentation functions from msg_process_instr.c */
 XBT_PRIVATE void TRACE_msg_process_change_host(msg_process_t process, msg_host_t new_host);
 XBT_PRIVATE void TRACE_msg_process_kill(smx_process_exit_status_t status, msg_process_t process);
-XBT_PRIVATE void TRACE_msg_process_suspend(msg_process_t process);
-XBT_PRIVATE void TRACE_msg_process_resume(msg_process_t process);
-XBT_PRIVATE void TRACE_msg_process_sleep_in(msg_process_t process); // called from msg/gos.c
-XBT_PRIVATE void TRACE_msg_process_sleep_out(msg_process_t process);
 }
 
 inline void s_simdata_task_t::setUsed()
 }
 
 inline void s_simdata_task_t::setUsed()
index 8af7ea5..29ac2fd 100644 (file)
@@ -214,7 +214,7 @@ void MSG_process_kill(msg_process_t process)
 * \param timeout wait until the process is over, or the timeout occurs
 */
 msg_error_t MSG_process_join(msg_process_t process, double timeout){
 * \param timeout wait until the process is over, or the timeout occurs
 */
 msg_error_t MSG_process_join(msg_process_t process, double timeout){
-  simcall_process_join(process->getImpl(), timeout);
+  process->join(timeout);
   return MSG_OK;
 }
 
   return MSG_OK;
 }
 
@@ -286,7 +286,7 @@ msg_host_t MSG_process_get_host(msg_process_t process)
   if (process == nullptr) {
     return SIMIX_process_self()->host;
   } else {
   if (process == nullptr) {
     return SIMIX_process_self()->host;
   } else {
-    return process->getImpl()->host;
+    return process->getHost();
   }
 }
 
   }
 }
 
@@ -327,7 +327,7 @@ int MSG_process_get_number()
  */
 msg_error_t MSG_process_set_kill_time(msg_process_t process, double kill_time)
 {
  */
 msg_error_t MSG_process_set_kill_time(msg_process_t process, double kill_time)
 {
-  simcall_process_set_kill_time(process->getImpl(), kill_time);
+  process->setKillTime(kill_time);
   return MSG_OK;
 }
 
   return MSG_OK;
 }
 
@@ -342,7 +342,7 @@ int MSG_process_get_PID(msg_process_t process)
    * and the exceptions, so it would be called back again and again */
   if (process == nullptr || process->getImpl() == nullptr)
     return 0;
    * and the exceptions, so it would be called back again and again */
   if (process == nullptr || process->getImpl() == nullptr)
     return 0;
-  return process->getImpl()->pid;
+  return process->getPid();
 }
 
 /** \ingroup m_process_management
 }
 
 /** \ingroup m_process_management
@@ -353,7 +353,7 @@ int MSG_process_get_PID(msg_process_t process)
  */
 int MSG_process_get_PPID(msg_process_t process)
 {
  */
 int MSG_process_get_PPID(msg_process_t process)
 {
-  return process->getImpl()->ppid;
+  return process->getPpid();
 }
 
 /** \ingroup m_process_management
 }
 
 /** \ingroup m_process_management
@@ -387,8 +387,7 @@ xbt_dict_t MSG_process_get_properties(msg_process_t process)
 {
   xbt_assert(process != nullptr, "Invalid parameter: First argument must not be nullptr");
   xbt_dict_t as_dict = xbt_dict_new_homogeneous(xbt_free_f);
 {
   xbt_assert(process != nullptr, "Invalid parameter: First argument must not be nullptr");
   xbt_dict_t as_dict = xbt_dict_new_homogeneous(xbt_free_f);
-  std::map<std::string, std::string>* props =
-      simgrid::simix::kernelImmediate([process] { return process->getImpl()->getProperties(); });
+  std::map<std::string, std::string>* props = process->getProperties();
   if (props == nullptr)
     return nullptr;
   for (auto const& elm : *props) {
   if (props == nullptr)
     return nullptr;
   for (auto const& elm : *props) {
@@ -444,9 +443,7 @@ msg_process_t MSG_process_self()
 msg_error_t MSG_process_suspend(msg_process_t process)
 {
   xbt_assert(process != nullptr, "Invalid parameter: First argument must not be nullptr");
 msg_error_t MSG_process_suspend(msg_process_t process)
 {
   xbt_assert(process != nullptr, "Invalid parameter: First argument must not be nullptr");
-
-  TRACE_msg_process_suspend(process);
-  simcall_process_suspend(process->getImpl());
+  process->suspend();
   return MSG_OK;
 }
 
   return MSG_OK;
 }
 
@@ -458,8 +455,6 @@ msg_error_t MSG_process_suspend(msg_process_t process)
 msg_error_t MSG_process_resume(msg_process_t process)
 {
   xbt_assert(process != nullptr, "Invalid parameter: First argument must not be nullptr");
 msg_error_t MSG_process_resume(msg_process_t process)
 {
   xbt_assert(process != nullptr, "Invalid parameter: First argument must not be nullptr");
-
-  TRACE_msg_process_resume(process);
   process->resume();
   return MSG_OK;
 }
   process->resume();
   return MSG_OK;
 }
index 8474559..c4c9f79 100644 (file)
@@ -130,12 +130,17 @@ aid_t Actor::getPpid()
 
 void Actor::suspend()
 {
 
 void Actor::suspend()
 {
+  if (TRACE_actor_is_enabled())
+    simgrid::instr::Container::byName(instr_pid(this))->getState("MSG_PROCESS_STATE")->pushEvent("suspend");
+
   simcall_process_suspend(pimpl_);
 }
 
 void Actor::resume()
 {
   simgrid::simix::kernelImmediate([this] { pimpl_->resume(); });
   simcall_process_suspend(pimpl_);
 }
 
 void Actor::resume()
 {
   simgrid::simix::kernelImmediate([this] { pimpl_->resume(); });
+  if (TRACE_actor_is_enabled())
+    simgrid::instr::Container::byName(instr_pid(this))->getState("MSG_PROCESS_STATE")->popEvent();
 }
 
 int Actor::isSuspended()
 }
 
 int Actor::isSuspended()
@@ -352,6 +357,10 @@ Host* getHost()
 
 void suspend()
 {
 
 void suspend()
 {
+  if (TRACE_actor_is_enabled())
+    instr::Container::byName(getName() + "-" + std::to_string(getPid()))
+        ->getState("MSG_PROCESS_STATE")
+        ->pushEvent("suspend");
   simcall_process_suspend(SIMIX_process_self());
 }
 
   simcall_process_suspend(SIMIX_process_self());
 }
 
@@ -359,6 +368,9 @@ void resume()
 {
   smx_actor_t process = SIMIX_process_self();
   simgrid::simix::kernelImmediate([process] { process->resume(); });
 {
   smx_actor_t process = SIMIX_process_self();
   simgrid::simix::kernelImmediate([process] { process->resume(); });
+
+  if (TRACE_actor_is_enabled())
+    instr::Container::byName(getName() + "-" + std::to_string(getPid()))->getState("MSG_PROCESS_STATE")->popEvent();
 }
 
 bool isSuspended()
 }
 
 bool isSuspended()
index 6a271cd..f6e9639 100644 (file)
@@ -223,7 +223,7 @@ static void sg_instr_new_host(simgrid::s4u::Host& host)
   if (TRACE_smpi_is_enabled() && TRACE_smpi_is_grouped())
     container->type_->getOrCreateContainerType("MPI")->getOrCreateStateType("MPI_STATE");
 
   if (TRACE_smpi_is_enabled() && TRACE_smpi_is_grouped())
     container->type_->getOrCreateContainerType("MPI")->getOrCreateStateType("MPI_STATE");
 
-  if (TRACE_msg_process_is_enabled()) {
+  if (TRACE_actor_is_enabled()) {
     simgrid::instr::ContainerType* msg_process = container->type_->getOrCreateContainerType("MSG_PROCESS");
     simgrid::instr::StateType* state           = msg_process->getOrCreateStateType("MSG_PROCESS_STATE");
     state->addEntityValue("suspend", "1 0 1");
     simgrid::instr::ContainerType* msg_process = container->type_->getOrCreateContainerType("MSG_PROCESS");
     simgrid::instr::StateType* state           = msg_process->getOrCreateStateType("MSG_PROCESS_STATE");
     state->addEntityValue("suspend", "1 0 1");