[ltt-dev] pull request: lttv distributed trace synchronization

Benjamin Poirier benjamin.poirier at polymtl.ca
Fri Dec 18 15:34:48 EST 2009


Hello,

The following patches add support to lttv for synchronizing distributed traces. Only the first two patches should have an impact on lttv even when synchronization is not enabled. To use synchronization, record traces with ltt-armall -n and start lttv with --sync. Please see lttv/lttv/sync/README for much more details regarding usage, design and algorithms.

Please pull from
	git://hal.drap.polymtl.ca/lttv-sync.git for-pmf

Thank you,
-Ben

---

Benjamin Poirier (48):
      Revert "sync frequency of all traces with the first loaded"
      Add members to LttTrace to support time adjustments
      Text mode clock synchronization
      Graphical mode synchronization
      Split the synchronization code into modules
      Do not use pkfree_skb events for synchronization
      Add convex hull algorithm-based synchronization
      Add a unittest program for clock synchronization modules
      Make the synchronization module interfaces more generic
      Add a README for the clock synchronization code
      Adjust the marker names used for clock synchronization
      Processing of UDP events
      Add a batchanalysis module to build and run a sync chain
      Add a broadcast matching module
      Add a module to evaluate the quality of synchronization
      Add support for module options
      Adds wall time field to events
      Add a module to distribute messages to many analysis modules
      Call the stats and graph functions from sync_chain
      Use histograms with logarithmicly-sized bins
      Add graphStream field to syncState
      Show the latency histograms by IP address rather than by trace
      Print a sum row in the evaluation statistics
      Do not use LttCycleCount elsewhere than in processing_lttv
      Use a timescale without correction in the graphs
      Generate graphs of broadcasts
      Store graph callbacks in a structure
      Generate graphs of synchronization accuracy
      Have callbacks for "background" and "foreground" graphs
      Make the accuracy area easier to see on the broadcast graphs
      Print approximation type from a constant instead of hardcoded
      Update README with info about algorithms, glpk and more
      Don't access stats if they're not activated
      Remove leftover references to processing_lttv
      Remove unused g_info definitions
      Clean debug statements
      Move some functions around to improve overall structure
      initProcessing takes a va_arg rather than an lttv-specific type
      Make option type OPTIONAL_ARG available
      Initialize traceNb in the processing modules
      Use a common function to print stats of all modules
      Add sync_chain_unittest
      Add a processing module that reads events from a text file
      Fix leaks and invalid memory accesses
      Change a test file to create hulls that are more spaced out
      Correct the README regarding eval mode usage
      Rebuild traceset contexts after performing synchronization
      Fix compilation warnings

 configure.ac                                       |   86 +-
 ltt/trace.h                                        |    4 +
 ltt/tracefile.c                                    |   45 +-
 lttv/lttv/Makefile.am                              |   19 +-
 lttv/lttv/iattribute.c                             |    4 +-
 lttv/lttv/iattribute.h                             |    2 +-
 lttv/lttv/sync/.gitignore                          |    4 +
 lttv/lttv/sync/Makefile.am                         |   17 +
 lttv/lttv/sync/README                              |  289 +++
 lttv/lttv/sync/data_structures.c                   |  647 +++++++
 lttv/lttv/sync/data_structures.h                   |  183 ++
 lttv/lttv/sync/event_analysis.h                    |   50 +
 lttv/lttv/sync/event_analysis_chull.c              | 1645 ++++++++++++++++
 lttv/lttv/sync/event_analysis_chull.h              |  180 ++
 lttv/lttv/sync/event_analysis_eval.c               | 2010 ++++++++++++++++++++
 lttv/lttv/sync/event_analysis_eval.h               |  156 ++
 lttv/lttv/sync/event_analysis_linreg.c             |  757 ++++++++
 lttv/lttv/sync/event_analysis_linreg.h             |   52 +
 lttv/lttv/sync/event_matching.h                    |   45 +
 lttv/lttv/sync/event_matching_broadcast.c          |  497 +++++
 lttv/lttv/sync/event_matching_broadcast.h          |   68 +
 lttv/lttv/sync/event_matching_distributor.c        |  460 +++++
 lttv/lttv/sync/event_matching_distributor.h        |   34 +
 lttv/lttv/sync/event_matching_tcp.c                |  712 +++++++
 lttv/lttv/sync/event_matching_tcp.h                |   63 +
 lttv/lttv/sync/event_processing.h                  |   42 +
 lttv/lttv/sync/event_processing_lttng_common.c     |  247 +++
 lttv/lttv/sync/event_processing_lttng_common.h     |   67 +
 lttv/lttv/sync/event_processing_lttng_null.c       |  147 ++
 lttv/lttv/sync/event_processing_lttng_null.h       |   38 +
 lttv/lttv/sync/event_processing_lttng_standard.c   |  741 +++++++
 lttv/lttv/sync/event_processing_lttng_standard.h   |   64 +
 lttv/lttv/sync/event_processing_text.c             |  484 +++++
 lttv/lttv/sync/event_processing_text.h             |   32 +
 lttv/lttv/sync/graph_functions.c                   |  271 +++
 lttv/lttv/sync/graph_functions.h                   |   49 +
 lttv/lttv/sync/lookup3.h                           |  143 ++
 lttv/lttv/sync/sync_chain.c                        |  163 ++
 lttv/lttv/sync/sync_chain.h                        |   77 +
 lttv/lttv/sync/sync_chain_lttv.c                   |  364 ++++
 lttv/lttv/sync/sync_chain_lttv.h                   |   28 +
 lttv/lttv/sync/sync_chain_unittest.c               |  474 +++++
 lttv/lttv/sync/testData/test1.txt                  |    7 +
 lttv/lttv/sync/testData/test10.txt                 |    7 +
 lttv/lttv/sync/testData/test11.txt                 |   16 +
 lttv/lttv/sync/testData/test12.txt                 |   13 +
 lttv/lttv/sync/testData/test2.txt                  |   12 +
 lttv/lttv/sync/testData/test3.txt                  |   15 +
 lttv/lttv/sync/testData/test4.txt                  |   12 +
 lttv/lttv/sync/testData/test5.txt                  |   12 +
 lttv/lttv/sync/testData/test6.txt                  |   12 +
 lttv/lttv/sync/testData/test7.txt                  |   12 +
 lttv/lttv/sync/testData/test8.txt                  |    6 +
 lttv/lttv/sync/testData/test9.txt                  |    7 +
 lttv/lttv/tracecontext.c                           |    5 +-
 lttv/lttv/tracecontext.h                           |    3 +
 lttv/modules/gui/lttvwindow/lttvwindow/callbacks.c |   71 +-
 .../gui/lttvwindow/lttvwindow/init_module.c        |    2 +-
 lttv/modules/text/Makefile.am                      |    3 +-
 lttv/modules/text/batchAnalysis.c                  |    6 +-
 lttv/modules/text/sync_chain_batch.c               |  445 +++++
 runlttv                                            |    5 +-
 62 files changed, 12051 insertions(+), 80 deletions(-)




More information about the lttng-dev mailing list