arm: implement flush cache debug syscall
[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     // Do not change CSWITCH name without changing Aquarium EventFactory.java!
42         event CSWITCH                           "Context Switch",
43         event BZERO                             "Buffer zeroing",
44         event TIMER                             "",
45         event TIMER_SYNC                        "",
46
47         event SCHED_MAKE_RUNNABLE       "",
48         event SCHED_REMOVE                      "",
49         event SCHED_YIELD                       "",
50         event SCHED_SCHEDULE            "",
51         event SCHED_CURRENT             "",
52
53     event CORE_START_REQUEST      "Requested start of a new core.",
54     event CORE_START_REQUEST_DONE "Request is sent, waiting for core to come up.",
55     event CORE_START_REQUEST_ACK  "Core is online.",
56
57     /* Syscalls */
58     event SC_PRINT            "Syscall PRINT",
59     event SC_DISP_SETUP       "Syscall DISPATCHER ",
60     event SC_DISP_PROPS       "Syscall DISPATCHER_PROPS",
61     event SC_RETYPE           "Syscall RETYPE",
62     event SC_CREATE           "Syscall CREATE",
63     event SC_COPY_OR_MINT     "Syscall COPY_OR_MINT",
64     event SC_CTE_FOR_CAP      "Syscall CTE_FOR_CAP",
65     event SC_MAP              "Syscall MAP",
66     event SC_UNMAP            "Syscall UNMAP",
67     event SC_DELETE           "Syscall DELETE",
68     event SC_REVOKE           "Syscall REVOKE",
69     event SC_MONITOR_REGISTER "Syscall MONITOR_REGISTER",
70     event SC_IDENTIFY_CAP     "Syscall IDENTIFY_CAP",
71     event SC_NULLIFY_CAP      "Syscall NULLIFY_CAP",
72     event SC_DOMAIN_ID        "Syscall DOMAIN_ID",
73     event SC_YIELD            "Syscall YIELD",
74     event SC_SUSPEND          "Syscall SUSPEND",
75     event SC_IDCAP_IDENTIFY   "Syscall IDCAP_IDENTIFY",
76     event SC_SPAWN_CORE       "Syscall SPAWN_CORE",
77
78     event CAP_LOOKUP_SLOT          "Cap Slot lookup",
79     event CAP_LOOKUP_CAP           "Cap Lookup",
80     event CAP_CREATE_FROM_EXISTING "Cap Create from existing",
81     event CAP_CREATE_NEW           "Cap Create new",
82     event CAP_RETYPE               "Cap Retype",
83 };
84
85 subsystem threads {
86
87     event BARRIER_ENTER                         "",
88     event BARRIER_LEAVE                         "",
89
90     event MUTEX_LOCK_ENTER                      "",
91     event MUTEX_LOCK_LEAVE                      "",
92     event MUTEX_LOCK_NESTED_ENTER       "",
93     event MUTEX_LOCK_NESTED_LEAVE       "",
94     event MUTEX_TRYLOCK                         "",
95     event MUTEX_UNLOCK                          "",
96
97     event COND_WAIT_ENTER                       "",
98     event COND_WAIT_LEAVE                       "",
99     event COND_SIGNAL                           "",
100     event COND_BROADCAST                        "",
101
102     event SEM_WAIT_ENTER                        "",
103     event SEM_WAIT_LEAVE                        "",
104     event SEM_TRYWAIT                           "",
105     event SEM_POST                              "",
106     event SYS_YIELD                             "Calling sys_yield for co-op scheduling",
107     event C_DISP_SAVE                           "calling disp_save",
108 };
109
110 subsystem memserv {
111
112     event ALLOC "",
113
114         event PERCORE_INIT                              "",
115         event PERCORE_ALLOC                     "",
116         event PERCORE_ALLOC_COMPLETE    "",
117 };
118
119 subsystem memtest {
120
121         event START                                     "",
122         event STOP                                      "",
123         event STARTED                           "",
124         event WAIT                                      "",
125         event RUN                                       "",
126         event DONE                                      "",
127         event ALLOC                             "",
128         event MASTER                            "",
129         event WORKER                            "",
130
131 };
132
133
134 subsystem monitor {
135     event SPAN0                                 "",
136     event SPAN1                                 "",
137     event SPAN                                          "",
138     event PCREQ                                 "",
139     event PCREP                                 "",
140     event PCREQ_INTER                           "",
141     event PCREPLY_INTER                 "",
142     event URPC_BLOCK                            "",
143     event URPC_UNBLOCK                          "",
144     event REMOTE_CAP_RETYPE             "",
145     event REMOTE_CAP_RETYPE_RETRY       "",
146     event REMOTE_CAP_RETYPE_MSG "",
147     event REMOTE_CAP_RETYPE_END "",
148     event POLLING                                       "",
149     event BIND_MONITOR_REPLY "Bind monitor reply",
150     event BIND_MONITOR_REQUEST "Request to setup connection with new monitor",
151     event BOOT_CORE_REQUEST "Received request from (user -> monitor) [in monitor].",
152     event BOOT_INITIALIZE_REQUEST "Monitor got boot initialize request",
153     event INVOKE_SPAWN "Monitor requests boot-up from kernel (monitor -> kernel).",
154 };
155
156 subsystem chips {
157
158  event LISTENCB                                 "",
159
160 };
161
162 subsystem bflib {
163
164         // XXX: Empty subsystems are not allowed
165         event dummy                             "",
166
167 };
168
169
170 subsystem tweed {
171
172  event START                            "",
173  event END                                      "",
174  event STEAL                            "",
175  event STEAL_END                        "",
176  event WAIT                                     "",
177  event WAIT_END                         "",
178  event LOCKING                          "",
179  event LOCKING_END                      "",
180
181 };
182
183 subsystem route {
184
185  event BCAST_WITH_CCAST_SEND            "",
186  event BCAST_WITH_CCAST                         "",
187  event RECV_BCAST_WITH_CCAST            "",
188  event RECV_CCAST                                       "",
189  event BENCH_START                                      "",
190  event BENCH_STOP                                       "",
191  event SEND_PING                                        "",
192  event SEND_PONG                                        "",
193  event RECV_PING                                        "",
194  event RECV_PONG                                        "",
195  event POLL                                                     "",
196
197 };
198
199 // Generic Benchmarking events
200 subsystem bench {
201
202  event START                "Start the benchmark/tracing",
203  event STOP                 "End of the benchmark/tracing",
204
205  event ROUND_START          "",
206  event ROUND_END            "",
207
208  event PCBENCH                          "",
209  event RXPING                           "",
210  event RXPONG                           "",
211
212
213 };
214
215 subsystem bomp {
216
217  event START                            "",
218  event STOP                                     "",
219  event ITER                                     "",
220
221 };
222
223 subsystem barriers {
224
225  event START                            "",
226  event STOP                                     "",
227  event BARRIER_WAIT                     "",
228  event CENTRAL_REQ                      "",
229  event CENTRAL_REP                      "",
230  event TREE_REQ                         "",
231  event TREE_REP                         "",
232  event DIST                                     "",
233  event SEND                                     "",
234  event POLL1                            "",
235  event POLL2                            "",
236  event HEAP_REQ                         "",
237  event HEAP_REP                         "",
238  event SEQ_BCAST_REQ            "",
239  event SEQ_BCAST_RECV           "",
240  event TREE_BCAST_REQ           "",
241  event TREE_BCAST_RECV          "",
242
243 };
244
245 /* Following constans are used for profiling modified stack */
246 subsystem nnet {
247
248  event START               "",
249  event STOP                "",
250  event RXESVAPPFDONE       "Ethersrv app filtered",
251
252  event RXDRVSEE            "Driver saw pkg (RX)",
253  event RXESVSEE            "Ethersrv saw pkg",
254  event RXESVFRGDONE        "Ethersrv checked frag",
255  event LWIPTX              "LWIP idc_send_packet_to_network_driver",
256  event SCHED_REMOVE        "Process marked non-runnable",
257  event IRQ                 "interrupt in kernelspace",
258  event UIRQ                "interrupt in kernelspace for userspace",
259  event NO_S                "e1000 packet send",
260  event NI_I                "e1000 interrupt arrived",
261
262  event YIELD               "process yielded",
263
264  event LWIPPBF2            "LWIP pbuf freed",
265  event LWIPPBA2            "LWIP pbuf Allocated",
266
267  event NI_PKT_CPY          "Queue manager packet copy",
268 event DRV_POLL             "e1000 polling",
269  event DRV_SEE             "handled packet",
270  event DRVTXDONE           "TX buffer reclamation",
271  event DRVRX               "checking for new packets",
272  event WEBEVENTLOOP        "Webserver event loop",
273
274
275  event RXESVAPPCSTART      "Ethersrv app c2u started",
276  event RXESVCOPIED         "Ethersrv copied pkg",
277  event RXESVSPPDONE        "Ethersrv spp produce done",
278  event RXESVAPPNOTIF       "Ethersrv app notify",
279  event RXLWIINCOM          "LWIP handle_incoming_",
280  event RXLWIRECH           "LWIP call rec_handler",
281  event RXAPPRCV            "APP received",
282  event LWIPRX              "LWIP handle incoming",
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 };
309
310
311
312 subsystem multihop {
313
314  event BENCH_START               "",
315  event BENCH_STOP                "",
316  event MESSAGE_SEND              "",
317  event MESSAGE_RECEIVE           "",
318
319 };
320
321
322 /* The example subsystem is used to demonstrate how the tracing framework
323  * works. It is used by the program in "examples/xmpl-trace". */
324 subsystem xmpl {
325
326         event START                             "",
327         event STOP                              "",
328         event EV1                               "",
329         event EV2                               "",
330
331 };
332
333 subsystem acpi {
334     event APIC_ADDED     "ACPI added fact about new core to SKB",
335 };
336
337 // Use to trace the core booting system
338 subsystem cores {
339     event USER_REQUEST     "Kaluga requests boot-up of new CPU user -> monitor.",
340     event ALL_UP           "Everything has booted",
341     event BOOT_INITIALIZE_USER "User sends boot initialize to monitor",
342 };