X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=lttv%2Flttv%2Fsync%2Fevent_analysis_eval.h;h=d30fb1ef59883bad4d5b8789844909b1bba316dc;hb=e072e1abc02d780d84664fcb2c971eb5a317f664;hp=06e6cab301b78f6ff81df38ca3490a4edf4d1e2c;hpb=2bd4b3e43e525da7b4c9738915ec847f7fe4906a;p=lttv.git diff --git a/lttv/lttv/sync/event_analysis_eval.h b/lttv/lttv/sync/event_analysis_eval.h index 06e6cab3..d30fb1ef 100644 --- a/lttv/lttv/sync/event_analysis_eval.h +++ b/lttv/lttv/sync/event_analysis_eval.h @@ -24,30 +24,80 @@ #include "data_structures.h" +struct RttKey +{ + uint32_t saddr, daddr; +}; + typedef struct { unsigned int inversionNb, tooFastNb, - noRTTInfoNb; -} TracePairStats; + noRTTInfoNb, + total; +} MessageStats; typedef struct { double broadcastDiffSum; - TracePairStats** allStats; + unsigned int broadcastNb; + + // MessageStats messageStats[traceNb][traceNb] + MessageStats** messageStats; + + /* double* exchangeRtt[RttKey] + * For this table, saddr and daddr are swapped as necessary such that + * saddr < daddr */ + GHashTable* exchangeRtt; } AnalysisStatsEval; -struct RttKey + +#define BIN_NB 1001 +struct Bins { - uint32_t saddr, daddr; + // index of min and max bins that are != 0 + uint32_t min, max; + // sum of all bins + uint32_t total; + /* bin[0]: underflow ]-INFINITY..0[ + * bin[1]: [0..1e-6[ + * rest defined exponentially, see binStart() + * bin[BIN_NB - 1]: overflow [1..INFINITY[ */ + uint32_t bin[BIN_NB]; }; + +typedef struct +{ + /* File pointers to files where "trip times" (message latency) histogram + * values are outputted. Each host-pair has two files, one for each + * message direction. As for traces, the host with the smallest address + * is considered to be the reference for the direction of messages (ie. + * messages from the host with the lowest address to the host with the + * largest address are "sent"). */ + FILE* ttSendPoints; + FILE* ttRecvPoints; + + struct Bins ttSendBins; + struct Bins ttRecvBins; + + /* File pointers to files where half round trip times (evaluated from + * exchanges) histogram values are outputted. */ + FILE* hrttPoints; + + struct Bins hrttBins; +} AnalysisGraphEval; + typedef struct { // double* rttInfo[RttKey] GHashTable* rttInfo; AnalysisStatsEval* stats; + /* AnalysisGraphsEval* graphs[RttKey]; + * For this table, saddr and daddr are swapped as necessary such that + * saddr < daddr */ + GHashTable* graphs; } AnalysisDataEval; #endif