X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/e6ef56f16ca7184473d596baab4dcd24e2ef124b..2d208a737e63d5fbbd8a7fc8a3d94f867610a85b:/src/instr/instr_paje_trace.c diff --git a/src/instr/instr_paje_trace.c b/src/instr/instr_paje_trace.c index cf28231d4d..e4a6fa4f56 100644 --- a/src/instr/instr_paje_trace.c +++ b/src/instr/instr_paje_trace.c @@ -8,8 +8,6 @@ #ifdef HAVE_TRACING -#define INSTR_PAJE_ASSERT(str) {xbt_assert1(str!=NULL&&strlen(str)>0, "'%s' is NULL or length is zero", #str);} - XBT_LOG_NEW_DEFAULT_SUBCATEGORY(instr_paje_trace, instr, "Paje tracing event system"); typedef enum { @@ -168,14 +166,22 @@ void TRACE_paje_end(void) DEBUG1("Filename %s is closed", filename); } +double TRACE_last_timestamp_to_dump = 0; +//dumps the trace file until the timestamp TRACE_last_timestamp_to_dump void TRACE_paje_dump_buffer (void) { + DEBUG2("%s: dump until %f. starts", __FUNCTION__, TRACE_last_timestamp_to_dump); paje_event_t event; while (xbt_dynar_length (buffer) > 0){ + double head_timestamp = (*(paje_event_t*)xbt_dynar_get_ptr(buffer, 0))->timestamp; + if (head_timestamp > TRACE_last_timestamp_to_dump){ + break; + } xbt_dynar_remove_at (buffer, 0, &event); event->print (event); event->free (event); } + DEBUG1("%s: ends", __FUNCTION__); } void TRACE_paje_create_header(void) @@ -301,27 +307,33 @@ void TRACE_paje_create_header(void) /* internal do the instrumentation module */ static void insert_into_buffer (paje_event_t tbi) { + DEBUG4("%s: insert event_type=%d, timestamp=%f, buffersize=%ld)", __FUNCTION__, tbi->event_type, tbi->timestamp, xbt_dynar_length(buffer)); + unsigned int i; if (xbt_dynar_length(buffer) == 0){ xbt_dynar_push (buffer, &tbi); + DEBUG1("%s: inserted at beginning", __FUNCTION__); }else{ int inserted = 0; for (i = 0; i < xbt_dynar_length(buffer); i++){ paje_event_t e1 = *(paje_event_t*)xbt_dynar_get_ptr(buffer, i); if (e1->timestamp > tbi->timestamp){ xbt_dynar_insert_at (buffer, i, &tbi); + DEBUG2("%s: inserted at %d", __FUNCTION__, i); inserted = 1; break; } } if (!inserted){ xbt_dynar_push (buffer, &tbi); + DEBUG1("%s: inserted at end", __FUNCTION__); } } } static void print_pajeDefineContainerType(paje_event_t event) { + DEBUG2("%s: event_type=%d", __FUNCTION__, event->event_type); fprintf(tracing_file, "%d %s %s %s\n", event->event_type, ((defineContainerType_t)event->data)->type->id, @@ -331,6 +343,7 @@ static void print_pajeDefineContainerType(paje_event_t event) static void print_pajeDefineVariableType(paje_event_t event) { + DEBUG2("%s: event_type=%d", __FUNCTION__, event->event_type); fprintf(tracing_file, "%d %s %s %s \"%s\"\n", event->event_type, ((defineVariableType_t)event->data)->type->id, @@ -341,6 +354,7 @@ static void print_pajeDefineVariableType(paje_event_t event) static void print_pajeDefineStateType(paje_event_t event) { + DEBUG2("%s: event_type=%d", __FUNCTION__, event->event_type); fprintf(tracing_file, "%d %s %s %s\n", event->event_type, ((defineStateType_t)event->data)->type->id, @@ -350,6 +364,7 @@ static void print_pajeDefineStateType(paje_event_t event) static void print_pajeDefineEventType(paje_event_t event) { + DEBUG2("%s: event_type=%d", __FUNCTION__, event->event_type); fprintf(tracing_file, "%d %s %s %s \"%s\"\n", event->event_type, ((defineEventType_t)event->data)->type->id, @@ -360,6 +375,7 @@ static void print_pajeDefineEventType(paje_event_t event) static void print_pajeDefineLinkType(paje_event_t event) { + DEBUG2("%s: event_type=%d", __FUNCTION__, event->event_type); fprintf(tracing_file, "%d %s %s %s %s %s\n", event->event_type, ((defineLinkType_t)event->data)->type->id, @@ -371,6 +387,7 @@ static void print_pajeDefineLinkType(paje_event_t event) static void print_pajeCreateContainer(paje_event_t event) { + DEBUG3("%s: event_type=%d, timestamp=%f", __FUNCTION__, event->event_type, event->timestamp); if (event->timestamp == 0){ fprintf(tracing_file, "%d 0 %s %s %s %s\n", event->event_type, @@ -391,6 +408,7 @@ static void print_pajeCreateContainer(paje_event_t event) static void print_pajeDestroyContainer(paje_event_t event) { + DEBUG3("%s: event_type=%d, timestamp=%f", __FUNCTION__, event->event_type, event->timestamp); if (event->timestamp == 0){ fprintf(tracing_file, "%d 0 %s %s\n", event->event_type, @@ -407,6 +425,7 @@ static void print_pajeDestroyContainer(paje_event_t event) static void print_pajeSetVariable(paje_event_t event) { + DEBUG3("%s: event_type=%d, timestamp=%f", __FUNCTION__, event->event_type, event->timestamp); if (event->timestamp == 0){ fprintf(tracing_file, "%d 0 %s %s %f\n", event->event_type, @@ -425,6 +444,7 @@ static void print_pajeSetVariable(paje_event_t event) static void print_pajeAddVariable(paje_event_t event) { + DEBUG3("%s: event_type=%d, timestamp=%f", __FUNCTION__, event->event_type, event->timestamp); if (event->timestamp == 0){ fprintf(tracing_file, "%d 0 %s %s %f\n", event->event_type, @@ -443,6 +463,7 @@ static void print_pajeAddVariable(paje_event_t event) static void print_pajeSubVariable(paje_event_t event) { + DEBUG3("%s: event_type=%d, timestamp=%f", __FUNCTION__, event->event_type, event->timestamp); if (event->timestamp == 0){ fprintf(tracing_file, "%d 0 %s %s %f\n", event->event_type, @@ -461,6 +482,7 @@ static void print_pajeSubVariable(paje_event_t event) static void print_pajeSetState(paje_event_t event) { + DEBUG3("%s: event_type=%d, timestamp=%f", __FUNCTION__, event->event_type, event->timestamp); if (event->timestamp == 0){ fprintf(tracing_file, "%d 0 %s %s %s\n", event->event_type, @@ -479,6 +501,7 @@ static void print_pajeSetState(paje_event_t event) static void print_pajePushState(paje_event_t event) { + DEBUG3("%s: event_type=%d, timestamp=%f", __FUNCTION__, event->event_type, event->timestamp); if (event->timestamp == 0){ fprintf(tracing_file, "%d 0 %s %s %s\n", event->event_type, @@ -497,6 +520,7 @@ static void print_pajePushState(paje_event_t event) static void print_pajePopState(paje_event_t event) { + DEBUG3("%s: event_type=%d, timestamp=%f", __FUNCTION__, event->event_type, event->timestamp); if (event->timestamp == 0){ fprintf(tracing_file, "%d 0 %s %s\n", event->event_type, @@ -513,6 +537,7 @@ static void print_pajePopState(paje_event_t event) static void print_pajeStartLink(paje_event_t event) { + DEBUG3("%s: event_type=%d, timestamp=%f", __FUNCTION__, event->event_type, event->timestamp); if (event->timestamp == 0){ fprintf(tracing_file, "%d 0 %s %s %s %s %s\n", event->event_type, @@ -535,6 +560,7 @@ static void print_pajeStartLink(paje_event_t event) static void print_pajeEndLink(paje_event_t event) { + DEBUG3("%s: event_type=%d, timestamp=%f", __FUNCTION__, event->event_type, event->timestamp); if (event->timestamp == 0){ fprintf(tracing_file, "%d 0 %s %s %s %s %s\n", event->event_type, @@ -557,6 +583,7 @@ static void print_pajeEndLink(paje_event_t event) static void print_pajeNewEvent (paje_event_t event) { + DEBUG3("%s: event_type=%d, timestamp=%f", __FUNCTION__, event->event_type, event->timestamp); if (event->timestamp == 0){ fprintf(tracing_file, "%d 0 %s %s %s\n", event->event_type, @@ -575,6 +602,7 @@ static void print_pajeNewEvent (paje_event_t event) static void free_paje_event (paje_event_t event) { + DEBUG3("%s: event_type=%d, timestamp=%f", __FUNCTION__, event->event_type, event->timestamp); if (event->event_type == PAJE_SetState) { xbt_free (((setState_t)(event->data))->value); }else if (event->event_type == PAJE_PushState) { @@ -602,6 +630,8 @@ void new_pajeDefineContainerType(type_t type) event->data = xbt_new0(s_defineContainerType_t, 1); ((defineContainerType_t)(event->data))->type = type; + DEBUG2("%s: event_type=%d", __FUNCTION__, event->event_type); + //print it event->print (event); event->free (event); @@ -617,6 +647,8 @@ void new_pajeDefineVariableType(type_t type) event->data = xbt_new0(s_defineVariableType_t, 1); ((defineVariableType_t)(event->data))->type = type; + DEBUG2("%s: event_type=%d", __FUNCTION__, event->event_type); + //print it event->print (event); event->free (event); @@ -632,6 +664,8 @@ void new_pajeDefineStateType(type_t type) event->data = xbt_new0(s_defineStateType_t, 1); ((defineStateType_t)(event->data))->type = type; + DEBUG2("%s: event_type=%d", __FUNCTION__, event->event_type); + //print it event->print (event); event->free (event); @@ -647,6 +681,8 @@ void new_pajeDefineEventType(type_t type) event->data = xbt_new0(s_defineEventType_t, 1); ((defineEventType_t)(event->data))->type = type; + DEBUG2("%s: event_type=%d", __FUNCTION__, event->event_type); + //print it event->print (event); event->free (event); @@ -664,6 +700,8 @@ void new_pajeDefineLinkType(type_t type, type_t source, type_t dest) ((defineLinkType_t)(event->data))->source = source; ((defineLinkType_t)(event->data))->dest = dest; + DEBUG2("%s: event_type=%d", __FUNCTION__, event->event_type); + //print it event->print (event); event->free (event); @@ -679,6 +717,8 @@ void new_pajeCreateContainer (container_t container) event->data = xbt_new0(s_createContainer_t, 1); ((createContainer_t)(event->data))->container = container; + DEBUG3("%s: event_type=%d, timestamp=%f", __FUNCTION__, event->event_type, event->timestamp); + //print it event->print (event); event->free (event); @@ -694,6 +734,8 @@ void new_pajeDestroyContainer (container_t container) event->data = xbt_new0(s_destroyContainer_t, 1); ((destroyContainer_t)(event->data))->container = container; + DEBUG3("%s: event_type=%d, timestamp=%f", __FUNCTION__, event->event_type, event->timestamp); + //print it event->print (event); event->free (event); @@ -711,6 +753,8 @@ void new_pajeSetVariable (double timestamp, container_t container, type_t type, ((setVariable_t)(event->data))->container = container; ((setVariable_t)(event->data))->value = value; + DEBUG3("%s: event_type=%d, timestamp=%f", __FUNCTION__, event->event_type, event->timestamp); + insert_into_buffer (event); } @@ -727,6 +771,8 @@ void new_pajeAddVariable (double timestamp, container_t container, type_t type, ((addVariable_t)(event->data))->container = container; ((addVariable_t)(event->data))->value = value; + DEBUG3("%s: event_type=%d, timestamp=%f", __FUNCTION__, event->event_type, event->timestamp); + insert_into_buffer (event); } @@ -742,6 +788,8 @@ void new_pajeSubVariable (double timestamp, container_t container, type_t type, ((subVariable_t)(event->data))->container = container; ((subVariable_t)(event->data))->value = value; + DEBUG3("%s: event_type=%d, timestamp=%f", __FUNCTION__, event->event_type, event->timestamp); + insert_into_buffer (event); } @@ -757,6 +805,8 @@ void new_pajeSetState (double timestamp, container_t container, type_t type, con ((setState_t)(event->data))->container = container; ((setState_t)(event->data))->value = xbt_strdup(value); + DEBUG3("%s: event_type=%d, timestamp=%f", __FUNCTION__, event->event_type, event->timestamp); + insert_into_buffer (event); } @@ -773,6 +823,8 @@ void new_pajePushState (double timestamp, container_t container, type_t type, co ((pushState_t)(event->data))->container = container; ((pushState_t)(event->data))->value = xbt_strdup(value); + DEBUG3("%s: event_type=%d, timestamp=%f", __FUNCTION__, event->event_type, event->timestamp); + insert_into_buffer (event); } @@ -788,6 +840,8 @@ void new_pajePopState (double timestamp, container_t container, type_t type) ((popState_t)(event->data))->type = type; ((popState_t)(event->data))->container = container; + DEBUG3("%s: event_type=%d, timestamp=%f", __FUNCTION__, event->event_type, event->timestamp); + insert_into_buffer (event); } @@ -805,6 +859,8 @@ void new_pajeStartLink (double timestamp, container_t container, type_t type, co ((startLink_t)(event->data))->value = xbt_strdup(value); ((startLink_t)(event->data))->key = xbt_strdup(key); + DEBUG3("%s: event_type=%d, timestamp=%f", __FUNCTION__, event->event_type, event->timestamp); + insert_into_buffer (event); } @@ -822,6 +878,8 @@ void new_pajeEndLink (double timestamp, container_t container, type_t type, cont ((endLink_t)(event->data))->value = xbt_strdup(value); ((endLink_t)(event->data))->key = xbt_strdup(key); + DEBUG3("%s: event_type=%d, timestamp=%f", __FUNCTION__, event->event_type, event->timestamp); + insert_into_buffer (event); } @@ -837,23 +895,9 @@ void new_pajeNewEvent (double timestamp, container_t container, type_t type, con ((newEvent_t)(event->data))->container = container; ((newEvent_t)(event->data))->value = xbt_strdup(value); + DEBUG3("%s: event_type=%d, timestamp=%f", __FUNCTION__, event->event_type, event->timestamp); + insert_into_buffer (event); } -// -//void pajeNewEvent(double time, const char *entityType, -// const char *container, const char *value) -//{ -// INSTR_PAJE_ASSERT(entityType); -// INSTR_PAJE_ASSERT(container); -// INSTR_PAJE_ASSERT(value); -// -// if (time == 0){ -// fprintf(tracing_file, "%d 0 %s %s %s\n", pajeNewEventId, -// entityType, container, value); -// }else{ -// fprintf(tracing_file, "%d %lf %s %s %s\n", pajeNewEventId, time, -// entityType, container, value); -// } -//} #endif /* HAVE_TRACING */