X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=rts%2FRtsProbes.d;h=bd32fca385a366498c0def0b3866406e8f24bc2e;hb=58532eb46041aec8d4cbb48b054cb5b001edb43c;hp=6312c43362634d4af54dd0d48b831b904279f7a2;hpb=784e214dd44eba39f4c34936a27e6cc82948205c;p=ghc-hetmet.git diff --git a/rts/RtsProbes.d b/rts/RtsProbes.d index 6312c43..bd32fca 100644 --- a/rts/RtsProbes.d +++ b/rts/RtsProbes.d @@ -10,30 +10,34 @@ #include "rts/EventLogFormat.h" -// ----------------------------------------------------------------------------- -// Payload datatypes for Haskell events -// ----------------------------------------------------------------------------- - -// We effectively have: -// -// typedef uint16_t EventTypeNum; -// typedef uint64_t EventTimestamp; // in nanoseconds -// typedef uint32_t EventThreadID; -// typedef uint16_t EventCapNo; -// typedef uint16_t EventPayloadSize; // variable-size events -// typedef uint16_t EventThreadStatus; - - -// ----------------------------------------------------------------------------- -// The HaskellEvent provider captures everything from eventlog for use with -// dtrace -// ----------------------------------------------------------------------------- - -// These probes correspond to the events defined in EventLogFormat.h -// +/* ----------------------------------------------------------------------------- + * Payload datatypes for Haskell events + * ----------------------------------------------------------------------------- + */ + +/* We effectively have: + * + * typedef uint16_t EventTypeNum; + * typedef uint64_t EventTimestamp; // in nanoseconds + * typedef uint32_t EventThreadID; + * typedef uint16_t EventCapNo; + * typedef uint16_t EventPayloadSize; // variable-size events + * typedef uint16_t EventThreadStatus; + * typedef uint32_t EventCapsetID; + * typedef uint16_t EventCapsetType; // types for EVENT_CAPSET_CREATE + */ + +/* ----------------------------------------------------------------------------- + * The HaskellEvent provider captures everything from eventlog for use with + * dtrace + * ----------------------------------------------------------------------------- + */ + +/* These probes correspond to the events defined in EventLogFormat.h + */ provider HaskellEvent { - // scheduler events + /* scheduler events */ probe create__thread (EventCapNo, EventThreadID); probe run__thread (EventCapNo, EventThreadID); probe stop__thread (EventCapNo, EventThreadID, EventThreadStatus, EventThreadID); @@ -49,14 +53,18 @@ provider HaskellEvent { probe request__par__gc (EventCapNo); probe create__spark__thread (EventCapNo, EventThreadID); - // other events -//This one doesn't seem to be used at all at the moment: -// probe log__msg (char *); + /* other events */ +/* This one doesn't seem to be used at all at the moment: */ +/* probe log__msg (char *); */ probe startup (EventCapNo); - // we don't need EVENT_BLOCK_MARKER with dtrace + /* we don't need EVENT_BLOCK_MARKER with dtrace */ probe user__msg (EventCapNo, char *); probe gc__idle (EventCapNo); probe gc__work (EventCapNo); probe gc__done (EventCapNo); + probe capset__create(EventCapsetID, EventCapsetType); + probe capset__delete(EventCapsetID); + probe capset__assign__cap(EventCapsetID, EventCapNo); + probe capset__remove__cap(EventCapsetID, EventCapNo); };