From 64318694f830cd0dd242e4a5c8e091a56286da88 Mon Sep 17 00:00:00 2001 From: alegrand Date: Fri, 4 Feb 2005 18:26:15 +0000 Subject: [PATCH] Improving traces git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@877 48e7efb5-ca39-0410-a469-dd3cf9ba447f --- src/msg/gos.c | 19 ++++++++++++++----- src/msg/m_process.c | 18 +++++++++++++----- src/msg/private.h | 18 +++++++++++++++++- 3 files changed, 44 insertions(+), 11 deletions(-) diff --git a/src/msg/gos.c b/src/msg/gos.c index 17f0326181..e0e17e7c46 100644 --- a/src/msg/gos.c +++ b/src/msg/gos.c @@ -86,7 +86,8 @@ MSG_error_t MSG_task_get(m_task_t * task, if(__MSG_process_isBlocked(t_simdata->sender)) __MSG_process_unblock(t_simdata->sender); - PAJE_PROCESS_STATE(process,"C"); + // PAJE_PROCESS_STATE(process,"C"); + PAJE_PROCESS_PUSH_STATE(process,"C"); do { __MSG_task_wait_event(process, t); @@ -98,6 +99,7 @@ MSG_error_t MSG_task_get(m_task_t * task, xbt_context_yield(); } + PAJE_PROCESS_POP_STATE(process); PAJE_COMM_STOP(process,t,channel); if(state == SURF_ACTION_DONE) MSG_RETURN(MSG_OK); @@ -212,7 +214,8 @@ MSG_error_t MSG_task_put(m_task_t task, process->simdata->put_channel = -1; /* } */ - PAJE_PROCESS_STATE(process,"C"); + // PAJE_PROCESS_STATE(process,"C"); + PAJE_PROCESS_PUSH_STATE(process,"C"); state=surf_workstation_resource->common_public->action_get_state(task_simdata->comm); while (state==SURF_ACTION_RUNNING) { @@ -222,6 +225,8 @@ MSG_error_t MSG_task_put(m_task_t task, MSG_task_destroy(task); + PAJE_PROCESS_POP_STATE(process); + if(state == SURF_ACTION_DONE) MSG_RETURN(MSG_OK); else if(surf_workstation_resource->extension_public->get_state(local_host->simdata->host) == SURF_CPU_OFF) @@ -257,10 +262,14 @@ MSG_error_t MSG_task_put_bounded(m_task_t task, MSG_error_t MSG_task_execute(m_task_t task) { m_process_t process = MSG_process_self(); - + MSG_error_t res; __MSG_task_execute(process, task); - PAJE_PROCESS_STATE(process,"E"); - return __MSG_wait_for_computation(process,task); + + // PAJE_PROCESS_STATE(process,"E"); + PAJE_PROCESS_PUSH_STATE(process,"E"); + res = __MSG_wait_for_computation(process,task); + PAJE_PROCESS_POP_STATE(process); + return res; } void __MSG_task_execute(m_process_t process, m_task_t task) diff --git a/src/msg/m_process.c b/src/msg/m_process.c index d049c4aa02..5f586ccbb5 100644 --- a/src/msg/m_process.c +++ b/src/msg/m_process.c @@ -320,7 +320,8 @@ MSG_error_t MSG_process_suspend(m_process_t process) xbt_assert0(((process) && (process->simdata)), "Invalid parameters"); - PAJE_PROCESS_STATE(process,"S"); + // PAJE_PROCESS_STATE(process,"S"); + PAJE_PROCESS_PUSH_STATE(process,"S"); if(process!=MSG_process_self()) { simdata = process->simdata; @@ -373,8 +374,10 @@ MSG_error_t MSG_process_resume(m_process_t process) simdata = process->simdata; + if(simdata->blocked) { - PAJE_PROCESS_STATE(process,"B"); + // PAJE_PROCESS_STATE(process,"B"); + PAJE_PROCESS_POP_STATE(process); simdata->suspended = 0; /* He'll wake up by itself */ MSG_RETURN(MSG_OK); @@ -389,10 +392,12 @@ MSG_error_t MSG_process_resume(m_process_t process) if(simdata_task->compute) { surf_workstation_resource->common_public->resume(simdata_task->compute); - PAJE_PROCESS_STATE(process,"E"); + PAJE_PROCESS_POP_STATE(process); + // PAJE_PROCESS_STATE(process,"E"); } else { - PAJE_PROCESS_STATE(process,"C"); + // PAJE_PROCESS_STATE(process,"C"); + PAJE_PROCESS_POP_STATE(process); surf_workstation_resource->common_public->resume(simdata_task->comm); } @@ -419,7 +424,8 @@ MSG_error_t __MSG_process_block(void) m_task_t dummy = MSG_TASK_UNINITIALIZED; dummy = MSG_task_create("blocked", 0.0, 0, NULL); - PAJE_PROCESS_STATE(process,"B"); + // PAJE_PROCESS_STATE(process,"B"); + PAJE_PROCESS_PUSH_STATE(process,"B"); process->simdata->blocked=1; __MSG_task_execute(process,dummy); @@ -455,6 +461,8 @@ MSG_error_t __MSG_process_unblock(m_process_t process) surf_workstation_resource->common_public->resume(simdata_task->compute); + PAJE_PROCESS_POP_STATE(process); + MSG_RETURN(MSG_OK); } diff --git a/src/msg/private.h b/src/msg/private.h index b2cb6a13a6..07095a75d3 100644 --- a/src/msg/private.h +++ b/src/msg/private.h @@ -94,12 +94,19 @@ MSG_error_t __MSG_process_block(void); MSG_error_t __MSG_process_unblock(m_process_t process); int __MSG_process_isBlocked(m_process_t process); -/* #define ALVIN_SPECIAL_LOGING */ #ifdef ALVIN_SPECIAL_LOGING #define PAJE_PROCESS_STATE(process,state)\ if(msg_global->paje_output) \ fprintf(msg_global->paje_output,"10 %lg S_t P%d %s\n",\ surf_get_clock(), process->simdata->PID,state) +#define PAJE_PROCESS_PUSH_STATE(process,state)\ + if(msg_global->paje_output) \ + fprintf(msg_global->paje_output,"11 %lg S_t P%d %s\n",\ + surf_get_clock(), process->simdata->PID,state) +#define PAJE_PROCESS_POP_STATE(process)\ + if(msg_global->paje_output) \ + fprintf(msg_global->paje_output,"12 %lg S_t P%d\n",\ + surf_get_clock(), process->simdata->PID) #define PAJE_PROCESS_FREE(process) #define PAJE_PROCESS_NEW(process)\ if((msg_global->paje_output)) {\ @@ -133,6 +140,15 @@ int __MSG_process_isBlocked(m_process_t process); if(msg_global->paje_output) \ fprintf(msg_global->paje_output,"10 %lg S_t %p %s\n",\ surf_get_clock(), process,state) +#define PAJE_PROCESS_PUSH_STATE(process,state)\ + if(msg_global->paje_output) \ + fprintf(msg_global->paje_output,"11 %lg S_t %p %s\n",\ + surf_get_clock(), process,state) +#define PAJE_PROCESS_POP_STATE(process)\ + if(msg_global->paje_output) \ + fprintf(msg_global->paje_output,"12 %lg S_t %p\n",\ + surf_get_clock(), process) + #define PAJE_PROCESS_FREE(process)\ if(msg_global->paje_output) \ fprintf(msg_global->paje_output,"8 %lg %p P_t\n", \ -- 2.20.1