Loading libs/tracing_perfetto/tracing_perfetto.cpp +2 −1 Original line number Diff line number Diff line Loading @@ -131,7 +131,8 @@ Result traceCounter(uint64_t category, const char* name, int64_t value) { } uint64_t getEnabledCategories() { if (internal::isPerfettoSdkTracingEnabled()) { if (internal::isPerfettoRegistered()) { // TODO(b/303199244): Return only enabled categories and not all registered ones return internal::getDefaultCategories(); } else { return atrace_get_enabled_tags(); Loading libs/tracing_perfetto/tracing_perfetto_internal.cpp +7 −7 Original line number Diff line number Diff line Loading @@ -70,6 +70,8 @@ PERFETTO_TE_CATEGORIES_DECLARE(FRAMEWORK_CATEGORIES); PERFETTO_TE_CATEGORIES_DEFINE(FRAMEWORK_CATEGORIES); std::atomic_bool is_perfetto_registered = false; struct PerfettoTeCategory* toCategory(uint64_t inCategory) { switch (inCategory) { case TRACE_CATEGORY_ALWAYS: Loading Loading @@ -135,15 +137,11 @@ struct PerfettoTeCategory* toCategory(uint64_t inCategory) { } // namespace bool isPerfettoSdkTracingEnabled() { return android::os::perfetto_sdk_tracing(); bool isPerfettoRegistered() { return is_perfetto_registered; } struct PerfettoTeCategory* toPerfettoCategory(uint64_t category) { if (!isPerfettoSdkTracingEnabled()) { return nullptr; } struct PerfettoTeCategory* perfettoCategory = toCategory(category); bool enabled = PERFETTO_UNLIKELY(PERFETTO_ATOMIC_LOAD_EXPLICIT( (*perfettoCategory).enabled, PERFETTO_MEMORY_ORDER_RELAXED)); Loading @@ -151,9 +149,10 @@ struct PerfettoTeCategory* toPerfettoCategory(uint64_t category) { } void registerWithPerfetto(bool test) { if (!isPerfettoSdkTracingEnabled()) { if (!android::os::perfetto_sdk_tracing()) { return; } static std::once_flag registration; std::call_once(registration, [test]() { struct PerfettoProducerInitArgs args = PERFETTO_PRODUCER_INIT_ARGS_INIT(); Loading @@ -161,6 +160,7 @@ void registerWithPerfetto(bool test) { PerfettoProducerInit(args); PerfettoTeInit(); PERFETTO_TE_REGISTER_CATEGORIES(FRAMEWORK_CATEGORIES); is_perfetto_registered = true; }); } Loading libs/tracing_perfetto/tracing_perfetto_internal.h +1 −1 Original line number Diff line number Diff line Loading @@ -26,7 +26,7 @@ namespace tracing_perfetto { namespace internal { bool isPerfettoSdkTracingEnabled(); bool isPerfettoRegistered(); struct PerfettoTeCategory* toPerfettoCategory(uint64_t category); Loading Loading
libs/tracing_perfetto/tracing_perfetto.cpp +2 −1 Original line number Diff line number Diff line Loading @@ -131,7 +131,8 @@ Result traceCounter(uint64_t category, const char* name, int64_t value) { } uint64_t getEnabledCategories() { if (internal::isPerfettoSdkTracingEnabled()) { if (internal::isPerfettoRegistered()) { // TODO(b/303199244): Return only enabled categories and not all registered ones return internal::getDefaultCategories(); } else { return atrace_get_enabled_tags(); Loading
libs/tracing_perfetto/tracing_perfetto_internal.cpp +7 −7 Original line number Diff line number Diff line Loading @@ -70,6 +70,8 @@ PERFETTO_TE_CATEGORIES_DECLARE(FRAMEWORK_CATEGORIES); PERFETTO_TE_CATEGORIES_DEFINE(FRAMEWORK_CATEGORIES); std::atomic_bool is_perfetto_registered = false; struct PerfettoTeCategory* toCategory(uint64_t inCategory) { switch (inCategory) { case TRACE_CATEGORY_ALWAYS: Loading Loading @@ -135,15 +137,11 @@ struct PerfettoTeCategory* toCategory(uint64_t inCategory) { } // namespace bool isPerfettoSdkTracingEnabled() { return android::os::perfetto_sdk_tracing(); bool isPerfettoRegistered() { return is_perfetto_registered; } struct PerfettoTeCategory* toPerfettoCategory(uint64_t category) { if (!isPerfettoSdkTracingEnabled()) { return nullptr; } struct PerfettoTeCategory* perfettoCategory = toCategory(category); bool enabled = PERFETTO_UNLIKELY(PERFETTO_ATOMIC_LOAD_EXPLICIT( (*perfettoCategory).enabled, PERFETTO_MEMORY_ORDER_RELAXED)); Loading @@ -151,9 +149,10 @@ struct PerfettoTeCategory* toPerfettoCategory(uint64_t category) { } void registerWithPerfetto(bool test) { if (!isPerfettoSdkTracingEnabled()) { if (!android::os::perfetto_sdk_tracing()) { return; } static std::once_flag registration; std::call_once(registration, [test]() { struct PerfettoProducerInitArgs args = PERFETTO_PRODUCER_INIT_ARGS_INIT(); Loading @@ -161,6 +160,7 @@ void registerWithPerfetto(bool test) { PerfettoProducerInit(args); PerfettoTeInit(); PERFETTO_TE_REGISTER_CATEGORIES(FRAMEWORK_CATEGORIES); is_perfetto_registered = true; }); } Loading
libs/tracing_perfetto/tracing_perfetto_internal.h +1 −1 Original line number Diff line number Diff line Loading @@ -26,7 +26,7 @@ namespace tracing_perfetto { namespace internal { bool isPerfettoSdkTracingEnabled(); bool isPerfettoRegistered(); struct PerfettoTeCategory* toPerfettoCategory(uint64_t category); Loading