Added tracing for core start-up.
[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 START_CORE_REQUEST "Received (monitor -> kernel) [in kernel].",
53     event CORE_START_IPI_SENT      "Request sent, waiting for core to appear.",
54     event CORE_IS_UP        "New kernel is online.",
55
56 };
57
58 subsystem threads {
59
60     event BARRIER_ENTER                         "",
61     event BARRIER_LEAVE                         "",
62
63     event MUTEX_LOCK_ENTER                      "",
64     event MUTEX_LOCK_LEAVE                      "",
65     event MUTEX_LOCK_NESTED_ENTER       "",
66     event MUTEX_LOCK_NESTED_LEAVE       "",
67     event MUTEX_TRYLOCK                         "",
68     event MUTEX_UNLOCK                          "",
69
70     event COND_WAIT_ENTER                       "",
71     event COND_WAIT_LEAVE                       "",
72     event COND_SIGNAL                           "",
73     event COND_BROADCAST                        "",
74
75     event SEM_WAIT_ENTER                        "",
76     event SEM_WAIT_LEAVE                        "",
77     event SEM_TRYWAIT                           "",
78     event SEM_POST                                      "",
79 };
80
81 subsystem memserv {
82
83     event ALLOC "",
84
85         event PERCORE_INIT                              "",
86         event PERCORE_ALLOC                     "",
87         event PERCORE_ALLOC_COMPLETE    "",
88 };
89
90 subsystem memtest {
91
92         event START                                     "",
93         event STOP                                      "",
94         event STARTED                           "",
95         event WAIT                                      "",
96         event RUN                                       "",
97         event DONE                                      "",
98         event ALLOC                             "",
99         event MASTER                            "",
100         event WORKER                            "",
101
102 };
103
104
105 subsystem monitor {
106     event SPAN0                                 "",
107     event SPAN1                                 "",
108     event SPAN                                          "",
109     event PCREQ                                 "",
110     event PCREP                                 "",
111     event PCREQ_INTER                           "",
112     event PCREPLY_INTER                 "",
113     event URPC_BLOCK                            "",
114     event URPC_UNBLOCK                          "",
115     event REMOTE_CAP_RETYPE             "",
116     event REMOTE_CAP_RETYPE_RETRY       "",
117     event REMOTE_CAP_RETYPE_MSG "",
118     event REMOTE_CAP_RETYPE_END "",
119     event POLLING                                       "",
120     event BIND_MONITOR_REPLY "Bind monitor reply",
121     event BIND_MONITOR_REQUEST "Request to setup connection with new monitor",
122     event BOOT_CORE_REQUEST "Received request from (user -> monitor) [in monitor].",
123     event BOOT_INITIALIZE_REQUEST "Monitor got boot initialize request",
124     event INVOKE_SPAWN "Monitor requests boot-up from kernel (monitor -> kernel).",
125 };
126
127 subsystem chips {
128
129  event LISTENCB                                 "",
130
131 };
132
133 subsystem bflib {
134
135         // XXX: Empty subsystems are not allowed
136         event dummy                             "",
137
138 };
139
140
141 subsystem tweed {
142
143  event START                            "",
144  event END                                      "",
145  event STEAL                            "",
146  event STEAL_END                        "",
147  event WAIT                                     "",
148  event WAIT_END                         "",
149  event LOCKING                          "",
150  event LOCKING_END                      "",
151
152 };
153
154 subsystem route {
155
156  event BCAST_WITH_CCAST_SEND            "",
157  event BCAST_WITH_CCAST                         "",
158  event RECV_BCAST_WITH_CCAST            "",
159  event RECV_CCAST                                       "",
160  event BENCH_START                                      "",
161  event BENCH_STOP                                       "",
162  event SEND_PING                                        "",
163  event SEND_PONG                                        "",
164  event RECV_PING                                        "",
165  event RECV_PONG                                        "",
166  event POLL                                                     "",
167
168 };
169
170 subsystem bench {
171
172  event PCBENCH                          "",
173  event RXPING                           "",
174  event RXPONG                           "",
175
176 };
177
178 subsystem bomp {
179
180  event START                            "",
181  event STOP                                     "",
182  event ITER                                     "",
183
184 };
185
186 subsystem barriers {
187
188  event START                            "",
189  event STOP                                     "",
190  event BARRIER_WAIT                     "",
191  event CENTRAL_REQ                      "",
192  event CENTRAL_REP                      "",
193  event TREE_REQ                         "",
194  event TREE_REP                         "",
195  event DIST                                     "",
196  event SEND                                     "",
197  event POLL1                            "",
198  event POLL2                            "",
199  event HEAP_REQ                         "",
200  event HEAP_REP                         "",
201  event SEQ_BCAST_REQ            "",
202  event SEQ_BCAST_RECV           "",
203  event TREE_BCAST_REQ           "",
204  event TREE_BCAST_RECV          "",
205
206 };
207
208 /* Following constants are used in network subsystem. */
209 subsystem net {
210
211  event START               "",
212  event STOP                "",
213  event NI_AI               "added, 0",
214  event NI_I                "added, 0",
215  event NI_A                "added, pkt data location",
216  event NI_FILTER_FRAG      "added, pkt data location",
217  event NI_FILTER_EX_1      "added, pkt data location",
218  event NI_ARP              "added, pkt data location",
219  event NI_FILTER_EX_2      "added, pkt data location",
220  event NI_PKT_CPY_1        "added, pkt data location",
221  event NI_PKT_CPY_2        "added, pkt data location",
222  event NI_PKT_CPY_3        "added, pkt data location",
223  event NI_PKT_CPY_4        "added, pkt data location",
224
225  event NI_PKT_CPY          "added, pkt data location",
226  event NI_P                "added, pbuf_id",
227  event NI_S                "added, pbuf_id",
228  event AI_A                "added, pbuf_id",
229  event AI_P                "added, pbuf_addr",
230  event AO_C                "added, pbuf_addr",
231  event AO_Q                "added, pbuf_addr",
232  event AO_S                "added, pbuf_addr (as client_data )",
233  event NO_A                "added, client_data (pbuf_address in lwip)",
234  event NO_S                "added, e1000n.c client_data (pbuf_address in lwip)",
235
236 /* FIXME: Add the timings of when does NIC gets TX_done */
237  event NO_TXD              "yet to add",
238  event AIR_R               "added, pbuf_addr (TX DONE in app)",
239
240 /* Response flow */
241  event AOR_S               "added, pbuf_id ( register_pbuf from APP)",
242  event NIR_REG_PBUF        "commented pbuf_id ( register_pbuf in NIC)",
243 };
244
245 subsystem multihop {
246
247  event BENCH_START               "",
248  event BENCH_STOP                "",
249  event MESSAGE_SEND              "",
250  event MESSAGE_RECEIVE           "",
251
252 };
253
254 /* Following constants are used in network benchmark. */
255 subsystem bnet {
256
257  event START               "",
258  event STOP                "",
259  event DRV_SEE             "",
260  event APP_SEE             "",
261  event DRV_INT             "",
262  event DRV_POLL            "",
263  event YIELD               "",
264  event I                   "",
265
266 };
267
268 /* Following constans are used for profiling modified stack */
269 subsystem nnet {
270
271  event START               "",
272  event STOP                "",
273  event RXDRVSEE            "Driver saw pkg (RX)",
274  event RXESVSEE            "Ethersrv saw pkg",
275  event RXESVFRGDONE        "Ethersrv checked frag",
276  event RXESVAPPFDONE       "Ethersrv app filtered",
277  event RXESVAPPCSTART      "Ethersrv app c2u started",
278  event RXESVCOPIED         "Ethersrv copied pkg",
279  event RXESVSPPDONE        "Ethersrv spp produce done",
280  event RXESVAPPNOTIF       "Ethersrv app notify",
281  event RXLWIINCOM          "LWIP handle_incoming_",
282  event RXLWIRECH           "LWIP call rec_handler",
283  event RXAPPRCV            "APP received",
284
285  event TXAPPSNT            "APP sent",
286  event TXLWISEE            "LWIP idc_send_packet",
287  event TXLWIBFFENCE        "LWIP before mfence",
288  event TXLWIAFFENCE        "LWIP after mfence",
289  event TXLWIFLUSHED        "LWIP payload flushed",
290  event TXLWIBDESC          "LWIP bufferdesc fetched",
291  event TXLWISPPSND         "LWIP spp produced",
292  event TXLWISPPIDX         "LWIP update spp index",
293  event TXLWITXWORK         "LWIP pending TX work",
294  event TXLWINOTIF          "LWIP notify driver",
295  event TXESVNOTIF          "Ethersrv notify recieved",
296  event TXESVSPOW           "Ethersrv send_pkt_on_w..",
297  event TXESVSSPOW          "Ethersrv send_sng_pkt..",
298  event TXDRVADD            "Driver add pkg (TX)",
299  event TXDRVSEE            "Driver saw pkg done (TX)",
300  event TX_TCP_WRITE        "tcp_write done",
301  event TX_TCP_OUTPUT       "tcp_output done",
302  event TX_TCP_RECV         "tcp_recved done",
303  event TX_TCP_FREE         "tx pbuf freed",
304  event TX_MEMP             "tx pbuf memp start",
305  event TX_MEMP_D           "tx pbuf memp done",
306
307 };
308
309 /* The example subsystem is used to demonstrate how the tracing framework
310  * works. It is used by the program in "examples/xmpl-trace". */
311 subsystem xmpl {
312
313         event START                             "",
314         event STOP                              "",
315         event EV1                               "",
316         event EV2                               "",
317
318 };
319
320 subsystem acpi {
321     event APIC_ADDED     "ACPI added fact about new core to SKB",
322 };
323
324 // Use to trace the core booting system
325 subsystem cores {
326     event USER_REQUEST     "Kaluga requests boot-up of new CPU user -> monitor.",
327     event ALL_UP           "Everything has booted",
328     event BOOT_INITIALIZE_USER "User sends boot initialize to monitor",
329 };