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: I84cdb13fc2608a23f311f49a3402640c92199909
diff --git a/Android.bp b/Android.bp
index 3b14ab4..bb3f96b 100644
--- a/Android.bp
+++ b/Android.bp
@@ -4974,9 +4974,10 @@
"src/tracing/internal/in_process_tracing_backend.cc",
"src/tracing/internal/system_tracing_backend.cc",
"src/tracing/internal/tracing_muxer_impl.cc",
+ "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",
],
}
@@ -4986,6 +4987,8 @@
name: "perfetto_src_tracing_client_api_integrationtests",
srcs: [
"src/tracing/api_integrationtest.cc",
+ "src/tracing/test/tracing_module.cc",
+ "src/tracing/test/tracing_module2.cc",
],
}