From 225cfb09884aaaee3bf3509e2e9bd808dbc39e72 Mon Sep 17 00:00:00 2001 From: schnorr Date: Mon, 13 Dec 2010 16:45:33 +0000 Subject: [PATCH] [trace] arrows to indicate msg process migration 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 | 18 ++++++++++++++++-- src/instr/instr_routing.c | 1 + 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/instr/instr_msg_process.c b/src/instr/instr_msg_process.c index 9ca7ff1283..3a78475d80 100644 --- a/src/instr/instr_msg_process.c +++ b/src/instr/instr_msg_process.c @@ -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; + 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 - 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"); + + //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) diff --git a/src/instr/instr_routing.c b/src/instr/instr_routing.c index b617787eff..2e27c8e434 100644 --- a/src/instr/instr_routing.c +++ b/src/instr/instr_routing.c @@ -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); + getLinkType ("MSG_PROCESS_LINK", rootType, msg_process, msg_process); } if (TRACE_msg_task_is_enabled()) { -- 2.20.1