summaryrefslogtreecommitdiff
path: root/rts/Trace.h
diff options
context:
space:
mode:
Diffstat (limited to 'rts/Trace.h')
-rw-r--r--rts/Trace.h25
1 files changed, 15 insertions, 10 deletions
diff --git a/rts/Trace.h b/rts/Trace.h
index ab79671c4c..8b531f130a 100644
--- a/rts/Trace.h
+++ b/rts/Trace.h
@@ -69,6 +69,7 @@ extern int TRACE_gc;
extern int TRACE_spark_sampled;
extern int TRACE_spark_full;
/* extern int TRACE_user; */ // only used in Trace.c
+extern int TRACE_cap;
// -----------------------------------------------------------------------------
// Posting events
@@ -244,19 +245,23 @@ void traceThreadStatus_ (StgTSO *tso);
/*
* Events for describing capabilities and capability sets in the eventlog
- *
- * Note: unlike other events, these are not conditional on TRACE_sched or
- * similar because capabilities and capability sets are important
- * context for other events. Since other events depend on these events
- * then for simplicity we always emit them, rather than working out if
- * they're necessary . They should be very low volume.
*/
-void traceCapEvent (Capability *cap,
+#define traceCapEvent(cap, tag) \
+ if (RTS_UNLIKELY(TRACE_cap)) { \
+ traceCapEvent_(cap, tag); \
+ }
+
+void traceCapEvent_ (Capability *cap,
EventTypeNum tag);
-void traceCapsetEvent (EventTypeNum tag,
- CapsetID capset,
- StgWord info);
+#define traceCapsetEvent(cap, capset, info) \
+ if (RTS_UNLIKELY(TRACE_cap)) { \
+ traceCapsetEvent_(cap, capset, info); \
+ }
+
+void traceCapsetEvent_ (EventTypeNum tag,
+ CapsetID capset,
+ StgWord info);
void traceWallClockTime_(void);