Skip to content

Commit

Permalink
lttng: update flags for gc tracing
Browse files Browse the repository at this point in the history
PR-URL: #3388
Reviewed-By: Ben Noordhuis <[email protected]>
  • Loading branch information
GlenTiki authored and bnoordhuis committed Oct 20, 2015
1 parent adfd20b commit 9adc6a6
Showing 1 changed file with 31 additions and 29 deletions.
60 changes: 31 additions & 29 deletions src/node_lttng_provider.h
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,17 @@

namespace node {

#define FOR_ALL_GC_TYPES(APPLY) \
APPLY(kGCTypeScavenge) \
APPLY(kGCTypeMarkSweepCompact) \
APPLY(kGCTypeAll)

#define FOR_ALL_GC_CALLBACK_FLAGS(APPLY) \
APPLY(kNoGCCallbackFlags) \
APPLY(kGCCallbackFlagConstructRetainedObjectInfos) \
APPLY(kGCCallbackFlagForced) \
APPLY(kGCCallbackFlagSynchronousPhantomCallbackProcessing)

void NODE_HTTP_SERVER_REQUEST(node_lttng_http_server_request_t* req,
node_lttng_connection_t* conn,
const char *remote, int port,
Expand Down Expand Up @@ -48,42 +59,33 @@ void NODE_NET_STREAM_END(node_lttng_connection_t* conn,
void NODE_GC_START(v8::GCType type,
v8::GCCallbackFlags flags,
v8::Isolate* isolate) {
const char* typeStr = "";
const char* flagsStr = "";
if (type == v8::GCType::kGCTypeScavenge) {
typeStr = "kGCTypeScavenge";
} else if (type == v8::GCType::kGCTypeMarkSweepCompact) {
typeStr = "kGCTypeMarkSweepCompact";
} else if (type == v8::GCType::kGCTypeAll) {
typeStr = "kGCTypeAll";
}
if (flags == v8::GCCallbackFlags::kNoGCCallbackFlags) {
flagsStr = "kNoGCCallbackFlags";
} else if (flags == v8::GCCallbackFlags::kGCCallbackFlagCompacted) {
flagsStr = "kGCCallbackFlagCompacted";
}
const char* typeStr = "Unkown GC Type";
const char* flagsStr = "Unknown GC Flag";

#define BUILD_IF(f) if (type == v8::GCType::f) { typeStr = #f; }
FOR_ALL_GC_TYPES(BUILD_IF);
#undef BUILD_IF

#define BUILD_IF(f) if (flags == v8::GCCallbackFlags::f) { flagsStr = #f; }
FOR_ALL_GC_CALLBACK_FLAGS(BUILD_IF);
#undef BUILD_IF

tracepoint(node, gc_start, typeStr, flagsStr);
}


void NODE_GC_DONE(v8::GCType type,
v8::GCCallbackFlags flags,
v8::Isolate* isolate) {
const char* typeStr = "";
const char* flagsStr = "";
if (type == v8::GCType::kGCTypeScavenge) {
typeStr = "kGCTypeScavenge";
} else if (type == v8::GCType::kGCTypeMarkSweepCompact) {
typeStr = "kGCTypeMarkSweepCompact";
} else if (type == v8::GCType::kGCTypeAll) {
typeStr = "kGCTypeAll";
}
if (flags == v8::GCCallbackFlags::kNoGCCallbackFlags) {
flagsStr = "kNoGCCallbackFlags";
} else if (flags == v8::GCCallbackFlags::kGCCallbackFlagCompacted) {
flagsStr = "kGCCallbackFlagCompacted";
}
const char* typeStr = "Unkown GC Type";
const char* flagsStr = "Unknown GC Flag";

#define BUILD_IF(f) if (type == v8::GCType::f) { typeStr = #f; }
FOR_ALL_GC_TYPES(BUILD_IF);
#undef BUILD_IF

#define BUILD_IF(f) if (flags == v8::GCCallbackFlags::f) { flagsStr = #f; }
FOR_ALL_GC_CALLBACK_FLAGS(BUILD_IF);
#undef BUILD_IF

tracepoint(node, gc_done, typeStr, flagsStr);
}
Expand Down

0 comments on commit 9adc6a6

Please sign in to comment.