X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=rts%2FRtsFlags.c;h=5eb7800540ca7785a16b26ab9a730b36d7758ff3;hb=cc94b30f3d854ed97ac6a7a54fa12247295219d4;hp=93482f50b43cd2dcc8e9d4aca91e4e85c01fd133;hpb=ef4372dc0ad6232dd36a91c0f4f043de6231aa74;p=ghc-hetmet.git diff --git a/rts/RtsFlags.c b/rts/RtsFlags.c index 93482f5..5eb7800 100644 --- a/rts/RtsFlags.c +++ b/rts/RtsFlags.c @@ -324,9 +324,6 @@ usage_text[] = { " --install-signal-handlers=", " Install signal handlers (default: yes)", #if defined(THREADED_RTS) -" -e Size of spark pools (default 100)", -#endif -#if defined(THREADED_RTS) " -e Maximum number of outstanding local sparks (default: 4096)", #endif #if defined(x86_64_HOST_ARCH) @@ -343,6 +340,8 @@ usage_text[] = { " b - branch mispredictions", " s - stalled cycles", " e - cache miss and branch misprediction events", +" +PAPI_EVENT - collect papi preset event PAPI_EVENT", +" #NATIVE_EVENT - collect native event NATIVE_EVENT (in hex)", #endif "", "RTS options may also be specified using the GHCRTS environment variable.", @@ -580,12 +579,18 @@ error = rtsTrue; RtsFlags.PapiFlags.eventType = PAPI_FLAG_CB_EVENTS; break; case '+': + case '#': if (RtsFlags.PapiFlags.numUserEvents >= MAX_PAPI_USER_EVENTS) { errorBelch("maximum number of PAPI events reached"); stg_exit(EXIT_FAILURE); } + nat eventNum = RtsFlags.PapiFlags.numUserEvents++; + char kind = rts_argv[arg][2]; + nat eventKind = kind == '+' ? PAPI_PRESET_EVENT_KIND : PAPI_NATIVE_EVENT_KIND; + + RtsFlags.PapiFlags.userEvents[eventNum] = rts_argv[arg] + 3; RtsFlags.PapiFlags.eventType = PAPI_USER_EVENTS; - RtsFlags.PapiFlags.userEvents[RtsFlags.PapiFlags.numUserEvents++] = rts_argv[arg] + 3; + RtsFlags.PapiFlags.userEventsKind[eventNum] = eventKind; break; default: bad_option( rts_argv[arg] );