Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5476)

Unified Diff: base/trace_event/trace_event.h

Issue 1923533004: Tracing pre-filtering (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Added test Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: base/trace_event/trace_event.h
diff --git a/base/trace_event/trace_event.h b/base/trace_event/trace_event.h
index faaccac8eaf34b40ff91b81e633df44246266a6a..261e925cdea776f198afc148d7e89fc149ff7e81 100644
--- a/base/trace_event/trace_event.h
+++ b/base/trace_event/trace_event.h
@@ -76,7 +76,13 @@
UNLIKELY(*INTERNAL_TRACE_EVENT_UID(category_group_enabled) & \
(base::trace_event::TraceLog::ENABLED_FOR_RECORDING | \
base::trace_event::TraceLog::ENABLED_FOR_EVENT_CALLBACK | \
- base::trace_event::TraceLog::ENABLED_FOR_ETW_EXPORT))
+ base::trace_event::TraceLog::ENABLED_FOR_ETW_EXPORT | \
+ base::trace_event::TraceLog::ENABLED_FOR_FILTERING))
Primiano Tucci (use gerrit) 2016/05/31 15:41:23 Do you really need this or-ed here? I'd assume tha
oystein (OOO til 10th of July) 2016/08/01 13:39:49 I think that's right, 2) makes sense to me. The on
+
+#define INTERNAL_TRACE_EVENT_CATEGORY_GROUP_ENABLED_FOR_FILTERING_MODE( \
+ category_group_enabled) \
+ UNLIKELY(category_group_enabled& \
+ base::trace_event::TraceLog::ENABLED_FOR_FILTERING)
////////////////////////////////////////////////////////////////////////////////
// Implementation specific tracing API definitions.
@@ -185,6 +191,14 @@
#define TRACE_EVENT_API_UPDATE_TRACE_EVENT_DURATION \
base::trace_event::TraceLog::GetInstance()->UpdateTraceEventDuration
+// Call EndEvent on the filter for a filtered event.
+// void TRACE_EVENT_API_UPDATE_TRACE_EVENT_DURATION(
+// const unsigned char* category_group_enabled,
+// const char* name,
+// base::trace_event::TraceEventHandle id)
+#define TRACE_EVENT_API_END_FILTERED_EVENT \
+ base::trace_event::TraceLog::GetInstance()->EndFilteredEvent
Primiano Tucci (use gerrit) 2016/05/27 17:47:06 Not sure you need this macro since you need this o
+
// Adds a metadata event to the trace log. The |AppendValueAsTraceFormat| method
// on the convertable value will be called at flush time.
// TRACE_EVENT_API_ADD_METADATA_EVENT(
@@ -974,9 +988,15 @@ class TRACE_EVENT_API_CLASS_EXPORT ScopedTracer {
ScopedTracer() : p_data_(NULL) {}
~ScopedTracer() {
- if (p_data_ && *data_.category_group_enabled)
+ if (p_data_ && *data_.category_group_enabled) {
TRACE_EVENT_API_UPDATE_TRACE_EVENT_DURATION(
data_.category_group_enabled, data_.name, data_.event_handle);
+ if (INTERNAL_TRACE_EVENT_CATEGORY_GROUP_ENABLED_FOR_FILTERING_MODE(
+ *data_.category_group_enabled)) {
+ TRACE_EVENT_API_END_FILTERED_EVENT(data_.category_group_enabled,
+ data_.name, data_.event_handle);
+ }
+ }
}
void Initialize(const unsigned char* category_group_enabled,

Powered by Google App Engine
This is Rietveld 408576698