rts: Fix #9003 with an annoying hack
authorAustin Seipp <austin@well-typed.com>
Thu, 10 Jul 2014 00:08:26 +0000 (19:08 -0500)
committerAustin Seipp <austin@well-typed.com>
Thu, 10 Jul 2014 00:20:38 +0000 (19:20 -0500)
The TL;DR is that by adding this, we can distinguish GHC 7.8.3 from
7.8.2, which had a buggy implementation. See the ticket for details.

Signed-off-by: Austin Seipp <austin@well-typed.com>
includes/rts/EventLogFormat.h
rts/eventlog/EventLog.c

index e08a449..a1e038f 100644 (file)
 #define EVENT_TASK_MIGRATE        56 /* (taskID, cap, new_cap)   */
 #define EVENT_TASK_DELETE         57 /* (taskID)                 */
 #define EVENT_USER_MARKER         58 /* (marker_name) */
+#define EVENT_HACK_BUG_T9003      59 /* Hack: see trac #9003 */
+
 /* Range 59 - 59 is available for new GHC and common events. */
 
 /* Range 60 - 80 is used by eden for parallel tracing
  * ranges higher than this are reserved but not currently emitted by ghc.
  * This must match the size of the EventDesc[] array in EventLog.c
  */
-#define NUM_GHC_EVENT_TAGS        59
+#define NUM_GHC_EVENT_TAGS        60
 
 #if 0  /* DEPRECATED EVENTS: */
 /* we don't actually need to record the thread, it's implicit */
index 2e0e9bb..4fd4b44 100644 (file)
@@ -106,6 +106,7 @@ char *EventDesc[] = {
   [EVENT_TASK_CREATE]         = "Task create",
   [EVENT_TASK_MIGRATE]        = "Task migrate",
   [EVENT_TASK_DELETE]         = "Task delete",
+  [EVENT_HACK_BUG_T9003]      = "Empty event for bug #9003",
 };
 
 // Event type. 
@@ -420,6 +421,10 @@ initEventLogging(void)
                 sizeof(EventCapNo);
             break;
 
+        case EVENT_HACK_BUG_T9003:
+            eventTypes[t].size = 0;
+            break;
+
         default:
             continue; /* ignore deprecated events */
         }