8e7ec54766f97131c14e84dacf16fe64f49decd0
[barrelfish] / trace_definitions / trace_defs.pleco
1 /*
2  * Copyright (c) 2012-2013, ETH Zurich.
3  * All rights reserved.
4  *
5  * This file is distributed under the terms in the attached LICENSE file.
6  * If you do not find this file, copies can be found by writing to:
7  * ETH Zurich D-INFK, Haldeneggsteig 4, CH-8092 Zurich. Attn: Systems Group.
8 */
9 /*
10  * \brief Subsystem and Event definitions of the tracing framework.
11  *
12  * Events do always belong to their subsystem. Make sure that you only
13  * call trace_event() with matching subsystems, in order to be able to
14  * make reasonable use of Aquarium 2.
15  *
16  * Note: If you don't specify a verbose description of the event, the
17  * description will default to the name of the event.
18  *
19  * Example:
20  *
21  * The subystem:
22  *
23  * subsystem mysubsystem {
24  *              event myevent "",
25  * }
26  *
27  * will be compiled into the following two C macros:
28  *
29  * #define TRACE_SUBSYSTEM_MYSUBSYSTEM 1
30  * #define TRACE_EVENT_MYSUBSYSTEM_MYEVENT 1
31  *
32  * The pattern is that every subsystem is mapped to the concatentation of
33  * TRACE_SUBSYSTEM_ and its name in uppercase, and each event is mapped to
34  * the concatenation of TRACE_EVENT_ and the subsystem name in upper case,
35  * followed by a _ and the name of the event.
36  *
37 */
38
39 subsystem kernel {
40
41         event CSWITCH                           "Context Switch",
42         event BZERO                             "Buffer zeroing",
43         event TIMER                             "",
44         event TIMER_SYNC                        "",
45
46         event SCHED_MAKE_RUNNABLE       "",
47         event SCHED_REMOVE                      "",
48         event SCHED_YIELD                       "",
49         event SCHED_SCHEDULE            "",
50         event SCHED_CURRENT             "",
51
52     event CORE_START_REQUEST      "Requested start of a new core.",
53     event CORE_START_REQUEST_DONE "Request is sent, waiting for core to come up.",
54     event CORE_START_REQUEST_ACK  "Core is online.",
55 };
56
57 subsystem threads {
58
59     event BARRIER_ENTER                         "",
60     event BARRIER_LEAVE                         "",
61
62     event MUTEX_LOCK_ENTER                      "",
63     event MUTEX_LOCK_LEAVE                      "",
64     event MUTEX_LOCK_NESTED_ENTER       "",
65     event MUTEX_LOCK_NESTED_LEAVE       "",
66     event MUTEX_TRYLOCK                         "",
67     event MUTEX_UNLOCK                          "",
68
69     event COND_WAIT_ENTER                       "",
70     event COND_WAIT_LEAVE                       "",
71     event COND_SIGNAL                           "",
72     event COND_BROADCAST                        "",
73
74     event SEM_WAIT_ENTER                        "",
75     event SEM_WAIT_LEAVE                        "",
76     event SEM_TRYWAIT                           "",
77     event SEM_POST                                      "",
78 };
79
80 subsystem memserv {
81
82     event ALLOC "",
83
84         event PERCORE_INIT                              "",
85         event PERCORE_ALLOC                     "",
86         event PERCORE_ALLOC_COMPLETE    "",
87 };
88
89 subsystem memtest {
90
91         event START                                     "",
92         event STOP                                      "",
93         event STARTED                           "",
94         event WAIT                                      "",
95         event RUN                                       "",
96         event DONE                                      "",
97         event ALLOC                             "",
98         event MASTER                            "",
99         event WORKER                            "",
100
101 };
102
103
104 subsystem monitor {
105     event SPAN0                                 "",
106     event SPAN1                                 "",
107     event SPAN                                          "",
108     event PCREQ                                 "",
109     event PCREP                                 "",
110     event PCREQ_INTER                           "",
111     event PCREPLY_INTER                 "",
112     event URPC_BLOCK                            "",
113     event URPC_UNBLOCK                          "",
114     event REMOTE_CAP_RETYPE             "",
115     event REMOTE_CAP_RETYPE_RETRY       "",
116     event REMOTE_CAP_RETYPE_MSG "",
117     event REMOTE_CAP_RETYPE_END "",
118     event POLLING                                       "",
119     event BIND_MONITOR_REPLY "Bind monitor reply",
120     event BIND_MONITOR_REQUEST "Request to setup connection with new monitor",
121     event BOOT_CORE_REQUEST "Received request from (user -> monitor) [in monitor].",
122     event BOOT_INITIALIZE_REQUEST "Monitor got boot initialize request",
123     event INVOKE_SPAWN "Monitor requests boot-up from kernel (monitor -> kernel).",
124 };
125
126 subsystem chips {
127
128  event LISTENCB                                 "",
129
130 };
131
132 subsystem bflib {
133
134         // XXX: Empty subsystems are not allowed
135         event dummy                             "",
136
137 };
138
139
140 subsystem tweed {
141
142  event START                            "",
143  event END                                      "",
144  event STEAL                            "",
145  event STEAL_END                        "",
146  event WAIT                                     "",
147  event WAIT_END                         "",
148  event LOCKING                          "",
149  event LOCKING_END                      "",
150
151 };
152
153 subsystem route {
154
155  event BCAST_WITH_CCAST_SEND            "",
156  event BCAST_WITH_CCAST                         "",
157  event RECV_BCAST_WITH_CCAST            "",
158  event RECV_CCAST                                       "",
159  event BENCH_START                                      "",
160  event BENCH_STOP                                       "",
161  event SEND_PING                                        "",
162  event SEND_PONG                                        "",
163  event RECV_PING                                        "",
164  event RECV_PONG                                        "",
165  event POLL                                                     "",
166
167 };
168
169 subsystem bench {
170
171  event PCBENCH                          "",
172  event RXPING                           "",
173  event RXPONG                           "",
174
175 };
176
177 subsystem bomp {
178
179  event START                            "",
180  event STOP                                     "",
181  event ITER                                     "",
182
183 };
184
185 subsystem barriers {
186
187  event START                            "",
188  event STOP                                     "",
189  event BARRIER_WAIT                     "",
190  event CENTRAL_REQ                      "",
191  event CENTRAL_REP                      "",
192  event TREE_REQ                         "",
193  event TREE_REP                         "",
194  event DIST                                     "",
195  event SEND                                     "",
196  event POLL1                            "",
197  event POLL2                            "",
198  event HEAP_REQ                         "",
199  event HEAP_REP                         "",
200  event SEQ_BCAST_REQ            "",
201  event SEQ_BCAST_RECV           "",
202  event TREE_BCAST_REQ           "",
203  event TREE_BCAST_RECV          "",
204
205 };
206
207 /* Following constants are used in network subsystem. */
208 subsystem net {
209
210  event START               "",
211  event STOP                "",
212  event NI_AI               "added, 0",
213  event NI_I                "added, 0",
214  event NI_A                "added, pkt data location",
215  event NI_FILTER_FRAG      "added, pkt data location",
216  event NI_FILTER_EX_1      "added, pkt data location",
217  event NI_ARP              "added, pkt data location",
218  event NI_FILTER_EX_2      "added, pkt data location",
219  event NI_PKT_CPY_1        "added, pkt data location",
220  event NI_PKT_CPY_2        "added, pkt data location",
221  event NI_PKT_CPY_3        "added, pkt data location",
222  event NI_PKT_CPY_4        "added, pkt data location",
223
224  event NI_PKT_CPY          "added, pkt data location",
225  event NI_P                "added, pbuf_id",
226  event NI_S                "added, pbuf_id",
227  event AI_A                "added, pbuf_id",
228  event AI_P                "added, pbuf_addr",
229  event AO_C                "added, pbuf_addr",
230  event AO_Q                "added, pbuf_addr",
231  event AO_S                "added, pbuf_addr (as client_data )",
232  event NO_A                "added, client_data (pbuf_address in lwip)",
233  event NO_S                "added, e1000n.c client_data (pbuf_address in lwip)",
234
235 /* FIXME: Add the timings of when does NIC gets TX_done */
236  event NO_TXD              "yet to add",
237  event AIR_R               "added, pbuf_addr (TX DONE in app)",
238
239 /* Response flow */
240  event AOR_S               "added, pbuf_id ( register_pbuf from APP)",
241  event NIR_REG_PBUF        "commented pbuf_id ( register_pbuf in NIC)",
242 };
243
244 subsystem multihop {
245
246  event BENCH_START               "",
247  event BENCH_STOP                "",
248  event MESSAGE_SEND              "",
249  event MESSAGE_RECEIVE           "",
250
251 };
252
253 /* Following constants are used in network benchmark. */
254 subsystem bnet {
255
256  event START               "",
257  event STOP                "",
258  event DRV_SEE             "",
259  event APP_SEE             "",
260  event DRV_INT             "",
261  event DRV_POLL            "",
262  event YIELD               "",
263  event I                   "",
264
265 };
266
267 /* Following constans are used for profiling modified stack */
268 subsystem nnet {
269
270  event START               "",
271  event STOP                "",
272  event RXDRVSEE            "Driver saw pkg (RX)",
273  event RXESVSEE            "Ethersrv saw pkg",
274  event RXESVFRGDONE        "Ethersrv checked frag",
275  event RXESVAPPFDONE       "Ethersrv app filtered",
276  event RXESVAPPCSTART      "Ethersrv app c2u started",
277  event RXESVCOPIED         "Ethersrv copied pkg",
278  event RXESVSPPDONE        "Ethersrv spp produce done",
279  event RXESVAPPNOTIF       "Ethersrv app notify",
280  event RXLWIINCOM          "LWIP handle_incoming_",
281  event RXLWIRECH           "LWIP call rec_handler",
282  event RXAPPRCV            "APP received",
283
284  event TXAPPSNT            "APP sent",
285  event TXLWISEE            "LWIP idc_send_packet",
286  event TXLWIBFFENCE        "LWIP before mfence",
287  event TXLWIAFFENCE        "LWIP after mfence",
288  event TXLWIFLUSHED        "LWIP payload flushed",
289  event TXLWIBDESC          "LWIP bufferdesc fetched",
290  event TXLWISPPSND         "LWIP spp produced",
291  event TXLWISPPIDX         "LWIP update spp index",
292  event TXLWITXWORK         "LWIP pending TX work",
293  event TXLWINOTIF          "LWIP notify driver",
294  event TXESVNOTIF          "Ethersrv notify recieved",
295  event TXESVSPOW           "Ethersrv send_pkt_on_w..",
296  event TXESVSSPOW          "Ethersrv send_sng_pkt..",
297  event TXDRVADD            "Driver add pkg (TX)",
298  event TXDRVSEE            "Driver saw pkg done (TX)",
299  event TX_TCP_WRITE        "tcp_write done",
300  event TX_TCP_OUTPUT       "tcp_output done",
301  event TX_TCP_RECV         "tcp_recved done",
302  event TX_TCP_FREE         "tx pbuf freed",
303  event TX_MEMP             "tx pbuf memp start",
304  event TX_MEMP_D           "tx pbuf memp done",
305
306 };
307
308 /* The example subsystem is used to demonstrate how the tracing framework
309  * works. It is used by the program in "examples/xmpl-trace". */
310 subsystem xmpl {
311
312         event START                             "",
313         event STOP                              "",
314         event EV1                               "",
315         event EV2                               "",
316
317 };
318
319 subsystem acpi {
320     event APIC_ADDED     "ACPI added fact about new core to SKB",
321 };
322
323 // Use to trace the core booting system
324 subsystem cores {
325     event USER_REQUEST     "Kaluga requests boot-up of new CPU user -> monitor.",
326     event ALL_UP           "Everything has booted",
327     event BOOT_INITIALIZE_USER "User sends boot initialize to monitor",
328 };