Commit | Line | Data |
---|---|---|
d3a684ee JR |
1 | # Trigger notification end-to-end latency analysis |
2 | ||
3 | ## Description | |
4 | This analysis is made-up of five executables. | |
5 | ||
6 | ### `producer` | |
7 | ||
8 | ``` | |
9 | Usage: producer UNIQUE_ID NB_EVENT DELAY_MS | |
10 | ``` | |
11 | ||
12 | An application that emits `NB_EVENT` times the `performance:hit` event every | |
13 | `DELAY_MS` milliseconds. | |
14 | ||
15 | ||
16 | ### `consumer` | |
17 | ``` | |
18 | Usage: consumer UNIQUE_ID NB_EVENT TRIGGER_NAME | |
19 | ``` | |
20 | ||
21 | A simple notification client that subscribes to the notifications emitted by the | |
22 | `TRIGGER_NAME` trigger. The consumer expects `NB_EVENT` notification and on each | |
23 | valid reception emits a `performance:receive` event. | |
24 | ||
25 | ||
26 | ### `perform-experience.sh` | |
27 | ||
28 | ``` | |
29 | Usage: perform-experience.sh SOURCE_ID TRACE_DIRECTORY_NAME DELAY_MS NB_EVENT` | |
30 | ``` | |
31 | ||
32 | This script performs a complete end-to-end trigger latency experience with | |
33 | `DELAY_MS` between each trigger hit and `NB_EVENT` times. | |
34 | ||
35 | The resulting lttng-ust trace is stored inside `$(pwd)/trace/TRACE_DIRECTORY_NAME` | |
36 | ||
37 | ### `generate-data.sh` | |
38 | ||
39 | ``` | |
40 | Usage: generate-data.sh | |
41 | ``` | |
42 | ||
43 | This script performs all configured experiences and apply the customs workload | |
44 | as necessary. | |
45 | ||
46 | The resulting traces are stored inside `$(pwd)/trace/` | |
47 | ||
48 | This script in its current form will run for about 25 hours. | |
49 | ||
50 | This script depends on `perform-experience.sh`. | |
51 | ||
52 | ### `generate-graph.sh` | |
53 | ||
54 | ``` | |
55 | Usage: generate-graph.sh | |
56 | ``` | |
57 | ||
58 | This script generate all histograms and saved them individually as pdf files. It | |
59 | also generate a `summary.pdf` files that contains all pdfs in order of trigger frequency. | |
60 | ||
61 | This script does not have to run on the machine that produced the data. | |
62 | ||
63 | This script requires the presence of the "trace/" folder to work. | |
64 | ||
65 | This script depends on the `bt_plugin_plot.py` babeltrace 2 plugins. Hence this | |
66 | script requires Babeltrace 2 with python bindings and python plugin support. | |
67 | ||
68 | The `bt_plugin_plot.py` requires `matplotlib`. | |
69 | ||
70 | ||
71 | ## Building | |
72 | ||
73 | Simply run the included Makefile. | |
74 | ||
75 | ## Running the complete | |
76 | ||
77 | 1) Launch a session daemon using: | |
78 | ``` | |
79 | $ lttng-sessiond | |
80 | ``` | |
81 | 2) Launch `generate-data.sh` | |
82 | 3) Wait ~25 hours | |
83 | 3) Launch `generate-graph.sh` |