X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=rts%2FRtsFlags.c;h=1403801b07fc2814628d1114988708ca6a9191d6;hb=6cf8982ac30be6836a0cdd8be5a6ac1a1a144213;hp=d200bf25606201886f75b475a85e067c3d82938e;hpb=a5288c551349a0adab0d931a429b10a096d9444d;p=ghc-hetmet.git diff --git a/rts/RtsFlags.c b/rts/RtsFlags.c index d200bf2..1403801 100644 --- a/rts/RtsFlags.c +++ b/rts/RtsFlags.c @@ -135,7 +135,7 @@ void initRtsFlagsDefaults(void) #endif #ifdef TRACING - RtsFlags.TraceFlags.trace_stderr = rtsFalse; + RtsFlags.TraceFlags.tracing = TRACE_NONE; RtsFlags.TraceFlags.timestamp = rtsFalse; RtsFlags.TraceFlags.scheduler = rtsFalse; #endif @@ -152,8 +152,9 @@ void initRtsFlagsDefaults(void) RtsFlags.ParFlags.migrate = rtsTrue; RtsFlags.ParFlags.wakeupMigrate = rtsFalse; RtsFlags.ParFlags.parGcEnabled = 1; - RtsFlags.ParFlags.parGcGen = 1; - RtsFlags.ParFlags.parGcLoadBalancing = 1; + RtsFlags.ParFlags.parGcGen = 0; + RtsFlags.ParFlags.parGcLoadBalancingEnabled = rtsTrue; + RtsFlags.ParFlags.parGcLoadBalancingGen = 1; RtsFlags.ParFlags.setAffinity = 0; #endif @@ -307,10 +308,11 @@ usage_text[] = { #if defined(THREADED_RTS) && !defined(NOSMP) " -N Use processors (default: 1)", " -N Determine the number of processors to use automatically", -" -q1 Use one OS thread for GC (turns off parallel GC)", -" -qg Use parallel GC only for generations >= (default: 1)", -" -qb Disable load-balancing in the parallel GC", -" -qa Use the OS to set thread affinity", +" -qg[] Use parallel GC only for generations >= ", +" (default: 0, -qg alone turns off parallel GC)", +" -qb[] Use load-balancing in the parallel GC only for generations >= ", +" (default: 1, -qb alone turns off load-balancing)", +" -qa Use the OS to set thread affinity (experimental)", " -qm Don't automatically migrate threads between CPUs", " -qw Migrate a thread to the current CPU when it is woken up", #endif @@ -650,7 +652,7 @@ error = rtsTrue; } // -Dx also turns on -v. Use -l to direct trace // events to the .eventlog file instead. - RtsFlags.TraceFlags.trace_stderr = rtsTrue; + RtsFlags.TraceFlags.tracing = TRACE_STDERR; break; } #endif @@ -758,20 +760,21 @@ error = rtsTrue; #ifdef TRACING switch(rts_argv[arg][2]) { case '\0': - RtsFlags.TraceFlags.trace_stderr = rtsFalse; - break; + RtsFlags.TraceFlags.tracing = TRACE_EVENTLOG; + break; case 's': - RtsFlags.TraceFlags.scheduler = rtsTrue; - break; + RtsFlags.TraceFlags.tracing = TRACE_EVENTLOG; + RtsFlags.TraceFlags.scheduler = rtsTrue; + break; default: errorBelch("unknown RTS option: %s",rts_argv[arg]); error = rtsTrue; break; } #else - errorBelch("not built for: -eventlog"); + errorBelch("not built for: -eventlog"); #endif - break; + break; case 'P': /* detailed cost centre profiling (time/alloc) */ case 'p': /* cost centre profiling (time/alloc) */ @@ -1008,21 +1011,25 @@ error = rtsTrue; errorBelch("incomplete RTS option: %s",rts_argv[arg]); error = rtsTrue; break; - case '1': - RtsFlags.ParFlags.parGcEnabled = rtsFalse; - break; case 'g': - if (rts_argv[arg][3] != '\0') { + if (rts_argv[arg][3] == '\0') { + RtsFlags.ParFlags.parGcEnabled = rtsFalse; + } else { + RtsFlags.ParFlags.parGcEnabled = rtsTrue; RtsFlags.ParFlags.parGcGen = strtol(rts_argv[arg]+3, (char **) NULL, 10); - } else { - errorBelch("bad value for -qg"); - error = rtsTrue; } break; case 'b': - RtsFlags.ParFlags.parGcLoadBalancing = rtsFalse; - break; + if (rts_argv[arg][3] == '\0') { + RtsFlags.ParFlags.parGcLoadBalancingEnabled = rtsFalse; + } + else { + RtsFlags.ParFlags.parGcLoadBalancingEnabled = rtsTrue; + RtsFlags.ParFlags.parGcLoadBalancingGen + = strtol(rts_argv[arg]+3, (char **) NULL, 10); + } + break; case 'a': RtsFlags.ParFlags.setAffinity = rtsTrue; break; @@ -1074,7 +1081,7 @@ error = rtsTrue; switch(rts_argv[arg][2]) { #ifdef TRACING case '\0': - RtsFlags.TraceFlags.trace_stderr = rtsTrue; + RtsFlags.TraceFlags.tracing = TRACE_STDERR; break; case 't': RtsFlags.TraceFlags.timestamp = rtsTrue;