X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=includes%2FRtsFlags.h;h=348a8f52252ee76009b1590119d68051eb9af982;hb=88605454e4bf30d7fca2b0eea4643c5637afd5cc;hp=88a634609820bca623bc261822fbf53ba9cad194;hpb=73637ad66b7f88e57dcd0e0ea93b3d7bf8fb0d78;p=ghc-hetmet.git diff --git a/includes/RtsFlags.h b/includes/RtsFlags.h index 88a6346..348a8f5 100644 --- a/includes/RtsFlags.h +++ b/includes/RtsFlags.h @@ -39,6 +39,8 @@ struct GC_FLAGS { rtsBool compact; /* True <=> "compact all the time" */ double compactThreshold; + rtsBool sweep; /* use "mostly mark-sweep" instead of copying + * for the oldest generation */ rtsBool ringBell; rtsBool frontpanel; @@ -58,6 +60,7 @@ struct DEBUG_FLAGS { rtsBool sanity; /* 'S' warning: might be expensive! */ rtsBool stable; /* 't' */ rtsBool prof; /* 'p' */ + rtsBool eventlog; /* 'e' */ rtsBool gran; /* 'r' */ rtsBool par; /* 'P' */ rtsBool linker; /* 'l' the object linker */ @@ -65,6 +68,7 @@ struct DEBUG_FLAGS { rtsBool stm; /* 'm' */ rtsBool squeeze; /* 'z' stack squeezing & lazy blackholing */ rtsBool hpc; /* 'c' coverage */ + rtsBool timestamp; /* add timestamps to traces */ }; struct COST_CENTRE_FLAGS { @@ -111,6 +115,12 @@ struct PROFILING_FLAGS { }; +#ifdef EVENTLOG +struct EVENTLOG_FLAGS { + rtsBool doEventLogging; +}; +#endif + struct CONCURRENT_FLAGS { int ctxtSwitchTime; /* in milliseconds */ int ctxtSwitchTicks; /* derived */ @@ -119,6 +129,9 @@ struct CONCURRENT_FLAGS { struct MISC_FLAGS { int tickInterval; /* in milliseconds */ rtsBool install_signal_handlers; + rtsBool machineReadable; + StgWord linkerMemBase; /* address to ask the OS for memory + * for the linker, NULL ==> off */ }; #ifdef PAR @@ -175,6 +188,11 @@ struct PAR_FLAGS { rtsBool migrate; /* migrate threads between capabilities */ rtsBool wakeupMigrate; /* migrate a thread on wakeup */ unsigned int maxLocalSparks; + rtsBool parGcEnabled; /* enable parallel GC */ + rtsBool parGcGen; /* do parallel GC in this generation + * and higher only */ + rtsBool parGcLoadBalancing; /* do load-balancing in parallel GC */ + rtsBool setAffinity; /* force thread affinity with CPUs */ }; #endif /* THREADED_RTS */ @@ -298,16 +316,13 @@ struct TICKY_FLAGS { FILE *tickyFile; }; -struct TRACE_FLAGS { - rtsBool sched; /* trace scheduler events for profiling */ - rtsBool timestamp; /* add timestamps to traces */ -}; - -/* Put them together: */ - #ifdef USE_PAPI +#define MAX_PAPI_USER_EVENTS 8 + struct PAPI_FLAGS { nat eventType; /* The type of events to count */ + nat numUserEvents; + char * userEvents[MAX_PAPI_USER_EVENTS]; }; #define PAPI_FLAG_CACHE_L1 1 @@ -315,9 +330,12 @@ struct PAPI_FLAGS { #define PAPI_FLAG_BRANCH 3 #define PAPI_FLAG_STALLS 4 #define PAPI_FLAG_CB_EVENTS 5 +#define PAPI_USER_EVENTS 6 #endif +/* Put them together: */ + typedef struct _RTS_FLAGS { /* The first portion of RTS_FLAGS is invariant. */ struct GC_FLAGS GcFlags; @@ -326,8 +344,10 @@ 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 TICKY_FLAGS TickyFlags; - struct TRACE_FLAGS TraceFlags; #if defined(THREADED_RTS) || defined(PAR) struct PAR_FLAGS ParFlags;