Commit 179cb262 authored by Sami Kyostila's avatar Sami Kyostila Committed by Commit Bot

services/tracing: Add support for "all data sources started" event

The Perfetto tracing muxer now uses the "all data sources started"
event[1] to detect when a tracing session is active (even if there are
no data sources in the session). This patch implements support for
emitting that notification in Chrome's Perfetto tracing backend.

[1] https://android-review.googlesource.com/c/platform/external/perfetto/+/1505634

Change-Id: I7dd82245caca45df2571b30e583f1f2814a972a1
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2551123
Commit-Queue: Sami Kyöstilä <skyostil@chromium.org>
Commit-Queue: Stephen Nusko <nuskos@chromium.org>
Commit-Queue: Eric Seckler <eseckler@chromium.org>
Auto-Submit: Sami Kyöstilä <skyostil@chromium.org>
Reviewed-by: default avatarStephen Nusko <nuskos@chromium.org>
Reviewed-by: default avatarEric Seckler <eseckler@chromium.org>
Cr-Commit-Position: refs/heads/master@{#829669}
parent 31901806
......@@ -492,8 +492,10 @@ class ConsumerEndpoint : public perfetto::ConsumerEndpoint,
void ObserveEvents(uint32_t events_mask) override {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
// Only some events are currently supported by this backend.
DCHECK(!(events_mask &
~perfetto::ObservableEvents::TYPE_DATA_SOURCES_INSTANCES));
~(perfetto::ObservableEvents::TYPE_DATA_SOURCES_INSTANCES |
perfetto::ObservableEvents::TYPE_ALL_DATA_SOURCES_STARTED)));
observed_events_mask_ = events_mask;
}
......@@ -515,10 +517,12 @@ class ConsumerEndpoint : public perfetto::ConsumerEndpoint,
// TODO(skyostil): Wire up full data source state. For now Perfetto just
// needs to know all data sources have started.
if (observed_events_mask_ &
perfetto::ObservableEvents::TYPE_DATA_SOURCES_INSTANCES) {
(perfetto::ObservableEvents::TYPE_ALL_DATA_SOURCES_STARTED |
perfetto::ObservableEvents::TYPE_DATA_SOURCES_INSTANCES)) {
perfetto::ObservableEvents events;
events.add_instance_state_changes()->set_state(
perfetto::ObservableEvents::DATA_SOURCE_INSTANCE_STATE_STARTED);
events.set_all_data_sources_started(true);
consumer_->OnObservableEvents(events);
}
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment