Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
more simplifications and try to fix build
authorFrederic Suter <frederic.suter@cc.in2p3.fr>
Wed, 18 Oct 2017 12:01:21 +0000 (14:01 +0200)
committerFrederic Suter <frederic.suter@cc.in2p3.fr>
Wed, 18 Oct 2017 12:01:21 +0000 (14:01 +0200)
src/instr/instr_smpi.hpp
src/msg/instr_msg_process.cpp
src/msg/instr_msg_task.cpp
src/msg/msg_private.hpp
src/smpi/internals/instr_smpi.cpp

index d0bb710..8d9c3dd 100644 (file)
@@ -10,6 +10,8 @@
 #include "src/instr/instr_private.hpp"
 #include <string>
 
+XBT_PRIVATE std::string smpi_container(int rank);
+
 extern "C" {
 
 XBT_PRIVATE void TRACE_internal_smpi_set_category(const char* category);
@@ -32,7 +34,6 @@ XBT_PRIVATE void TRACE_smpi_send(int rank, int src, int dst, int tag, int size);
 XBT_PRIVATE void TRACE_smpi_recv(int src, int dst, int tag);
 XBT_PRIVATE void TRACE_smpi_init(int rank);
 XBT_PRIVATE void TRACE_smpi_finalize(int rank);
-XBT_PRIVATE std::string smpi_container(int rank);
 
 XBT_PRIVATE const char* encode_datatype(MPI_Datatype datatype, int* known);
 
index fbffce2..6547e1d 100644 (file)
 
 XBT_LOG_NEW_DEFAULT_SUBCATEGORY (instr_msg_process, instr, "MSG process");
 
-char *instr_process_id (msg_process_t proc, char *str, int len)
+std::string instr_process_id(msg_process_t proc)
 {
-  return instr_process_id_2(proc->getCname(), proc->getPid(), str, len);
+  return proc->getName() + "-" + std::to_string(proc->getPid());
 }
 
-char *instr_process_id_2 (const char *process_name, int process_pid, char *str, int len)
-{
-  snprintf (str, len, "%s-%d", process_name, process_pid);
-  return str;
-}
-
-/*
- * Instrumentation functions to trace MSG processes (msg_process_t)
- */
 void TRACE_msg_process_change_host(msg_process_t process, msg_host_t new_host)
 {
   if (TRACE_msg_process_is_enabled()){
     static long long int counter = 0;
 
-    char key[INSTR_DEFAULT_STR_SIZE];
-    snprintf (key, INSTR_DEFAULT_STR_SIZE, "%lld", counter++);
-
-    int len = INSTR_DEFAULT_STR_SIZE;
-    char str[INSTR_DEFAULT_STR_SIZE];
+    std::string key = std::to_string(counter++);
 
     //start link
-    container_t msg            = simgrid::instr::Container::byName(instr_process_id(process, str, len));
+    container_t msg            = simgrid::instr::Container::byName(instr_process_id(process));
     simgrid::instr::Type* type = simgrid::instr::Type::getRootType()->byName("MSG_PROCESS_LINK");
     new simgrid::instr::StartLinkEvent(MSG_get_clock(), PJ_container_get_root(), type, msg, "M", key);
 
@@ -47,7 +34,7 @@ void TRACE_msg_process_change_host(msg_process_t process, msg_host_t new_host)
     TRACE_msg_process_create (MSG_process_get_name (process), MSG_process_get_PID (process), new_host);
 
     //end link
-    msg  = simgrid::instr::Container::byName(instr_process_id(process, str, len));
+    msg  = simgrid::instr::Container::byName(instr_process_id(process));
     type = simgrid::instr::Type::getRootType()->byName("MSG_PROCESS_LINK");
     new simgrid::instr::EndLinkEvent(MSG_get_clock(), PJ_container_get_root(), type, msg, "M", key);
   }
@@ -56,11 +43,8 @@ void TRACE_msg_process_change_host(msg_process_t process, msg_host_t new_host)
 void TRACE_msg_process_create (const char *process_name, int process_pid, msg_host_t host)
 {
   if (TRACE_msg_process_is_enabled()){
-    int len = INSTR_DEFAULT_STR_SIZE;
-    char str[INSTR_DEFAULT_STR_SIZE];
-
     container_t host_container = simgrid::instr::Container::byName(host->getName());
-    new simgrid::instr::Container(instr_process_id_2(process_name, process_pid, str, len),
+    new simgrid::instr::Container(std::string(process_name) + "-" + std::to_string(process_pid),
                                   simgrid::instr::INSTR_MSG_PROCESS, host_container);
   }
 }
@@ -68,11 +52,8 @@ void TRACE_msg_process_create (const char *process_name, int process_pid, msg_ho
 void TRACE_msg_process_destroy (const char *process_name, int process_pid)
 {
   if (TRACE_msg_process_is_enabled()) {
-    int len = INSTR_DEFAULT_STR_SIZE;
-    char str[INSTR_DEFAULT_STR_SIZE];
-
     container_t process =
-        simgrid::instr::Container::byNameOrNull(instr_process_id_2(process_name, process_pid, str, len));
+        simgrid::instr::Container::byNameOrNull(std::string(process_name) + "-" + std::to_string(process_pid));
     if (process) {
       process->removeFromParent();
       delete process;
@@ -82,7 +63,7 @@ void TRACE_msg_process_destroy (const char *process_name, int process_pid)
 
 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_msg_process_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());
   }
@@ -91,10 +72,7 @@ void TRACE_msg_process_kill(smx_process_exit_status_t status, msg_process_t proc
 void TRACE_msg_process_suspend(msg_process_t process)
 {
   if (TRACE_msg_process_is_enabled()){
-    int len = INSTR_DEFAULT_STR_SIZE;
-    char str[INSTR_DEFAULT_STR_SIZE];
-
-    container_t process_container = simgrid::instr::Container::byName(instr_process_id(process, str, len));
+    container_t process_container = simgrid::instr::Container::byName(instr_process_id(process));
     simgrid::instr::Type* state   = process_container->type_->byName("MSG_PROCESS_STATE");
     simgrid::instr::Value* val    = state->getEntityValue("suspend");
     new simgrid::instr::PushStateEvent(MSG_get_clock(), process_container, state, val);
@@ -104,10 +82,7 @@ void TRACE_msg_process_suspend(msg_process_t process)
 void TRACE_msg_process_resume(msg_process_t process)
 {
   if (TRACE_msg_process_is_enabled()){
-    int len = INSTR_DEFAULT_STR_SIZE;
-    char str[INSTR_DEFAULT_STR_SIZE];
-
-    container_t process_container = simgrid::instr::Container::byName(instr_process_id(process, str, len));
+    container_t process_container = simgrid::instr::Container::byName(instr_process_id(process));
     simgrid::instr::Type* type    = process_container->type_->byName("MSG_PROCESS_STATE");
     new simgrid::instr::PopStateEvent(MSG_get_clock(), process_container, type);
   }
@@ -116,10 +91,7 @@ void TRACE_msg_process_resume(msg_process_t process)
 void TRACE_msg_process_sleep_in(msg_process_t process)
 {
   if (TRACE_msg_process_is_enabled()){
-    int len = INSTR_DEFAULT_STR_SIZE;
-    char str[INSTR_DEFAULT_STR_SIZE];
-
-    container_t process_container = simgrid::instr::Container::byName(instr_process_id(process, str, len));
+    container_t process_container = simgrid::instr::Container::byName(instr_process_id(process));
     simgrid::instr::Type* state   = process_container->type_->byName("MSG_PROCESS_STATE");
     simgrid::instr::Value* val    = state->getEntityValue("sleep");
     new simgrid::instr::PushStateEvent(MSG_get_clock(), process_container, state, val);
@@ -129,10 +101,7 @@ void TRACE_msg_process_sleep_in(msg_process_t process)
 void TRACE_msg_process_sleep_out(msg_process_t process)
 {
   if (TRACE_msg_process_is_enabled()){
-    int len = INSTR_DEFAULT_STR_SIZE;
-    char str[INSTR_DEFAULT_STR_SIZE];
-
-    container_t process_container = simgrid::instr::Container::byName(instr_process_id(process, str, len));
+    container_t process_container = simgrid::instr::Container::byName(instr_process_id(process));
     simgrid::instr::Type* type    = process_container->type_->byName("MSG_PROCESS_STATE");
     new simgrid::instr::PopStateEvent(MSG_get_clock(), process_container, type);
   }
index 633e041..d3a8972 100644 (file)
@@ -49,10 +49,7 @@ void TRACE_msg_task_execute_start(msg_task_t task)
   XBT_DEBUG("EXEC,in %p, %lld, %s", task, task->counter, task->category);
 
   if (TRACE_msg_process_is_enabled()){
-    int len = INSTR_DEFAULT_STR_SIZE;
-    char str[INSTR_DEFAULT_STR_SIZE];
-
-    container_t process_container = simgrid::instr::Container::byName(instr_process_id(MSG_process_self(), str, len));
+    container_t process_container = simgrid::instr::Container::byName(instr_process_id(MSG_process_self()));
     simgrid::instr::Type* state   = process_container->type_->byName("MSG_PROCESS_STATE");
     simgrid::instr::Value* val    = state->getEntityValue("task_execute");
     new simgrid::instr::PushStateEvent(MSG_get_clock(), process_container, state, val);
@@ -64,10 +61,7 @@ void TRACE_msg_task_execute_end(msg_task_t task)
   XBT_DEBUG("EXEC,out %p, %lld, %s", task, task->counter, task->category);
 
   if (TRACE_msg_process_is_enabled()){
-    int len = INSTR_DEFAULT_STR_SIZE;
-    char str[INSTR_DEFAULT_STR_SIZE];
-
-    container_t process_container = simgrid::instr::Container::byName(instr_process_id(MSG_process_self(), str, len));
+    container_t process_container = simgrid::instr::Container::byName(instr_process_id(MSG_process_self()));
     simgrid::instr::Type* type    = process_container->type_->byName("MSG_PROCESS_STATE");
     new simgrid::instr::PopStateEvent(MSG_get_clock(), process_container, type);
   }
@@ -89,10 +83,7 @@ void TRACE_msg_task_get_start()
   XBT_DEBUG("GET,in");
 
   if (TRACE_msg_process_is_enabled()){
-    int len = INSTR_DEFAULT_STR_SIZE;
-    char str[INSTR_DEFAULT_STR_SIZE];
-
-    container_t process_container = simgrid::instr::Container::byName(instr_process_id(MSG_process_self(), str, len));
+    container_t process_container = simgrid::instr::Container::byName(instr_process_id(MSG_process_self()));
     simgrid::instr::Type* state   = process_container->type_->byName("MSG_PROCESS_STATE");
     simgrid::instr::Value* val    = state->getEntityValue("receive");
     new simgrid::instr::PushStateEvent(MSG_get_clock(), process_container, state, val);
@@ -104,10 +95,7 @@ void TRACE_msg_task_get_end(double start_time, msg_task_t task)
   XBT_DEBUG("GET,out %p, %lld, %s", task, task->counter, task->category);
 
   if (TRACE_msg_process_is_enabled()){
-    int len = INSTR_DEFAULT_STR_SIZE;
-    char str[INSTR_DEFAULT_STR_SIZE];
-
-    container_t process_container = simgrid::instr::Container::byName(instr_process_id(MSG_process_self(), str, len));
+    container_t process_container = simgrid::instr::Container::byName(instr_process_id(MSG_process_self()));
     simgrid::instr::Type* type    = process_container->type_->byName("MSG_PROCESS_STATE");
     new simgrid::instr::PopStateEvent(MSG_get_clock(), process_container, type);
 
@@ -124,10 +112,7 @@ int TRACE_msg_task_put_start(msg_task_t task)
   XBT_DEBUG("PUT,in %p, %lld, %s", task, task->counter, task->category);
 
   if (TRACE_msg_process_is_enabled()){
-    int len = INSTR_DEFAULT_STR_SIZE;
-    char str[INSTR_DEFAULT_STR_SIZE];
-
-    container_t process_container = simgrid::instr::Container::byName(instr_process_id(MSG_process_self(), str, len));
+    container_t process_container = simgrid::instr::Container::byName(instr_process_id(MSG_process_self()));
     simgrid::instr::Type* type    = process_container->type_->byName("MSG_PROCESS_STATE");
     simgrid::instr::Value* val    = type->getEntityValue("send");
     new simgrid::instr::PushStateEvent(MSG_get_clock(), process_container, type, val);
@@ -146,10 +131,7 @@ void TRACE_msg_task_put_end()
   XBT_DEBUG("PUT,out");
 
   if (TRACE_msg_process_is_enabled()){
-    int len = INSTR_DEFAULT_STR_SIZE;
-    char str[INSTR_DEFAULT_STR_SIZE];
-
-    container_t process_container = simgrid::instr::Container::byName(instr_process_id(MSG_process_self(), str, len));
+    container_t process_container = simgrid::instr::Container::byName(instr_process_id(MSG_process_self()));
     simgrid::instr::Type* type    = process_container->type_->byName("MSG_PROCESS_STATE");
     new simgrid::instr::PopStateEvent(MSG_get_clock(), process_container, type);
   }
index 094dd62..7a85a48 100644 (file)
@@ -121,8 +121,7 @@ XBT_PRIVATE int TRACE_msg_task_put_start(msg_task_t task); // returns TRUE if th
 XBT_PRIVATE void TRACE_msg_task_put_end();
 
 /* declaration of instrumentation functions from msg_process_instr.c */
-XBT_PRIVATE char* instr_process_id(msg_process_t proc, char* str, int len);
-XBT_PRIVATE char* instr_process_id_2(const char* process_name, int process_pid, char* str, int len);
+XBT_PRIVATE std::string instr_process_id(msg_process_t proc);
 XBT_PRIVATE void TRACE_msg_process_change_host(msg_process_t process, msg_host_t new_host);
 XBT_PRIVATE void TRACE_msg_process_create(const char* process_name, int process_pid, msg_host_t host);
 XBT_PRIVATE void TRACE_msg_process_destroy(const char* process_name, int process_pid);
index e4d371f..f7f9057 100644 (file)
@@ -69,8 +69,8 @@ static const char* instr_find_color(const char* state)
   unsigned int i      = 0;
   const char* current = smpi_colors[i];
   while (current != nullptr) {
-    if (state == current                // exact match
-        || target.find(current) != 0) { // as substring
+    if (target == current                          // exact match
+        || strstr(target.c_str(), current) != 0) { // as substring
       ret = smpi_colors[i + 1];
       break;
     }