summaryrefslogtreecommitdiff
path: root/includes
diff options
context:
space:
mode:
authorIan Lynagh <igloo@earth.li>2006-09-05 14:15:45 +0000
committerIan Lynagh <igloo@earth.li>2006-09-05 14:15:45 +0000
commit93db1991b5cacf8357493a2e17fbbfb485f3205b (patch)
tree4a9ebcc89dfbf9a106d42ec63b764cc7d0abdce2 /includes
parentc18587da71e16b581c293baee8d4af119b108da7 (diff)
downloadhaskell-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.h2
-rw-r--r--includes/RtsFlags.h7
-rw-r--r--includes/mkDerivedConstants.c2
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);