TrackEvent: Add support for dynamically enabled tracing categories
This patch introduces support for annotating track events with named
tracing categories. Each category can be individually enabled or
disabled using a trace config.
The set of categories is defined at compile time using a macro:
PERFETTO_DEFINE_CATEGORIES(
PERFETTO_CATEGORY(cat1),
PERFETTO_CATEGORY(cat2),
PERFETTO_CATEGORY(cat3));
We also introduce a set of macros for efficiently emitting track events
with category annotation:
TRACE_EVENT_BEGIN("cat1", "EventName");
TRACE_EVENT_END();
The trace point implementation replaces the per-data source instance
enable bitmap with a per-category bitmap in order to avoid doing any
extra work for categories that aren't enabled for tracing.
Bug: 132678367
Change-Id: I84cdb13fc2608a23f311f49a3402640c92199909diff --git a/BUILD b/BUILD
index 587d616..f1f8f15 100644
--- a/BUILD
+++ b/BUILD
@@ -400,12 +400,15 @@
"include/perfetto/tracing/internal/tracing_muxer.h",
"include/perfetto/tracing/internal/tracing_tls.h",
"include/perfetto/tracing/internal/track_event_data_source.h",
+ "include/perfetto/tracing/internal/track_event_internal.h",
+ "include/perfetto/tracing/internal/track_event_macros.h",
"include/perfetto/tracing/locked_handle.h",
"include/perfetto/tracing/platform.h",
"include/perfetto/tracing/trace_writer_base.h",
"include/perfetto/tracing/tracing.h",
"include/perfetto/tracing/tracing_backend.h",
"include/perfetto/tracing/track_event.h",
+ "include/perfetto/tracing/track_event_category_registry.h",
],
)
@@ -940,9 +943,10 @@
"src/tracing/internal/system_tracing_backend.h",
"src/tracing/internal/tracing_muxer_impl.cc",
"src/tracing/internal/tracing_muxer_impl.h",
+ "src/tracing/internal/track_event_internal.cc",
"src/tracing/platform.cc",
"src/tracing/tracing.cc",
- "src/tracing/track_event.cc",
+ "src/tracing/track_event_category_registry.cc",
"src/tracing/virtual_destructors.cc",
],
)