Annotate thread stop events with the owner of the black hole
[ghc-hetmet.git] / includes / rts / EventLogFormat.h
index a860822..5741ad9 100644 (file)
 /*
  * Types of event
  */
-#define EVENT_CREATE_THREAD        0 /* (cap, thread)               */
-#define EVENT_RUN_THREAD           1 /* (cap, thread)               */
-#define EVENT_STOP_THREAD          2 /* (cap, thread, status)       */
-#define EVENT_THREAD_RUNNABLE      3 /* (cap, thread)               */
-#define EVENT_MIGRATE_THREAD       4 /* (cap, thread, new_cap)      */
-#define EVENT_RUN_SPARK            5 /* (cap, thread)               */
-#define EVENT_STEAL_SPARK          6 /* (cap, thread, victim_cap)   */
-#define EVENT_SHUTDOWN             7 /* (cap)                       */
-#define EVENT_THREAD_WAKEUP        8 /* (cap, thread, other_cap)    */
-#define EVENT_GC_START             9 /* (cap)                       */
-#define EVENT_GC_END              10 /* (cap)                       */
-#define EVENT_REQUEST_SEQ_GC      11 /* (cap)                       */
-#define EVENT_REQUEST_PAR_GC      12 /* (cap)                       */
-#define EVENT_CREATE_SPARK_THREAD 15 /* (cap, thread, spark_thread) */
-#define EVENT_LOG_CAP_MSG         16 /* (cap, message ...) */
-#define EVENT_LOG_MSG             17 /* (message ...) */
-#define EVENT_STARTUP             18 /* (num_capabilities) */
+#define EVENT_CREATE_THREAD        0 /* (thread)               */
+#define EVENT_RUN_THREAD           1 /* (thread)               */
+#define EVENT_STOP_THREAD          2 /* (thread, status, blockinfo) */
+#define EVENT_THREAD_RUNNABLE      3 /* (thread)               */
+#define EVENT_MIGRATE_THREAD       4 /* (thread, new_cap)      */
+#define EVENT_RUN_SPARK            5 /* (thread)               */
+#define EVENT_STEAL_SPARK          6 /* (thread, victim_cap)   */
+#define EVENT_SHUTDOWN             7 /* ()                     */
+#define EVENT_THREAD_WAKEUP        8 /* (thread, other_cap)    */
+#define EVENT_GC_START             9 /* ()                     */
+#define EVENT_GC_END              10 /* ()                     */
+#define EVENT_REQUEST_SEQ_GC      11 /* ()                     */
+#define EVENT_REQUEST_PAR_GC      12 /* ()                     */
+#define EVENT_CREATE_SPARK_THREAD 15 /* (spark_thread)         */
+#define EVENT_LOG_MSG             16 /* (message ...)          */
+#define EVENT_STARTUP             17 /* (num_capabilities)     */
+#define EVENT_BLOCK_MARKER        18 /* (size, end_time, capability) */
+#define EVENT_USER_MSG            19 /* (message ...)          */
+#define EVENT_GC_IDLE             20 /* () */
+#define EVENT_GC_WORK             21 /* () */
+#define EVENT_GC_DONE             22 /* () */
 
-#define NUM_EVENT_TAGS            19
+#define NUM_EVENT_TAGS            23
 
 #if 0  /* DEPRECATED EVENTS: */
 #define EVENT_CREATE_SPARK        13 /* (cap, thread) */
  * #define ThreadYielding 3
  * #define ThreadBlocked  4
  * #define ThreadFinished 5
+ * #define ForeignCall                  6
+ * #define BlockedOnMVar                7
+ * #define BlockedOnBlackHole           8
+ * #define BlockedOnRead                9
+ * #define BlockedOnWrite               10
+ * #define BlockedOnDelay               11
+ * #define BlockedOnSTM                 12
+ * #define BlockedOnDoProc              13
+ * #define BlockedOnCCall               -- not used (see ForeignCall)
+ * #define BlockedOnCCall_NoUnblockExc  -- not used (see ForeignCall)
+ * #define BlockedOnMsgThrowTo          16
  */
 #define THREAD_SUSPENDED_FOREIGN_CALL 6
 
 
 typedef StgWord16 EventTypeNum;
 typedef StgWord64 EventTimestamp; // in nanoseconds
-typedef StgWord64 EventThreadID;
+typedef StgWord32 EventThreadID;
 typedef StgWord16 EventCapNo;
 typedef StgWord16 EventPayloadSize; // variable-size events
+typedef StgWord16 EventThreadStatus; // status for EVENT_STOP_THREAD
 
 #endif