Add support for collecting PAPI native events
[ghc-hetmet.git] / includes / rts / Flags.h
index 3d0230a..8bfadaa 100644 (file)
@@ -34,6 +34,7 @@ struct GC_FLAGS {
     nat     minAllocAreaSize;   /* in *blocks* */
     nat     minOldGenSize;      /* in *blocks* */
     nat     heapSizeSuggestion; /* in *blocks* */
+    rtsBool heapSizeSuggestionAuto;
     double  oldGenFactor;
     double  pcFreeHeap;
 
@@ -117,8 +118,12 @@ struct PROFILING_FLAGS {
 
 };
 
+#define TRACE_NONE      0
+#define TRACE_EVENTLOG  1
+#define TRACE_STDERR    2
+
 struct TRACE_FLAGS {
-    rtsBool trace_stderr;
+    int tracing;
     rtsBool timestamp;      /* show timestamp in stderr output */
 
     rtsBool scheduler;      /* trace scheduler events */
@@ -144,9 +149,14 @@ struct PAR_FLAGS {
   rtsBool        wakeupMigrate;  /* migrate a thread on wakeup */
   unsigned int  maxLocalSparks;
   rtsBool        parGcEnabled;   /* enable parallel GC */
-  rtsBool        parGcGen;       /* do parallel GC in this generation
+  unsigned int   parGcGen;       /* do parallel GC in this generation
                                   * and higher only */
-  rtsBool        parGcLoadBalancing; /* do load-balancing in parallel GC */
+  rtsBool        parGcLoadBalancingEnabled; 
+                                 /* enable load-balancing in the
+                                  * parallel GC */
+  unsigned int   parGcLoadBalancingGen;
+                                 /* do load-balancing in this
+                                  * generation and higher only */
   rtsBool        setAffinity;    /* force thread affinity with CPUs */
 };
 #endif /* THREADED_RTS */
@@ -163,6 +173,8 @@ struct PAPI_FLAGS {
     nat     eventType;          /* The type of events to count */
     nat     numUserEvents;
     char *  userEvents[MAX_PAPI_USER_EVENTS];
+    /* Allow user to enter either PAPI preset or native events */
+    nat     userEventsKind[MAX_PAPI_USER_EVENTS];
 };
 
 #define PAPI_FLAG_CACHE_L1 1
@@ -171,6 +183,8 @@ struct PAPI_FLAGS {
 #define PAPI_FLAG_STALLS 4
 #define PAPI_FLAG_CB_EVENTS 5
 #define PAPI_USER_EVENTS 6
+#define PAPI_PRESET_EVENT_KIND 0
+#define PAPI_NATIVE_EVENT_KIND 1
 
 #endif