X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=includes%2Frts%2FFlags.h;h=75525d8984afc0cf7a3d60846f6435584f5a1555;hb=e8a42ae2991013f586cb0606fcbd70d9b4c41d6f;hp=dca727a1cd40e4b2c7f2b3235679d4c3ef184384;hpb=d20d32d788e2d6c088e6b03776c428df5bb004d3;p=ghc-hetmet.git diff --git a/includes/rts/Flags.h b/includes/rts/Flags.h index dca727a..75525d8 100644 --- a/includes/rts/Flags.h +++ b/includes/rts/Flags.h @@ -29,11 +29,14 @@ struct GC_FLAGS { nat maxStkSize; /* in *words* */ nat initialStkSize; /* in *words* */ + nat stkChunkSize; /* in *words* */ + nat stkChunkBufferSize; /* in *words* */ nat maxHeapSize; /* in *blocks* */ nat minAllocAreaSize; /* in *blocks* */ nat minOldGenSize; /* in *blocks* */ nat heapSizeSuggestion; /* in *blocks* */ + rtsBool heapSizeSuggestionAuto; double oldGenFactor; double pcFreeHeap; @@ -65,13 +68,12 @@ struct DEBUG_FLAGS { rtsBool sanity; /* 'S' warning: might be expensive! */ rtsBool stable; /* 't' */ rtsBool prof; /* 'p' */ - rtsBool eventlog; /* 'e' */ rtsBool linker; /* 'l' the object linker */ rtsBool apply; /* 'a' */ rtsBool stm; /* 'm' */ rtsBool squeeze; /* 'z' stack squeezing & lazy blackholing */ rtsBool hpc; /* 'c' coverage */ - rtsBool timestamp; /* add timestamps to traces */ + rtsBool sparks; /* 'r' */ }; struct COST_CENTRE_FLAGS { @@ -118,11 +120,16 @@ struct PROFILING_FLAGS { }; -#ifdef EVENTLOG -struct EVENTLOG_FLAGS { - rtsBool doEventLogging; +#define TRACE_NONE 0 +#define TRACE_EVENTLOG 1 +#define TRACE_STDERR 2 + +struct TRACE_FLAGS { + int tracing; + rtsBool timestamp; /* show timestamp in stderr output */ + + rtsBool scheduler; /* trace scheduler events */ }; -#endif struct CONCURRENT_FLAGS { int ctxtSwitchTime; /* in milliseconds */ @@ -144,9 +151,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 +175,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 +185,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 @@ -184,9 +200,7 @@ typedef struct _RTS_FLAGS { struct DEBUG_FLAGS DebugFlags; struct COST_CENTRE_FLAGS CcFlags; struct PROFILING_FLAGS ProfFlags; -#ifdef EVENTLOG - struct EVENTLOG_FLAGS EventLogFlags; -#endif + struct TRACE_FLAGS TraceFlags; struct TICKY_FLAGS TickyFlags; #if defined(THREADED_RTS) @@ -208,9 +222,9 @@ extern RTS_FLAGS RtsFlags; /* Routines that operate-on/to-do-with RTS flags: */ -extern void initRtsFlagsDefaults(void); -extern void setupRtsFlags(int *argc, char *argv[], int *rts_argc, char *rts_argv[]); -extern void setProgName(char *argv[]); +void initRtsFlagsDefaults(void); +void setupRtsFlags(int *argc, char *argv[], int *rts_argc, char *rts_argv[]); +void setProgName(char *argv[]); /*