X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=rts%2FRtsFlags.c;h=b3b95b32d9f78af3b40c049256bf976b441b5e51;hb=0ee0be109fd00ec629f7a2ad6a597885a0c9d5b4;hp=86900404d426259c81d266780c6ff02872708f5a;hpb=4cc0cf0ce1a313b7cc4999dda36cd7efb5fe0435;p=ghc-hetmet.git diff --git a/rts/RtsFlags.c b/rts/RtsFlags.c index 8690040..b3b95b3 100644 --- a/rts/RtsFlags.c +++ b/rts/RtsFlags.c @@ -17,6 +17,14 @@ #include #endif +#ifdef HAVE_UNISTD_H +#include +#endif + +#ifdef HAVE_WINDOWS_H +#include +#endif + #include #include @@ -218,6 +226,7 @@ void initRtsFlagsDefaults(void) RtsFlags.ParFlags.wakeupMigrate = rtsFalse; RtsFlags.ParFlags.parGcEnabled = 1; RtsFlags.ParFlags.parGcGen = 1; + RtsFlags.ParFlags.parGcLoadBalancing = 1; #endif #ifdef PAR @@ -454,7 +463,8 @@ usage_text[] = { "", #endif /* DEBUG */ #if defined(THREADED_RTS) && !defined(NOSMP) -" -N Use OS threads (default: 1)", +" -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)", " -qm Don't automatically migrate threads between CPUs", @@ -1138,7 +1148,13 @@ error = rtsTrue; #if defined(THREADED_RTS) && !defined(NOSMP) case 'N': THREADED_BUILD_ONLY( - if (rts_argv[arg][2] != '\0') { + if (rts_argv[arg][2] == '\0') { +#if defined(PROFILING) + RtsFlags.ParFlags.nNodes = 1; +#else + RtsFlags.ParFlags.nNodes = getNumberOfProcessors(); +#endif + } else { RtsFlags.ParFlags.nNodes = strtol(rts_argv[arg]+2, (char **) NULL, 10); if (RtsFlags.ParFlags.nNodes <= 0) { @@ -1186,6 +1202,9 @@ error = rtsTrue; error = rtsTrue; } break; + case 'b': + RtsFlags.ParFlags.parGcLoadBalancing = rtsFalse; + break; case 'm': RtsFlags.ParFlags.migrate = rtsFalse; break;