Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
[trace] arrows to indicate msg process migration
authorschnorr <schnorr@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Mon, 13 Dec 2010 16:45:33 +0000 (16:45 +0000)
committerschnorr <schnorr@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Mon, 13 Dec 2010 16:45:33 +0000 (16:45 +0000)
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@9219 48e7efb5-ca39-0410-a469-dd3cf9ba447f

src/instr/instr_msg_process.c
src/instr/instr_routing.c

index 9ca7ff1..3a78475 100644 (file)
@@ -61,13 +61,27 @@ void TRACE_msg_process_change_host(m_process_t process, m_host_t old_host, m_hos
       TRACE_msg_process_is_enabled() &&
       process->category)) return;
 
       TRACE_msg_process_is_enabled() &&
       process->category)) return;
 
+  static long long int counter = 0;
+  char key[INSTR_DEFAULT_STR_SIZE];
+  snprintf (key, INSTR_DEFAULT_STR_SIZE, "%lld", counter++);
+
+  //start link
+  container_t msg = getContainer(process->name);
+  type_t type = getType ("MSG_PROCESS_LINK");
+  pajeStartLink (MSG_get_clock(), type->id, "0", "M", msg->id, key);
+
   //destroy existing container of this process
   destroyContainer(getContainer(process->name));
 
   //create new container on the new_host location
   //destroy existing container of this process
   destroyContainer(getContainer(process->name));
 
   //create new container on the new_host location
-  container_t msg = newContainer(process->name, INSTR_MSG_PROCESS, getContainer(new_host->name));
-  type_t type = getType (process->category);
+  msg = newContainer(process->name, INSTR_MSG_PROCESS, getContainer(new_host->name));
+  type = getType (process->category);
   pajeSetVariable(SIMIX_get_clock(), type->id, msg->id, "1");
   pajeSetVariable(SIMIX_get_clock(), type->id, msg->id, "1");
+
+  //end link
+  msg = getContainer(process->name);
+  type = getType ("MSG_PROCESS_LINK");
+  pajeEndLink (MSG_get_clock(), type->id, "0", "M", msg->id, key);
 }
 
 void TRACE_msg_process_kill(m_process_t process)
 }
 
 void TRACE_msg_process_kill(m_process_t process)
index b617787..2e27c8e 100644 (file)
@@ -515,6 +515,7 @@ static void instr_routing_parse_start_host ()
   if (TRACE_msg_process_is_enabled()) {
     type_t msg_process = getContainerType("MSG_PROCESS", new->type);
     getStateType ("MSG_PROCESS_STATE", msg_process);
   if (TRACE_msg_process_is_enabled()) {
     type_t msg_process = getContainerType("MSG_PROCESS", new->type);
     getStateType ("MSG_PROCESS_STATE", msg_process);
+    getLinkType ("MSG_PROCESS_LINK", rootType, msg_process, msg_process);
   }
 
   if (TRACE_msg_task_is_enabled()) {
   }
 
   if (TRACE_msg_task_is_enabled()) {