diff options
author | Simon MacMullen <simonmacm@google.com> | 2024-04-19 10:56:23 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2024-04-19 10:56:23 +0000 |
commit | b8c4c98bc6ad788568c69ac6948ae44ca9a31082 (patch) | |
tree | 1398f7a50f79a4f445e44409d8857e6c6886a94b | |
parent | 121932b40438ca01d9b49595517c734a6e17bd45 (diff) | |
parent | 1071596d251d18dd4e3f3578073362244dc83f70 (diff) | |
download | perfetto-b8c4c98bc6ad788568c69ac6948ae44ca9a31082.tar.gz |
Merge "Proto definitions for modem custom data source. Bug: 335603768" into main
-rw-r--r-- | Android.bp | 24 | ||||
-rw-r--r-- | BUILD | 2 | ||||
-rw-r--r-- | protos/perfetto/config/android/BUILD.gn | 1 | ||||
-rw-r--r-- | protos/perfetto/config/android/pixel_modem_config.proto | 41 | ||||
-rw-r--r-- | protos/perfetto/config/data_source_config.proto | 6 | ||||
-rw-r--r-- | protos/perfetto/config/perfetto_config.proto | 31 | ||||
-rw-r--r-- | protos/perfetto/trace/android/BUILD.gn | 1 | ||||
-rw-r--r-- | protos/perfetto/trace/android/pixel_modem_events.proto | 36 | ||||
-rw-r--r-- | protos/perfetto/trace/perfetto_trace.proto | 57 | ||||
-rw-r--r-- | protos/perfetto/trace/trace_packet.proto | 6 |
10 files changed, 200 insertions, 5 deletions
diff --git a/Android.bp b/Android.bp index b7f79bc40..f8e8b65d9 100644 --- a/Android.bp +++ b/Android.bp @@ -1320,6 +1320,7 @@ java_library { "protos/perfetto/config/android/android_system_property_config.proto", "protos/perfetto/config/android/network_trace_config.proto", "protos/perfetto/config/android/packages_list_config.proto", + "protos/perfetto/config/android/pixel_modem_config.proto", "protos/perfetto/config/android/protolog_config.proto", "protos/perfetto/config/android/surfaceflinger_layers_config.proto", "protos/perfetto/config/android/surfaceflinger_transactions_config.proto", @@ -2890,6 +2891,7 @@ filegroup { "protos/perfetto/config/android/android_system_property_config.proto", "protos/perfetto/config/android/network_trace_config.proto", "protos/perfetto/config/android/packages_list_config.proto", + "protos/perfetto/config/android/pixel_modem_config.proto", "protos/perfetto/config/android/protolog_config.proto", "protos/perfetto/config/android/surfaceflinger_layers_config.proto", "protos/perfetto/config/android/surfaceflinger_transactions_config.proto", @@ -2917,6 +2919,7 @@ genrule { "external/perfetto/protos/perfetto/config/android/android_system_property_config.gen.cc", "external/perfetto/protos/perfetto/config/android/network_trace_config.gen.cc", "external/perfetto/protos/perfetto/config/android/packages_list_config.gen.cc", + "external/perfetto/protos/perfetto/config/android/pixel_modem_config.gen.cc", "external/perfetto/protos/perfetto/config/android/protolog_config.gen.cc", "external/perfetto/protos/perfetto/config/android/surfaceflinger_layers_config.gen.cc", "external/perfetto/protos/perfetto/config/android/surfaceflinger_transactions_config.gen.cc", @@ -2944,6 +2947,7 @@ genrule { "external/perfetto/protos/perfetto/config/android/android_system_property_config.gen.h", "external/perfetto/protos/perfetto/config/android/network_trace_config.gen.h", "external/perfetto/protos/perfetto/config/android/packages_list_config.gen.h", + "external/perfetto/protos/perfetto/config/android/pixel_modem_config.gen.h", "external/perfetto/protos/perfetto/config/android/protolog_config.gen.h", "external/perfetto/protos/perfetto/config/android/surfaceflinger_layers_config.gen.h", "external/perfetto/protos/perfetto/config/android/surfaceflinger_transactions_config.gen.h", @@ -2966,6 +2970,7 @@ filegroup { "protos/perfetto/config/android/android_system_property_config.proto", "protos/perfetto/config/android/network_trace_config.proto", "protos/perfetto/config/android/packages_list_config.proto", + "protos/perfetto/config/android/pixel_modem_config.proto", "protos/perfetto/config/android/protolog_config.proto", "protos/perfetto/config/android/surfaceflinger_layers_config.proto", "protos/perfetto/config/android/surfaceflinger_transactions_config.proto", @@ -2992,6 +2997,7 @@ genrule { "external/perfetto/protos/perfetto/config/android/android_system_property_config.pb.cc", "external/perfetto/protos/perfetto/config/android/network_trace_config.pb.cc", "external/perfetto/protos/perfetto/config/android/packages_list_config.pb.cc", + "external/perfetto/protos/perfetto/config/android/pixel_modem_config.pb.cc", "external/perfetto/protos/perfetto/config/android/protolog_config.pb.cc", "external/perfetto/protos/perfetto/config/android/surfaceflinger_layers_config.pb.cc", "external/perfetto/protos/perfetto/config/android/surfaceflinger_transactions_config.pb.cc", @@ -3018,6 +3024,7 @@ genrule { "external/perfetto/protos/perfetto/config/android/android_system_property_config.pb.h", "external/perfetto/protos/perfetto/config/android/network_trace_config.pb.h", "external/perfetto/protos/perfetto/config/android/packages_list_config.pb.h", + "external/perfetto/protos/perfetto/config/android/pixel_modem_config.pb.h", "external/perfetto/protos/perfetto/config/android/protolog_config.pb.h", "external/perfetto/protos/perfetto/config/android/surfaceflinger_layers_config.pb.h", "external/perfetto/protos/perfetto/config/android/surfaceflinger_transactions_config.pb.h", @@ -3040,6 +3047,7 @@ filegroup { "protos/perfetto/config/android/android_system_property_config.proto", "protos/perfetto/config/android/network_trace_config.proto", "protos/perfetto/config/android/packages_list_config.proto", + "protos/perfetto/config/android/pixel_modem_config.proto", "protos/perfetto/config/android/protolog_config.proto", "protos/perfetto/config/android/surfaceflinger_layers_config.proto", "protos/perfetto/config/android/surfaceflinger_transactions_config.proto", @@ -3067,6 +3075,7 @@ genrule { "external/perfetto/protos/perfetto/config/android/android_system_property_config.pbzero.cc", "external/perfetto/protos/perfetto/config/android/network_trace_config.pbzero.cc", "external/perfetto/protos/perfetto/config/android/packages_list_config.pbzero.cc", + "external/perfetto/protos/perfetto/config/android/pixel_modem_config.pbzero.cc", "external/perfetto/protos/perfetto/config/android/protolog_config.pbzero.cc", "external/perfetto/protos/perfetto/config/android/surfaceflinger_layers_config.pbzero.cc", "external/perfetto/protos/perfetto/config/android/surfaceflinger_transactions_config.pbzero.cc", @@ -3094,6 +3103,7 @@ genrule { "external/perfetto/protos/perfetto/config/android/android_system_property_config.pbzero.h", "external/perfetto/protos/perfetto/config/android/network_trace_config.pbzero.h", "external/perfetto/protos/perfetto/config/android/packages_list_config.pbzero.h", + "external/perfetto/protos/perfetto/config/android/pixel_modem_config.pbzero.h", "external/perfetto/protos/perfetto/config/android/protolog_config.pbzero.h", "external/perfetto/protos/perfetto/config/android/surfaceflinger_layers_config.pbzero.h", "external/perfetto/protos/perfetto/config/android/surfaceflinger_transactions_config.pbzero.h", @@ -3227,6 +3237,7 @@ genrule { "protos/perfetto/config/android/android_system_property_config.proto", "protos/perfetto/config/android/network_trace_config.proto", "protos/perfetto/config/android/packages_list_config.proto", + "protos/perfetto/config/android/pixel_modem_config.proto", "protos/perfetto/config/android/protolog_config.proto", "protos/perfetto/config/android/surfaceflinger_layers_config.proto", "protos/perfetto/config/android/surfaceflinger_transactions_config.proto", @@ -5395,6 +5406,7 @@ filegroup { "protos/perfetto/trace/android/initial_display_state.proto", "protos/perfetto/trace/android/network_trace.proto", "protos/perfetto/trace/android/packages_list.proto", + "protos/perfetto/trace/android/pixel_modem_events.proto", "protos/perfetto/trace/android/protolog.proto", "protos/perfetto/trace/android/shell_transition.proto", "protos/perfetto/trace/android/surfaceflinger_common.proto", @@ -5427,6 +5439,7 @@ genrule { "external/perfetto/protos/perfetto/trace/android/initial_display_state.gen.cc", "external/perfetto/protos/perfetto/trace/android/network_trace.gen.cc", "external/perfetto/protos/perfetto/trace/android/packages_list.gen.cc", + "external/perfetto/protos/perfetto/trace/android/pixel_modem_events.gen.cc", "external/perfetto/protos/perfetto/trace/android/protolog.gen.cc", "external/perfetto/protos/perfetto/trace/android/shell_transition.gen.cc", "external/perfetto/protos/perfetto/trace/android/surfaceflinger_common.gen.cc", @@ -5459,6 +5472,7 @@ genrule { "external/perfetto/protos/perfetto/trace/android/initial_display_state.gen.h", "external/perfetto/protos/perfetto/trace/android/network_trace.gen.h", "external/perfetto/protos/perfetto/trace/android/packages_list.gen.h", + "external/perfetto/protos/perfetto/trace/android/pixel_modem_events.gen.h", "external/perfetto/protos/perfetto/trace/android/protolog.gen.h", "external/perfetto/protos/perfetto/trace/android/shell_transition.gen.h", "external/perfetto/protos/perfetto/trace/android/surfaceflinger_common.gen.h", @@ -5486,6 +5500,7 @@ filegroup { "protos/perfetto/trace/android/initial_display_state.proto", "protos/perfetto/trace/android/network_trace.proto", "protos/perfetto/trace/android/packages_list.proto", + "protos/perfetto/trace/android/pixel_modem_events.proto", "protos/perfetto/trace/android/protolog.proto", "protos/perfetto/trace/android/shell_transition.proto", "protos/perfetto/trace/android/surfaceflinger_common.proto", @@ -5517,6 +5532,7 @@ genrule { "external/perfetto/protos/perfetto/trace/android/initial_display_state.pb.cc", "external/perfetto/protos/perfetto/trace/android/network_trace.pb.cc", "external/perfetto/protos/perfetto/trace/android/packages_list.pb.cc", + "external/perfetto/protos/perfetto/trace/android/pixel_modem_events.pb.cc", "external/perfetto/protos/perfetto/trace/android/protolog.pb.cc", "external/perfetto/protos/perfetto/trace/android/shell_transition.pb.cc", "external/perfetto/protos/perfetto/trace/android/surfaceflinger_common.pb.cc", @@ -5548,6 +5564,7 @@ genrule { "external/perfetto/protos/perfetto/trace/android/initial_display_state.pb.h", "external/perfetto/protos/perfetto/trace/android/network_trace.pb.h", "external/perfetto/protos/perfetto/trace/android/packages_list.pb.h", + "external/perfetto/protos/perfetto/trace/android/pixel_modem_events.pb.h", "external/perfetto/protos/perfetto/trace/android/protolog.pb.h", "external/perfetto/protos/perfetto/trace/android/shell_transition.pb.h", "external/perfetto/protos/perfetto/trace/android/surfaceflinger_common.pb.h", @@ -5612,6 +5629,7 @@ filegroup { "protos/perfetto/trace/android/initial_display_state.proto", "protos/perfetto/trace/android/network_trace.proto", "protos/perfetto/trace/android/packages_list.proto", + "protos/perfetto/trace/android/pixel_modem_events.proto", "protos/perfetto/trace/android/protolog.proto", "protos/perfetto/trace/android/shell_transition.proto", "protos/perfetto/trace/android/surfaceflinger_common.proto", @@ -5644,6 +5662,7 @@ genrule { "external/perfetto/protos/perfetto/trace/android/initial_display_state.pbzero.cc", "external/perfetto/protos/perfetto/trace/android/network_trace.pbzero.cc", "external/perfetto/protos/perfetto/trace/android/packages_list.pbzero.cc", + "external/perfetto/protos/perfetto/trace/android/pixel_modem_events.pbzero.cc", "external/perfetto/protos/perfetto/trace/android/protolog.pbzero.cc", "external/perfetto/protos/perfetto/trace/android/shell_transition.pbzero.cc", "external/perfetto/protos/perfetto/trace/android/surfaceflinger_common.pbzero.cc", @@ -5676,6 +5695,7 @@ genrule { "external/perfetto/protos/perfetto/trace/android/initial_display_state.pbzero.h", "external/perfetto/protos/perfetto/trace/android/network_trace.pbzero.h", "external/perfetto/protos/perfetto/trace/android/packages_list.pbzero.h", + "external/perfetto/protos/perfetto/trace/android/pixel_modem_events.pbzero.h", "external/perfetto/protos/perfetto/trace/android/protolog.pbzero.h", "external/perfetto/protos/perfetto/trace/android/shell_transition.pbzero.h", "external/perfetto/protos/perfetto/trace/android/surfaceflinger_common.pbzero.h", @@ -5883,6 +5903,7 @@ genrule { "protos/perfetto/config/android/android_system_property_config.proto", "protos/perfetto/config/android/network_trace_config.proto", "protos/perfetto/config/android/packages_list_config.proto", + "protos/perfetto/config/android/pixel_modem_config.proto", "protos/perfetto/config/android/protolog_config.proto", "protos/perfetto/config/android/surfaceflinger_layers_config.proto", "protos/perfetto/config/android/surfaceflinger_transactions_config.proto", @@ -5921,6 +5942,7 @@ genrule { "protos/perfetto/trace/android/initial_display_state.proto", "protos/perfetto/trace/android/network_trace.proto", "protos/perfetto/trace/android/packages_list.proto", + "protos/perfetto/trace/android/pixel_modem_events.proto", "protos/perfetto/trace/android/protolog.proto", "protos/perfetto/trace/android/shell_transition.proto", "protos/perfetto/trace/android/surfaceflinger_common.proto", @@ -13786,6 +13808,7 @@ java_library { "protos/perfetto/config/android/android_system_property_config.proto", "protos/perfetto/config/android/network_trace_config.proto", "protos/perfetto/config/android/packages_list_config.proto", + "protos/perfetto/config/android/pixel_modem_config.proto", "protos/perfetto/config/android/protolog_config.proto", "protos/perfetto/config/android/surfaceflinger_layers_config.proto", "protos/perfetto/config/android/surfaceflinger_transactions_config.proto", @@ -13824,6 +13847,7 @@ java_library { "protos/perfetto/trace/android/initial_display_state.proto", "protos/perfetto/trace/android/network_trace.proto", "protos/perfetto/trace/android/packages_list.proto", + "protos/perfetto/trace/android/pixel_modem_events.proto", "protos/perfetto/trace/android/protolog.proto", "protos/perfetto/trace/android/shell_transition.proto", "protos/perfetto/trace/android/surfaceflinger_common.proto", @@ -3893,6 +3893,7 @@ perfetto_proto_library( "protos/perfetto/config/android/android_system_property_config.proto", "protos/perfetto/config/android/network_trace_config.proto", "protos/perfetto/config/android/packages_list_config.proto", + "protos/perfetto/config/android/pixel_modem_config.proto", "protos/perfetto/config/android/protolog_config.proto", "protos/perfetto/config/android/surfaceflinger_layers_config.proto", "protos/perfetto/config/android/surfaceflinger_transactions_config.proto", @@ -4604,6 +4605,7 @@ perfetto_proto_library( "protos/perfetto/trace/android/initial_display_state.proto", "protos/perfetto/trace/android/network_trace.proto", "protos/perfetto/trace/android/packages_list.proto", + "protos/perfetto/trace/android/pixel_modem_events.proto", "protos/perfetto/trace/android/protolog.proto", "protos/perfetto/trace/android/shell_transition.proto", "protos/perfetto/trace/android/surfaceflinger_common.proto", diff --git a/protos/perfetto/config/android/BUILD.gn b/protos/perfetto/config/android/BUILD.gn index 0af8024d7..ec4f7ce39 100644 --- a/protos/perfetto/config/android/BUILD.gn +++ b/protos/perfetto/config/android/BUILD.gn @@ -26,6 +26,7 @@ perfetto_proto_library("@TYPE@") { "android_system_property_config.proto", "network_trace_config.proto", "packages_list_config.proto", + "pixel_modem_config.proto", "protolog_config.proto", "surfaceflinger_layers_config.proto", "surfaceflinger_transactions_config.proto", diff --git a/protos/perfetto/config/android/pixel_modem_config.proto b/protos/perfetto/config/android/pixel_modem_config.proto new file mode 100644 index 000000000..d3efc5967 --- /dev/null +++ b/protos/perfetto/config/android/pixel_modem_config.proto @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +syntax = "proto2"; + +package perfetto.protos; + +// Data source that records events from the modem. +message PixelModemConfig { + // Event group to record, as defined by the modem. + enum EventGroup { + EVENT_GROUP_UNKNOWN = 0; + + // Events suitable for low bandwidth tracing only. + EVENT_GROUP_LOW_BANDWIDTH = 1; + + // Events suitable for high and low bandwidth tracing. + EVENT_GROUP_HIGH_AND_LOW_BANDWIDTH = 2; + } + + optional EventGroup event_group = 1; + + // If set, record only events with these hashes. + repeated int64 pigweed_hash_allow_list = 2; + + // If set and allow_list is not set, deny events with these hashes. + repeated int64 pigweed_hash_deny_list = 3; +} diff --git a/protos/perfetto/config/data_source_config.proto b/protos/perfetto/config/data_source_config.proto index e9a259444..3b8e860d9 100644 --- a/protos/perfetto/config/data_source_config.proto +++ b/protos/perfetto/config/data_source_config.proto @@ -26,6 +26,7 @@ import "protos/perfetto/config/android/android_system_property_config.proto"; import "protos/perfetto/config/android/android_sdk_sysprop_guard_config.proto"; import "protos/perfetto/config/android/network_trace_config.proto"; import "protos/perfetto/config/android/packages_list_config.proto"; +import "protos/perfetto/config/android/pixel_modem_config.proto"; import "protos/perfetto/config/android/protolog_config.proto"; import "protos/perfetto/config/android/surfaceflinger_layers_config.proto"; import "protos/perfetto/config/android/surfaceflinger_transactions_config.proto"; @@ -49,7 +50,7 @@ import "protos/perfetto/config/track_event/track_event_config.proto"; import "protos/perfetto/config/system_info/system_info.proto"; // The configuration that is passed to each data source when starting tracing. -// Next id: 129 +// Next id: 130 message DataSourceConfig { enum SessionInitiator { SESSION_INITIATOR_UNSPECIFIED = 0; @@ -197,6 +198,9 @@ message DataSourceConfig { // Data source name: android.input.inputevent optional AndroidInputEventConfig android_input_event_config = 128 [lazy = true]; + // Data source name: android.pixel.modem + optional PixelModemConfig pixel_modem_config = 129 [lazy = true]; + // This is a fallback mechanism to send a free-form text config to the // producer. In theory this should never be needed. All the code that // is part of the platform (i.e. traced service) is supposed to *not* truncate diff --git a/protos/perfetto/config/perfetto_config.proto b/protos/perfetto/config/perfetto_config.proto index 2fd3c55ac..7777d1c8d 100644 --- a/protos/perfetto/config/perfetto_config.proto +++ b/protos/perfetto/config/perfetto_config.proto @@ -660,6 +660,32 @@ message PackagesListConfig { // End of protos/perfetto/config/android/packages_list_config.proto +// Begin of protos/perfetto/config/android/pixel_modem_config.proto + +// Data source that records events from the modem. +message PixelModemConfig { + // Event group to record, as defined by the modem. + enum EventGroup { + EVENT_GROUP_UNKNOWN = 0; + + // Events suitable for low bandwidth tracing only. + EVENT_GROUP_LOW_BANDWIDTH = 1; + + // Events suitable for high and low bandwidth tracing. + EVENT_GROUP_HIGH_AND_LOW_BANDWIDTH = 2; + } + + optional EventGroup event_group = 1; + + // If set, record only events with these hashes. + repeated int64 pigweed_hash_allow_list = 2; + + // If set and allow_list is not set, deny events with these hashes. + repeated int64 pigweed_hash_deny_list = 3; +} + +// End of protos/perfetto/config/android/pixel_modem_config.proto + // Begin of protos/perfetto/common/protolog_common.proto enum ProtoLogLevel { @@ -3231,7 +3257,7 @@ message TrackEventConfig { // Begin of protos/perfetto/config/data_source_config.proto // The configuration that is passed to each data source when starting tracing. -// Next id: 129 +// Next id: 130 message DataSourceConfig { enum SessionInitiator { SESSION_INITIATOR_UNSPECIFIED = 0; @@ -3379,6 +3405,9 @@ message DataSourceConfig { // Data source name: android.input.inputevent optional AndroidInputEventConfig android_input_event_config = 128 [lazy = true]; + // Data source name: android.pixel.modem + optional PixelModemConfig pixel_modem_config = 129 [lazy = true]; + // This is a fallback mechanism to send a free-form text config to the // producer. In theory this should never be needed. All the code that // is part of the platform (i.e. traced service) is supposed to *not* truncate diff --git a/protos/perfetto/trace/android/BUILD.gn b/protos/perfetto/trace/android/BUILD.gn index c88ca2897..1910078f3 100644 --- a/protos/perfetto/trace/android/BUILD.gn +++ b/protos/perfetto/trace/android/BUILD.gn @@ -29,6 +29,7 @@ perfetto_proto_library("@TYPE@") { "initial_display_state.proto", "network_trace.proto", "packages_list.proto", + "pixel_modem_events.proto", "protolog.proto", "shell_transition.proto", "surfaceflinger_common.proto", diff --git a/protos/perfetto/trace/android/pixel_modem_events.proto b/protos/perfetto/trace/android/pixel_modem_events.proto new file mode 100644 index 000000000..f01431133 --- /dev/null +++ b/protos/perfetto/trace/android/pixel_modem_events.proto @@ -0,0 +1,36 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +syntax = "proto2"; + +package perfetto.protos; + +message PixelModemEvents { + // Pigweed-format dehydrated events. + repeated bytes events = 1; + + // Timestamps of the events, converted to CLOCK_BOOTTIME. The first + // timestamp is the absolute timestamp of the first event. Subsequent + // timestamps are deltas from the previous timestamp. + // The nth entry from `events` gets the nth entry here. + repeated uint64 event_time_nanos = 2; +} + +// NB: this is not emitted in the trace but can be prepended later. +message PixelModemTokenDatabase { + // Pigweed-format database to allow event rehydration. + optional bytes database = 1; +} diff --git a/protos/perfetto/trace/perfetto_trace.proto b/protos/perfetto/trace/perfetto_trace.proto index f949e6992..81977bfa4 100644 --- a/protos/perfetto/trace/perfetto_trace.proto +++ b/protos/perfetto/trace/perfetto_trace.proto @@ -660,6 +660,32 @@ message PackagesListConfig { // End of protos/perfetto/config/android/packages_list_config.proto +// Begin of protos/perfetto/config/android/pixel_modem_config.proto + +// Data source that records events from the modem. +message PixelModemConfig { + // Event group to record, as defined by the modem. + enum EventGroup { + EVENT_GROUP_UNKNOWN = 0; + + // Events suitable for low bandwidth tracing only. + EVENT_GROUP_LOW_BANDWIDTH = 1; + + // Events suitable for high and low bandwidth tracing. + EVENT_GROUP_HIGH_AND_LOW_BANDWIDTH = 2; + } + + optional EventGroup event_group = 1; + + // If set, record only events with these hashes. + repeated int64 pigweed_hash_allow_list = 2; + + // If set and allow_list is not set, deny events with these hashes. + repeated int64 pigweed_hash_deny_list = 3; +} + +// End of protos/perfetto/config/android/pixel_modem_config.proto + // Begin of protos/perfetto/common/protolog_common.proto enum ProtoLogLevel { @@ -3231,7 +3257,7 @@ message TrackEventConfig { // Begin of protos/perfetto/config/data_source_config.proto // The configuration that is passed to each data source when starting tracing. -// Next id: 129 +// Next id: 130 message DataSourceConfig { enum SessionInitiator { SESSION_INITIATOR_UNSPECIFIED = 0; @@ -3379,6 +3405,9 @@ message DataSourceConfig { // Data source name: android.input.inputevent optional AndroidInputEventConfig android_input_event_config = 128 [lazy = true]; + // Data source name: android.pixel.modem + optional PixelModemConfig pixel_modem_config = 129 [lazy = true]; + // This is a fallback mechanism to send a free-form text config to the // producer. In theory this should never be needed. All the code that // is part of the platform (i.e. traced service) is supposed to *not* truncate @@ -4996,6 +5025,27 @@ message PackagesList { // End of protos/perfetto/trace/android/packages_list.proto +// Begin of protos/perfetto/trace/android/pixel_modem_events.proto + +message PixelModemEvents { + // Pigweed-format dehydrated events. + repeated bytes events = 1; + + // Timestamps of the events, converted to CLOCK_BOOTTIME. The first + // timestamp is the absolute timestamp of the first event. Subsequent + // timestamps are deltas from the previous timestamp. + // The nth entry from `events` gets the nth entry here. + repeated uint64 event_time_nanos = 2; +} + +// NB: this is not emitted in the trace but can be prepended later. +message PixelModemTokenDatabase { + // Pigweed-format database to allow event rehydration. + optional bytes database = 1; +} + +// End of protos/perfetto/trace/android/pixel_modem_events.proto + // Begin of protos/perfetto/trace/android/protolog.proto /* represents a single log entry */ @@ -14721,7 +14771,7 @@ message UiState { // See the [Buffers and Dataflow](/docs/concepts/buffers.md) doc for details. // // Next reserved id: 14 (up to 15). -// Next id: 109. +// Next id: 112. message TracePacket { // The timestamp of the TracePacket. // By default this timestamps refers to the trace clock (CLOCK_BOOTTIME on @@ -14861,6 +14911,9 @@ message TracePacket { // Clock synchronization with remote machines. RemoteClockSync remote_clock_sync = 107; + PixelModemEvents pixel_modem_events = 110; + PixelModemTokenDatabase pixel_modem_token_database = 111; + // This field is only used for testing. // In previous versions of this proto this field had the id 268435455 // This caused many problems: diff --git a/protos/perfetto/trace/trace_packet.proto b/protos/perfetto/trace/trace_packet.proto index 93fb7d3e9..62d7e6fc2 100644 --- a/protos/perfetto/trace/trace_packet.proto +++ b/protos/perfetto/trace/trace_packet.proto @@ -30,6 +30,7 @@ import "protos/perfetto/trace/android/graphics_frame_event.proto"; import "protos/perfetto/trace/android/initial_display_state.proto"; import "protos/perfetto/trace/android/network_trace.proto"; import "protos/perfetto/trace/android/packages_list.proto"; +import "protos/perfetto/trace/android/pixel_modem_events.proto"; import "protos/perfetto/trace/android/protolog.proto"; import "protos/perfetto/trace/android/shell_transition.proto"; import "protos/perfetto/trace/android/surfaceflinger_layers.proto"; @@ -103,7 +104,7 @@ package perfetto.protos; // See the [Buffers and Dataflow](/docs/concepts/buffers.md) doc for details. // // Next reserved id: 14 (up to 15). -// Next id: 109. +// Next id: 112. message TracePacket { // The timestamp of the TracePacket. // By default this timestamps refers to the trace clock (CLOCK_BOOTTIME on @@ -243,6 +244,9 @@ message TracePacket { // Clock synchronization with remote machines. RemoteClockSync remote_clock_sync = 107; + PixelModemEvents pixel_modem_events = 110; + PixelModemTokenDatabase pixel_modem_token_database = 111; + // This field is only used for testing. // In previous versions of this proto this field had the id 268435455 // This caused many problems: |