diff options
author | Ian Lynagh <igloo@earth.li> | 2006-09-05 14:15:45 +0000 |
---|---|---|
committer | Ian Lynagh <igloo@earth.li> | 2006-09-05 14:15:45 +0000 |
commit | 93db1991b5cacf8357493a2e17fbbfb485f3205b (patch) | |
tree | 4a9ebcc89dfbf9a106d42ec63b764cc7d0abdce2 /includes | |
parent | c18587da71e16b581c293baee8d4af119b108da7 (diff) | |
download | haskell-93db1991b5cacf8357493a2e17fbbfb485f3205b.tar.gz |
new RTS flag: -V to modify the resolution of the RTS timer
Fixed version of an old patch by Simon Marlow. His description read:
Also, now an arbitrarily short context switch interval may now be
specified, as we increase the RTS ticker's resolution to match the
requested context switch interval. This also applies to +RTS -i (heap
profiling) and +RTS -I (the idle GC timer). +RTS -V is actually only
required for increasing the resolution of the profile timer.
Diffstat (limited to 'includes')
-rw-r--r-- | includes/Cmm.h | 2 | ||||
-rw-r--r-- | includes/RtsFlags.h | 7 | ||||
-rw-r--r-- | includes/mkDerivedConstants.c | 2 |
3 files changed, 8 insertions, 3 deletions
diff --git a/includes/Cmm.h b/includes/Cmm.h index 3d3283e811..d58eebc424 100644 --- a/includes/Cmm.h +++ b/includes/Cmm.h @@ -513,8 +513,6 @@ Misc junk -------------------------------------------------------------------------- */ -#define TICK_MILLISECS (1000/TICK_FREQUENCY) /* ms per tick */ - #define NO_TREC stg_NO_TREC_closure #define END_TSO_QUEUE stg_END_TSO_QUEUE_closure diff --git a/includes/RtsFlags.h b/includes/RtsFlags.h index ccf170f0f7..fbdc64ebbc 100644 --- a/includes/RtsFlags.h +++ b/includes/RtsFlags.h @@ -42,7 +42,7 @@ struct GC_FLAGS { rtsBool ringBell; rtsBool frontpanel; - int idleGCDelayTicks; /* in milliseconds */ + int idleGCDelayTime; /* in milliseconds */ }; struct DEBUG_FLAGS { @@ -112,6 +112,10 @@ struct CONCURRENT_FLAGS { int ctxtSwitchTicks; /* derived */ }; +struct MISC_FLAGS { + int tickInterval; /* in milliseconds */ +}; + #ifdef PAR /* currently the same as GRAN_STATS_FLAGS */ struct PAR_STATS_FLAGS { @@ -300,6 +304,7 @@ typedef struct _RTS_FLAGS { /* The first portion of RTS_FLAGS is invariant. */ struct GC_FLAGS GcFlags; struct CONCURRENT_FLAGS ConcFlags; + struct MISC_FLAGS MiscFlags; struct DEBUG_FLAGS DebugFlags; struct COST_CENTRE_FLAGS CcFlags; struct PROFILING_FLAGS ProfFlags; diff --git a/includes/mkDerivedConstants.c b/includes/mkDerivedConstants.c index efb6c4aed7..05bf373e40 100644 --- a/includes/mkDerivedConstants.c +++ b/includes/mkDerivedConstants.c @@ -374,6 +374,8 @@ main(int argc, char *argv[]) RTS_FLAGS, DebugFlags.weak); struct_field_("RtsFlags_GcFlags_initialStkSize", RTS_FLAGS, GcFlags.initialStkSize); + struct_field_("RtsFlags_MiscFlags_tickInterval", + RTS_FLAGS, MiscFlags.tickInterval); struct_size(StgFunInfoExtraFwd); struct_field(StgFunInfoExtraFwd, slow_apply); |