X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=lttv%2Flttv%2Fsync%2Fevent_matching_tcp.c;h=3bfe479ed48ad8e3b4e22199c43ab3825d5ae37e;hb=e96ed88f09628976d17fa4820b1d6deaf6cedf4a;hp=25e39858fb8b36c76c19c11bcd0efe5d64a5ba09;hpb=10341d26543c63ff318a4cf5cb163bccdc58b19d;p=lttv.git diff --git a/lttv/lttv/sync/event_matching_tcp.c b/lttv/lttv/sync/event_matching_tcp.c index 25e39858..3bfe479e 100644 --- a/lttv/lttv/sync/event_matching_tcp.c +++ b/lttv/lttv/sync/event_matching_tcp.c @@ -26,7 +26,7 @@ #include #include "event_analysis.h" -#include "sync_chain_lttv.h" +#include "sync_chain.h" #include "event_matching_tcp.h" @@ -43,10 +43,8 @@ static void destroyMatchingTCP(SyncState* const syncState); static void matchEventTCP(SyncState* const syncState, Event* const event); static GArray* finalizeMatchingTCP(SyncState* const syncState); static void printMatchingStatsTCP(SyncState* const syncState); -static void writeMatchingGraphsPlotsTCP(FILE* stream, SyncState* const - syncState, const unsigned int i, const unsigned int j); -static void writeMatchingGraphsOptionsTCP(FILE* stream, SyncState* const - syncState, const unsigned int i, const unsigned int j); +static void writeMatchingGraphsPlotsTCP(SyncState* const syncState, const + unsigned int i, const unsigned int j); // Functions specific to this module static void registerMatchingTCP() __attribute__((constructor (101))); @@ -69,13 +67,15 @@ static void writeMessagePoint(FILE* stream, const Message* const message); static MatchingModule matchingModuleTCP = { .name= "TCP", + .canMatch[TCP]= true, + .canMatch[UDP]= false, .initMatching= &initMatchingTCP, .destroyMatching= &destroyMatchingTCP, .matchEvent= &matchEventTCP, .finalizeMatching= &finalizeMatchingTCP, .printMatchingStats= &printMatchingStatsTCP, .writeMatchingGraphsPlots= &writeMatchingGraphsPlotsTCP, - .writeMatchingGraphsOptions= &writeMatchingGraphsOptionsTCP, + .writeMatchingGraphsOptions= NULL, }; @@ -137,7 +137,7 @@ static void initMatchingTCP(SyncState* const syncState) matchingData->stats= NULL; } - if (syncState->graphs) + if (syncState->graphsStream) { openGraphDataFiles(syncState); } @@ -217,7 +217,7 @@ static void partialDestroyMatchingTCP(SyncState* const syncState) g_hash_table_destroy(matchingData->unMatchedOutE); g_hash_table_destroy(matchingData->unAcked); - if (syncState->graphs && matchingData->messagePoints) + if (syncState->graphsStream && matchingData->messagePoints) { closeGraphDataFiles(syncState); } @@ -231,12 +231,13 @@ static void partialDestroyMatchingTCP(SyncState* const syncState) * Args: * syncState container for synchronization data. * event new event to match - * eventType type of event to match */ static void matchEventTCP(SyncState* const syncState, Event* const event) { MatchingDataTCP* matchingData; + g_assert(event->type == TCP); + matchingData= (MatchingDataTCP*) syncState->matchingData; if (event->event.tcpEvent->direction == IN) @@ -272,8 +273,8 @@ static GArray* finalizeMatchingTCP(SyncState* const syncState) /* - * Print statistics related to matching and downstream modules. Must be - * called after finalizeMatching. + * Print statistics related to matching. Must be called after + * finalizeMatching. * * Args: * syncState container for synchronization data. @@ -315,11 +316,6 @@ static void printMatchingStatsTCP(SyncState* const syncState) printf("\ttotal synchronization exchanges: %u\n", matchingData->stats->totExchangeSync); } - - if (syncState->analysisModule->printAnalysisStats != NULL) - { - syncState->analysisModule->printAnalysisStats(syncState); - } } @@ -376,7 +372,7 @@ static void matchEvents(SyncState* const syncState, Event* const event, return; } - if (syncState->graphs) + if (syncState->graphsStream) { writeMessagePoint(matchingData->messagePoints[packet->inE->traceNum][packet->outE->traceNum], packet); @@ -594,7 +590,7 @@ static void openGraphDataFiles(SyncState* const syncState) matchingData= (MatchingDataTCP*) syncState->matchingData; - cwd= changeToGraphDir(syncState->graphs); + cwd= changeToGraphDir(syncState->graphsDir); matchingData->messagePoints= malloc(syncState->traceNb * sizeof(FILE**)); for (i= 0; i < syncState->traceNb; i++) @@ -634,23 +630,23 @@ static void openGraphDataFiles(SyncState* const syncState) * * Args: * stream: FILE*, file pointer where to write the point - * message: message for which to write the point + * message: message for which to write the point */ static void writeMessagePoint(FILE* stream, const Message* const message) { - LttCycleCount x, y; + uint64_t x, y; if (message->inE->traceNum < message->outE->traceNum) { // CA is inE->traceNum - x= message->inE->time; - y= message->outE->time; + x= message->inE->cpuTime; + y= message->outE->cpuTime; } else { // CA is outE->traceNum - x= message->outE->time; - y= message->inE->time; + x= message->outE->cpuTime; + y= message->inE->cpuTime; } fprintf(stream, "%20llu %20llu\n", x, y); @@ -699,50 +695,21 @@ static void closeGraphDataFiles(SyncState* const syncState) /* - * Write the matching-specific graph lines in the gnuplot script. Call the - * downstream module's graph function. + * Write the matching-specific graph lines in the gnuplot script. * * Args: - * stream: stream where to write the data * syncState: container for synchronization data * i: first trace number * j: second trace number, garanteed to be larger than i */ -static void writeMatchingGraphsPlotsTCP(FILE* stream, SyncState* const - syncState, const unsigned int i, const unsigned int j) +static void writeMatchingGraphsPlotsTCP(SyncState* const syncState, const + unsigned int i, const unsigned int j) { - fprintf(stream, + fprintf(syncState->graphsStream, "\t\"matching_tcp-%1$03d_to_%2$03d.data\" " "title \"Sent messages\" with points linetype 4 " "linecolor rgb \"#98fc66\" pointtype 9 pointsize 2, \\\n" "\t\"matching_tcp-%2$03d_to_%1$03d.data\" " "title \"Received messages\" with points linetype 4 " "linecolor rgb \"#6699cc\" pointtype 11 pointsize 2, \\\n", i, j); - - if (syncState->analysisModule->writeAnalysisGraphsPlots != NULL) - { - syncState->analysisModule->writeAnalysisGraphsPlots(stream, syncState, - i, j); - } -} - - -/* - * Write the matching-specific options in the gnuplot script (none). Call the - * downstream module's options function. - * - * Args: - * stream: stream where to write the data - * syncState: container for synchronization data - * i: first trace number - * j: second trace number, garanteed to be larger than i - */ -static void writeMatchingGraphsOptionsTCP(FILE* stream, SyncState* const - syncState, const unsigned int i, const unsigned int j) -{ - if (syncState->analysisModule->writeAnalysisGraphsOptions != NULL) - { - syncState->analysisModule->writeAnalysisGraphsOptions(stream, - syncState, i, j); - } }