2 * Copyright (c) 2012-2013, ETH Zurich.
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.
10 * \brief Subsystem and Event definitions of the tracing framework.
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.
16 * Note: If you don't specify a verbose description of the event, the
17 * description will default to the name of the event.
23 * subsystem mysubsystem {
27 * will be compiled into the following two C macros:
29 * #define TRACE_SUBSYSTEM_MYSUBSYSTEM 1
30 * #define TRACE_EVENT_MYSUBSYSTEM_MYEVENT 1
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.
41 event CSWITCH "Context Switch",
42 event BZERO "Buffer zeroing",
46 event SCHED_MAKE_RUNNABLE "",
47 event SCHED_REMOVE "",
49 event SCHED_SCHEDULE "",
50 event SCHED_CURRENT "",
56 event BARRIER_ENTER "",
57 event BARRIER_LEAVE "",
59 event MUTEX_LOCK_ENTER "",
60 event MUTEX_LOCK_LEAVE "",
61 event MUTEX_LOCK_NESTED_ENTER "",
62 event MUTEX_LOCK_NESTED_LEAVE "",
63 event MUTEX_TRYLOCK "",
64 event MUTEX_UNLOCK "",
66 event COND_WAIT_ENTER "",
67 event COND_WAIT_LEAVE "",
69 event COND_BROADCAST "",
71 event SEM_WAIT_ENTER "",
72 event SEM_WAIT_LEAVE "",
75 event SYS_YIELD "Calling sys_yield for co-op scheduling",
76 event C_DISP_SAVE "calling disp_save",
83 event PERCORE_INIT "",
84 event PERCORE_ALLOC "",
85 event PERCORE_ALLOC_COMPLETE "",
109 event PCREQ_INTER "",
110 event PCREPLY_INTER "",
112 event URPC_UNBLOCK "",
113 event REMOTE_CAP_RETYPE "",
114 event REMOTE_CAP_RETYPE_RETRY "",
115 event REMOTE_CAP_RETYPE_MSG "",
116 event REMOTE_CAP_RETYPE_END "",
129 // XXX: Empty subsystems are not allowed
144 event LOCKING_END "",
150 event BCAST_WITH_CCAST_SEND "",
151 event BCAST_WITH_CCAST "",
152 event RECV_BCAST_WITH_CCAST "",
154 event BENCH_START "",
184 event BARRIER_WAIT "",
185 event CENTRAL_REQ "",
186 event CENTRAL_REP "",
195 event SEQ_BCAST_REQ "",
196 event SEQ_BCAST_RECV "",
197 event TREE_BCAST_REQ "",
198 event TREE_BCAST_RECV "",
202 /* Following constans are used for profiling modified stack */
207 event RXESVAPPFDONE "Ethersrv app filtered",
209 event RXDRVSEE "Driver saw pkg (RX)",
210 event RXESVSEE "Ethersrv saw pkg",
211 event RXESVFRGDONE "Ethersrv checked frag",
212 event LWIPTX "LWIP idc_send_packet_to_network_driver",
213 event SCHED_REMOVE "Process marked non-runnable",
214 event IRQ "interrupt in kernelspace",
215 event UIRQ "interrupt in kernelspace for userspace",
216 event NO_S "e1000 packet send",
217 event NI_I "e1000 interrupt arrived",
219 event YIELD "process yielded",
221 event LWIPPBF2 "LWIP pbuf freed",
222 event LWIPPBA2 "LWIP pbuf Allocated",
224 event NI_PKT_CPY "Queue manager packet copy",
225 event DRV_POLL "e1000 polling",
226 event DRV_SEE "handled packet",
227 event DRVTXDONE "TX buffer reclamation",
228 event DRVRX "checking for new packets",
229 event WEBEVENTLOOP "Webserver event loop",
232 event RXESVAPPCSTART "Ethersrv app c2u started",
233 event RXESVCOPIED "Ethersrv copied pkg",
234 event RXESVSPPDONE "Ethersrv spp produce done",
235 event RXESVAPPNOTIF "Ethersrv app notify",
236 event RXLWIINCOM "LWIP handle_incoming_",
237 event RXLWIRECH "LWIP call rec_handler",
238 event RXAPPRCV "APP received",
239 event LWIPRX "LWIP handle incoming",
241 event TXAPPSNT "APP sent",
242 event TXLWISEE "LWIP idc_send_packet",
243 event TXLWIBFFENCE "LWIP before mfence",
244 event TXLWIAFFENCE "LWIP after mfence",
245 event TXLWIFLUSHED "LWIP payload flushed",
246 event TXLWIBDESC "LWIP bufferdesc fetched",
247 event TXLWISPPSND "LWIP spp produced",
248 event TXLWISPPIDX "LWIP update spp index",
249 event TXLWITXWORK "LWIP pending TX work",
250 event TXLWINOTIF "LWIP notify driver",
251 event TXESVNOTIF "Ethersrv notify recieved",
252 event TXESVSPOW "Ethersrv send_pkt_on_w..",
253 event TXESVSSPOW "Ethersrv send_sng_pkt..",
254 event TXDRVADD "Driver add pkg (TX)",
255 event TXDRVSEE "Driver saw pkg done (TX)",
256 event TX_TCP_WRITE "tcp_write done",
257 event TX_TCP_OUTPUT "tcp_output done",
258 event TX_TCP_RECV "tcp_recved done",
259 event TX_TCP_FREE "tx pbuf freed",
260 event TX_MEMP "tx pbuf memp start",
261 event TX_MEMP_D "tx pbuf memp done",
271 event BENCH_START "",
273 event MESSAGE_SEND "",
274 event MESSAGE_RECEIVE "",
279 /* The example subsystem is used to demonstrate how the tracing framework
280 * works. It is used by the program in "examples/xmpl-trace". */