Merge "Deflake the test by verifying with exactly one OOME allocation"
diff --git a/Android.bp b/Android.bp
index eadd256..2de8862 100644
--- a/Android.bp
+++ b/Android.bp
@@ -8849,6 +8849,7 @@
name: "perfetto_src_protozero_protozero",
srcs: [
"src/protozero/field.cc",
+ "src/protozero/gen_field_helpers.cc",
"src/protozero/message.cc",
"src/protozero/message_arena.cc",
"src/protozero/message_handle.cc",
@@ -10088,6 +10089,14 @@
name: "perfetto_src_trace_processor_unittests",
}
+// GN: //src/trace_processor/util:bump_allocator
+filegroup {
+ name: "perfetto_src_trace_processor_util_bump_allocator",
+ srcs: [
+ "src/trace_processor/util/bump_allocator.cc",
+ ],
+}
+
// GN: //src/trace_processor/util:descriptors
filegroup {
name: "perfetto_src_trace_processor_util_descriptors",
@@ -10176,6 +10185,7 @@
filegroup {
name: "perfetto_src_trace_processor_util_unittests",
srcs: [
+ "src/trace_processor/util/bump_allocator_unittest.cc",
"src/trace_processor/util/debug_annotation_parser_unittest.cc",
"src/trace_processor/util/glob_unittest.cc",
"src/trace_processor/util/gzip_utils_unittest.cc",
@@ -11551,6 +11561,7 @@
":perfetto_src_trace_processor_types_types",
":perfetto_src_trace_processor_types_unittests",
":perfetto_src_trace_processor_unittests",
+ ":perfetto_src_trace_processor_util_bump_allocator",
":perfetto_src_trace_processor_util_descriptors",
":perfetto_src_trace_processor_util_glob",
":perfetto_src_trace_processor_util_gzip",
@@ -12878,6 +12889,8 @@
srcs: [
"protos/perfetto/trace/perfetto_trace.proto",
],
+ // b/267831518: Pin tradefed and dependencies to Java 11.
+ java_version: "11",
}
java_library_host {
@@ -12888,6 +12901,8 @@
srcs: [
"protos/perfetto/metrics/perfetto_merged_metrics.proto",
],
+ // b/267831518: Pin tradefed and dependencies to Java 11.
+ java_version: "11",
}
// This sample target shows how to use the perfetto client API from within the
diff --git a/Android.bp.extras b/Android.bp.extras
index f1251b4..ded8bdb 100644
--- a/Android.bp.extras
+++ b/Android.bp.extras
@@ -18,6 +18,8 @@
srcs: [
"protos/perfetto/trace/perfetto_trace.proto",
],
+ // b/267831518: Pin tradefed and dependencies to Java 11.
+ java_version: "11",
}
java_library_host {
@@ -28,6 +30,8 @@
srcs: [
"protos/perfetto/metrics/perfetto_merged_metrics.proto",
],
+ // b/267831518: Pin tradefed and dependencies to Java 11.
+ java_version: "11",
}
// This sample target shows how to use the perfetto client API from within the
diff --git a/BUILD b/BUILD
index c4c9781..05a8baf 100644
--- a/BUILD
+++ b/BUILD
@@ -126,6 +126,7 @@
name = "protozero",
srcs = [
"src/protozero/field.cc",
+ "src/protozero/gen_field_helpers.cc",
"src/protozero/message.cc",
"src/protozero/message_arena.cc",
"src/protozero/message_handle.cc",
@@ -554,6 +555,7 @@
"include/perfetto/protozero/cpp_message_obj.h",
"include/perfetto/protozero/field.h",
"include/perfetto/protozero/field_writer.h",
+ "include/perfetto/protozero/gen_field_helpers.h",
"include/perfetto/protozero/message.h",
"include/perfetto/protozero/message_arena.h",
"include/perfetto/protozero/message_handle.h",
diff --git a/BUILD.gn b/BUILD.gn
index 0ad78da..bac6cfc 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -297,7 +297,7 @@
]
public_deps += [ "include/perfetto/ext/tracing/ipc:ipc" ]
}
- if (!is_nacl && !is_ios) {
+ if (!is_nacl) {
deps += [
"src/trace_processor:export_json",
"src/trace_processor:storage_minimal",
diff --git a/CHANGELOG b/CHANGELOG
index ef4b9fc..ac77b20 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,5 +1,20 @@
Unreleased:
Tracing service and probes:
+ *
+ Trace Processor:
+ *
+ UI:
+ *
+ SDK:
+ *
+
+v32.1 - 2023-02-01:
+ Trace Processor:
+ * Fix build on windows.
+
+
+v32.0 - 2023-02-01:
+ Tracing service and probes:
* Added an explicit TraceUuid packet. The tracing service now always
generates a UUID, even if TraceConfig.trace_uuid_msb/lsb is empty.
Trace Processor:
diff --git a/PRESUBMIT.py b/PRESUBMIT.py
index 6682fec..7b11412 100644
--- a/PRESUBMIT.py
+++ b/PRESUBMIT.py
@@ -41,6 +41,7 @@
files_to_check='.*',
files_to_skip=[
'Android[.]bp',
+ "buildtools/grpc/BUILD.gn",
'.*[.]json$',
'.*[.]sql$',
'.*[.]out$',
diff --git a/buildtools/.gitignore b/buildtools/.gitignore
index 869315f..ad3768e 100644
--- a/buildtools/.gitignore
+++ b/buildtools/.gitignore
@@ -17,6 +17,7 @@
debian_sid_armel-sysroot/
emulator/
googletest/
+grpc/src
jsoncpp/
libbacktrace/
libbase/
diff --git a/buildtools/BUILD.gn b/buildtools/BUILD.gn
index 5eced89..be78fcf 100644
--- a/buildtools/BUILD.gn
+++ b/buildtools/BUILD.gn
@@ -129,21 +129,8 @@
defines = [ "HAVE_PTHREAD=1" ]
cflags = []
- if (is_clang) {
- # We do NOT build libprotobuf with -Wextra or -Weverything. But still it
- # hits some warnings that we need to suppress.
- cflags += [
- "-Wno-unknown-warning-option",
- "-Wno-enum-compare-switch",
- "-Wno-user-defined-warnings",
- "-Wno-tautological-constant-compare",
- "-Wno-inconsistent-missing-override",
- ]
- } else if (!is_win) { # implies gcc
- cflags += [
- "-Wno-return-type",
- "-Wno-stringop-overread",
- ]
+ if (!is_clang && !is_win) { # implies gcc
+ cflags += [ "-Wno-stringop-overread" ]
}
if (is_win) {
cflags += [ "/W0" ]
@@ -162,57 +149,101 @@
source_set("protobuf_lite") {
visibility = _buildtools_visibility
sources = [
+ "protobuf/src/google/protobuf/any.h",
+ "protobuf/src/google/protobuf/any.pb.h",
"protobuf/src/google/protobuf/any_lite.cc",
+ "protobuf/src/google/protobuf/api.pb.h",
"protobuf/src/google/protobuf/arena.cc",
"protobuf/src/google/protobuf/arena.h",
"protobuf/src/google/protobuf/arena_impl.h",
+ "protobuf/src/google/protobuf/arenastring.cc",
"protobuf/src/google/protobuf/arenastring.h",
+ "protobuf/src/google/protobuf/arenaz_sampler.cc",
+ "protobuf/src/google/protobuf/arenaz_sampler.h",
+ "protobuf/src/google/protobuf/compiler/importer.h",
+ "protobuf/src/google/protobuf/compiler/parser.h",
+ "protobuf/src/google/protobuf/descriptor.h",
+ "protobuf/src/google/protobuf/descriptor.pb.h",
+ "protobuf/src/google/protobuf/descriptor_database.h",
+ "protobuf/src/google/protobuf/duration.pb.h",
+ "protobuf/src/google/protobuf/dynamic_message.h",
+ "protobuf/src/google/protobuf/empty.pb.h",
+ "protobuf/src/google/protobuf/explicitly_constructed.h",
"protobuf/src/google/protobuf/extension_set.cc",
"protobuf/src/google/protobuf/extension_set.h",
+ "protobuf/src/google/protobuf/extension_set_inl.h",
+ "protobuf/src/google/protobuf/field_access_listener.h",
+ "protobuf/src/google/protobuf/field_mask.pb.h",
+ "protobuf/src/google/protobuf/generated_enum_reflection.h",
"protobuf/src/google/protobuf/generated_enum_util.cc",
"protobuf/src/google/protobuf/generated_enum_util.h",
- "protobuf/src/google/protobuf/generated_message_table_driven_lite.cc",
- "protobuf/src/google/protobuf/generated_message_table_driven_lite.h",
+ "protobuf/src/google/protobuf/generated_message_bases.h",
+ "protobuf/src/google/protobuf/generated_message_reflection.h",
+ "protobuf/src/google/protobuf/generated_message_tctable_decl.h",
+ "protobuf/src/google/protobuf/generated_message_tctable_impl.h",
+ "protobuf/src/google/protobuf/generated_message_tctable_lite.cc",
"protobuf/src/google/protobuf/generated_message_util.cc",
"protobuf/src/google/protobuf/generated_message_util.h",
"protobuf/src/google/protobuf/has_bits.h",
"protobuf/src/google/protobuf/implicit_weak_message.cc",
"protobuf/src/google/protobuf/implicit_weak_message.h",
+ "protobuf/src/google/protobuf/inlined_string_field.cc",
"protobuf/src/google/protobuf/inlined_string_field.h",
"protobuf/src/google/protobuf/io/coded_stream.cc",
"protobuf/src/google/protobuf/io/coded_stream.h",
- "protobuf/src/google/protobuf/io/coded_stream_inl.h",
"protobuf/src/google/protobuf/io/io_win32.cc",
"protobuf/src/google/protobuf/io/io_win32.h",
+ "protobuf/src/google/protobuf/io/printer.h",
"protobuf/src/google/protobuf/io/strtod.cc",
"protobuf/src/google/protobuf/io/strtod.h",
+ "protobuf/src/google/protobuf/io/tokenizer.h",
"protobuf/src/google/protobuf/io/zero_copy_stream.cc",
"protobuf/src/google/protobuf/io/zero_copy_stream.h",
"protobuf/src/google/protobuf/io/zero_copy_stream_impl.cc",
"protobuf/src/google/protobuf/io/zero_copy_stream_impl.h",
"protobuf/src/google/protobuf/io/zero_copy_stream_impl_lite.cc",
"protobuf/src/google/protobuf/io/zero_copy_stream_impl_lite.h",
+ "protobuf/src/google/protobuf/map.cc",
"protobuf/src/google/protobuf/map.h",
+ "protobuf/src/google/protobuf/map_entry.h",
"protobuf/src/google/protobuf/map_entry_lite.h",
+ "protobuf/src/google/protobuf/map_field.h",
+ "protobuf/src/google/protobuf/map_field_inl.h",
"protobuf/src/google/protobuf/map_field_lite.h",
"protobuf/src/google/protobuf/map_type_handler.h",
+ "protobuf/src/google/protobuf/message.h",
"protobuf/src/google/protobuf/message_lite.cc",
"protobuf/src/google/protobuf/message_lite.h",
+ "protobuf/src/google/protobuf/metadata.h",
+ "protobuf/src/google/protobuf/metadata_lite.h",
+ "protobuf/src/google/protobuf/parse_context.cc",
+ "protobuf/src/google/protobuf/parse_context.h",
+ "protobuf/src/google/protobuf/port.h",
+ "protobuf/src/google/protobuf/port_def.inc",
+ "protobuf/src/google/protobuf/port_undef.inc",
+ "protobuf/src/google/protobuf/reflection.h",
+ "protobuf/src/google/protobuf/reflection_ops.h",
"protobuf/src/google/protobuf/repeated_field.cc",
"protobuf/src/google/protobuf/repeated_field.h",
+ "protobuf/src/google/protobuf/repeated_ptr_field.cc",
+ "protobuf/src/google/protobuf/repeated_ptr_field.h",
+ "protobuf/src/google/protobuf/service.h",
+ "protobuf/src/google/protobuf/source_context.pb.h",
+ "protobuf/src/google/protobuf/string_member_robber.h",
+ "protobuf/src/google/protobuf/struct.pb.h",
"protobuf/src/google/protobuf/stubs/bytestream.cc",
"protobuf/src/google/protobuf/stubs/bytestream.h",
"protobuf/src/google/protobuf/stubs/callback.h",
"protobuf/src/google/protobuf/stubs/casts.h",
"protobuf/src/google/protobuf/stubs/common.cc",
"protobuf/src/google/protobuf/stubs/common.h",
- "protobuf/src/google/protobuf/stubs/fastmem.h",
"protobuf/src/google/protobuf/stubs/hash.h",
"protobuf/src/google/protobuf/stubs/int128.cc",
"protobuf/src/google/protobuf/stubs/int128.h",
"protobuf/src/google/protobuf/stubs/logging.h",
"protobuf/src/google/protobuf/stubs/macros.h",
"protobuf/src/google/protobuf/stubs/map_util.h",
+ "protobuf/src/google/protobuf/stubs/mathutil.h",
"protobuf/src/google/protobuf/stubs/mutex.h",
"protobuf/src/google/protobuf/stubs/once.h",
"protobuf/src/google/protobuf/stubs/platform_macros.h",
@@ -233,8 +264,22 @@
"protobuf/src/google/protobuf/stubs/template_util.h",
"protobuf/src/google/protobuf/stubs/time.cc",
"protobuf/src/google/protobuf/stubs/time.h",
+ "protobuf/src/google/protobuf/text_format.h",
+ "protobuf/src/google/protobuf/timestamp.pb.h",
+ "protobuf/src/google/protobuf/type.pb.h",
+ "protobuf/src/google/protobuf/unknown_field_set.h",
+ "protobuf/src/google/protobuf/util/delimited_message_util.h",
+ "protobuf/src/google/protobuf/util/field_comparator.h",
+ "protobuf/src/google/protobuf/util/field_mask_util.h",
+ "protobuf/src/google/protobuf/util/json_util.h",
+ "protobuf/src/google/protobuf/util/message_differencer.h",
+ "protobuf/src/google/protobuf/util/time_util.h",
+ "protobuf/src/google/protobuf/util/type_resolver.h",
+ "protobuf/src/google/protobuf/util/type_resolver_util.h",
+ "protobuf/src/google/protobuf/wire_format.h",
"protobuf/src/google/protobuf/wire_format_lite.cc",
"protobuf/src/google/protobuf/wire_format_lite.h",
+ "protobuf/src/google/protobuf/wrappers.pb.h",
]
configs -= [ "//gn/standalone:extra_warnings" ]
if (is_win) {
@@ -259,6 +304,10 @@
"protobuf/src/google/protobuf/any.pb.h",
"protobuf/src/google/protobuf/api.pb.cc",
"protobuf/src/google/protobuf/api.pb.h",
+ "protobuf/src/google/protobuf/arena.h",
+ "protobuf/src/google/protobuf/arena_impl.h",
+ "protobuf/src/google/protobuf/arenastring.h",
+ "protobuf/src/google/protobuf/arenaz_sampler.h",
"protobuf/src/google/protobuf/compiler/importer.cc",
"protobuf/src/google/protobuf/compiler/importer.h",
"protobuf/src/google/protobuf/compiler/parser.cc",
@@ -275,40 +324,85 @@
"protobuf/src/google/protobuf/dynamic_message.h",
"protobuf/src/google/protobuf/empty.pb.cc",
"protobuf/src/google/protobuf/empty.pb.h",
+ "protobuf/src/google/protobuf/explicitly_constructed.h",
+ "protobuf/src/google/protobuf/extension_set.h",
"protobuf/src/google/protobuf/extension_set_heavy.cc",
+ "protobuf/src/google/protobuf/extension_set_inl.h",
+ "protobuf/src/google/protobuf/field_access_listener.h",
"protobuf/src/google/protobuf/field_mask.pb.cc",
"protobuf/src/google/protobuf/field_mask.pb.h",
"protobuf/src/google/protobuf/generated_enum_reflection.h",
+ "protobuf/src/google/protobuf/generated_enum_util.h",
+ "protobuf/src/google/protobuf/generated_message_bases.cc",
+ "protobuf/src/google/protobuf/generated_message_bases.h",
"protobuf/src/google/protobuf/generated_message_reflection.cc",
"protobuf/src/google/protobuf/generated_message_reflection.h",
+ "protobuf/src/google/protobuf/generated_message_tctable_decl.h",
+ "protobuf/src/google/protobuf/generated_message_tctable_full.cc",
+ "protobuf/src/google/protobuf/generated_message_tctable_impl.h",
+ "protobuf/src/google/protobuf/generated_message_util.h",
+ "protobuf/src/google/protobuf/has_bits.h",
+ "protobuf/src/google/protobuf/implicit_weak_message.h",
+ "protobuf/src/google/protobuf/inlined_string_field.h",
+ "protobuf/src/google/protobuf/io/coded_stream.h",
"protobuf/src/google/protobuf/io/gzip_stream.cc",
- "protobuf/src/google/protobuf/io/gzip_stream.h",
+ "protobuf/src/google/protobuf/io/io_win32.h",
"protobuf/src/google/protobuf/io/printer.cc",
"protobuf/src/google/protobuf/io/printer.h",
+ "protobuf/src/google/protobuf/io/strtod.h",
"protobuf/src/google/protobuf/io/tokenizer.cc",
"protobuf/src/google/protobuf/io/tokenizer.h",
+ "protobuf/src/google/protobuf/io/zero_copy_stream.h",
+ "protobuf/src/google/protobuf/io/zero_copy_stream_impl.h",
+ "protobuf/src/google/protobuf/io/zero_copy_stream_impl_lite.h",
+ "protobuf/src/google/protobuf/map.h",
"protobuf/src/google/protobuf/map_entry.h",
+ "protobuf/src/google/protobuf/map_entry_lite.h",
"protobuf/src/google/protobuf/map_field.cc",
"protobuf/src/google/protobuf/map_field.h",
"protobuf/src/google/protobuf/map_field_inl.h",
+ "protobuf/src/google/protobuf/map_field_lite.h",
+ "protobuf/src/google/protobuf/map_type_handler.h",
"protobuf/src/google/protobuf/message.cc",
"protobuf/src/google/protobuf/message.h",
+ "protobuf/src/google/protobuf/message_lite.h",
"protobuf/src/google/protobuf/metadata.h",
+ "protobuf/src/google/protobuf/metadata_lite.h",
+ "protobuf/src/google/protobuf/parse_context.h",
+ "protobuf/src/google/protobuf/port.h",
+ "protobuf/src/google/protobuf/port_def.inc",
+ "protobuf/src/google/protobuf/port_undef.inc",
"protobuf/src/google/protobuf/reflection.h",
"protobuf/src/google/protobuf/reflection_internal.h",
"protobuf/src/google/protobuf/reflection_ops.cc",
"protobuf/src/google/protobuf/reflection_ops.h",
+ "protobuf/src/google/protobuf/repeated_field.h",
+ "protobuf/src/google/protobuf/repeated_ptr_field.h",
"protobuf/src/google/protobuf/service.cc",
"protobuf/src/google/protobuf/service.h",
"protobuf/src/google/protobuf/source_context.pb.cc",
"protobuf/src/google/protobuf/source_context.pb.h",
"protobuf/src/google/protobuf/struct.pb.cc",
"protobuf/src/google/protobuf/struct.pb.h",
- "protobuf/src/google/protobuf/stubs/mathlimits.cc",
- "protobuf/src/google/protobuf/stubs/mathlimits.h",
- "protobuf/src/google/protobuf/stubs/mathutil.h",
+ "protobuf/src/google/protobuf/stubs/bytestream.h",
+ "protobuf/src/google/protobuf/stubs/callback.h",
+ "protobuf/src/google/protobuf/stubs/casts.h",
+ "protobuf/src/google/protobuf/stubs/common.h",
+ "protobuf/src/google/protobuf/stubs/hash.h",
+ "protobuf/src/google/protobuf/stubs/logging.h",
+ "protobuf/src/google/protobuf/stubs/macros.h",
+ "protobuf/src/google/protobuf/stubs/map_util.h",
+ "protobuf/src/google/protobuf/stubs/mutex.h",
+ "protobuf/src/google/protobuf/stubs/once.h",
+ "protobuf/src/google/protobuf/stubs/platform_macros.h",
+ "protobuf/src/google/protobuf/stubs/port.h",
+ "protobuf/src/google/protobuf/stubs/status.h",
+ "protobuf/src/google/protobuf/stubs/stl_util.h",
+ "protobuf/src/google/protobuf/stubs/stringpiece.h",
+ "protobuf/src/google/protobuf/stubs/strutil.h",
"protobuf/src/google/protobuf/stubs/substitute.cc",
"protobuf/src/google/protobuf/stubs/substitute.h",
+ "protobuf/src/google/protobuf/stubs/template_util.h",
"protobuf/src/google/protobuf/text_format.cc",
"protobuf/src/google/protobuf/text_format.h",
"protobuf/src/google/protobuf/timestamp.pb.cc",
@@ -317,6 +411,8 @@
"protobuf/src/google/protobuf/type.pb.h",
"protobuf/src/google/protobuf/unknown_field_set.cc",
"protobuf/src/google/protobuf/unknown_field_set.h",
+ "protobuf/src/google/protobuf/util/delimited_message_util.cc",
+ "protobuf/src/google/protobuf/util/delimited_message_util.h",
"protobuf/src/google/protobuf/util/field_comparator.cc",
"protobuf/src/google/protobuf/util/field_comparator.h",
"protobuf/src/google/protobuf/util/field_mask_util.cc",
@@ -328,6 +424,7 @@
"protobuf/src/google/protobuf/util/internal/default_value_objectwriter.h",
"protobuf/src/google/protobuf/util/internal/error_listener.cc",
"protobuf/src/google/protobuf/util/internal/error_listener.h",
+ "protobuf/src/google/protobuf/util/internal/expecting_objectwriter.h",
"protobuf/src/google/protobuf/util/internal/field_mask_utility.cc",
"protobuf/src/google/protobuf/util/internal/field_mask_utility.h",
"protobuf/src/google/protobuf/util/internal/json_escaping.cc",
@@ -337,6 +434,7 @@
"protobuf/src/google/protobuf/util/internal/json_stream_parser.cc",
"protobuf/src/google/protobuf/util/internal/json_stream_parser.h",
"protobuf/src/google/protobuf/util/internal/location_tracker.h",
+ "protobuf/src/google/protobuf/util/internal/mock_error_listener.h",
"protobuf/src/google/protobuf/util/internal/object_location_tracker.h",
"protobuf/src/google/protobuf/util/internal/object_source.h",
"protobuf/src/google/protobuf/util/internal/object_writer.cc",
@@ -350,7 +448,6 @@
"protobuf/src/google/protobuf/util/internal/structured_objectwriter.h",
"protobuf/src/google/protobuf/util/internal/type_info.cc",
"protobuf/src/google/protobuf/util/internal/type_info.h",
- "protobuf/src/google/protobuf/util/internal/type_info_test_helper.cc",
"protobuf/src/google/protobuf/util/internal/type_info_test_helper.h",
"protobuf/src/google/protobuf/util/internal/utility.cc",
"protobuf/src/google/protobuf/util/internal/utility.h",
@@ -365,6 +462,7 @@
"protobuf/src/google/protobuf/util/type_resolver_util.h",
"protobuf/src/google/protobuf/wire_format.cc",
"protobuf/src/google/protobuf/wire_format.h",
+ "protobuf/src/google/protobuf/wire_format_lite.h",
"protobuf/src/google/protobuf/wrappers.pb.cc",
"protobuf/src/google/protobuf/wrappers.pb.h",
]
@@ -412,9 +510,12 @@
"protobuf/src/google/protobuf/compiler/cpp/cpp_message_field.cc",
"protobuf/src/google/protobuf/compiler/cpp/cpp_message_field.h",
"protobuf/src/google/protobuf/compiler/cpp/cpp_message_layout_helper.h",
+ "protobuf/src/google/protobuf/compiler/cpp/cpp_names.h",
"protobuf/src/google/protobuf/compiler/cpp/cpp_options.h",
"protobuf/src/google/protobuf/compiler/cpp/cpp_padding_optimizer.cc",
"protobuf/src/google/protobuf/compiler/cpp/cpp_padding_optimizer.h",
+ "protobuf/src/google/protobuf/compiler/cpp/cpp_parse_function_generator.cc",
+ "protobuf/src/google/protobuf/compiler/cpp/cpp_parse_function_generator.h",
"protobuf/src/google/protobuf/compiler/cpp/cpp_primitive_field.cc",
"protobuf/src/google/protobuf/compiler/cpp/cpp_primitive_field.h",
"protobuf/src/google/protobuf/compiler/cpp/cpp_service.cc",
@@ -439,6 +540,7 @@
"protobuf/src/google/protobuf/compiler/csharp/csharp_message.h",
"protobuf/src/google/protobuf/compiler/csharp/csharp_message_field.cc",
"protobuf/src/google/protobuf/compiler/csharp/csharp_message_field.h",
+ "protobuf/src/google/protobuf/compiler/csharp/csharp_names.h",
"protobuf/src/google/protobuf/compiler/csharp/csharp_options.h",
"protobuf/src/google/protobuf/compiler/csharp/csharp_primitive_field.cc",
"protobuf/src/google/protobuf/compiler/csharp/csharp_primitive_field.h",
@@ -480,6 +582,8 @@
"protobuf/src/google/protobuf/compiler/java/java_generator_factory.h",
"protobuf/src/google/protobuf/compiler/java/java_helpers.cc",
"protobuf/src/google/protobuf/compiler/java/java_helpers.h",
+ "protobuf/src/google/protobuf/compiler/java/java_kotlin_generator.cc",
+ "protobuf/src/google/protobuf/compiler/java/java_kotlin_generator.h",
"protobuf/src/google/protobuf/compiler/java/java_map_field.cc",
"protobuf/src/google/protobuf/compiler/java/java_map_field.h",
"protobuf/src/google/protobuf/compiler/java/java_map_field_lite.cc",
@@ -498,6 +602,7 @@
"protobuf/src/google/protobuf/compiler/java/java_message_lite.h",
"protobuf/src/google/protobuf/compiler/java/java_name_resolver.cc",
"protobuf/src/google/protobuf/compiler/java/java_name_resolver.h",
+ "protobuf/src/google/protobuf/compiler/java/java_names.h",
"protobuf/src/google/protobuf/compiler/java/java_options.h",
"protobuf/src/google/protobuf/compiler/java/java_primitive_field.cc",
"protobuf/src/google/protobuf/compiler/java/java_primitive_field.h",
@@ -535,6 +640,7 @@
"protobuf/src/google/protobuf/compiler/objectivec/objectivec_message.h",
"protobuf/src/google/protobuf/compiler/objectivec/objectivec_message_field.cc",
"protobuf/src/google/protobuf/compiler/objectivec/objectivec_message_field.h",
+ "protobuf/src/google/protobuf/compiler/objectivec/objectivec_nsobject_methods.h",
"protobuf/src/google/protobuf/compiler/objectivec/objectivec_oneof.cc",
"protobuf/src/google/protobuf/compiler/objectivec/objectivec_oneof.h",
"protobuf/src/google/protobuf/compiler/objectivec/objectivec_primitive_field.cc",
@@ -547,8 +653,13 @@
"protobuf/src/google/protobuf/compiler/plugin.pb.h",
"protobuf/src/google/protobuf/compiler/python/python_generator.cc",
"protobuf/src/google/protobuf/compiler/python/python_generator.h",
+ "protobuf/src/google/protobuf/compiler/python/python_helpers.cc",
+ "protobuf/src/google/protobuf/compiler/python/python_helpers.h",
+ "protobuf/src/google/protobuf/compiler/python/python_pyi_generator.cc",
+ "protobuf/src/google/protobuf/compiler/python/python_pyi_generator.h",
"protobuf/src/google/protobuf/compiler/ruby/ruby_generator.cc",
"protobuf/src/google/protobuf/compiler/ruby/ruby_generator.h",
+ "protobuf/src/google/protobuf/compiler/scc.h",
"protobuf/src/google/protobuf/compiler/subprocess.cc",
"protobuf/src/google/protobuf/compiler/subprocess.h",
"protobuf/src/google/protobuf/compiler/zip_writer.cc",
@@ -1340,3 +1451,46 @@
]
deps = [ "//gn:default_deps" ]
}
+
+if (enable_perfetto_grpc) {
+ config("grpc_absl_config") {
+ visibility = _buildtools_visibility
+ include_dirs = [ "grpc/src/third_party/abseil-cpp" ]
+ cflags = [ "-Wno-deprecated-builtins" ]
+ }
+
+ config("grpc_boringssl_config") {
+ visibility = _buildtools_visibility
+ include_dirs = [ "grpc/src/third_party/boringssl-with-bazel/src/include" ]
+ }
+
+ config("grpc_upb_config") {
+ visibility = _buildtools_visibility
+ include_dirs = [
+ "grpc/src/third_party/upb",
+ "grpc/src/src/core/ext/upb-generated",
+ "grpc/src/src/core/ext/upbdefs-generated",
+ ]
+ }
+
+ config("grpc_internal_config") {
+ visibility = _buildtools_visibility
+ include_dirs = [
+ "grpc/src/include",
+ "grpc/src",
+ "grpc/src/third_party/address_sorting/include",
+ "grpc/src/third_party/re2",
+ "grpc/src/src/core/ext/upb-generated",
+ "grpc/src/src/core/ext/upbdefs-generated",
+ "grpc/src/third_party/xxhash",
+ ]
+ cflags = [ "-DGRPC_ARES=0" ]
+ }
+
+ source_set("grpc") {
+ deps = [
+ "grpc:grpc++",
+ "//gn:default_deps",
+ ]
+ }
+}
diff --git a/buildtools/grpc/BUILD.gn b/buildtools/grpc/BUILD.gn
new file mode 100644
index 0000000..4702dab
--- /dev/null
+++ b/buildtools/grpc/BUILD.gn
@@ -0,0 +1,6320 @@
+#
+# DO NOT EDIT. AUTOGENERATED file
+#
+# This file is generated with the command:
+# tools/gen_grpc_build_gn.py > buildtools/grpc/BUILD.gn
+#
+
+# Prevent the gRPC from being depended upon without explicitly being opted in.
+assert(enable_perfetto_grpc)
+
+source_set("absl_algorithm_algorithm") {
+ sources = [ "src/third_party/abseil-cpp/absl/algorithm/algorithm.h" ]
+ public_deps = [ ":absl_base_config" ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_algorithm_container") {
+ sources = [ "src/third_party/abseil-cpp/absl/algorithm/container.h" ]
+ public_deps = [
+ ":absl_algorithm_algorithm",
+ ":absl_base_core_headers",
+ ":absl_meta_type_traits",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_base_atomic_hook") {
+ sources = [ "src/third_party/abseil-cpp/absl/base/internal/atomic_hook.h" ]
+ public_deps = [
+ ":absl_base_config",
+ ":absl_base_core_headers",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_base_base") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/base/call_once.h",
+ "src/third_party/abseil-cpp/absl/base/casts.h",
+ "src/third_party/abseil-cpp/absl/base/internal/cycleclock.cc",
+ "src/third_party/abseil-cpp/absl/base/internal/cycleclock.h",
+ "src/third_party/abseil-cpp/absl/base/internal/low_level_scheduling.h",
+ "src/third_party/abseil-cpp/absl/base/internal/per_thread_tls.h",
+ "src/third_party/abseil-cpp/absl/base/internal/spinlock.cc",
+ "src/third_party/abseil-cpp/absl/base/internal/spinlock.h",
+ "src/third_party/abseil-cpp/absl/base/internal/sysinfo.cc",
+ "src/third_party/abseil-cpp/absl/base/internal/sysinfo.h",
+ "src/third_party/abseil-cpp/absl/base/internal/thread_identity.cc",
+ "src/third_party/abseil-cpp/absl/base/internal/thread_identity.h",
+ "src/third_party/abseil-cpp/absl/base/internal/tsan_mutex_interface.h",
+ "src/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc",
+ "src/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h",
+ ]
+ public_deps = [
+ ":absl_base_atomic_hook",
+ ":absl_base_base_internal",
+ ":absl_base_config",
+ ":absl_base_core_headers",
+ ":absl_base_cycleclock_internal",
+ ":absl_base_dynamic_annotations",
+ ":absl_base_log_severity",
+ ":absl_base_raw_logging_internal",
+ ":absl_base_spinlock_wait",
+ ":absl_meta_type_traits",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_base_base_internal") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/base/internal/hide_ptr.h",
+ "src/third_party/abseil-cpp/absl/base/internal/identity.h",
+ "src/third_party/abseil-cpp/absl/base/internal/inline_variable.h",
+ "src/third_party/abseil-cpp/absl/base/internal/invoke.h",
+ "src/third_party/abseil-cpp/absl/base/internal/scheduling_mode.h",
+ ]
+ public_deps = [
+ ":absl_base_config",
+ ":absl_meta_type_traits",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_base_config") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/base/config.h",
+ "src/third_party/abseil-cpp/absl/base/options.h",
+ "src/third_party/abseil-cpp/absl/base/policy_checks.h",
+ ]
+ public_deps = []
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_base_core_headers") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/base/attributes.h",
+ "src/third_party/abseil-cpp/absl/base/const_init.h",
+ "src/third_party/abseil-cpp/absl/base/internal/thread_annotations.h",
+ "src/third_party/abseil-cpp/absl/base/macros.h",
+ "src/third_party/abseil-cpp/absl/base/optimization.h",
+ "src/third_party/abseil-cpp/absl/base/port.h",
+ "src/third_party/abseil-cpp/absl/base/thread_annotations.h",
+ ]
+ public_deps = [ ":absl_base_config" ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_base_cycleclock_internal") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/base/internal/cycleclock_config.h",
+ "src/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock_config.h",
+ ]
+ public_deps = [
+ ":absl_base_base_internal",
+ ":absl_base_config",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_base_dynamic_annotations") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/base/dynamic_annotations.h",
+ "src/third_party/abseil-cpp/absl/base/internal/dynamic_annotations.h",
+ ]
+ public_deps = [
+ ":absl_base_config",
+ ":absl_base_core_headers",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_base_endian") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/base/internal/endian.h",
+ "src/third_party/abseil-cpp/absl/base/internal/unaligned_access.h",
+ ]
+ public_deps = [
+ ":absl_base_base",
+ ":absl_base_config",
+ ":absl_base_core_headers",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_base_errno_saver") {
+ sources = [ "src/third_party/abseil-cpp/absl/base/internal/errno_saver.h" ]
+ public_deps = [ ":absl_base_config" ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_base_fast_type_id") {
+ sources = [ "src/third_party/abseil-cpp/absl/base/internal/fast_type_id.h" ]
+ public_deps = [ ":absl_base_config" ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_base_log_severity") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/base/log_severity.cc",
+ "src/third_party/abseil-cpp/absl/base/log_severity.h",
+ ]
+ public_deps = [
+ ":absl_base_config",
+ ":absl_base_core_headers",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_base_malloc_internal") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/base/internal/direct_mmap.h",
+ "src/third_party/abseil-cpp/absl/base/internal/low_level_alloc.cc",
+ "src/third_party/abseil-cpp/absl/base/internal/low_level_alloc.h",
+ ]
+ public_deps = [
+ ":absl_base_base",
+ ":absl_base_base_internal",
+ ":absl_base_config",
+ ":absl_base_core_headers",
+ ":absl_base_dynamic_annotations",
+ ":absl_base_raw_logging_internal",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_base_prefetch") {
+ sources = [ "src/third_party/abseil-cpp/absl/base/internal/prefetch.h" ]
+ public_deps = [ ":absl_base_config" ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_base_pretty_function") {
+ sources =
+ [ "src/third_party/abseil-cpp/absl/base/internal/pretty_function.h" ]
+ public_deps = []
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_base_raw_logging_internal") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/base/internal/raw_logging.cc",
+ "src/third_party/abseil-cpp/absl/base/internal/raw_logging.h",
+ ]
+ public_deps = [
+ ":absl_base_atomic_hook",
+ ":absl_base_config",
+ ":absl_base_core_headers",
+ ":absl_base_errno_saver",
+ ":absl_base_log_severity",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_base_spinlock_wait") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/base/internal/spinlock_akaros.inc",
+ "src/third_party/abseil-cpp/absl/base/internal/spinlock_linux.inc",
+ "src/third_party/abseil-cpp/absl/base/internal/spinlock_posix.inc",
+ "src/third_party/abseil-cpp/absl/base/internal/spinlock_wait.cc",
+ "src/third_party/abseil-cpp/absl/base/internal/spinlock_wait.h",
+ "src/third_party/abseil-cpp/absl/base/internal/spinlock_win32.inc",
+ ]
+ public_deps = [
+ ":absl_base_base_internal",
+ ":absl_base_core_headers",
+ ":absl_base_errno_saver",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_base_strerror") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/base/internal/strerror.cc",
+ "src/third_party/abseil-cpp/absl/base/internal/strerror.h",
+ ]
+ public_deps = [
+ ":absl_base_config",
+ ":absl_base_core_headers",
+ ":absl_base_errno_saver",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_base_throw_delegate") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/base/internal/throw_delegate.cc",
+ "src/third_party/abseil-cpp/absl/base/internal/throw_delegate.h",
+ ]
+ public_deps = [
+ ":absl_base_config",
+ ":absl_base_raw_logging_internal",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_cleanup_cleanup") {
+ sources = [ "src/third_party/abseil-cpp/absl/cleanup/cleanup.h" ]
+ public_deps = [
+ ":absl_base_config",
+ ":absl_base_core_headers",
+ ":absl_cleanup_cleanup_internal",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_cleanup_cleanup_internal") {
+ sources = [ "src/third_party/abseil-cpp/absl/cleanup/internal/cleanup.h" ]
+ public_deps = [
+ ":absl_base_base_internal",
+ ":absl_base_core_headers",
+ ":absl_utility_utility",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_container_btree") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/container/btree_map.h",
+ "src/third_party/abseil-cpp/absl/container/btree_set.h",
+ "src/third_party/abseil-cpp/absl/container/internal/btree.h",
+ "src/third_party/abseil-cpp/absl/container/internal/btree_container.h",
+ ]
+ public_deps = [
+ ":absl_base_core_headers",
+ ":absl_base_raw_logging_internal",
+ ":absl_base_throw_delegate",
+ ":absl_container_common",
+ ":absl_container_common_policy_traits",
+ ":absl_container_compressed_tuple",
+ ":absl_container_container_memory",
+ ":absl_container_layout",
+ ":absl_memory_memory",
+ ":absl_meta_type_traits",
+ ":absl_strings_cord",
+ ":absl_strings_strings",
+ ":absl_types_compare",
+ ":absl_utility_utility",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_container_common") {
+ sources = [ "src/third_party/abseil-cpp/absl/container/internal/common.h" ]
+ public_deps = [
+ ":absl_meta_type_traits",
+ ":absl_types_optional",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_container_common_policy_traits") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/container/internal/common_policy_traits.h",
+ ]
+ public_deps = [ ":absl_meta_type_traits" ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_container_compressed_tuple") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/container/internal/compressed_tuple.h",
+ ]
+ public_deps = [ ":absl_utility_utility" ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_container_container_memory") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/container/internal/container_memory.h",
+ ]
+ public_deps = [
+ ":absl_base_config",
+ ":absl_memory_memory",
+ ":absl_meta_type_traits",
+ ":absl_utility_utility",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_container_fixed_array") {
+ sources = [ "src/third_party/abseil-cpp/absl/container/fixed_array.h" ]
+ public_deps = [
+ ":absl_algorithm_algorithm",
+ ":absl_base_config",
+ ":absl_base_core_headers",
+ ":absl_base_dynamic_annotations",
+ ":absl_base_throw_delegate",
+ ":absl_container_compressed_tuple",
+ ":absl_memory_memory",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_container_flat_hash_map") {
+ sources = [ "src/third_party/abseil-cpp/absl/container/flat_hash_map.h" ]
+ public_deps = [
+ ":absl_algorithm_container",
+ ":absl_base_core_headers",
+ ":absl_container_container_memory",
+ ":absl_container_hash_function_defaults",
+ ":absl_container_raw_hash_map",
+ ":absl_memory_memory",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_container_flat_hash_set") {
+ sources = [ "src/third_party/abseil-cpp/absl/container/flat_hash_set.h" ]
+ public_deps = [
+ ":absl_algorithm_container",
+ ":absl_base_core_headers",
+ ":absl_container_container_memory",
+ ":absl_container_hash_function_defaults",
+ ":absl_container_raw_hash_set",
+ ":absl_memory_memory",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_container_hash_function_defaults") {
+ sources = [ "src/third_party/abseil-cpp/absl/container/internal/hash_function_defaults.h" ]
+ public_deps = [
+ ":absl_base_config",
+ ":absl_hash_hash",
+ ":absl_strings_cord",
+ ":absl_strings_strings",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_container_hash_policy_traits") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/container/internal/hash_policy_traits.h",
+ ]
+ public_deps = [
+ ":absl_container_common_policy_traits",
+ ":absl_meta_type_traits",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_container_hashtable_debug") {
+ sources =
+ [ "src/third_party/abseil-cpp/absl/container/internal/hashtable_debug.h" ]
+ public_deps = [ ":absl_container_hashtable_debug_hooks" ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_container_hashtable_debug_hooks") {
+ sources = [ "src/third_party/abseil-cpp/absl/container/internal/hashtable_debug_hooks.h" ]
+ public_deps = [ ":absl_base_config" ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_container_hashtablez_sampler") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc",
+ "src/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h",
+ "src/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler_force_weak_definition.cc",
+ ]
+ public_deps = [
+ ":absl_base_base",
+ ":absl_base_config",
+ ":absl_base_core_headers",
+ ":absl_debugging_stacktrace",
+ ":absl_memory_memory",
+ ":absl_profiling_exponential_biased",
+ ":absl_profiling_sample_recorder",
+ ":absl_synchronization_synchronization",
+ ":absl_utility_utility",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_container_inlined_vector") {
+ sources = [ "src/third_party/abseil-cpp/absl/container/inlined_vector.h" ]
+ public_deps = [
+ ":absl_algorithm_algorithm",
+ ":absl_base_core_headers",
+ ":absl_base_throw_delegate",
+ ":absl_container_inlined_vector_internal",
+ ":absl_memory_memory",
+ ":absl_meta_type_traits",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_container_inlined_vector_internal") {
+ sources =
+ [ "src/third_party/abseil-cpp/absl/container/internal/inlined_vector.h" ]
+ public_deps = [
+ ":absl_base_core_headers",
+ ":absl_container_compressed_tuple",
+ ":absl_memory_memory",
+ ":absl_meta_type_traits",
+ ":absl_types_span",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_container_layout") {
+ sources = [ "src/third_party/abseil-cpp/absl/container/internal/layout.h" ]
+ public_deps = [
+ ":absl_base_config",
+ ":absl_base_core_headers",
+ ":absl_meta_type_traits",
+ ":absl_strings_strings",
+ ":absl_types_span",
+ ":absl_utility_utility",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_container_node_hash_map") {
+ sources = [ "src/third_party/abseil-cpp/absl/container/node_hash_map.h" ]
+ public_deps = [
+ ":absl_algorithm_container",
+ ":absl_base_core_headers",
+ ":absl_container_container_memory",
+ ":absl_container_hash_function_defaults",
+ ":absl_container_node_slot_policy",
+ ":absl_container_raw_hash_map",
+ ":absl_memory_memory",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_container_node_hash_set") {
+ sources = [ "src/third_party/abseil-cpp/absl/container/node_hash_set.h" ]
+ public_deps = [
+ ":absl_algorithm_container",
+ ":absl_base_core_headers",
+ ":absl_container_hash_function_defaults",
+ ":absl_container_node_slot_policy",
+ ":absl_container_raw_hash_set",
+ ":absl_memory_memory",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_container_node_slot_policy") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/container/internal/node_slot_policy.h",
+ ]
+ public_deps = [ ":absl_base_config" ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_container_raw_hash_map") {
+ sources =
+ [ "src/third_party/abseil-cpp/absl/container/internal/raw_hash_map.h" ]
+ public_deps = [
+ ":absl_base_throw_delegate",
+ ":absl_container_container_memory",
+ ":absl_container_raw_hash_set",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_container_raw_hash_set") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc",
+ "src/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h",
+ ]
+ public_deps = [
+ ":absl_base_config",
+ ":absl_base_core_headers",
+ ":absl_base_endian",
+ ":absl_base_prefetch",
+ ":absl_base_raw_logging_internal",
+ ":absl_container_common",
+ ":absl_container_compressed_tuple",
+ ":absl_container_container_memory",
+ ":absl_container_hash_policy_traits",
+ ":absl_container_hashtable_debug_hooks",
+ ":absl_container_hashtablez_sampler",
+ ":absl_memory_memory",
+ ":absl_meta_type_traits",
+ ":absl_numeric_bits",
+ ":absl_utility_utility",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_crc_cpu_detect") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/crc/internal/cpu_detect.cc",
+ "src/third_party/abseil-cpp/absl/crc/internal/cpu_detect.h",
+ ]
+ public_deps = [
+ ":absl_base_base",
+ ":absl_base_config",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_crc_crc32c") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/crc/crc32c.cc",
+ "src/third_party/abseil-cpp/absl/crc/crc32c.h",
+ "src/third_party/abseil-cpp/absl/crc/internal/crc32c.h",
+ "src/third_party/abseil-cpp/absl/crc/internal/crc32c_inline.h",
+ "src/third_party/abseil-cpp/absl/crc/internal/crc_memcpy.h",
+ "src/third_party/abseil-cpp/absl/crc/internal/crc_memcpy_fallback.cc",
+ "src/third_party/abseil-cpp/absl/crc/internal/crc_memcpy_x86_64.cc",
+ "src/third_party/abseil-cpp/absl/crc/internal/crc_non_temporal_memcpy.cc",
+ ]
+ public_deps = [
+ ":absl_base_config",
+ ":absl_base_core_headers",
+ ":absl_base_dynamic_annotations",
+ ":absl_base_endian",
+ ":absl_base_prefetch",
+ ":absl_crc_cpu_detect",
+ ":absl_crc_crc_internal",
+ ":absl_crc_non_temporal_memcpy",
+ ":absl_strings_strings",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_crc_crc_cord_state") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/crc/internal/crc_cord_state.cc",
+ "src/third_party/abseil-cpp/absl/crc/internal/crc_cord_state.h",
+ ]
+ public_deps = [
+ ":absl_base_config",
+ ":absl_crc_crc32c",
+ ":absl_numeric_bits",
+ ":absl_strings_strings",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_crc_crc_internal") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/crc/internal/crc.cc",
+ "src/third_party/abseil-cpp/absl/crc/internal/crc.h",
+ "src/third_party/abseil-cpp/absl/crc/internal/crc32_x86_arm_combined_simd.h",
+ "src/third_party/abseil-cpp/absl/crc/internal/crc_internal.h",
+ "src/third_party/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc",
+ ]
+ public_deps = [
+ ":absl_base_base",
+ ":absl_base_config",
+ ":absl_base_core_headers",
+ ":absl_base_dynamic_annotations",
+ ":absl_base_endian",
+ ":absl_base_prefetch",
+ ":absl_base_raw_logging_internal",
+ ":absl_crc_cpu_detect",
+ ":absl_memory_memory",
+ ":absl_numeric_bits",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_crc_non_temporal_arm_intrinsics") {
+ sources = [ "src/third_party/abseil-cpp/absl/crc/internal/non_temporal_arm_intrinsics.h" ]
+ public_deps = [ ":absl_base_config" ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_crc_non_temporal_memcpy") {
+ sources =
+ [ "src/third_party/abseil-cpp/absl/crc/internal/non_temporal_memcpy.h" ]
+ public_deps = [
+ ":absl_base_config",
+ ":absl_base_core_headers",
+ ":absl_crc_non_temporal_arm_intrinsics",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_debugging_debugging_internal") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/debugging/internal/address_is_readable.cc",
+ "src/third_party/abseil-cpp/absl/debugging/internal/address_is_readable.h",
+ "src/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.cc",
+ "src/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h",
+ "src/third_party/abseil-cpp/absl/debugging/internal/vdso_support.cc",
+ "src/third_party/abseil-cpp/absl/debugging/internal/vdso_support.h",
+ ]
+ public_deps = [
+ ":absl_base_config",
+ ":absl_base_core_headers",
+ ":absl_base_dynamic_annotations",
+ ":absl_base_errno_saver",
+ ":absl_base_raw_logging_internal",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_debugging_demangle_internal") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/debugging/internal/demangle.cc",
+ "src/third_party/abseil-cpp/absl/debugging/internal/demangle.h",
+ ]
+ public_deps = [
+ ":absl_base_base",
+ ":absl_base_config",
+ ":absl_base_core_headers",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_debugging_examine_stack") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/debugging/internal/examine_stack.cc",
+ "src/third_party/abseil-cpp/absl/debugging/internal/examine_stack.h",
+ ]
+ public_deps = [
+ ":absl_base_config",
+ ":absl_base_core_headers",
+ ":absl_base_raw_logging_internal",
+ ":absl_debugging_stacktrace",
+ ":absl_debugging_symbolize",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_debugging_failure_signal_handler") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/debugging/failure_signal_handler.cc",
+ "src/third_party/abseil-cpp/absl/debugging/failure_signal_handler.h",
+ ]
+ public_deps = [
+ ":absl_base_base",
+ ":absl_base_config",
+ ":absl_base_core_headers",
+ ":absl_base_raw_logging_internal",
+ ":absl_debugging_examine_stack",
+ ":absl_debugging_stacktrace",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_debugging_leak_check") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/debugging/leak_check.cc",
+ "src/third_party/abseil-cpp/absl/debugging/leak_check.h",
+ ]
+ public_deps = [
+ ":absl_base_config",
+ ":absl_base_core_headers",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_debugging_stacktrace") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc",
+ "src/third_party/abseil-cpp/absl/debugging/internal/stacktrace_arm-inl.inc",
+ "src/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h",
+ "src/third_party/abseil-cpp/absl/debugging/internal/stacktrace_emscripten-inl.inc",
+ "src/third_party/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc",
+ "src/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc",
+ "src/third_party/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc",
+ "src/third_party/abseil-cpp/absl/debugging/internal/stacktrace_unimplemented-inl.inc",
+ "src/third_party/abseil-cpp/absl/debugging/internal/stacktrace_win32-inl.inc",
+ "src/third_party/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc",
+ "src/third_party/abseil-cpp/absl/debugging/stacktrace.cc",
+ "src/third_party/abseil-cpp/absl/debugging/stacktrace.h",
+ ]
+ public_deps = [
+ ":absl_base_config",
+ ":absl_base_core_headers",
+ ":absl_base_raw_logging_internal",
+ ":absl_debugging_debugging_internal",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_debugging_symbolize") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/debugging/internal/symbolize.h",
+ "src/third_party/abseil-cpp/absl/debugging/symbolize.cc",
+ "src/third_party/abseil-cpp/absl/debugging/symbolize.h",
+ "src/third_party/abseil-cpp/absl/debugging/symbolize_darwin.inc",
+ "src/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc",
+ "src/third_party/abseil-cpp/absl/debugging/symbolize_emscripten.inc",
+ "src/third_party/abseil-cpp/absl/debugging/symbolize_unimplemented.inc",
+ "src/third_party/abseil-cpp/absl/debugging/symbolize_win32.inc",
+ ]
+ public_deps = [
+ ":absl_base_base",
+ ":absl_base_config",
+ ":absl_base_core_headers",
+ ":absl_base_dynamic_annotations",
+ ":absl_base_malloc_internal",
+ ":absl_base_raw_logging_internal",
+ ":absl_debugging_debugging_internal",
+ ":absl_debugging_demangle_internal",
+ ":absl_strings_strings",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_flags_commandlineflag") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/flags/commandlineflag.cc",
+ "src/third_party/abseil-cpp/absl/flags/commandlineflag.h",
+ ]
+ public_deps = [
+ ":absl_base_config",
+ ":absl_base_fast_type_id",
+ ":absl_flags_commandlineflag_internal",
+ ":absl_strings_strings",
+ ":absl_types_optional",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_flags_commandlineflag_internal") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/flags/internal/commandlineflag.cc",
+ "src/third_party/abseil-cpp/absl/flags/internal/commandlineflag.h",
+ ]
+ public_deps = [
+ ":absl_base_config",
+ ":absl_base_fast_type_id",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_flags_config") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/flags/config.h",
+ "src/third_party/abseil-cpp/absl/flags/usage_config.cc",
+ "src/third_party/abseil-cpp/absl/flags/usage_config.h",
+ ]
+ public_deps = [
+ ":absl_base_config",
+ ":absl_base_core_headers",
+ ":absl_flags_path_util",
+ ":absl_flags_program_name",
+ ":absl_strings_strings",
+ ":absl_synchronization_synchronization",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_flags_flag") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/flags/declare.h",
+ "src/third_party/abseil-cpp/absl/flags/flag.cc",
+ "src/third_party/abseil-cpp/absl/flags/flag.h",
+ "src/third_party/abseil-cpp/absl/flags/internal/flag_msvc.inc",
+ ]
+ public_deps = [
+ ":absl_base_base",
+ ":absl_base_config",
+ ":absl_base_core_headers",
+ ":absl_flags_config",
+ ":absl_flags_flag_internal",
+ ":absl_flags_reflection",
+ ":absl_strings_strings",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_flags_flag_internal") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/flags/internal/flag.cc",
+ "src/third_party/abseil-cpp/absl/flags/internal/flag.h",
+ "src/third_party/abseil-cpp/absl/flags/internal/sequence_lock.h",
+ ]
+ public_deps = [
+ ":absl_base_base",
+ ":absl_base_config",
+ ":absl_base_core_headers",
+ ":absl_base_dynamic_annotations",
+ ":absl_flags_commandlineflag",
+ ":absl_flags_commandlineflag_internal",
+ ":absl_flags_config",
+ ":absl_flags_marshalling",
+ ":absl_flags_reflection",
+ ":absl_memory_memory",
+ ":absl_meta_type_traits",
+ ":absl_strings_strings",
+ ":absl_synchronization_synchronization",
+ ":absl_utility_utility",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_flags_marshalling") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/flags/marshalling.cc",
+ "src/third_party/abseil-cpp/absl/flags/marshalling.h",
+ ]
+ public_deps = [
+ ":absl_base_config",
+ ":absl_base_core_headers",
+ ":absl_base_log_severity",
+ ":absl_strings_str_format",
+ ":absl_strings_strings",
+ ":absl_types_optional",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_flags_parse") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/flags/internal/parse.h",
+ "src/third_party/abseil-cpp/absl/flags/parse.cc",
+ "src/third_party/abseil-cpp/absl/flags/parse.h",
+ ]
+ public_deps = [
+ ":absl_algorithm_container",
+ ":absl_base_config",
+ ":absl_base_core_headers",
+ ":absl_flags_commandlineflag",
+ ":absl_flags_commandlineflag_internal",
+ ":absl_flags_config",
+ ":absl_flags_flag",
+ ":absl_flags_flag_internal",
+ ":absl_flags_private_handle_accessor",
+ ":absl_flags_program_name",
+ ":absl_flags_reflection",
+ ":absl_flags_usage",
+ ":absl_flags_usage_internal",
+ ":absl_strings_strings",
+ ":absl_synchronization_synchronization",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_flags_path_util") {
+ sources = [ "src/third_party/abseil-cpp/absl/flags/internal/path_util.h" ]
+ public_deps = [
+ ":absl_base_config",
+ ":absl_strings_strings",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_flags_private_handle_accessor") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/flags/internal/private_handle_accessor.cc",
+ "src/third_party/abseil-cpp/absl/flags/internal/private_handle_accessor.h",
+ ]
+ public_deps = [
+ ":absl_base_config",
+ ":absl_flags_commandlineflag",
+ ":absl_flags_commandlineflag_internal",
+ ":absl_strings_strings",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_flags_program_name") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/flags/internal/program_name.cc",
+ "src/third_party/abseil-cpp/absl/flags/internal/program_name.h",
+ ]
+ public_deps = [
+ ":absl_base_config",
+ ":absl_base_core_headers",
+ ":absl_flags_path_util",
+ ":absl_strings_strings",
+ ":absl_synchronization_synchronization",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_flags_reflection") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/flags/internal/registry.h",
+ "src/third_party/abseil-cpp/absl/flags/reflection.cc",
+ "src/third_party/abseil-cpp/absl/flags/reflection.h",
+ ]
+ public_deps = [
+ ":absl_base_config",
+ ":absl_base_core_headers",
+ ":absl_container_flat_hash_map",
+ ":absl_flags_commandlineflag",
+ ":absl_flags_commandlineflag_internal",
+ ":absl_flags_config",
+ ":absl_flags_private_handle_accessor",
+ ":absl_strings_strings",
+ ":absl_synchronization_synchronization",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_flags_usage") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/flags/usage.cc",
+ "src/third_party/abseil-cpp/absl/flags/usage.h",
+ ]
+ public_deps = [
+ ":absl_base_config",
+ ":absl_base_core_headers",
+ ":absl_flags_usage_internal",
+ ":absl_strings_strings",
+ ":absl_synchronization_synchronization",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_flags_usage_internal") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/flags/internal/usage.cc",
+ "src/third_party/abseil-cpp/absl/flags/internal/usage.h",
+ ]
+ public_deps = [
+ ":absl_base_config",
+ ":absl_base_core_headers",
+ ":absl_container_flat_hash_map",
+ ":absl_flags_commandlineflag",
+ ":absl_flags_config",
+ ":absl_flags_flag",
+ ":absl_flags_flag_internal",
+ ":absl_flags_path_util",
+ ":absl_flags_private_handle_accessor",
+ ":absl_flags_program_name",
+ ":absl_flags_reflection",
+ ":absl_strings_strings",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_functional_any_invocable") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/functional/any_invocable.h",
+ "src/third_party/abseil-cpp/absl/functional/internal/any_invocable.h",
+ ]
+ public_deps = [
+ ":absl_base_base_internal",
+ ":absl_base_config",
+ ":absl_base_core_headers",
+ ":absl_meta_type_traits",
+ ":absl_utility_utility",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_functional_bind_front") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/functional/bind_front.h",
+ "src/third_party/abseil-cpp/absl/functional/internal/front_binder.h",
+ ]
+ public_deps = [
+ ":absl_base_base_internal",
+ ":absl_container_compressed_tuple",
+ ":absl_meta_type_traits",
+ ":absl_utility_utility",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_functional_function_ref") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/functional/function_ref.h",
+ "src/third_party/abseil-cpp/absl/functional/internal/function_ref.h",
+ ]
+ public_deps = [
+ ":absl_base_base_internal",
+ ":absl_base_core_headers",
+ ":absl_meta_type_traits",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_hash_city") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/hash/internal/city.cc",
+ "src/third_party/abseil-cpp/absl/hash/internal/city.h",
+ ]
+ public_deps = [
+ ":absl_base_config",
+ ":absl_base_core_headers",
+ ":absl_base_endian",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_hash_hash") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/hash/hash.h",
+ "src/third_party/abseil-cpp/absl/hash/internal/hash.cc",
+ "src/third_party/abseil-cpp/absl/hash/internal/hash.h",
+ ]
+ public_deps = [
+ ":absl_base_config",
+ ":absl_base_core_headers",
+ ":absl_base_endian",
+ ":absl_container_fixed_array",
+ ":absl_functional_function_ref",
+ ":absl_hash_city",
+ ":absl_hash_low_level_hash",
+ ":absl_meta_type_traits",
+ ":absl_numeric_bits",
+ ":absl_numeric_int128",
+ ":absl_strings_strings",
+ ":absl_types_optional",
+ ":absl_types_variant",
+ ":absl_utility_utility",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_hash_low_level_hash") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/hash/internal/low_level_hash.cc",
+ "src/third_party/abseil-cpp/absl/hash/internal/low_level_hash.h",
+ ]
+ public_deps = [
+ ":absl_base_config",
+ ":absl_base_endian",
+ ":absl_numeric_int128",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_log_internal_append_truncated") {
+ sources =
+ [ "src/third_party/abseil-cpp/absl/log/internal/append_truncated.h" ]
+ public_deps = [
+ ":absl_base_config",
+ ":absl_strings_strings",
+ ":absl_types_span",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_log_internal_check_impl") {
+ sources = [ "src/third_party/abseil-cpp/absl/log/internal/check_impl.h" ]
+ public_deps = [
+ ":absl_base_core_headers",
+ ":absl_log_internal_check_op",
+ ":absl_log_internal_conditions",
+ ":absl_log_internal_log_message",
+ ":absl_log_internal_strip",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_log_internal_check_op") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/log/internal/check_op.cc",
+ "src/third_party/abseil-cpp/absl/log/internal/check_op.h",
+ ]
+ public_deps = [
+ ":absl_base_config",
+ ":absl_base_core_headers",
+ ":absl_log_internal_nullguard",
+ ":absl_log_internal_nullstream",
+ ":absl_log_internal_strip",
+ ":absl_strings_strings",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_log_internal_conditions") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/log/internal/conditions.cc",
+ "src/third_party/abseil-cpp/absl/log/internal/conditions.h",
+ ]
+ public_deps = [
+ ":absl_base_base",
+ ":absl_base_config",
+ ":absl_base_core_headers",
+ ":absl_log_internal_voidify",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_log_internal_config") {
+ sources = [ "src/third_party/abseil-cpp/absl/log/internal/config.h" ]
+ public_deps = [
+ ":absl_base_config",
+ ":absl_base_core_headers",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_log_internal_flags") {
+ sources = [ "src/third_party/abseil-cpp/absl/log/internal/flags.h" ]
+ public_deps = [ ":absl_flags_flag" ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_log_internal_format") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/log/internal/log_format.cc",
+ "src/third_party/abseil-cpp/absl/log/internal/log_format.h",
+ ]
+ public_deps = [
+ ":absl_base_config",
+ ":absl_base_core_headers",
+ ":absl_base_log_severity",
+ ":absl_log_internal_append_truncated",
+ ":absl_log_internal_config",
+ ":absl_log_internal_globals",
+ ":absl_strings_str_format",
+ ":absl_strings_strings",
+ ":absl_time_time",
+ ":absl_types_span",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_log_internal_globals") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/log/internal/globals.cc",
+ "src/third_party/abseil-cpp/absl/log/internal/globals.h",
+ ]
+ public_deps = [
+ ":absl_base_config",
+ ":absl_base_core_headers",
+ ":absl_base_log_severity",
+ ":absl_base_raw_logging_internal",
+ ":absl_strings_strings",
+ ":absl_time_time",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_log_internal_log_impl") {
+ sources = [ "src/third_party/abseil-cpp/absl/log/internal/log_impl.h" ]
+ public_deps = [
+ ":absl_log_internal_conditions",
+ ":absl_log_internal_log_message",
+ ":absl_log_internal_strip",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_log_internal_log_message") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/log/internal/log_message.cc",
+ "src/third_party/abseil-cpp/absl/log/internal/log_message.h",
+ ]
+ public_deps = [
+ ":absl_base_base",
+ ":absl_base_config",
+ ":absl_base_core_headers",
+ ":absl_base_errno_saver",
+ ":absl_base_log_severity",
+ ":absl_base_raw_logging_internal",
+ ":absl_base_strerror",
+ ":absl_container_inlined_vector",
+ ":absl_debugging_examine_stack",
+ ":absl_log_globals",
+ ":absl_log_internal_append_truncated",
+ ":absl_log_internal_format",
+ ":absl_log_internal_globals",
+ ":absl_log_internal_log_sink_set",
+ ":absl_log_internal_nullguard",
+ ":absl_log_internal_proto",
+ ":absl_log_log_entry",
+ ":absl_log_log_sink",
+ ":absl_log_log_sink_registry",
+ ":absl_memory_memory",
+ ":absl_strings_strings",
+ ":absl_time_time",
+ ":absl_types_span",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_log_internal_log_sink_set") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/log/internal/log_sink_set.cc",
+ "src/third_party/abseil-cpp/absl/log/internal/log_sink_set.h",
+ ]
+ public_deps = [
+ ":absl_base_base",
+ ":absl_base_config",
+ ":absl_base_core_headers",
+ ":absl_base_log_severity",
+ ":absl_base_raw_logging_internal",
+ ":absl_cleanup_cleanup",
+ ":absl_log_globals",
+ ":absl_log_internal_config",
+ ":absl_log_internal_globals",
+ ":absl_log_log_entry",
+ ":absl_log_log_sink",
+ ":absl_strings_strings",
+ ":absl_synchronization_synchronization",
+ ":absl_types_span",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_log_internal_nullguard") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/log/internal/nullguard.cc",
+ "src/third_party/abseil-cpp/absl/log/internal/nullguard.h",
+ ]
+ public_deps = [
+ ":absl_base_config",
+ ":absl_base_core_headers",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_log_internal_nullstream") {
+ sources = [ "src/third_party/abseil-cpp/absl/log/internal/nullstream.h" ]
+ public_deps = [
+ ":absl_base_config",
+ ":absl_base_core_headers",
+ ":absl_base_log_severity",
+ ":absl_strings_strings",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_log_internal_proto") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/log/internal/proto.cc",
+ "src/third_party/abseil-cpp/absl/log/internal/proto.h",
+ ]
+ public_deps = [
+ ":absl_base_base",
+ ":absl_base_config",
+ ":absl_base_core_headers",
+ ":absl_strings_strings",
+ ":absl_types_span",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_log_internal_strip") {
+ sources = [ "src/third_party/abseil-cpp/absl/log/internal/strip.h" ]
+ public_deps = [
+ ":absl_base_log_severity",
+ ":absl_log_internal_log_message",
+ ":absl_log_internal_nullstream",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_log_internal_structured") {
+ sources = [ "src/third_party/abseil-cpp/absl/log/internal/structured.h" ]
+ public_deps = [
+ ":absl_base_config",
+ ":absl_log_internal_log_message",
+ ":absl_strings_strings",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_log_internal_voidify") {
+ sources = [ "src/third_party/abseil-cpp/absl/log/internal/voidify.h" ]
+ public_deps = [ ":absl_base_config" ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_log_absl_check") {
+ sources = [ "src/third_party/abseil-cpp/absl/log/absl_check.h" ]
+ public_deps = [ ":absl_log_internal_check_impl" ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_log_absl_log") {
+ sources = [ "src/third_party/abseil-cpp/absl/log/absl_log.h" ]
+ public_deps = [ ":absl_log_internal_log_impl" ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_log_check") {
+ sources = [ "src/third_party/abseil-cpp/absl/log/check.h" ]
+ public_deps = [
+ ":absl_log_internal_check_impl",
+ ":absl_log_internal_check_op",
+ ":absl_log_internal_conditions",
+ ":absl_log_internal_log_message",
+ ":absl_log_internal_strip",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_log_die_if_null") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/log/die_if_null.cc",
+ "src/third_party/abseil-cpp/absl/log/die_if_null.h",
+ ]
+ public_deps = [
+ ":absl_base_config",
+ ":absl_base_core_headers",
+ ":absl_log_log",
+ ":absl_strings_strings",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_log_flags") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/log/flags.cc",
+ "src/third_party/abseil-cpp/absl/log/flags.h",
+ ]
+ public_deps = [
+ ":absl_base_config",
+ ":absl_base_core_headers",
+ ":absl_base_log_severity",
+ ":absl_flags_flag",
+ ":absl_flags_marshalling",
+ ":absl_log_globals",
+ ":absl_log_internal_config",
+ ":absl_log_internal_flags",
+ ":absl_strings_strings",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_log_globals") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/log/globals.cc",
+ "src/third_party/abseil-cpp/absl/log/globals.h",
+ ]
+ public_deps = [
+ ":absl_base_atomic_hook",
+ ":absl_base_config",
+ ":absl_base_core_headers",
+ ":absl_base_log_severity",
+ ":absl_hash_hash",
+ ":absl_strings_strings",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_log_initialize") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/log/initialize.cc",
+ "src/third_party/abseil-cpp/absl/log/initialize.h",
+ ]
+ public_deps = [
+ ":absl_base_config",
+ ":absl_log_globals",
+ ":absl_log_internal_globals",
+ ":absl_time_time",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_log_log") {
+ sources = [ "src/third_party/abseil-cpp/absl/log/log.h" ]
+ public_deps = [ ":absl_log_internal_log_impl" ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_log_log_entry") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/log/log_entry.cc",
+ "src/third_party/abseil-cpp/absl/log/log_entry.h",
+ ]
+ public_deps = [
+ ":absl_base_config",
+ ":absl_base_core_headers",
+ ":absl_base_log_severity",
+ ":absl_log_internal_config",
+ ":absl_strings_strings",
+ ":absl_time_time",
+ ":absl_types_span",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_log_log_sink") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/log/log_sink.cc",
+ "src/third_party/abseil-cpp/absl/log/log_sink.h",
+ ]
+ public_deps = [
+ ":absl_base_config",
+ ":absl_log_log_entry",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_log_log_sink_registry") {
+ sources = [ "src/third_party/abseil-cpp/absl/log/log_sink_registry.h" ]
+ public_deps = [
+ ":absl_base_config",
+ ":absl_log_internal_log_sink_set",
+ ":absl_log_log_sink",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_log_log_streamer") {
+ sources = [ "src/third_party/abseil-cpp/absl/log/log_streamer.h" ]
+ public_deps = [
+ ":absl_base_config",
+ ":absl_base_log_severity",
+ ":absl_log_absl_log",
+ ":absl_strings_internal",
+ ":absl_strings_strings",
+ ":absl_types_optional",
+ ":absl_utility_utility",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_log_structured") {
+ sources = [ "src/third_party/abseil-cpp/absl/log/structured.h" ]
+ public_deps = [
+ ":absl_base_config",
+ ":absl_log_internal_structured",
+ ":absl_strings_strings",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_memory_memory") {
+ sources = [ "src/third_party/abseil-cpp/absl/memory/memory.h" ]
+ public_deps = [
+ ":absl_base_core_headers",
+ ":absl_meta_type_traits",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_meta_type_traits") {
+ sources = [ "src/third_party/abseil-cpp/absl/meta/type_traits.h" ]
+ public_deps = [ ":absl_base_config" ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_numeric_bits") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/numeric/bits.h",
+ "src/third_party/abseil-cpp/absl/numeric/internal/bits.h",
+ ]
+ public_deps = [
+ ":absl_base_config",
+ ":absl_base_core_headers",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_numeric_int128") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/numeric/int128.cc",
+ "src/third_party/abseil-cpp/absl/numeric/int128.h",
+ "src/third_party/abseil-cpp/absl/numeric/int128_have_intrinsic.inc",
+ "src/third_party/abseil-cpp/absl/numeric/int128_no_intrinsic.inc",
+ ]
+ public_deps = [
+ ":absl_base_config",
+ ":absl_base_core_headers",
+ ":absl_numeric_bits",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_numeric_representation") {
+ sources =
+ [ "src/third_party/abseil-cpp/absl/numeric/internal/representation.h" ]
+ public_deps = [ ":absl_base_config" ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_profiling_exponential_biased") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/profiling/internal/exponential_biased.cc",
+ "src/third_party/abseil-cpp/absl/profiling/internal/exponential_biased.h",
+ ]
+ public_deps = [
+ ":absl_base_config",
+ ":absl_base_core_headers",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_profiling_periodic_sampler") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/profiling/internal/periodic_sampler.cc",
+ "src/third_party/abseil-cpp/absl/profiling/internal/periodic_sampler.h",
+ ]
+ public_deps = [
+ ":absl_base_core_headers",
+ ":absl_profiling_exponential_biased",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_profiling_sample_recorder") {
+ sources =
+ [ "src/third_party/abseil-cpp/absl/profiling/internal/sample_recorder.h" ]
+ public_deps = [
+ ":absl_base_config",
+ ":absl_base_core_headers",
+ ":absl_synchronization_synchronization",
+ ":absl_time_time",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_random_internal_distribution_caller") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/random/internal/distribution_caller.h",
+ ]
+ public_deps = [
+ ":absl_base_config",
+ ":absl_base_fast_type_id",
+ ":absl_utility_utility",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_random_internal_fast_uniform_bits") {
+ sources =
+ [ "src/third_party/abseil-cpp/absl/random/internal/fast_uniform_bits.h" ]
+ public_deps = [
+ ":absl_base_config",
+ ":absl_meta_type_traits",
+ ":absl_random_internal_traits",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_random_internal_fastmath") {
+ sources = [ "src/third_party/abseil-cpp/absl/random/internal/fastmath.h" ]
+ public_deps = [ ":absl_numeric_bits" ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_random_internal_generate_real") {
+ sources =
+ [ "src/third_party/abseil-cpp/absl/random/internal/generate_real.h" ]
+ public_deps = [
+ ":absl_meta_type_traits",
+ ":absl_numeric_bits",
+ ":absl_random_internal_fastmath",
+ ":absl_random_internal_traits",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_random_internal_iostream_state_saver") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/random/internal/iostream_state_saver.h",
+ ]
+ public_deps = [
+ ":absl_meta_type_traits",
+ ":absl_numeric_int128",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_random_internal_mock_helpers") {
+ sources = [ "src/third_party/abseil-cpp/absl/random/internal/mock_helpers.h" ]
+ public_deps = [
+ ":absl_base_fast_type_id",
+ ":absl_types_optional",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_random_internal_nanobenchmark") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/random/internal/nanobenchmark.cc",
+ "src/third_party/abseil-cpp/absl/random/internal/nanobenchmark.h",
+ ]
+ public_deps = [
+ ":absl_base_config",
+ ":absl_base_core_headers",
+ ":absl_base_raw_logging_internal",
+ ":absl_random_internal_platform",
+ ":absl_random_internal_randen_engine",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_random_internal_nonsecure_base") {
+ sources =
+ [ "src/third_party/abseil-cpp/absl/random/internal/nonsecure_base.h" ]
+ public_deps = [
+ ":absl_base_core_headers",
+ ":absl_container_inlined_vector",
+ ":absl_meta_type_traits",
+ ":absl_random_internal_pool_urbg",
+ ":absl_random_internal_salted_seed_seq",
+ ":absl_random_internal_seed_material",
+ ":absl_types_span",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_random_internal_pcg_engine") {
+ sources = [ "src/third_party/abseil-cpp/absl/random/internal/pcg_engine.h" ]
+ public_deps = [
+ ":absl_base_config",
+ ":absl_meta_type_traits",
+ ":absl_numeric_bits",
+ ":absl_numeric_int128",
+ ":absl_random_internal_fastmath",
+ ":absl_random_internal_iostream_state_saver",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_random_internal_platform") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/random/internal/platform.h",
+ "src/third_party/abseil-cpp/absl/random/internal/randen_round_keys.cc",
+ "src/third_party/abseil-cpp/absl/random/internal/randen_traits.h",
+ ]
+ public_deps = [ ":absl_base_config" ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_random_internal_pool_urbg") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/random/internal/pool_urbg.cc",
+ "src/third_party/abseil-cpp/absl/random/internal/pool_urbg.h",
+ ]
+ public_deps = [
+ ":absl_base_base",
+ ":absl_base_config",
+ ":absl_base_core_headers",
+ ":absl_base_endian",
+ ":absl_base_raw_logging_internal",
+ ":absl_random_internal_randen",
+ ":absl_random_internal_seed_material",
+ ":absl_random_internal_traits",
+ ":absl_random_seed_gen_exception",
+ ":absl_types_span",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_random_internal_randen") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/random/internal/randen.cc",
+ "src/third_party/abseil-cpp/absl/random/internal/randen.h",
+ ]
+ public_deps = [
+ ":absl_base_raw_logging_internal",
+ ":absl_random_internal_platform",
+ ":absl_random_internal_randen_hwaes",
+ ":absl_random_internal_randen_slow",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_random_internal_randen_engine") {
+ sources =
+ [ "src/third_party/abseil-cpp/absl/random/internal/randen_engine.h" ]
+ public_deps = [
+ ":absl_base_endian",
+ ":absl_meta_type_traits",
+ ":absl_random_internal_iostream_state_saver",
+ ":absl_random_internal_randen",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_random_internal_randen_hwaes") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/random/internal/randen_detect.cc",
+ "src/third_party/abseil-cpp/absl/random/internal/randen_detect.h",
+ "src/third_party/abseil-cpp/absl/random/internal/randen_hwaes.h",
+ ]
+ public_deps = [
+ ":absl_base_config",
+ ":absl_random_internal_platform",
+ ":absl_random_internal_randen_hwaes_impl",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_random_internal_randen_hwaes_impl") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/random/internal/randen_hwaes.cc",
+ "src/third_party/abseil-cpp/absl/random/internal/randen_hwaes.h",
+ ]
+ public_deps = [
+ ":absl_base_config",
+ ":absl_base_core_headers",
+ ":absl_numeric_int128",
+ ":absl_random_internal_platform",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_random_internal_randen_slow") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/random/internal/randen_slow.cc",
+ "src/third_party/abseil-cpp/absl/random/internal/randen_slow.h",
+ ]
+ public_deps = [
+ ":absl_base_config",
+ ":absl_base_core_headers",
+ ":absl_base_endian",
+ ":absl_numeric_int128",
+ ":absl_random_internal_platform",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_random_internal_salted_seed_seq") {
+ sources =
+ [ "src/third_party/abseil-cpp/absl/random/internal/salted_seed_seq.h" ]
+ public_deps = [
+ ":absl_container_inlined_vector",
+ ":absl_meta_type_traits",
+ ":absl_random_internal_seed_material",
+ ":absl_types_optional",
+ ":absl_types_span",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_random_internal_seed_material") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/random/internal/seed_material.cc",
+ "src/third_party/abseil-cpp/absl/random/internal/seed_material.h",
+ ]
+ public_deps = [
+ ":absl_base_core_headers",
+ ":absl_base_dynamic_annotations",
+ ":absl_base_raw_logging_internal",
+ ":absl_random_internal_fast_uniform_bits",
+ ":absl_strings_strings",
+ ":absl_types_optional",
+ ":absl_types_span",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_random_internal_traits") {
+ sources = [ "src/third_party/abseil-cpp/absl/random/internal/traits.h" ]
+ public_deps = [
+ ":absl_base_config",
+ ":absl_numeric_bits",
+ ":absl_numeric_int128",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_random_internal_uniform_helper") {
+ sources =
+ [ "src/third_party/abseil-cpp/absl/random/internal/uniform_helper.h" ]
+ public_deps = [
+ ":absl_base_config",
+ ":absl_meta_type_traits",
+ ":absl_numeric_int128",
+ ":absl_random_internal_traits",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_random_internal_wide_multiply") {
+ sources =
+ [ "src/third_party/abseil-cpp/absl/random/internal/wide_multiply.h" ]
+ public_deps = [
+ ":absl_base_config",
+ ":absl_numeric_bits",
+ ":absl_numeric_int128",
+ ":absl_random_internal_traits",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_random_bit_gen_ref") {
+ sources = [ "src/third_party/abseil-cpp/absl/random/bit_gen_ref.h" ]
+ public_deps = [
+ ":absl_base_core_headers",
+ ":absl_base_fast_type_id",
+ ":absl_meta_type_traits",
+ ":absl_random_internal_distribution_caller",
+ ":absl_random_internal_fast_uniform_bits",
+ ":absl_random_random",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_random_distributions") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/random/bernoulli_distribution.h",
+ "src/third_party/abseil-cpp/absl/random/beta_distribution.h",
+ "src/third_party/abseil-cpp/absl/random/discrete_distribution.cc",
+ "src/third_party/abseil-cpp/absl/random/discrete_distribution.h",
+ "src/third_party/abseil-cpp/absl/random/distributions.h",
+ "src/third_party/abseil-cpp/absl/random/exponential_distribution.h",
+ "src/third_party/abseil-cpp/absl/random/gaussian_distribution.cc",
+ "src/third_party/abseil-cpp/absl/random/gaussian_distribution.h",
+ "src/third_party/abseil-cpp/absl/random/log_uniform_int_distribution.h",
+ "src/third_party/abseil-cpp/absl/random/poisson_distribution.h",
+ "src/third_party/abseil-cpp/absl/random/uniform_int_distribution.h",
+ "src/third_party/abseil-cpp/absl/random/uniform_real_distribution.h",
+ "src/third_party/abseil-cpp/absl/random/zipf_distribution.h",
+ ]
+ public_deps = [
+ ":absl_base_base_internal",
+ ":absl_base_config",
+ ":absl_base_core_headers",
+ ":absl_meta_type_traits",
+ ":absl_numeric_bits",
+ ":absl_random_internal_distribution_caller",
+ ":absl_random_internal_fast_uniform_bits",
+ ":absl_random_internal_fastmath",
+ ":absl_random_internal_generate_real",
+ ":absl_random_internal_iostream_state_saver",
+ ":absl_random_internal_traits",
+ ":absl_random_internal_uniform_helper",
+ ":absl_random_internal_wide_multiply",
+ ":absl_strings_strings",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_random_random") {
+ sources = [ "src/third_party/abseil-cpp/absl/random/random.h" ]
+ public_deps = [
+ ":absl_random_distributions",
+ ":absl_random_internal_nonsecure_base",
+ ":absl_random_internal_pcg_engine",
+ ":absl_random_internal_pool_urbg",
+ ":absl_random_internal_randen_engine",
+ ":absl_random_seed_sequences",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_random_seed_gen_exception") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/random/seed_gen_exception.cc",
+ "src/third_party/abseil-cpp/absl/random/seed_gen_exception.h",
+ ]
+ public_deps = [ ":absl_base_config" ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_random_seed_sequences") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/random/seed_sequences.cc",
+ "src/third_party/abseil-cpp/absl/random/seed_sequences.h",
+ ]
+ public_deps = [
+ ":absl_base_config",
+ ":absl_random_internal_pool_urbg",
+ ":absl_random_internal_salted_seed_seq",
+ ":absl_random_internal_seed_material",
+ ":absl_random_seed_gen_exception",
+ ":absl_types_span",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_status_status") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/status/internal/status_internal.h",
+ "src/third_party/abseil-cpp/absl/status/status.cc",
+ "src/third_party/abseil-cpp/absl/status/status.h",
+ "src/third_party/abseil-cpp/absl/status/status_payload_printer.cc",
+ "src/third_party/abseil-cpp/absl/status/status_payload_printer.h",
+ ]
+ public_deps = [
+ ":absl_base_atomic_hook",
+ ":absl_base_core_headers",
+ ":absl_base_raw_logging_internal",
+ ":absl_base_strerror",
+ ":absl_container_inlined_vector",
+ ":absl_debugging_stacktrace",
+ ":absl_debugging_symbolize",
+ ":absl_functional_function_ref",
+ ":absl_strings_cord",
+ ":absl_strings_str_format",
+ ":absl_strings_strings",
+ ":absl_types_optional",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_status_statusor") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/status/internal/statusor_internal.h",
+ "src/third_party/abseil-cpp/absl/status/statusor.cc",
+ "src/third_party/abseil-cpp/absl/status/statusor.h",
+ ]
+ public_deps = [
+ ":absl_base_base",
+ ":absl_base_core_headers",
+ ":absl_base_raw_logging_internal",
+ ":absl_meta_type_traits",
+ ":absl_status_status",
+ ":absl_strings_strings",
+ ":absl_types_variant",
+ ":absl_utility_utility",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_strings_cord") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/strings/cord.cc",
+ "src/third_party/abseil-cpp/absl/strings/cord.h",
+ "src/third_party/abseil-cpp/absl/strings/cord_analysis.cc",
+ "src/third_party/abseil-cpp/absl/strings/cord_analysis.h",
+ "src/third_party/abseil-cpp/absl/strings/cord_buffer.cc",
+ "src/third_party/abseil-cpp/absl/strings/cord_buffer.h",
+ ]
+ public_deps = [
+ ":absl_base_base",
+ ":absl_base_config",
+ ":absl_base_core_headers",
+ ":absl_base_endian",
+ ":absl_base_raw_logging_internal",
+ ":absl_container_fixed_array",
+ ":absl_container_inlined_vector",
+ ":absl_crc_crc_cord_state",
+ ":absl_functional_function_ref",
+ ":absl_meta_type_traits",
+ ":absl_numeric_bits",
+ ":absl_strings_cord_internal",
+ ":absl_strings_cordz_functions",
+ ":absl_strings_cordz_info",
+ ":absl_strings_cordz_statistics",
+ ":absl_strings_cordz_update_scope",
+ ":absl_strings_cordz_update_tracker",
+ ":absl_strings_internal",
+ ":absl_strings_str_format",
+ ":absl_strings_strings",
+ ":absl_types_optional",
+ ":absl_types_span",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_strings_cord_internal") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/strings/internal/cord_data_edge.h",
+ "src/third_party/abseil-cpp/absl/strings/internal/cord_internal.cc",
+ "src/third_party/abseil-cpp/absl/strings/internal/cord_internal.h",
+ "src/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.cc",
+ "src/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.h",
+ "src/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.cc",
+ "src/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.h",
+ "src/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.cc",
+ "src/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.h",
+ "src/third_party/abseil-cpp/absl/strings/internal/cord_rep_consume.cc",
+ "src/third_party/abseil-cpp/absl/strings/internal/cord_rep_consume.h",
+ "src/third_party/abseil-cpp/absl/strings/internal/cord_rep_crc.cc",
+ "src/third_party/abseil-cpp/absl/strings/internal/cord_rep_crc.h",
+ "src/third_party/abseil-cpp/absl/strings/internal/cord_rep_flat.h",
+ "src/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.cc",
+ "src/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.h",
+ "src/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring_reader.h",
+ ]
+ public_deps = [
+ ":absl_base_base_internal",
+ ":absl_base_config",
+ ":absl_base_core_headers",
+ ":absl_base_endian",
+ ":absl_base_raw_logging_internal",
+ ":absl_base_throw_delegate",
+ ":absl_container_compressed_tuple",
+ ":absl_container_container_memory",
+ ":absl_container_inlined_vector",
+ ":absl_container_layout",
+ ":absl_crc_crc_cord_state",
+ ":absl_functional_function_ref",
+ ":absl_meta_type_traits",
+ ":absl_strings_strings",
+ ":absl_types_span",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_strings_cordz_functions") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/strings/internal/cordz_functions.cc",
+ "src/third_party/abseil-cpp/absl/strings/internal/cordz_functions.h",
+ ]
+ public_deps = [
+ ":absl_base_config",
+ ":absl_base_core_headers",
+ ":absl_base_raw_logging_internal",
+ ":absl_profiling_exponential_biased",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_strings_cordz_handle") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/strings/internal/cordz_handle.cc",
+ "src/third_party/abseil-cpp/absl/strings/internal/cordz_handle.h",
+ ]
+ public_deps = [
+ ":absl_base_base",
+ ":absl_base_config",
+ ":absl_base_raw_logging_internal",
+ ":absl_synchronization_synchronization",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_strings_cordz_info") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/strings/internal/cordz_info.cc",
+ "src/third_party/abseil-cpp/absl/strings/internal/cordz_info.h",
+ ]
+ public_deps = [
+ ":absl_base_base",
+ ":absl_base_config",
+ ":absl_base_core_headers",
+ ":absl_base_raw_logging_internal",
+ ":absl_container_inlined_vector",
+ ":absl_debugging_stacktrace",
+ ":absl_strings_cord_internal",
+ ":absl_strings_cordz_functions",
+ ":absl_strings_cordz_handle",
+ ":absl_strings_cordz_statistics",
+ ":absl_strings_cordz_update_tracker",
+ ":absl_synchronization_synchronization",
+ ":absl_types_span",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_strings_cordz_sample_token") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/strings/internal/cordz_sample_token.cc",
+ "src/third_party/abseil-cpp/absl/strings/internal/cordz_sample_token.h",
+ ]
+ public_deps = [
+ ":absl_base_config",
+ ":absl_strings_cordz_handle",
+ ":absl_strings_cordz_info",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_strings_cordz_statistics") {
+ sources =
+ [ "src/third_party/abseil-cpp/absl/strings/internal/cordz_statistics.h" ]
+ public_deps = [
+ ":absl_base_config",
+ ":absl_strings_cordz_update_tracker",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_strings_cordz_update_scope") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/strings/internal/cordz_update_scope.h",
+ ]
+ public_deps = [
+ ":absl_base_config",
+ ":absl_base_core_headers",
+ ":absl_strings_cord_internal",
+ ":absl_strings_cordz_info",
+ ":absl_strings_cordz_update_tracker",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_strings_cordz_update_tracker") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/strings/internal/cordz_update_tracker.h",
+ ]
+ public_deps = [ ":absl_base_config" ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_strings_internal") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/strings/internal/char_map.h",
+ "src/third_party/abseil-cpp/absl/strings/internal/escaping.cc",
+ "src/third_party/abseil-cpp/absl/strings/internal/escaping.h",
+ "src/third_party/abseil-cpp/absl/strings/internal/ostringstream.cc",
+ "src/third_party/abseil-cpp/absl/strings/internal/ostringstream.h",
+ "src/third_party/abseil-cpp/absl/strings/internal/resize_uninitialized.h",
+ "src/third_party/abseil-cpp/absl/strings/internal/utf8.cc",
+ "src/third_party/abseil-cpp/absl/strings/internal/utf8.h",
+ ]
+ public_deps = [
+ ":absl_base_config",
+ ":absl_base_core_headers",
+ ":absl_base_endian",
+ ":absl_base_raw_logging_internal",
+ ":absl_meta_type_traits",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_strings_str_format") {
+ sources = [ "src/third_party/abseil-cpp/absl/strings/str_format.h" ]
+ public_deps = [ ":absl_strings_str_format_internal" ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_strings_str_format_internal") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc",
+ "src/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h",
+ "src/third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc",
+ "src/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h",
+ "src/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h",
+ "src/third_party/abseil-cpp/absl/strings/internal/str_format/constexpr_parser.h",
+ "src/third_party/abseil-cpp/absl/strings/internal/str_format/extension.cc",
+ "src/third_party/abseil-cpp/absl/strings/internal/str_format/extension.h",
+ "src/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc",
+ "src/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.h",
+ "src/third_party/abseil-cpp/absl/strings/internal/str_format/output.cc",
+ "src/third_party/abseil-cpp/absl/strings/internal/str_format/output.h",
+ "src/third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc",
+ "src/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h",
+ ]
+ public_deps = [
+ ":absl_base_config",
+ ":absl_base_core_headers",
+ ":absl_functional_function_ref",
+ ":absl_meta_type_traits",
+ ":absl_numeric_bits",
+ ":absl_numeric_int128",
+ ":absl_numeric_representation",
+ ":absl_strings_strings",
+ ":absl_types_optional",
+ ":absl_types_span",
+ ":absl_utility_utility",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_strings_strings") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/strings/ascii.cc",
+ "src/third_party/abseil-cpp/absl/strings/ascii.h",
+ "src/third_party/abseil-cpp/absl/strings/charconv.cc",
+ "src/third_party/abseil-cpp/absl/strings/charconv.h",
+ "src/third_party/abseil-cpp/absl/strings/escaping.cc",
+ "src/third_party/abseil-cpp/absl/strings/escaping.h",
+ "src/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.cc",
+ "src/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.h",
+ "src/third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc",
+ "src/third_party/abseil-cpp/absl/strings/internal/charconv_parse.h",
+ "src/third_party/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance.cc",
+ "src/third_party/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance.h",
+ "src/third_party/abseil-cpp/absl/strings/internal/has_absl_stringify.h",
+ "src/third_party/abseil-cpp/absl/strings/internal/memutil.cc",
+ "src/third_party/abseil-cpp/absl/strings/internal/memutil.h",
+ "src/third_party/abseil-cpp/absl/strings/internal/stl_type_traits.h",
+ "src/third_party/abseil-cpp/absl/strings/internal/str_join_internal.h",
+ "src/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h",
+ "src/third_party/abseil-cpp/absl/strings/internal/string_constant.h",
+ "src/third_party/abseil-cpp/absl/strings/internal/stringify_sink.cc",
+ "src/third_party/abseil-cpp/absl/strings/internal/stringify_sink.h",
+ "src/third_party/abseil-cpp/absl/strings/match.cc",
+ "src/third_party/abseil-cpp/absl/strings/match.h",
+ "src/third_party/abseil-cpp/absl/strings/numbers.cc",
+ "src/third_party/abseil-cpp/absl/strings/numbers.h",
+ "src/third_party/abseil-cpp/absl/strings/str_cat.cc",
+ "src/third_party/abseil-cpp/absl/strings/str_cat.h",
+ "src/third_party/abseil-cpp/absl/strings/str_join.h",
+ "src/third_party/abseil-cpp/absl/strings/str_replace.cc",
+ "src/third_party/abseil-cpp/absl/strings/str_replace.h",
+ "src/third_party/abseil-cpp/absl/strings/str_split.cc",
+ "src/third_party/abseil-cpp/absl/strings/str_split.h",
+ "src/third_party/abseil-cpp/absl/strings/string_view.cc",
+ "src/third_party/abseil-cpp/absl/strings/string_view.h",
+ "src/third_party/abseil-cpp/absl/strings/strip.h",
+ "src/third_party/abseil-cpp/absl/strings/substitute.cc",
+ "src/third_party/abseil-cpp/absl/strings/substitute.h",
+ ]
+ public_deps = [
+ ":absl_base_base",
+ ":absl_base_config",
+ ":absl_base_core_headers",
+ ":absl_base_endian",
+ ":absl_base_raw_logging_internal",
+ ":absl_base_throw_delegate",
+ ":absl_memory_memory",
+ ":absl_meta_type_traits",
+ ":absl_numeric_bits",
+ ":absl_numeric_int128",
+ ":absl_strings_internal",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_synchronization_graphcycles_internal") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc",
+ "src/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.h",
+ ]
+ public_deps = [
+ ":absl_base_base",
+ ":absl_base_base_internal",
+ ":absl_base_config",
+ ":absl_base_core_headers",
+ ":absl_base_malloc_internal",
+ ":absl_base_raw_logging_internal",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_synchronization_kernel_timeout_internal") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h",
+ ]
+ public_deps = [
+ ":absl_base_core_headers",
+ ":absl_base_raw_logging_internal",
+ ":absl_time_time",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_synchronization_synchronization") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/synchronization/barrier.cc",
+ "src/third_party/abseil-cpp/absl/synchronization/barrier.h",
+ "src/third_party/abseil-cpp/absl/synchronization/blocking_counter.cc",
+ "src/third_party/abseil-cpp/absl/synchronization/blocking_counter.h",
+ "src/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc",
+ "src/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.h",
+ "src/third_party/abseil-cpp/absl/synchronization/internal/futex.h",
+ "src/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc",
+ "src/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h",
+ "src/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc",
+ "src/third_party/abseil-cpp/absl/synchronization/internal/waiter.h",
+ "src/third_party/abseil-cpp/absl/synchronization/mutex.cc",
+ "src/third_party/abseil-cpp/absl/synchronization/mutex.h",
+ "src/third_party/abseil-cpp/absl/synchronization/notification.cc",
+ "src/third_party/abseil-cpp/absl/synchronization/notification.h",
+ ]
+ public_deps = [
+ ":absl_base_atomic_hook",
+ ":absl_base_base",
+ ":absl_base_base_internal",
+ ":absl_base_config",
+ ":absl_base_core_headers",
+ ":absl_base_dynamic_annotations",
+ ":absl_base_malloc_internal",
+ ":absl_base_raw_logging_internal",
+ ":absl_debugging_stacktrace",
+ ":absl_debugging_symbolize",
+ ":absl_synchronization_graphcycles_internal",
+ ":absl_synchronization_kernel_timeout_internal",
+ ":absl_time_time",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_time_internal_cctz_civil_time") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time.h",
+ "src/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h",
+ "src/third_party/abseil-cpp/absl/time/internal/cctz/src/civil_time_detail.cc",
+ ]
+ public_deps = [ ":absl_base_config" ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_time_internal_cctz_time_zone") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/time_zone.h",
+ "src/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/zone_info_source.h",
+ "src/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.cc",
+ "src/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.h",
+ "src/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc",
+ "src/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.cc",
+ "src/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.h",
+ "src/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.cc",
+ "src/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.h",
+ "src/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc",
+ "src/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.h",
+ "src/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc",
+ "src/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.h",
+ "src/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc",
+ "src/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_posix.cc",
+ "src/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_posix.h",
+ "src/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h",
+ "src/third_party/abseil-cpp/absl/time/internal/cctz/src/zone_info_source.cc",
+ ]
+ public_deps = [
+ ":absl_base_config",
+ ":absl_time_internal_cctz_civil_time",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_time_time") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/time/civil_time.cc",
+ "src/third_party/abseil-cpp/absl/time/civil_time.h",
+ "src/third_party/abseil-cpp/absl/time/clock.cc",
+ "src/third_party/abseil-cpp/absl/time/clock.h",
+ "src/third_party/abseil-cpp/absl/time/duration.cc",
+ "src/third_party/abseil-cpp/absl/time/format.cc",
+ "src/third_party/abseil-cpp/absl/time/internal/get_current_time_chrono.inc",
+ "src/third_party/abseil-cpp/absl/time/internal/get_current_time_posix.inc",
+ "src/third_party/abseil-cpp/absl/time/time.cc",
+ "src/third_party/abseil-cpp/absl/time/time.h",
+ ]
+ public_deps = [
+ ":absl_base_base",
+ ":absl_base_config",
+ ":absl_base_core_headers",
+ ":absl_base_raw_logging_internal",
+ ":absl_numeric_int128",
+ ":absl_strings_strings",
+ ":absl_time_internal_cctz_civil_time",
+ ":absl_time_internal_cctz_time_zone",
+ ":absl_types_optional",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_types_any") {
+ sources = [ "src/third_party/abseil-cpp/absl/types/any.h" ]
+ public_deps = [
+ ":absl_base_config",
+ ":absl_base_core_headers",
+ ":absl_base_fast_type_id",
+ ":absl_meta_type_traits",
+ ":absl_types_bad_any_cast",
+ ":absl_utility_utility",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_types_bad_any_cast") {
+ sources = [ "src/third_party/abseil-cpp/absl/types/bad_any_cast.h" ]
+ public_deps = [
+ ":absl_base_config",
+ ":absl_types_bad_any_cast_impl",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_types_bad_any_cast_impl") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/types/bad_any_cast.cc",
+ "src/third_party/abseil-cpp/absl/types/bad_any_cast.h",
+ ]
+ public_deps = [
+ ":absl_base_config",
+ ":absl_base_raw_logging_internal",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_types_bad_optional_access") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/types/bad_optional_access.cc",
+ "src/third_party/abseil-cpp/absl/types/bad_optional_access.h",
+ ]
+ public_deps = [
+ ":absl_base_config",
+ ":absl_base_raw_logging_internal",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_types_bad_variant_access") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/types/bad_variant_access.cc",
+ "src/third_party/abseil-cpp/absl/types/bad_variant_access.h",
+ ]
+ public_deps = [
+ ":absl_base_config",
+ ":absl_base_raw_logging_internal",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_types_compare") {
+ sources = [ "src/third_party/abseil-cpp/absl/types/compare.h" ]
+ public_deps = [
+ ":absl_base_core_headers",
+ ":absl_meta_type_traits",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_types_optional") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/types/internal/optional.h",
+ "src/third_party/abseil-cpp/absl/types/optional.h",
+ ]
+ public_deps = [
+ ":absl_base_base_internal",
+ ":absl_base_config",
+ ":absl_base_core_headers",
+ ":absl_memory_memory",
+ ":absl_meta_type_traits",
+ ":absl_types_bad_optional_access",
+ ":absl_utility_utility",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_types_span") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/types/internal/span.h",
+ "src/third_party/abseil-cpp/absl/types/span.h",
+ ]
+ public_deps = [
+ ":absl_algorithm_algorithm",
+ ":absl_base_core_headers",
+ ":absl_base_throw_delegate",
+ ":absl_meta_type_traits",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_types_variant") {
+ sources = [
+ "src/third_party/abseil-cpp/absl/types/internal/variant.h",
+ "src/third_party/abseil-cpp/absl/types/variant.h",
+ ]
+ public_deps = [
+ ":absl_base_base_internal",
+ ":absl_base_config",
+ ":absl_base_core_headers",
+ ":absl_meta_type_traits",
+ ":absl_types_bad_variant_access",
+ ":absl_utility_utility",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_utility_utility") {
+ sources = [ "src/third_party/abseil-cpp/absl/utility/utility.h" ]
+ public_deps = [
+ ":absl_base_base_internal",
+ ":absl_base_config",
+ ":absl_meta_type_traits",
+ ]
+ public_configs = [ "..:grpc_absl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("upb") {
+ sources = [
+ "src/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c",
+ "src/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h",
+ "src/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.h",
+ "src/third_party/upb/third_party/utf8_range/naive.c",
+ "src/third_party/upb/third_party/utf8_range/range2-neon.c",
+ "src/third_party/upb/third_party/utf8_range/range2-sse.c",
+ "src/third_party/upb/third_party/utf8_range/utf8_range.h",
+ "src/third_party/upb/upb/arena.c",
+ "src/third_party/upb/upb/arena.h",
+ "src/third_party/upb/upb/array.c",
+ "src/third_party/upb/upb/array.h",
+ "src/third_party/upb/upb/collections.h",
+ "src/third_party/upb/upb/decode.c",
+ "src/third_party/upb/upb/decode.h",
+ "src/third_party/upb/upb/decode_fast.c",
+ "src/third_party/upb/upb/decode_fast.h",
+ "src/third_party/upb/upb/def.c",
+ "src/third_party/upb/upb/def.h",
+ "src/third_party/upb/upb/def.hpp",
+ "src/third_party/upb/upb/encode.c",
+ "src/third_party/upb/upb/encode.h",
+ "src/third_party/upb/upb/extension_registry.c",
+ "src/third_party/upb/upb/extension_registry.h",
+ "src/third_party/upb/upb/internal/decode.h",
+ "src/third_party/upb/upb/internal/table.h",
+ "src/third_party/upb/upb/internal/upb.h",
+ "src/third_party/upb/upb/internal/vsnprintf_compat.h",
+ "src/third_party/upb/upb/json_decode.c",
+ "src/third_party/upb/upb/json_decode.h",
+ "src/third_party/upb/upb/json_encode.c",
+ "src/third_party/upb/upb/json_encode.h",
+ "src/third_party/upb/upb/map.c",
+ "src/third_party/upb/upb/map.h",
+ "src/third_party/upb/upb/message_value.h",
+ "src/third_party/upb/upb/mini_table.c",
+ "src/third_party/upb/upb/mini_table.h",
+ "src/third_party/upb/upb/mini_table.hpp",
+ "src/third_party/upb/upb/msg.c",
+ "src/third_party/upb/upb/msg.h",
+ "src/third_party/upb/upb/msg_internal.h",
+ "src/third_party/upb/upb/port_def.inc",
+ "src/third_party/upb/upb/port_undef.inc",
+ "src/third_party/upb/upb/reflection.c",
+ "src/third_party/upb/upb/reflection.h",
+ "src/third_party/upb/upb/reflection.hpp",
+ "src/third_party/upb/upb/status.c",
+ "src/third_party/upb/upb/status.h",
+ "src/third_party/upb/upb/table.c",
+ "src/third_party/upb/upb/table_internal.h",
+ "src/third_party/upb/upb/text_encode.c",
+ "src/third_party/upb/upb/text_encode.h",
+ "src/third_party/upb/upb/upb.c",
+ "src/third_party/upb/upb/upb.h",
+ "src/third_party/upb/upb/upb.hpp",
+ ]
+ public_deps = []
+ public_configs = [ "..:grpc_upb_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("boringssl") {
+ sources = [
+ "src/third_party/boringssl-with-bazel/err_data.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/asn1/a_bitstr.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/asn1/a_d2i_fp.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/asn1/a_dup.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/asn1/a_enum.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/asn1/a_gentm.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/asn1/a_i2d_fp.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/asn1/a_int.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/asn1/a_mbstr.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/asn1/a_octet.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/asn1/a_print.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/asn1/a_strex.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/asn1/a_strnid.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/asn1/a_time.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/asn1/a_utctm.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/asn1/a_utf8.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_par.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/asn1/asn_pack.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/asn1/charmap.h",
+ "src/third_party/boringssl-with-bazel/src/crypto/asn1/f_int.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/asn1/f_string.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/asn1/internal.h",
+ "src/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_dec.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_new.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_typ.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_utl.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/asn1/time_support.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/base64/base64.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/bio/bio.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/bio/bio_mem.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/bio/connect.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/bio/fd.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/bio/file.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/bio/hexdump.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/bio/internal.h",
+ "src/third_party/boringssl-with-bazel/src/crypto/bio/pair.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/bio/printf.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/bio/socket.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/bio/socket_helper.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/blake2/blake2.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/bn_extra/bn_asn1.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/bn_extra/convert.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/buf/buf.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/bytestring/asn1_compat.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/bytestring/ber.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/bytestring/cbb.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/bytestring/cbs.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/bytestring/internal.h",
+ "src/third_party/boringssl-with-bazel/src/crypto/bytestring/unicode.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/chacha/chacha.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/chacha/internal.h",
+ "src/third_party/boringssl-with-bazel/src/crypto/cipher_extra/cipher_extra.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/cipher_extra/derive_key.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_aesccm.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_aesctrhmac.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_aesgcmsiv.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_chacha20poly1305.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_null.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_rc2.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_rc4.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_tls.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/cipher_extra/internal.h",
+ "src/third_party/boringssl-with-bazel/src/crypto/cipher_extra/tls_cbc.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/cmac/cmac.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/conf/conf.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/conf/conf_def.h",
+ "src/third_party/boringssl-with-bazel/src/crypto/conf/internal.h",
+ "src/third_party/boringssl-with-bazel/src/crypto/cpu-aarch64-fuchsia.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/cpu-aarch64-linux.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/cpu-aarch64-win.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/cpu-arm-linux.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/cpu-arm-linux.h",
+ "src/third_party/boringssl-with-bazel/src/crypto/cpu-arm.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/cpu-intel.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/cpu-ppc64le.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/crypto.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519_tables.h",
+ "src/third_party/boringssl-with-bazel/src/crypto/curve25519/internal.h",
+ "src/third_party/boringssl-with-bazel/src/crypto/curve25519/spake25519.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/dh_extra/dh_asn1.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/dh_extra/params.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/digest_extra/digest_extra.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/dsa/dsa_asn1.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/dsa/internal.h",
+ "src/third_party/boringssl-with-bazel/src/crypto/ec_extra/ec_asn1.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/ec_extra/ec_derive.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/ec_extra/hash_to_curve.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/ec_extra/internal.h",
+ "src/third_party/boringssl-with-bazel/src/crypto/ecdh_extra/ecdh_extra.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/ecdsa_extra/ecdsa_asn1.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/engine/engine.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/err/err.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/err/internal.h",
+ "src/third_party/boringssl-with-bazel/src/crypto/evp/digestsign.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/evp/evp.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/evp/evp_asn1.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/evp/evp_ctx.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/evp/internal.h",
+ "src/third_party/boringssl-with-bazel/src/crypto/evp/p_dsa_asn1.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/evp/p_ec.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/evp/p_ec_asn1.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/evp/p_ed25519.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/evp/p_ed25519_asn1.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/evp/p_rsa.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/evp/p_rsa_asn1.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/evp/p_x25519.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/evp/p_x25519_asn1.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/evp/pbkdf.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/evp/print.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/evp/scrypt.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/evp/sign.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/ex_data.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes_nohw.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/internal.h",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/key_wrap.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/mode_wrappers.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/add.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/asm/x86_64-gcc.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/bn.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/bytes.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/cmp.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/ctx.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div_extra.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/exponentiation.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd_extra.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/generic.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/jacobi.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery_inv.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/mul.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/prime.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/random.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/rsaz_exp.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/rsaz_exp.h",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/shift.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/sqrt.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/aead.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_des.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/internal.h",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/delocate.h",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/des/des.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/des/internal.h",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/check.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/dh.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digest.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digests.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/internal.h",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/md32_common.h",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_montgomery.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/felem.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/oct.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p224-64.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-x86_64-table.h",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-x86_64.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-x86_64.h",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256_table.h",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/scalar.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple_mul.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/util.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/wnaf.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdh/ecdh.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/internal.h",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/fips_shared_support.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/hmac/hmac.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md4/md4.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/internal.h",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/md5.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cbc.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cfb.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ctr.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm_nohw.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/internal.h",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ofb.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/polyval.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/ctrdrbg.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/fork_detect.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/fork_detect.h",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/getrandom_fillin.h",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/blinding.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/internal.h",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/padding.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/fips.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/internal.h",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1-altivec.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/tls/internal.h",
+ "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/tls/kdf.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/hkdf/hkdf.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/hrss/hrss.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/hrss/internal.h",
+ "src/third_party/boringssl-with-bazel/src/crypto/internal.h",
+ "src/third_party/boringssl-with-bazel/src/crypto/lhash/internal.h",
+ "src/third_party/boringssl-with-bazel/src/crypto/lhash/lhash.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/mem.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/obj/obj.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/obj/obj_dat.h",
+ "src/third_party/boringssl-with-bazel/src/crypto/obj/obj_xref.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/pem/pem_all.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/pem/pem_info.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/pem/pem_lib.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/pem/pem_oth.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/pem/pem_pk8.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/pem/pem_pkey.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/pem/pem_x509.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/pem/pem_xaux.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/pkcs7/internal.h",
+ "src/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7_x509.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/pkcs8/internal.h",
+ "src/third_party/boringssl-with-bazel/src/crypto/pkcs8/p5_pbev2.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/poly1305/internal.h",
+ "src/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_arm.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_vec.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/pool/internal.h",
+ "src/third_party/boringssl-with-bazel/src/crypto/pool/pool.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/rand_extra/deterministic.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/rand_extra/forkunsafe.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/rand_extra/fuchsia.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/rand_extra/passive.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/rand_extra/rand_extra.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/rand_extra/windows.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/rc4/rc4.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/refcount_c11.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/refcount_lock.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/rsa_extra/rsa_asn1.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/rsa_extra/rsa_print.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/siphash/siphash.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/stack/stack.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/thread.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/thread_none.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/thread_pthread.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/thread_win.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/trust_token/internal.h",
+ "src/third_party/boringssl-with-bazel/src/crypto/trust_token/pmbtoken.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/trust_token/trust_token.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/trust_token/voprf.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509/a_digest.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509/a_sign.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509/a_verify.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509/algorithm.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509/asn1_gen.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509/by_dir.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509/by_file.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509/i2d_pr.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509/internal.h",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509/name_print.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509/rsa_pss.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509/t_crl.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509/t_req.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509/t_x509.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509/t_x509a.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509/x509.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509/x509_d2.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509/x509_def.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509/x509_ext.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509/x509_lu.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509/x509_obj.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509/x509_txt.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509/x509_v3.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509/x509_vpm.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509/x509name.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509/x509rset.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509/x509spki.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509/x_all.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509/x_attrib.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509/x_exten.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509/x_info.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509/x_name.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509/x_pkey.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509/x_req.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509/x_sig.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509/x_spki.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509/x_val.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509/x_x509.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509v3/ext_dat.h",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509v3/internal.h",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_cache.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_data.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_lib.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_map.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_node.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_tree.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_akey.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_akeya.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_alt.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_bcons.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_bitst.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_conf.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_crld.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_enum.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_extku.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_genn.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ia5.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_info.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_int.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_lib.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ncons.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ocsp.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pci.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pcia.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pcons.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pmaps.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_prn.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_skey.c",
+ "src/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_utl.c",
+ "src/third_party/boringssl-with-bazel/src/include/openssl/aead.h",
+ "src/third_party/boringssl-with-bazel/src/include/openssl/aes.h",
+ "src/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h",
+ "src/third_party/boringssl-with-bazel/src/include/openssl/asn1.h",
+ "src/third_party/boringssl-with-bazel/src/include/openssl/asn1_mac.h",
+ "src/third_party/boringssl-with-bazel/src/include/openssl/asn1t.h",
+ "src/third_party/boringssl-with-bazel/src/include/openssl/base.h",
+ "src/third_party/boringssl-with-bazel/src/include/openssl/base64.h",
+ "src/third_party/boringssl-with-bazel/src/include/openssl/bio.h",
+ "src/third_party/boringssl-with-bazel/src/include/openssl/blake2.h",
+ "src/third_party/boringssl-with-bazel/src/include/openssl/blowfish.h",
+ "src/third_party/boringssl-with-bazel/src/include/openssl/bn.h",
+ "src/third_party/boringssl-with-bazel/src/include/openssl/buf.h",
+ "src/third_party/boringssl-with-bazel/src/include/openssl/buffer.h",
+ "src/third_party/boringssl-with-bazel/src/include/openssl/bytestring.h",
+ "src/third_party/boringssl-with-bazel/src/include/openssl/cast.h",
+ "src/third_party/boringssl-with-bazel/src/include/openssl/chacha.h",
+ "src/third_party/boringssl-with-bazel/src/include/openssl/cipher.h",
+ "src/third_party/boringssl-with-bazel/src/include/openssl/cmac.h",
+ "src/third_party/boringssl-with-bazel/src/include/openssl/conf.h",
+ "src/third_party/boringssl-with-bazel/src/include/openssl/cpu.h",
+ "src/third_party/boringssl-with-bazel/src/include/openssl/crypto.h",
+ "src/third_party/boringssl-with-bazel/src/include/openssl/curve25519.h",
+ "src/third_party/boringssl-with-bazel/src/include/openssl/des.h",
+ "src/third_party/boringssl-with-bazel/src/include/openssl/dh.h",
+ "src/third_party/boringssl-with-bazel/src/include/openssl/digest.h",
+ "src/third_party/boringssl-with-bazel/src/include/openssl/dsa.h",
+ "src/third_party/boringssl-with-bazel/src/include/openssl/dtls1.h",
+ "src/third_party/boringssl-with-bazel/src/include/openssl/e_os2.h",
+ "src/third_party/boringssl-with-bazel/src/include/openssl/ec.h",
+ "src/third_party/boringssl-with-bazel/src/include/openssl/ec_key.h",
+ "src/third_party/boringssl-with-bazel/src/include/openssl/ecdh.h",
+ "src/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h",
+ "src/third_party/boringssl-with-bazel/src/include/openssl/engine.h",
+ "src/third_party/boringssl-with-bazel/src/include/openssl/err.h",
+ "src/third_party/boringssl-with-bazel/src/include/openssl/evp.h",
+ "src/third_party/boringssl-with-bazel/src/include/openssl/evp_errors.h",
+ "src/third_party/boringssl-with-bazel/src/include/openssl/ex_data.h",
+ "src/third_party/boringssl-with-bazel/src/include/openssl/hkdf.h",
+ "src/third_party/boringssl-with-bazel/src/include/openssl/hmac.h",
+ "src/third_party/boringssl-with-bazel/src/include/openssl/hpke.h",
+ "src/third_party/boringssl-with-bazel/src/include/openssl/hrss.h",
+ "src/third_party/boringssl-with-bazel/src/include/openssl/is_boringssl.h",
+ "src/third_party/boringssl-with-bazel/src/include/openssl/lhash.h",
+ "src/third_party/boringssl-with-bazel/src/include/openssl/md4.h",
+ "src/third_party/boringssl-with-bazel/src/include/openssl/md5.h",
+ "src/third_party/boringssl-with-bazel/src/include/openssl/mem.h",
+ "src/third_party/boringssl-with-bazel/src/include/openssl/nid.h",
+ "src/third_party/boringssl-with-bazel/src/include/openssl/obj.h",
+ "src/third_party/boringssl-with-bazel/src/include/openssl/obj_mac.h",
+ "src/third_party/boringssl-with-bazel/src/include/openssl/objects.h",
+ "src/third_party/boringssl-with-bazel/src/include/openssl/opensslconf.h",
+ "src/third_party/boringssl-with-bazel/src/include/openssl/opensslv.h",
+ "src/third_party/boringssl-with-bazel/src/include/openssl/ossl_typ.h",
+ "src/third_party/boringssl-with-bazel/src/include/openssl/pem.h",
+ "src/third_party/boringssl-with-bazel/src/include/openssl/pkcs12.h",
+ "src/third_party/boringssl-with-bazel/src/include/openssl/pkcs7.h",
+ "src/third_party/boringssl-with-bazel/src/include/openssl/pkcs8.h",
+ "src/third_party/boringssl-with-bazel/src/include/openssl/poly1305.h",
+ "src/third_party/boringssl-with-bazel/src/include/openssl/pool.h",
+ "src/third_party/boringssl-with-bazel/src/include/openssl/rand.h",
+ "src/third_party/boringssl-with-bazel/src/include/openssl/rc4.h",
+ "src/third_party/boringssl-with-bazel/src/include/openssl/ripemd.h",
+ "src/third_party/boringssl-with-bazel/src/include/openssl/rsa.h",
+ "src/third_party/boringssl-with-bazel/src/include/openssl/safestack.h",
+ "src/third_party/boringssl-with-bazel/src/include/openssl/sha.h",
+ "src/third_party/boringssl-with-bazel/src/include/openssl/siphash.h",
+ "src/third_party/boringssl-with-bazel/src/include/openssl/span.h",
+ "src/third_party/boringssl-with-bazel/src/include/openssl/srtp.h",
+ "src/third_party/boringssl-with-bazel/src/include/openssl/ssl.h",
+ "src/third_party/boringssl-with-bazel/src/include/openssl/ssl3.h",
+ "src/third_party/boringssl-with-bazel/src/include/openssl/stack.h",
+ "src/third_party/boringssl-with-bazel/src/include/openssl/thread.h",
+ "src/third_party/boringssl-with-bazel/src/include/openssl/tls1.h",
+ "src/third_party/boringssl-with-bazel/src/include/openssl/trust_token.h",
+ "src/third_party/boringssl-with-bazel/src/include/openssl/type_check.h",
+ "src/third_party/boringssl-with-bazel/src/include/openssl/x509.h",
+ "src/third_party/boringssl-with-bazel/src/include/openssl/x509_vfy.h",
+ "src/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h",
+ "src/third_party/boringssl-with-bazel/src/ssl/bio_ssl.cc",
+ "src/third_party/boringssl-with-bazel/src/ssl/d1_both.cc",
+ "src/third_party/boringssl-with-bazel/src/ssl/d1_lib.cc",
+ "src/third_party/boringssl-with-bazel/src/ssl/d1_pkt.cc",
+ "src/third_party/boringssl-with-bazel/src/ssl/d1_srtp.cc",
+ "src/third_party/boringssl-with-bazel/src/ssl/dtls_method.cc",
+ "src/third_party/boringssl-with-bazel/src/ssl/dtls_record.cc",
+ "src/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc",
+ "src/third_party/boringssl-with-bazel/src/ssl/extensions.cc",
+ "src/third_party/boringssl-with-bazel/src/ssl/handoff.cc",
+ "src/third_party/boringssl-with-bazel/src/ssl/handshake.cc",
+ "src/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc",
+ "src/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc",
+ "src/third_party/boringssl-with-bazel/src/ssl/internal.h",
+ "src/third_party/boringssl-with-bazel/src/ssl/s3_both.cc",
+ "src/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc",
+ "src/third_party/boringssl-with-bazel/src/ssl/s3_pkt.cc",
+ "src/third_party/boringssl-with-bazel/src/ssl/ssl_aead_ctx.cc",
+ "src/third_party/boringssl-with-bazel/src/ssl/ssl_asn1.cc",
+ "src/third_party/boringssl-with-bazel/src/ssl/ssl_buffer.cc",
+ "src/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc",
+ "src/third_party/boringssl-with-bazel/src/ssl/ssl_cipher.cc",
+ "src/third_party/boringssl-with-bazel/src/ssl/ssl_file.cc",
+ "src/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc",
+ "src/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc",
+ "src/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc",
+ "src/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc",
+ "src/third_party/boringssl-with-bazel/src/ssl/ssl_stat.cc",
+ "src/third_party/boringssl-with-bazel/src/ssl/ssl_transcript.cc",
+ "src/third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc",
+ "src/third_party/boringssl-with-bazel/src/ssl/ssl_x509.cc",
+ "src/third_party/boringssl-with-bazel/src/ssl/t1_enc.cc",
+ "src/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc",
+ "src/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc",
+ "src/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc",
+ "src/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc",
+ "src/third_party/boringssl-with-bazel/src/ssl/tls_method.cc",
+ "src/third_party/boringssl-with-bazel/src/ssl/tls_record.cc",
+ "src/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_32.h",
+ "src/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_64.h",
+ "src/third_party/boringssl-with-bazel/src/third_party/fiat/p256_32.h",
+ "src/third_party/boringssl-with-bazel/src/third_party/fiat/p256_64.h",
+ ]
+ public_deps = []
+ public_configs = [ "..:grpc_boringssl_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("address_sorting") {
+ sources = [
+ "src/third_party/address_sorting/address_sorting.c",
+ "src/third_party/address_sorting/address_sorting_internal.h",
+ "src/third_party/address_sorting/address_sorting_posix.c",
+ "src/third_party/address_sorting/address_sorting_windows.c",
+ "src/third_party/address_sorting/include/address_sorting/address_sorting.h",
+ ]
+ public_deps = []
+ public_configs = [ "..:grpc_internal_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("gpr") {
+ sources = [
+ "src/src/core/lib/event_engine/thread_local.cc",
+ "src/src/core/lib/event_engine/thread_local.h",
+ "src/src/core/lib/gpr/alloc.cc",
+ "src/src/core/lib/gpr/alloc.h",
+ "src/src/core/lib/gpr/atm.cc",
+ "src/src/core/lib/gpr/cpu_iphone.cc",
+ "src/src/core/lib/gpr/cpu_linux.cc",
+ "src/src/core/lib/gpr/cpu_posix.cc",
+ "src/src/core/lib/gpr/cpu_windows.cc",
+ "src/src/core/lib/gpr/log.cc",
+ "src/src/core/lib/gpr/log_android.cc",
+ "src/src/core/lib/gpr/log_linux.cc",
+ "src/src/core/lib/gpr/log_posix.cc",
+ "src/src/core/lib/gpr/log_windows.cc",
+ "src/src/core/lib/gpr/string.cc",
+ "src/src/core/lib/gpr/string.h",
+ "src/src/core/lib/gpr/string_posix.cc",
+ "src/src/core/lib/gpr/string_util_windows.cc",
+ "src/src/core/lib/gpr/string_windows.cc",
+ "src/src/core/lib/gpr/sync.cc",
+ "src/src/core/lib/gpr/sync_abseil.cc",
+ "src/src/core/lib/gpr/sync_posix.cc",
+ "src/src/core/lib/gpr/sync_windows.cc",
+ "src/src/core/lib/gpr/time.cc",
+ "src/src/core/lib/gpr/time_posix.cc",
+ "src/src/core/lib/gpr/time_precise.cc",
+ "src/src/core/lib/gpr/time_precise.h",
+ "src/src/core/lib/gpr/time_windows.cc",
+ "src/src/core/lib/gpr/tmpfile.h",
+ "src/src/core/lib/gpr/tmpfile_msys.cc",
+ "src/src/core/lib/gpr/tmpfile_posix.cc",
+ "src/src/core/lib/gpr/tmpfile_windows.cc",
+ "src/src/core/lib/gpr/useful.h",
+ "src/src/core/lib/gpr/wrap_memcpy.cc",
+ "src/src/core/lib/gprpp/construct_destruct.h",
+ "src/src/core/lib/gprpp/crash.cc",
+ "src/src/core/lib/gprpp/crash.h",
+ "src/src/core/lib/gprpp/debug_location.h",
+ "src/src/core/lib/gprpp/env.h",
+ "src/src/core/lib/gprpp/env_linux.cc",
+ "src/src/core/lib/gprpp/env_posix.cc",
+ "src/src/core/lib/gprpp/env_windows.cc",
+ "src/src/core/lib/gprpp/examine_stack.cc",
+ "src/src/core/lib/gprpp/examine_stack.h",
+ "src/src/core/lib/gprpp/fork.cc",
+ "src/src/core/lib/gprpp/fork.h",
+ "src/src/core/lib/gprpp/global_config.h",
+ "src/src/core/lib/gprpp/global_config_custom.h",
+ "src/src/core/lib/gprpp/global_config_env.cc",
+ "src/src/core/lib/gprpp/global_config_env.h",
+ "src/src/core/lib/gprpp/global_config_generic.h",
+ "src/src/core/lib/gprpp/host_port.cc",
+ "src/src/core/lib/gprpp/host_port.h",
+ "src/src/core/lib/gprpp/memory.h",
+ "src/src/core/lib/gprpp/mpscq.cc",
+ "src/src/core/lib/gprpp/mpscq.h",
+ "src/src/core/lib/gprpp/no_destruct.h",
+ "src/src/core/lib/gprpp/stat.h",
+ "src/src/core/lib/gprpp/stat_posix.cc",
+ "src/src/core/lib/gprpp/stat_windows.cc",
+ "src/src/core/lib/gprpp/strerror.cc",
+ "src/src/core/lib/gprpp/strerror.h",
+ "src/src/core/lib/gprpp/sync.h",
+ "src/src/core/lib/gprpp/tchar.cc",
+ "src/src/core/lib/gprpp/tchar.h",
+ "src/src/core/lib/gprpp/thd.h",
+ "src/src/core/lib/gprpp/thd_posix.cc",
+ "src/src/core/lib/gprpp/thd_windows.cc",
+ "src/src/core/lib/gprpp/time_util.cc",
+ "src/src/core/lib/gprpp/time_util.h",
+ ]
+ public_deps = [
+ ":absl_base_base",
+ ":absl_base_core_headers",
+ ":absl_memory_memory",
+ ":absl_random_random",
+ ":absl_status_status",
+ ":absl_strings_cord",
+ ":absl_strings_str_format",
+ ":absl_strings_strings",
+ ":absl_synchronization_synchronization",
+ ":absl_time_time",
+ ":absl_types_optional",
+ ":absl_types_variant",
+ ]
+ public_configs = [ "..:grpc_internal_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("grpc") {
+ sources = [
+ "src/src/core/ext/filters/census/grpc_context.cc",
+ "src/src/core/ext/filters/channel_idle/channel_idle_filter.cc",
+ "src/src/core/ext/filters/channel_idle/channel_idle_filter.h",
+ "src/src/core/ext/filters/channel_idle/idle_filter_state.cc",
+ "src/src/core/ext/filters/channel_idle/idle_filter_state.h",
+ "src/src/core/ext/filters/client_channel/backend_metric.cc",
+ "src/src/core/ext/filters/client_channel/backend_metric.h",
+ "src/src/core/ext/filters/client_channel/backup_poller.cc",
+ "src/src/core/ext/filters/client_channel/backup_poller.h",
+ "src/src/core/ext/filters/client_channel/channel_connectivity.cc",
+ "src/src/core/ext/filters/client_channel/client_channel.cc",
+ "src/src/core/ext/filters/client_channel/client_channel.h",
+ "src/src/core/ext/filters/client_channel/client_channel_channelz.cc",
+ "src/src/core/ext/filters/client_channel/client_channel_channelz.h",
+ "src/src/core/ext/filters/client_channel/client_channel_factory.cc",
+ "src/src/core/ext/filters/client_channel/client_channel_factory.h",
+ "src/src/core/ext/filters/client_channel/client_channel_plugin.cc",
+ "src/src/core/ext/filters/client_channel/client_channel_service_config.cc",
+ "src/src/core/ext/filters/client_channel/client_channel_service_config.h",
+ "src/src/core/ext/filters/client_channel/config_selector.cc",
+ "src/src/core/ext/filters/client_channel/config_selector.h",
+ "src/src/core/ext/filters/client_channel/connector.h",
+ "src/src/core/ext/filters/client_channel/dynamic_filters.cc",
+ "src/src/core/ext/filters/client_channel/dynamic_filters.h",
+ "src/src/core/ext/filters/client_channel/global_subchannel_pool.cc",
+ "src/src/core/ext/filters/client_channel/global_subchannel_pool.h",
+ "src/src/core/ext/filters/client_channel/health/health_check_client.cc",
+ "src/src/core/ext/filters/client_channel/health/health_check_client.h",
+ "src/src/core/ext/filters/client_channel/http_proxy.cc",
+ "src/src/core/ext/filters/client_channel/http_proxy.h",
+ "src/src/core/ext/filters/client_channel/lb_call_state_internal.h",
+ "src/src/core/ext/filters/client_channel/lb_policy/address_filtering.cc",
+ "src/src/core/ext/filters/client_channel/lb_policy/address_filtering.h",
+ "src/src/core/ext/filters/client_channel/lb_policy/backend_metric_data.h",
+ "src/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc",
+ "src/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.h",
+ "src/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc",
+ "src/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.h",
+ "src/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc",
+ "src/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h",
+ "src/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc",
+ "src/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.h",
+ "src/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc",
+ "src/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h",
+ "src/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc",
+ "src/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h",
+ "src/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.cc",
+ "src/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.h",
+ "src/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric_internal.h",
+ "src/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.cc",
+ "src/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.h",
+ "src/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc",
+ "src/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc",
+ "src/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc",
+ "src/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h",
+ "src/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc",
+ "src/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc",
+ "src/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h",
+ "src/src/core/ext/filters/client_channel/lb_policy/weighted_round_robin/static_stride_scheduler.cc",
+ "src/src/core/ext/filters/client_channel/lb_policy/weighted_round_robin/static_stride_scheduler.h",
+ "src/src/core/ext/filters/client_channel/lb_policy/weighted_round_robin/weighted_round_robin.cc",
+ "src/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc",
+ "src/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc",
+ "src/src/core/ext/filters/client_channel/lb_policy/xds/xds_attributes.cc",
+ "src/src/core/ext/filters/client_channel/lb_policy/xds/xds_attributes.h",
+ "src/src/core/ext/filters/client_channel/lb_policy/xds/xds_channel_args.h",
+ "src/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc",
+ "src/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc",
+ "src/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc",
+ "src/src/core/ext/filters/client_channel/lb_policy/xds/xds_override_host.cc",
+ "src/src/core/ext/filters/client_channel/lb_policy/xds/xds_override_host.h",
+ "src/src/core/ext/filters/client_channel/lb_policy/xds/xds_wrr_locality.cc",
+ "src/src/core/ext/filters/client_channel/local_subchannel_pool.cc",
+ "src/src/core/ext/filters/client_channel/local_subchannel_pool.h",
+ "src/src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc",
+ "src/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc",
+ "src/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h",
+ "src/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc",
+ "src/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc",
+ "src/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc",
+ "src/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h",
+ "src/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc",
+ "src/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc",
+ "src/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.cc",
+ "src/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.h",
+ "src/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc",
+ "src/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc",
+ "src/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h",
+ "src/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc",
+ "src/src/core/ext/filters/client_channel/resolver/polling_resolver.cc",
+ "src/src/core/ext/filters/client_channel/resolver/polling_resolver.h",
+ "src/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc",
+ "src/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc",
+ "src/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.h",
+ "src/src/core/ext/filters/client_channel/retry_filter.cc",
+ "src/src/core/ext/filters/client_channel/retry_filter.h",
+ "src/src/core/ext/filters/client_channel/retry_service_config.cc",
+ "src/src/core/ext/filters/client_channel/retry_service_config.h",
+ "src/src/core/ext/filters/client_channel/retry_throttle.cc",
+ "src/src/core/ext/filters/client_channel/retry_throttle.h",
+ "src/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc",
+ "src/src/core/ext/filters/client_channel/subchannel.cc",
+ "src/src/core/ext/filters/client_channel/subchannel.h",
+ "src/src/core/ext/filters/client_channel/subchannel_interface_internal.h",
+ "src/src/core/ext/filters/client_channel/subchannel_pool_interface.cc",
+ "src/src/core/ext/filters/client_channel/subchannel_pool_interface.h",
+ "src/src/core/ext/filters/client_channel/subchannel_stream_client.cc",
+ "src/src/core/ext/filters/client_channel/subchannel_stream_client.h",
+ "src/src/core/ext/filters/deadline/deadline_filter.cc",
+ "src/src/core/ext/filters/deadline/deadline_filter.h",
+ "src/src/core/ext/filters/fault_injection/fault_injection_filter.cc",
+ "src/src/core/ext/filters/fault_injection/fault_injection_filter.h",
+ "src/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.cc",
+ "src/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.h",
+ "src/src/core/ext/filters/http/client/http_client_filter.cc",
+ "src/src/core/ext/filters/http/client/http_client_filter.h",
+ "src/src/core/ext/filters/http/client_authority_filter.cc",
+ "src/src/core/ext/filters/http/client_authority_filter.h",
+ "src/src/core/ext/filters/http/http_filters_plugin.cc",
+ "src/src/core/ext/filters/http/message_compress/compression_filter.cc",
+ "src/src/core/ext/filters/http/message_compress/compression_filter.h",
+ "src/src/core/ext/filters/http/server/http_server_filter.cc",
+ "src/src/core/ext/filters/http/server/http_server_filter.h",
+ "src/src/core/ext/filters/message_size/message_size_filter.cc",
+ "src/src/core/ext/filters/message_size/message_size_filter.h",
+ "src/src/core/ext/filters/rbac/rbac_filter.cc",
+ "src/src/core/ext/filters/rbac/rbac_filter.h",
+ "src/src/core/ext/filters/rbac/rbac_service_config_parser.cc",
+ "src/src/core/ext/filters/rbac/rbac_service_config_parser.h",
+ "src/src/core/ext/filters/server_config_selector/server_config_selector.h",
+ "src/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc",
+ "src/src/core/ext/filters/server_config_selector/server_config_selector_filter.h",
+ "src/src/core/ext/filters/stateful_session/stateful_session_filter.cc",
+ "src/src/core/ext/filters/stateful_session/stateful_session_filter.h",
+ "src/src/core/ext/filters/stateful_session/stateful_session_service_config_parser.cc",
+ "src/src/core/ext/filters/stateful_session/stateful_session_service_config_parser.h",
+ "src/src/core/ext/transport/chttp2/alpn/alpn.cc",
+ "src/src/core/ext/transport/chttp2/alpn/alpn.h",
+ "src/src/core/ext/transport/chttp2/client/chttp2_connector.cc",
+ "src/src/core/ext/transport/chttp2/client/chttp2_connector.h",
+ "src/src/core/ext/transport/chttp2/server/chttp2_server.cc",
+ "src/src/core/ext/transport/chttp2/server/chttp2_server.h",
+ "src/src/core/ext/transport/chttp2/transport/bin_decoder.cc",
+ "src/src/core/ext/transport/chttp2/transport/bin_decoder.h",
+ "src/src/core/ext/transport/chttp2/transport/bin_encoder.cc",
+ "src/src/core/ext/transport/chttp2/transport/bin_encoder.h",
+ "src/src/core/ext/transport/chttp2/transport/chttp2_transport.cc",
+ "src/src/core/ext/transport/chttp2/transport/chttp2_transport.h",
+ "src/src/core/ext/transport/chttp2/transport/context_list.cc",
+ "src/src/core/ext/transport/chttp2/transport/context_list.h",
+ "src/src/core/ext/transport/chttp2/transport/decode_huff.cc",
+ "src/src/core/ext/transport/chttp2/transport/decode_huff.h",
+ "src/src/core/ext/transport/chttp2/transport/flow_control.cc",
+ "src/src/core/ext/transport/chttp2/transport/flow_control.h",
+ "src/src/core/ext/transport/chttp2/transport/frame.h",
+ "src/src/core/ext/transport/chttp2/transport/frame_data.cc",
+ "src/src/core/ext/transport/chttp2/transport/frame_data.h",
+ "src/src/core/ext/transport/chttp2/transport/frame_goaway.cc",
+ "src/src/core/ext/transport/chttp2/transport/frame_goaway.h",
+ "src/src/core/ext/transport/chttp2/transport/frame_ping.cc",
+ "src/src/core/ext/transport/chttp2/transport/frame_ping.h",
+ "src/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc",
+ "src/src/core/ext/transport/chttp2/transport/frame_rst_stream.h",
+ "src/src/core/ext/transport/chttp2/transport/frame_settings.cc",
+ "src/src/core/ext/transport/chttp2/transport/frame_settings.h",
+ "src/src/core/ext/transport/chttp2/transport/frame_window_update.cc",
+ "src/src/core/ext/transport/chttp2/transport/frame_window_update.h",
+ "src/src/core/ext/transport/chttp2/transport/hpack_constants.h",
+ "src/src/core/ext/transport/chttp2/transport/hpack_encoder.cc",
+ "src/src/core/ext/transport/chttp2/transport/hpack_encoder.h",
+ "src/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc",
+ "src/src/core/ext/transport/chttp2/transport/hpack_encoder_table.h",
+ "src/src/core/ext/transport/chttp2/transport/hpack_parser.cc",
+ "src/src/core/ext/transport/chttp2/transport/hpack_parser.h",
+ "src/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc",
+ "src/src/core/ext/transport/chttp2/transport/hpack_parser_table.h",
+ "src/src/core/ext/transport/chttp2/transport/http2_settings.cc",
+ "src/src/core/ext/transport/chttp2/transport/http2_settings.h",
+ "src/src/core/ext/transport/chttp2/transport/http_trace.cc",
+ "src/src/core/ext/transport/chttp2/transport/http_trace.h",
+ "src/src/core/ext/transport/chttp2/transport/huffsyms.cc",
+ "src/src/core/ext/transport/chttp2/transport/huffsyms.h",
+ "src/src/core/ext/transport/chttp2/transport/internal.h",
+ "src/src/core/ext/transport/chttp2/transport/parsing.cc",
+ "src/src/core/ext/transport/chttp2/transport/stream_lists.cc",
+ "src/src/core/ext/transport/chttp2/transport/stream_map.cc",
+ "src/src/core/ext/transport/chttp2/transport/stream_map.h",
+ "src/src/core/ext/transport/chttp2/transport/varint.cc",
+ "src/src/core/ext/transport/chttp2/transport/varint.h",
+ "src/src/core/ext/transport/chttp2/transport/writing.cc",
+ "src/src/core/ext/transport/inproc/inproc_plugin.cc",
+ "src/src/core/ext/transport/inproc/inproc_transport.cc",
+ "src/src/core/ext/transport/inproc/inproc_transport.h",
+ "src/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.c",
+ "src/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.h",
+ "src/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.c",
+ "src/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.h",
+ "src/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c",
+ "src/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h",
+ "src/src/core/ext/upb-generated/envoy/admin/v3/config_dump_shared.upb.c",
+ "src/src/core/ext/upb-generated/envoy/admin/v3/config_dump_shared.upb.h",
+ "src/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.c",
+ "src/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.h",
+ "src/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.c",
+ "src/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.h",
+ "src/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.c",
+ "src/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.h",
+ "src/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.c",
+ "src/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.h",
+ "src/src/core/ext/upb-generated/envoy/admin/v3/mutex_stats.upb.c",
+ "src/src/core/ext/upb-generated/envoy/admin/v3/mutex_stats.upb.h",
+ "src/src/core/ext/upb-generated/envoy/admin/v3/server_info.upb.c",
+ "src/src/core/ext/upb-generated/envoy/admin/v3/server_info.upb.h",
+ "src/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.c",
+ "src/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.h",
+ "src/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.c",
+ "src/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h",
+ "src/src/core/ext/upb-generated/envoy/annotations/resource.upb.c",
+ "src/src/core/ext/upb-generated/envoy/annotations/resource.upb.h",
+ "src/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c",
+ "src/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h",
+ "src/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c",
+ "src/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h",
+ "src/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c",
+ "src/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h",
+ "src/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c",
+ "src/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h",
+ "src/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c",
+ "src/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h",
+ "src/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c",
+ "src/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h",
+ "src/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.c",
+ "src/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.h",
+ "src/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c",
+ "src/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h",
+ "src/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c",
+ "src/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h",
+ "src/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c",
+ "src/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h",
+ "src/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c",
+ "src/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h",
+ "src/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c",
+ "src/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h",
+ "src/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c",
+ "src/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.h",
+ "src/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.c",
+ "src/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.h",
+ "src/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c",
+ "src/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h",
+ "src/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c",
+ "src/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h",
+ "src/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.c",
+ "src/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h",
+ "src/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c",
+ "src/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h",
+ "src/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c",
+ "src/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h",
+ "src/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.c",
+ "src/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.h",
+ "src/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.c",
+ "src/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h",
+ "src/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c",
+ "src/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h",
+ "src/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.c",
+ "src/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.h",
+ "src/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c",
+ "src/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h",
+ "src/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c",
+ "src/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h",
+ "src/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c",
+ "src/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h",
+ "src/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c",
+ "src/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h",
+ "src/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c",
+ "src/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h",
+ "src/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c",
+ "src/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h",
+ "src/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c",
+ "src/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h",
+ "src/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c",
+ "src/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h",
+ "src/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.c",
+ "src/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.h",
+ "src/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c",
+ "src/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h",
+ "src/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c",
+ "src/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h",
+ "src/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c",
+ "src/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h",
+ "src/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c",
+ "src/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h",
+ "src/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c",
+ "src/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h",
+ "src/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c",
+ "src/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h",
+ "src/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.c",
+ "src/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.h",
+ "src/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.c",
+ "src/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.h",
+ "src/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.c",
+ "src/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.h",
+ "src/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c",
+ "src/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h",
+ "src/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.c",
+ "src/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.h",
+ "src/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.c",
+ "src/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.h",
+ "src/src/core/ext/upb-generated/envoy/config/trace/v3/opentelemetry.upb.c",
+ "src/src/core/ext/upb-generated/envoy/config/trace/v3/opentelemetry.upb.h",
+ "src/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.c",
+ "src/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.h",
+ "src/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.c",
+ "src/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.h",
+ "src/src/core/ext/upb-generated/envoy/config/trace/v3/trace.upb.c",
+ "src/src/core/ext/upb-generated/envoy/config/trace/v3/trace.upb.h",
+ "src/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.c",
+ "src/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.h",
+ "src/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.c",
+ "src/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.h",
+ "src/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.c",
+ "src/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.h",
+ "src/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c",
+ "src/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.h",
+ "src/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c",
+ "src/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h",
+ "src/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.c",
+ "src/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.h",
+ "src/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c",
+ "src/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h",
+ "src/src/core/ext/upb-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb.c",
+ "src/src/core/ext/upb-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb.h",
+ "src/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c",
+ "src/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h",
+ "src/src/core/ext/upb-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb.c",
+ "src/src/core/ext/upb-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb.h",
+ "src/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb.c",
+ "src/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb.h",
+ "src/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/common/v3/common.upb.c",
+ "src/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/common/v3/common.upb.h",
+ "src/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.c",
+ "src/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.h",
+ "src/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.c",
+ "src/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.h",
+ "src/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.c",
+ "src/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.h",
+ "src/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c",
+ "src/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h",
+ "src/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c",
+ "src/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h",
+ "src/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c",
+ "src/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h",
+ "src/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.c",
+ "src/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.h",
+ "src/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.c",
+ "src/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.h",
+ "src/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c",
+ "src/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h",
+ "src/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c",
+ "src/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h",
+ "src/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c",
+ "src/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h",
+ "src/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.c",
+ "src/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.h",
+ "src/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.c",
+ "src/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.h",
+ "src/src/core/ext/upb-generated/envoy/type/matcher/v3/filter_state.upb.c",
+ "src/src/core/ext/upb-generated/envoy/type/matcher/v3/filter_state.upb.h",
+ "src/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.c",
+ "src/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.h",
+ "src/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c",
+ "src/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h",
+ "src/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c",
+ "src/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h",
+ "src/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c",
+ "src/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h",
+ "src/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c",
+ "src/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h",
+ "src/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c",
+ "src/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h",
+ "src/src/core/ext/upb-generated/envoy/type/matcher/v3/status_code_input.upb.c",
+ "src/src/core/ext/upb-generated/envoy/type/matcher/v3/status_code_input.upb.h",
+ "src/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c",
+ "src/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h",
+ "src/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c",
+ "src/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h",
+ "src/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c",
+ "src/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h",
+ "src/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c",
+ "src/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h",
+ "src/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c",
+ "src/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h",
+ "src/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.c",
+ "src/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.h",
+ "src/src/core/ext/upb-generated/envoy/type/v3/http.upb.c",
+ "src/src/core/ext/upb-generated/envoy/type/v3/http.upb.h",
+ "src/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.c",
+ "src/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.h",
+ "src/src/core/ext/upb-generated/envoy/type/v3/percent.upb.c",
+ "src/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h",
+ "src/src/core/ext/upb-generated/envoy/type/v3/range.upb.c",
+ "src/src/core/ext/upb-generated/envoy/type/v3/range.upb.h",
+ "src/src/core/ext/upb-generated/envoy/type/v3/ratelimit_strategy.upb.c",
+ "src/src/core/ext/upb-generated/envoy/type/v3/ratelimit_strategy.upb.h",
+ "src/src/core/ext/upb-generated/envoy/type/v3/ratelimit_unit.upb.c",
+ "src/src/core/ext/upb-generated/envoy/type/v3/ratelimit_unit.upb.h",
+ "src/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.c",
+ "src/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h",
+ "src/src/core/ext/upb-generated/envoy/type/v3/token_bucket.upb.c",
+ "src/src/core/ext/upb-generated/envoy/type/v3/token_bucket.upb.h",
+ "src/src/core/ext/upb-generated/google/api/annotations.upb.c",
+ "src/src/core/ext/upb-generated/google/api/annotations.upb.h",
+ "src/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c",
+ "src/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.h",
+ "src/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c",
+ "src/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h",
+ "src/src/core/ext/upb-generated/google/api/http.upb.c",
+ "src/src/core/ext/upb-generated/google/api/http.upb.h",
+ "src/src/core/ext/upb-generated/google/api/httpbody.upb.c",
+ "src/src/core/ext/upb-generated/google/api/httpbody.upb.h",
+ "src/src/core/ext/upb-generated/google/protobuf/any.upb.c",
+ "src/src/core/ext/upb-generated/google/protobuf/any.upb.h",
+ "src/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c",
+ "src/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h",
+ "src/src/core/ext/upb-generated/google/protobuf/duration.upb.c",
+ "src/src/core/ext/upb-generated/google/protobuf/duration.upb.h",
+ "src/src/core/ext/upb-generated/google/protobuf/empty.upb.c",
+ "src/src/core/ext/upb-generated/google/protobuf/empty.upb.h",
+ "src/src/core/ext/upb-generated/google/protobuf/struct.upb.c",
+ "src/src/core/ext/upb-generated/google/protobuf/struct.upb.h",
+ "src/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c",
+ "src/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h",
+ "src/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c",
+ "src/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h",
+ "src/src/core/ext/upb-generated/google/rpc/status.upb.c",
+ "src/src/core/ext/upb-generated/google/rpc/status.upb.h",
+ "src/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.c",
+ "src/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.h",
+ "src/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c",
+ "src/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h",
+ "src/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c",
+ "src/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h",
+ "src/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c",
+ "src/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h",
+ "src/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c",
+ "src/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h",
+ "src/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c",
+ "src/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h",
+ "src/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.c",
+ "src/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.h",
+ "src/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls_config.upb.c",
+ "src/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls_config.upb.h",
+ "src/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c",
+ "src/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h",
+ "src/src/core/ext/upb-generated/udpa/annotations/security.upb.c",
+ "src/src/core/ext/upb-generated/udpa/annotations/security.upb.h",
+ "src/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.c",
+ "src/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.h",
+ "src/src/core/ext/upb-generated/udpa/annotations/status.upb.c",
+ "src/src/core/ext/upb-generated/udpa/annotations/status.upb.h",
+ "src/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c",
+ "src/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h",
+ "src/src/core/ext/upb-generated/validate/validate.upb.c",
+ "src/src/core/ext/upb-generated/validate/validate.upb.h",
+ "src/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.c",
+ "src/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.h",
+ "src/src/core/ext/upb-generated/xds/annotations/v3/security.upb.c",
+ "src/src/core/ext/upb-generated/xds/annotations/v3/security.upb.h",
+ "src/src/core/ext/upb-generated/xds/annotations/v3/sensitive.upb.c",
+ "src/src/core/ext/upb-generated/xds/annotations/v3/sensitive.upb.h",
+ "src/src/core/ext/upb-generated/xds/annotations/v3/status.upb.c",
+ "src/src/core/ext/upb-generated/xds/annotations/v3/status.upb.h",
+ "src/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.c",
+ "src/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.h",
+ "src/src/core/ext/upb-generated/xds/core/v3/authority.upb.c",
+ "src/src/core/ext/upb-generated/xds/core/v3/authority.upb.h",
+ "src/src/core/ext/upb-generated/xds/core/v3/cidr.upb.c",
+ "src/src/core/ext/upb-generated/xds/core/v3/cidr.upb.h",
+ "src/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c",
+ "src/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.h",
+ "src/src/core/ext/upb-generated/xds/core/v3/context_params.upb.c",
+ "src/src/core/ext/upb-generated/xds/core/v3/context_params.upb.h",
+ "src/src/core/ext/upb-generated/xds/core/v3/extension.upb.c",
+ "src/src/core/ext/upb-generated/xds/core/v3/extension.upb.h",
+ "src/src/core/ext/upb-generated/xds/core/v3/resource.upb.c",
+ "src/src/core/ext/upb-generated/xds/core/v3/resource.upb.h",
+ "src/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c",
+ "src/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h",
+ "src/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c",
+ "src/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h",
+ "src/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.c",
+ "src/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.h",
+ "src/src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.c",
+ "src/src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.h",
+ "src/src/core/ext/upb-generated/xds/type/matcher/v3/cel.upb.c",
+ "src/src/core/ext/upb-generated/xds/type/matcher/v3/cel.upb.h",
+ "src/src/core/ext/upb-generated/xds/type/matcher/v3/domain.upb.c",
+ "src/src/core/ext/upb-generated/xds/type/matcher/v3/domain.upb.h",
+ "src/src/core/ext/upb-generated/xds/type/matcher/v3/http_inputs.upb.c",
+ "src/src/core/ext/upb-generated/xds/type/matcher/v3/http_inputs.upb.h",
+ "src/src/core/ext/upb-generated/xds/type/matcher/v3/ip.upb.c",
+ "src/src/core/ext/upb-generated/xds/type/matcher/v3/ip.upb.h",
+ "src/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.c",
+ "src/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.h",
+ "src/src/core/ext/upb-generated/xds/type/matcher/v3/range.upb.c",
+ "src/src/core/ext/upb-generated/xds/type/matcher/v3/range.upb.h",
+ "src/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.c",
+ "src/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.h",
+ "src/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.c",
+ "src/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.h",
+ "src/src/core/ext/upb-generated/xds/type/v3/cel.upb.c",
+ "src/src/core/ext/upb-generated/xds/type/v3/cel.upb.h",
+ "src/src/core/ext/upb-generated/xds/type/v3/range.upb.c",
+ "src/src/core/ext/upb-generated/xds/type/v3/range.upb.h",
+ "src/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.c",
+ "src/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.h",
+ "src/src/core/ext/upbdefs-generated/envoy/admin/v3/certs.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/admin/v3/certs.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/admin/v3/clusters.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/admin/v3/clusters.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump_shared.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump_shared.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/admin/v3/init_dump.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/admin/v3/init_dump.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/admin/v3/listeners.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/admin/v3/listeners.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/admin/v3/memory.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/admin/v3/memory.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/admin/v3/metrics.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/admin/v3/metrics.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/admin/v3/mutex_stats.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/admin/v3/mutex_stats.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/admin/v3/server_info.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/admin/v3/server_info.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/admin/v3/tap.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/admin/v3/tap.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/config/common/matcher/v3/matcher.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/config/common/matcher/v3/matcher.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_method_list.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_method_list.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/metrics_service.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/metrics_service.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/config/tap/v3/common.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/config/tap/v3/common.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/config/trace/v3/datadog.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/config/trace/v3/datadog.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/config/trace/v3/dynamic_ot.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/config/trace/v3/dynamic_ot.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/config/trace/v3/lightstep.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/config/trace/v3/lightstep.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opencensus.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opencensus.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opentelemetry.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opentelemetry.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/config/trace/v3/service.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/config/trace/v3/service.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/config/trace/v3/skywalking.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/config/trace/v3/skywalking.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/config/trace/v3/trace.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/config/trace/v3/trace.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/config/trace/v3/xray.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/config/trace/v3/xray.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/config/trace/v3/zipkin.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/config/trace/v3/zipkin.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/type/http/v3/cookie.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/type/http/v3/cookie.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/filter_state.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/filter_state.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/http_inputs.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/http_inputs.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/status_code_input.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/status_code_input.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/type/v3/hash_policy.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/type/v3/hash_policy.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/type/v3/http_status.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/type/v3/http_status.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_strategy.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_strategy.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_unit.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_unit.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/envoy/type/v3/token_bucket.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/envoy/type/v3/token_bucket.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/checked.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/checked.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/syntax.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/syntax.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/google/api/http.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/google/api/http.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/google/api/httpbody.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/google/api/httpbody.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/opencensus/proto/trace/v1/trace_config.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/opencensus/proto/trace/v1/trace_config.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/src/proto/grpc/lookup/v1/rls_config.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/src/proto/grpc/lookup/v1/rls_config.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/validate/validate.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/validate/validate.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/xds/annotations/v3/migrate.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/xds/annotations/v3/migrate.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/xds/annotations/v3/security.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/xds/annotations/v3/security.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/xds/annotations/v3/sensitive.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/xds/annotations/v3/sensitive.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/xds/annotations/v3/versioning.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/xds/annotations/v3/versioning.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/xds/core/v3/cidr.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/xds/core/v3/cidr.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/xds/core/v3/extension.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/xds/core/v3/extension.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/xds/type/matcher/v3/cel.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/xds/type/matcher/v3/cel.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/xds/type/matcher/v3/domain.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/xds/type/matcher/v3/domain.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/xds/type/matcher/v3/http_inputs.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/xds/type/matcher/v3/http_inputs.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/xds/type/matcher/v3/ip.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/xds/type/matcher/v3/ip.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/xds/type/matcher/v3/matcher.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/xds/type/matcher/v3/matcher.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/xds/type/matcher/v3/range.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/xds/type/matcher/v3/range.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/xds/type/matcher/v3/regex.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/xds/type/matcher/v3/regex.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/xds/type/matcher/v3/string.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/xds/type/matcher/v3/string.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/xds/type/v3/cel.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/xds/type/v3/cel.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/xds/type/v3/range.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/xds/type/v3/range.upbdefs.h",
+ "src/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.c",
+ "src/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.h",
+ "src/src/core/ext/xds/certificate_provider_store.cc",
+ "src/src/core/ext/xds/certificate_provider_store.h",
+ "src/src/core/ext/xds/file_watcher_certificate_provider_factory.cc",
+ "src/src/core/ext/xds/file_watcher_certificate_provider_factory.h",
+ "src/src/core/ext/xds/upb_utils.h",
+ "src/src/core/ext/xds/xds_api.cc",
+ "src/src/core/ext/xds/xds_api.h",
+ "src/src/core/ext/xds/xds_bootstrap.cc",
+ "src/src/core/ext/xds/xds_bootstrap.h",
+ "src/src/core/ext/xds/xds_bootstrap_grpc.cc",
+ "src/src/core/ext/xds/xds_bootstrap_grpc.h",
+ "src/src/core/ext/xds/xds_certificate_provider.cc",
+ "src/src/core/ext/xds/xds_certificate_provider.h",
+ "src/src/core/ext/xds/xds_channel_args.h",
+ "src/src/core/ext/xds/xds_channel_stack_modifier.cc",
+ "src/src/core/ext/xds/xds_channel_stack_modifier.h",
+ "src/src/core/ext/xds/xds_client.cc",
+ "src/src/core/ext/xds/xds_client.h",
+ "src/src/core/ext/xds/xds_client_grpc.cc",
+ "src/src/core/ext/xds/xds_client_grpc.h",
+ "src/src/core/ext/xds/xds_client_stats.cc",
+ "src/src/core/ext/xds/xds_client_stats.h",
+ "src/src/core/ext/xds/xds_cluster.cc",
+ "src/src/core/ext/xds/xds_cluster.h",
+ "src/src/core/ext/xds/xds_cluster_specifier_plugin.cc",
+ "src/src/core/ext/xds/xds_cluster_specifier_plugin.h",
+ "src/src/core/ext/xds/xds_common_types.cc",
+ "src/src/core/ext/xds/xds_common_types.h",
+ "src/src/core/ext/xds/xds_endpoint.cc",
+ "src/src/core/ext/xds/xds_endpoint.h",
+ "src/src/core/ext/xds/xds_health_status.cc",
+ "src/src/core/ext/xds/xds_health_status.h",
+ "src/src/core/ext/xds/xds_http_fault_filter.cc",
+ "src/src/core/ext/xds/xds_http_fault_filter.h",
+ "src/src/core/ext/xds/xds_http_filters.cc",
+ "src/src/core/ext/xds/xds_http_filters.h",
+ "src/src/core/ext/xds/xds_http_rbac_filter.cc",
+ "src/src/core/ext/xds/xds_http_rbac_filter.h",
+ "src/src/core/ext/xds/xds_http_stateful_session_filter.cc",
+ "src/src/core/ext/xds/xds_http_stateful_session_filter.h",
+ "src/src/core/ext/xds/xds_lb_policy_registry.cc",
+ "src/src/core/ext/xds/xds_lb_policy_registry.h",
+ "src/src/core/ext/xds/xds_listener.cc",
+ "src/src/core/ext/xds/xds_listener.h",
+ "src/src/core/ext/xds/xds_resource_type.h",
+ "src/src/core/ext/xds/xds_resource_type_impl.h",
+ "src/src/core/ext/xds/xds_route_config.cc",
+ "src/src/core/ext/xds/xds_route_config.h",
+ "src/src/core/ext/xds/xds_routing.cc",
+ "src/src/core/ext/xds/xds_routing.h",
+ "src/src/core/ext/xds/xds_server_config_fetcher.cc",
+ "src/src/core/ext/xds/xds_transport.h",
+ "src/src/core/ext/xds/xds_transport_grpc.cc",
+ "src/src/core/ext/xds/xds_transport_grpc.h",
+ "src/src/core/lib/address_utils/parse_address.cc",
+ "src/src/core/lib/address_utils/parse_address.h",
+ "src/src/core/lib/address_utils/sockaddr_utils.cc",
+ "src/src/core/lib/address_utils/sockaddr_utils.h",
+ "src/src/core/lib/avl/avl.h",
+ "src/src/core/lib/backoff/backoff.cc",
+ "src/src/core/lib/backoff/backoff.h",
+ "src/src/core/lib/channel/call_finalization.h",
+ "src/src/core/lib/channel/call_tracer.h",
+ "src/src/core/lib/channel/channel_args.cc",
+ "src/src/core/lib/channel/channel_args.h",
+ "src/src/core/lib/channel/channel_args_preconditioning.cc",
+ "src/src/core/lib/channel/channel_args_preconditioning.h",
+ "src/src/core/lib/channel/channel_fwd.h",
+ "src/src/core/lib/channel/channel_stack.cc",
+ "src/src/core/lib/channel/channel_stack.h",
+ "src/src/core/lib/channel/channel_stack_builder.cc",
+ "src/src/core/lib/channel/channel_stack_builder.h",
+ "src/src/core/lib/channel/channel_stack_builder_impl.cc",
+ "src/src/core/lib/channel/channel_stack_builder_impl.h",
+ "src/src/core/lib/channel/channel_trace.cc",
+ "src/src/core/lib/channel/channel_trace.h",
+ "src/src/core/lib/channel/channelz.cc",
+ "src/src/core/lib/channel/channelz.h",
+ "src/src/core/lib/channel/channelz_registry.cc",
+ "src/src/core/lib/channel/channelz_registry.h",
+ "src/src/core/lib/channel/connected_channel.cc",
+ "src/src/core/lib/channel/connected_channel.h",
+ "src/src/core/lib/channel/context.h",
+ "src/src/core/lib/channel/promise_based_filter.cc",
+ "src/src/core/lib/channel/promise_based_filter.h",
+ "src/src/core/lib/channel/status_util.cc",
+ "src/src/core/lib/channel/status_util.h",
+ "src/src/core/lib/compression/compression.cc",
+ "src/src/core/lib/compression/compression_internal.cc",
+ "src/src/core/lib/compression/compression_internal.h",
+ "src/src/core/lib/compression/message_compress.cc",
+ "src/src/core/lib/compression/message_compress.h",
+ "src/src/core/lib/config/core_configuration.cc",
+ "src/src/core/lib/config/core_configuration.h",
+ "src/src/core/lib/debug/event_log.cc",
+ "src/src/core/lib/debug/event_log.h",
+ "src/src/core/lib/debug/histogram_view.cc",
+ "src/src/core/lib/debug/histogram_view.h",
+ "src/src/core/lib/debug/stats.cc",
+ "src/src/core/lib/debug/stats.h",
+ "src/src/core/lib/debug/stats_data.cc",
+ "src/src/core/lib/debug/stats_data.h",
+ "src/src/core/lib/debug/trace.cc",
+ "src/src/core/lib/debug/trace.h",
+ "src/src/core/lib/event_engine/channel_args_endpoint_config.cc",
+ "src/src/core/lib/event_engine/channel_args_endpoint_config.h",
+ "src/src/core/lib/event_engine/common_closures.h",
+ "src/src/core/lib/event_engine/default_event_engine.cc",
+ "src/src/core/lib/event_engine/default_event_engine.h",
+ "src/src/core/lib/event_engine/default_event_engine_factory.cc",
+ "src/src/core/lib/event_engine/default_event_engine_factory.h",
+ "src/src/core/lib/event_engine/event_engine.cc",
+ "src/src/core/lib/event_engine/executor/executor.h",
+ "src/src/core/lib/event_engine/forkable.cc",
+ "src/src/core/lib/event_engine/forkable.h",
+ "src/src/core/lib/event_engine/handle_containers.h",
+ "src/src/core/lib/event_engine/memory_allocator.cc",
+ "src/src/core/lib/event_engine/poller.h",
+ "src/src/core/lib/event_engine/posix.h",
+ "src/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc",
+ "src/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.h",
+ "src/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc",
+ "src/src/core/lib/event_engine/posix_engine/ev_poll_posix.h",
+ "src/src/core/lib/event_engine/posix_engine/event_poller.h",
+ "src/src/core/lib/event_engine/posix_engine/event_poller_posix_default.cc",
+ "src/src/core/lib/event_engine/posix_engine/event_poller_posix_default.h",
+ "src/src/core/lib/event_engine/posix_engine/internal_errqueue.cc",
+ "src/src/core/lib/event_engine/posix_engine/internal_errqueue.h",
+ "src/src/core/lib/event_engine/posix_engine/lockfree_event.cc",
+ "src/src/core/lib/event_engine/posix_engine/lockfree_event.h",
+ "src/src/core/lib/event_engine/posix_engine/posix_endpoint.cc",
+ "src/src/core/lib/event_engine/posix_engine/posix_endpoint.h",
+ "src/src/core/lib/event_engine/posix_engine/posix_engine.cc",
+ "src/src/core/lib/event_engine/posix_engine/posix_engine.h",
+ "src/src/core/lib/event_engine/posix_engine/posix_engine_closure.h",
+ "src/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc",
+ "src/src/core/lib/event_engine/posix_engine/posix_engine_listener.h",
+ "src/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc",
+ "src/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.h",
+ "src/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc",
+ "src/src/core/lib/event_engine/posix_engine/tcp_socket_utils.h",
+ "src/src/core/lib/event_engine/posix_engine/timer.cc",
+ "src/src/core/lib/event_engine/posix_engine/timer.h",
+ "src/src/core/lib/event_engine/posix_engine/timer_heap.cc",
+ "src/src/core/lib/event_engine/posix_engine/timer_heap.h",
+ "src/src/core/lib/event_engine/posix_engine/timer_manager.cc",
+ "src/src/core/lib/event_engine/posix_engine/timer_manager.h",
+ "src/src/core/lib/event_engine/posix_engine/traced_buffer_list.cc",
+ "src/src/core/lib/event_engine/posix_engine/traced_buffer_list.h",
+ "src/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.cc",
+ "src/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.h",
+ "src/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.cc",
+ "src/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.h",
+ "src/src/core/lib/event_engine/posix_engine/wakeup_fd_posix.h",
+ "src/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.cc",
+ "src/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.h",
+ "src/src/core/lib/event_engine/resolved_address.cc",
+ "src/src/core/lib/event_engine/resolved_address_internal.h",
+ "src/src/core/lib/event_engine/shim.cc",
+ "src/src/core/lib/event_engine/shim.h",
+ "src/src/core/lib/event_engine/slice.cc",
+ "src/src/core/lib/event_engine/slice_buffer.cc",
+ "src/src/core/lib/event_engine/tcp_socket_utils.cc",
+ "src/src/core/lib/event_engine/tcp_socket_utils.h",
+ "src/src/core/lib/event_engine/thread_pool.cc",
+ "src/src/core/lib/event_engine/thread_pool.h",
+ "src/src/core/lib/event_engine/time_util.cc",
+ "src/src/core/lib/event_engine/time_util.h",
+ "src/src/core/lib/event_engine/trace.cc",
+ "src/src/core/lib/event_engine/trace.h",
+ "src/src/core/lib/event_engine/utils.cc",
+ "src/src/core/lib/event_engine/utils.h",
+ "src/src/core/lib/event_engine/windows/iocp.cc",
+ "src/src/core/lib/event_engine/windows/iocp.h",
+ "src/src/core/lib/event_engine/windows/win_socket.cc",
+ "src/src/core/lib/event_engine/windows/win_socket.h",
+ "src/src/core/lib/event_engine/windows/windows_endpoint.cc",
+ "src/src/core/lib/event_engine/windows/windows_endpoint.h",
+ "src/src/core/lib/event_engine/windows/windows_engine.cc",
+ "src/src/core/lib/event_engine/windows/windows_engine.h",
+ "src/src/core/lib/experiments/config.cc",
+ "src/src/core/lib/experiments/config.h",
+ "src/src/core/lib/experiments/experiments.cc",
+ "src/src/core/lib/experiments/experiments.h",
+ "src/src/core/lib/gpr/spinlock.h",
+ "src/src/core/lib/gprpp/atomic_utils.h",
+ "src/src/core/lib/gprpp/bitset.h",
+ "src/src/core/lib/gprpp/chunked_vector.h",
+ "src/src/core/lib/gprpp/cpp_impl_of.h",
+ "src/src/core/lib/gprpp/dual_ref_counted.h",
+ "src/src/core/lib/gprpp/load_file.cc",
+ "src/src/core/lib/gprpp/load_file.h",
+ "src/src/core/lib/gprpp/manual_constructor.h",
+ "src/src/core/lib/gprpp/match.h",
+ "src/src/core/lib/gprpp/notification.h",
+ "src/src/core/lib/gprpp/orphanable.h",
+ "src/src/core/lib/gprpp/overload.h",
+ "src/src/core/lib/gprpp/packed_table.h",
+ "src/src/core/lib/gprpp/per_cpu.h",
+ "src/src/core/lib/gprpp/ref_counted.h",
+ "src/src/core/lib/gprpp/ref_counted_ptr.h",
+ "src/src/core/lib/gprpp/single_set_ptr.h",
+ "src/src/core/lib/gprpp/sorted_pack.h",
+ "src/src/core/lib/gprpp/status_helper.cc",
+ "src/src/core/lib/gprpp/status_helper.h",
+ "src/src/core/lib/gprpp/table.h",
+ "src/src/core/lib/gprpp/time.cc",
+ "src/src/core/lib/gprpp/time.h",
+ "src/src/core/lib/gprpp/time_averaged_stats.cc",
+ "src/src/core/lib/gprpp/time_averaged_stats.h",
+ "src/src/core/lib/gprpp/unique_type_name.h",
+ "src/src/core/lib/gprpp/validation_errors.cc",
+ "src/src/core/lib/gprpp/validation_errors.h",
+ "src/src/core/lib/gprpp/work_serializer.cc",
+ "src/src/core/lib/gprpp/work_serializer.h",
+ "src/src/core/lib/handshaker/proxy_mapper.h",
+ "src/src/core/lib/handshaker/proxy_mapper_registry.cc",
+ "src/src/core/lib/handshaker/proxy_mapper_registry.h",
+ "src/src/core/lib/http/format_request.cc",
+ "src/src/core/lib/http/format_request.h",
+ "src/src/core/lib/http/httpcli.cc",
+ "src/src/core/lib/http/httpcli.h",
+ "src/src/core/lib/http/httpcli_security_connector.cc",
+ "src/src/core/lib/http/httpcli_ssl_credentials.h",
+ "src/src/core/lib/http/parser.cc",
+ "src/src/core/lib/http/parser.h",
+ "src/src/core/lib/iomgr/block_annotate.h",
+ "src/src/core/lib/iomgr/buffer_list.cc",
+ "src/src/core/lib/iomgr/buffer_list.h",
+ "src/src/core/lib/iomgr/call_combiner.cc",
+ "src/src/core/lib/iomgr/call_combiner.h",
+ "src/src/core/lib/iomgr/cfstream_handle.cc",
+ "src/src/core/lib/iomgr/cfstream_handle.h",
+ "src/src/core/lib/iomgr/closure.cc",
+ "src/src/core/lib/iomgr/closure.h",
+ "src/src/core/lib/iomgr/combiner.cc",
+ "src/src/core/lib/iomgr/combiner.h",
+ "src/src/core/lib/iomgr/dualstack_socket_posix.cc",
+ "src/src/core/lib/iomgr/dynamic_annotations.h",
+ "src/src/core/lib/iomgr/endpoint.cc",
+ "src/src/core/lib/iomgr/endpoint.h",
+ "src/src/core/lib/iomgr/endpoint_cfstream.cc",
+ "src/src/core/lib/iomgr/endpoint_cfstream.h",
+ "src/src/core/lib/iomgr/endpoint_pair.h",
+ "src/src/core/lib/iomgr/endpoint_pair_posix.cc",
+ "src/src/core/lib/iomgr/endpoint_pair_windows.cc",
+ "src/src/core/lib/iomgr/error.cc",
+ "src/src/core/lib/iomgr/error.h",
+ "src/src/core/lib/iomgr/error_cfstream.cc",
+ "src/src/core/lib/iomgr/error_cfstream.h",
+ "src/src/core/lib/iomgr/ev_apple.cc",
+ "src/src/core/lib/iomgr/ev_apple.h",
+ "src/src/core/lib/iomgr/ev_epoll1_linux.cc",
+ "src/src/core/lib/iomgr/ev_epoll1_linux.h",
+ "src/src/core/lib/iomgr/ev_poll_posix.cc",
+ "src/src/core/lib/iomgr/ev_poll_posix.h",
+ "src/src/core/lib/iomgr/ev_posix.cc",
+ "src/src/core/lib/iomgr/ev_posix.h",
+ "src/src/core/lib/iomgr/ev_windows.cc",
+ "src/src/core/lib/iomgr/event_engine_shims/closure.cc",
+ "src/src/core/lib/iomgr/event_engine_shims/closure.h",
+ "src/src/core/lib/iomgr/event_engine_shims/endpoint.cc",
+ "src/src/core/lib/iomgr/event_engine_shims/endpoint.h",
+ "src/src/core/lib/iomgr/event_engine_shims/tcp_client.cc",
+ "src/src/core/lib/iomgr/event_engine_shims/tcp_client.h",
+ "src/src/core/lib/iomgr/exec_ctx.cc",
+ "src/src/core/lib/iomgr/exec_ctx.h",
+ "src/src/core/lib/iomgr/executor.cc",
+ "src/src/core/lib/iomgr/executor.h",
+ "src/src/core/lib/iomgr/fork_posix.cc",
+ "src/src/core/lib/iomgr/fork_windows.cc",
+ "src/src/core/lib/iomgr/gethostname.h",
+ "src/src/core/lib/iomgr/gethostname_fallback.cc",
+ "src/src/core/lib/iomgr/gethostname_host_name_max.cc",
+ "src/src/core/lib/iomgr/gethostname_sysconf.cc",
+ "src/src/core/lib/iomgr/grpc_if_nametoindex.h",
+ "src/src/core/lib/iomgr/grpc_if_nametoindex_posix.cc",
+ "src/src/core/lib/iomgr/grpc_if_nametoindex_unsupported.cc",
+ "src/src/core/lib/iomgr/internal_errqueue.cc",
+ "src/src/core/lib/iomgr/internal_errqueue.h",
+ "src/src/core/lib/iomgr/iocp_windows.cc",
+ "src/src/core/lib/iomgr/iocp_windows.h",
+ "src/src/core/lib/iomgr/iomgr.cc",
+ "src/src/core/lib/iomgr/iomgr.h",
+ "src/src/core/lib/iomgr/iomgr_fwd.h",
+ "src/src/core/lib/iomgr/iomgr_internal.cc",
+ "src/src/core/lib/iomgr/iomgr_internal.h",
+ "src/src/core/lib/iomgr/iomgr_posix.cc",
+ "src/src/core/lib/iomgr/iomgr_posix_cfstream.cc",
+ "src/src/core/lib/iomgr/iomgr_windows.cc",
+ "src/src/core/lib/iomgr/load_file.cc",
+ "src/src/core/lib/iomgr/load_file.h",
+ "src/src/core/lib/iomgr/lockfree_event.cc",
+ "src/src/core/lib/iomgr/lockfree_event.h",
+ "src/src/core/lib/iomgr/nameser.h",
+ "src/src/core/lib/iomgr/polling_entity.cc",
+ "src/src/core/lib/iomgr/polling_entity.h",
+ "src/src/core/lib/iomgr/pollset.cc",
+ "src/src/core/lib/iomgr/pollset.h",
+ "src/src/core/lib/iomgr/pollset_set.cc",
+ "src/src/core/lib/iomgr/pollset_set.h",
+ "src/src/core/lib/iomgr/pollset_set_windows.cc",
+ "src/src/core/lib/iomgr/pollset_set_windows.h",
+ "src/src/core/lib/iomgr/pollset_windows.cc",
+ "src/src/core/lib/iomgr/pollset_windows.h",
+ "src/src/core/lib/iomgr/port.h",
+ "src/src/core/lib/iomgr/python_util.h",
+ "src/src/core/lib/iomgr/resolve_address.cc",
+ "src/src/core/lib/iomgr/resolve_address.h",
+ "src/src/core/lib/iomgr/resolve_address_impl.h",
+ "src/src/core/lib/iomgr/resolve_address_posix.cc",
+ "src/src/core/lib/iomgr/resolve_address_posix.h",
+ "src/src/core/lib/iomgr/resolve_address_windows.cc",
+ "src/src/core/lib/iomgr/resolve_address_windows.h",
+ "src/src/core/lib/iomgr/resolved_address.h",
+ "src/src/core/lib/iomgr/sockaddr.h",
+ "src/src/core/lib/iomgr/sockaddr_posix.h",
+ "src/src/core/lib/iomgr/sockaddr_utils_posix.cc",
+ "src/src/core/lib/iomgr/sockaddr_windows.h",
+ "src/src/core/lib/iomgr/socket_factory_posix.cc",
+ "src/src/core/lib/iomgr/socket_factory_posix.h",
+ "src/src/core/lib/iomgr/socket_mutator.cc",
+ "src/src/core/lib/iomgr/socket_mutator.h",
+ "src/src/core/lib/iomgr/socket_utils.h",
+ "src/src/core/lib/iomgr/socket_utils_common_posix.cc",
+ "src/src/core/lib/iomgr/socket_utils_linux.cc",
+ "src/src/core/lib/iomgr/socket_utils_posix.cc",
+ "src/src/core/lib/iomgr/socket_utils_posix.h",
+ "src/src/core/lib/iomgr/socket_utils_windows.cc",
+ "src/src/core/lib/iomgr/socket_windows.cc",
+ "src/src/core/lib/iomgr/socket_windows.h",
+ "src/src/core/lib/iomgr/systemd_utils.cc",
+ "src/src/core/lib/iomgr/systemd_utils.h",
+ "src/src/core/lib/iomgr/tcp_client.cc",
+ "src/src/core/lib/iomgr/tcp_client.h",
+ "src/src/core/lib/iomgr/tcp_client_cfstream.cc",
+ "src/src/core/lib/iomgr/tcp_client_posix.cc",
+ "src/src/core/lib/iomgr/tcp_client_posix.h",
+ "src/src/core/lib/iomgr/tcp_client_windows.cc",
+ "src/src/core/lib/iomgr/tcp_posix.cc",
+ "src/src/core/lib/iomgr/tcp_posix.h",
+ "src/src/core/lib/iomgr/tcp_server.cc",
+ "src/src/core/lib/iomgr/tcp_server.h",
+ "src/src/core/lib/iomgr/tcp_server_posix.cc",
+ "src/src/core/lib/iomgr/tcp_server_utils_posix.h",
+ "src/src/core/lib/iomgr/tcp_server_utils_posix_common.cc",
+ "src/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc",
+ "src/src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc",
+ "src/src/core/lib/iomgr/tcp_server_windows.cc",
+ "src/src/core/lib/iomgr/tcp_windows.cc",
+ "src/src/core/lib/iomgr/tcp_windows.h",
+ "src/src/core/lib/iomgr/timer.cc",
+ "src/src/core/lib/iomgr/timer.h",
+ "src/src/core/lib/iomgr/timer_generic.cc",
+ "src/src/core/lib/iomgr/timer_generic.h",
+ "src/src/core/lib/iomgr/timer_heap.cc",
+ "src/src/core/lib/iomgr/timer_heap.h",
+ "src/src/core/lib/iomgr/timer_manager.cc",
+ "src/src/core/lib/iomgr/timer_manager.h",
+ "src/src/core/lib/iomgr/unix_sockets_posix.cc",
+ "src/src/core/lib/iomgr/unix_sockets_posix.h",
+ "src/src/core/lib/iomgr/unix_sockets_posix_noop.cc",
+ "src/src/core/lib/iomgr/wakeup_fd_eventfd.cc",
+ "src/src/core/lib/iomgr/wakeup_fd_nospecial.cc",
+ "src/src/core/lib/iomgr/wakeup_fd_pipe.cc",
+ "src/src/core/lib/iomgr/wakeup_fd_pipe.h",
+ "src/src/core/lib/iomgr/wakeup_fd_posix.cc",
+ "src/src/core/lib/iomgr/wakeup_fd_posix.h",
+ "src/src/core/lib/json/json.h",
+ "src/src/core/lib/json/json_args.h",
+ "src/src/core/lib/json/json_channel_args.h",
+ "src/src/core/lib/json/json_object_loader.cc",
+ "src/src/core/lib/json/json_object_loader.h",
+ "src/src/core/lib/json/json_reader.cc",
+ "src/src/core/lib/json/json_util.cc",
+ "src/src/core/lib/json/json_util.h",
+ "src/src/core/lib/json/json_writer.cc",
+ "src/src/core/lib/load_balancing/lb_policy.cc",
+ "src/src/core/lib/load_balancing/lb_policy.h",
+ "src/src/core/lib/load_balancing/lb_policy_factory.h",
+ "src/src/core/lib/load_balancing/lb_policy_registry.cc",
+ "src/src/core/lib/load_balancing/lb_policy_registry.h",
+ "src/src/core/lib/load_balancing/subchannel_interface.h",
+ "src/src/core/lib/matchers/matchers.cc",
+ "src/src/core/lib/matchers/matchers.h",
+ "src/src/core/lib/promise/activity.cc",
+ "src/src/core/lib/promise/activity.h",
+ "src/src/core/lib/promise/arena_promise.h",
+ "src/src/core/lib/promise/context.h",
+ "src/src/core/lib/promise/detail/basic_join.h",
+ "src/src/core/lib/promise/detail/basic_seq.h",
+ "src/src/core/lib/promise/detail/promise_factory.h",
+ "src/src/core/lib/promise/detail/promise_like.h",
+ "src/src/core/lib/promise/detail/status.h",
+ "src/src/core/lib/promise/detail/switch.h",
+ "src/src/core/lib/promise/exec_ctx_wakeup_scheduler.h",
+ "src/src/core/lib/promise/if.h",
+ "src/src/core/lib/promise/interceptor_list.h",
+ "src/src/core/lib/promise/intra_activity_waiter.h",
+ "src/src/core/lib/promise/latch.h",
+ "src/src/core/lib/promise/loop.h",
+ "src/src/core/lib/promise/map.h",
+ "src/src/core/lib/promise/pipe.h",
+ "src/src/core/lib/promise/poll.h",
+ "src/src/core/lib/promise/promise.h",
+ "src/src/core/lib/promise/race.h",
+ "src/src/core/lib/promise/seq.h",
+ "src/src/core/lib/promise/sleep.cc",
+ "src/src/core/lib/promise/sleep.h",
+ "src/src/core/lib/promise/trace.cc",
+ "src/src/core/lib/promise/trace.h",
+ "src/src/core/lib/promise/try_join.h",
+ "src/src/core/lib/promise/try_seq.h",
+ "src/src/core/lib/resolver/resolver.cc",
+ "src/src/core/lib/resolver/resolver.h",
+ "src/src/core/lib/resolver/resolver_factory.h",
+ "src/src/core/lib/resolver/resolver_registry.cc",
+ "src/src/core/lib/resolver/resolver_registry.h",
+ "src/src/core/lib/resolver/server_address.cc",
+ "src/src/core/lib/resolver/server_address.h",
+ "src/src/core/lib/resource_quota/api.cc",
+ "src/src/core/lib/resource_quota/api.h",
+ "src/src/core/lib/resource_quota/arena.cc",
+ "src/src/core/lib/resource_quota/arena.h",
+ "src/src/core/lib/resource_quota/memory_quota.cc",
+ "src/src/core/lib/resource_quota/memory_quota.h",
+ "src/src/core/lib/resource_quota/periodic_update.cc",
+ "src/src/core/lib/resource_quota/periodic_update.h",
+ "src/src/core/lib/resource_quota/resource_quota.cc",
+ "src/src/core/lib/resource_quota/resource_quota.h",
+ "src/src/core/lib/resource_quota/thread_quota.cc",
+ "src/src/core/lib/resource_quota/thread_quota.h",
+ "src/src/core/lib/resource_quota/trace.cc",
+ "src/src/core/lib/resource_quota/trace.h",
+ "src/src/core/lib/security/authorization/authorization_engine.h",
+ "src/src/core/lib/security/authorization/authorization_policy_provider.h",
+ "src/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc",
+ "src/src/core/lib/security/authorization/evaluate_args.cc",
+ "src/src/core/lib/security/authorization/evaluate_args.h",
+ "src/src/core/lib/security/authorization/grpc_authorization_engine.cc",
+ "src/src/core/lib/security/authorization/grpc_authorization_engine.h",
+ "src/src/core/lib/security/authorization/grpc_server_authz_filter.cc",
+ "src/src/core/lib/security/authorization/grpc_server_authz_filter.h",
+ "src/src/core/lib/security/authorization/matchers.cc",
+ "src/src/core/lib/security/authorization/matchers.h",
+ "src/src/core/lib/security/authorization/rbac_policy.cc",
+ "src/src/core/lib/security/authorization/rbac_policy.h",
+ "src/src/core/lib/security/certificate_provider/certificate_provider_factory.h",
+ "src/src/core/lib/security/certificate_provider/certificate_provider_registry.cc",
+ "src/src/core/lib/security/certificate_provider/certificate_provider_registry.h",
+ "src/src/core/lib/security/context/security_context.cc",
+ "src/src/core/lib/security/context/security_context.h",
+ "src/src/core/lib/security/credentials/alts/alts_credentials.cc",
+ "src/src/core/lib/security/credentials/alts/alts_credentials.h",
+ "src/src/core/lib/security/credentials/alts/check_gcp_environment.cc",
+ "src/src/core/lib/security/credentials/alts/check_gcp_environment.h",
+ "src/src/core/lib/security/credentials/alts/check_gcp_environment_linux.cc",
+ "src/src/core/lib/security/credentials/alts/check_gcp_environment_no_op.cc",
+ "src/src/core/lib/security/credentials/alts/check_gcp_environment_windows.cc",
+ "src/src/core/lib/security/credentials/alts/grpc_alts_credentials_client_options.cc",
+ "src/src/core/lib/security/credentials/alts/grpc_alts_credentials_options.cc",
+ "src/src/core/lib/security/credentials/alts/grpc_alts_credentials_options.h",
+ "src/src/core/lib/security/credentials/alts/grpc_alts_credentials_server_options.cc",
+ "src/src/core/lib/security/credentials/call_creds_util.cc",
+ "src/src/core/lib/security/credentials/call_creds_util.h",
+ "src/src/core/lib/security/credentials/channel_creds_registry.h",
+ "src/src/core/lib/security/credentials/channel_creds_registry_init.cc",
+ "src/src/core/lib/security/credentials/composite/composite_credentials.cc",
+ "src/src/core/lib/security/credentials/composite/composite_credentials.h",
+ "src/src/core/lib/security/credentials/credentials.cc",
+ "src/src/core/lib/security/credentials/credentials.h",
+ "src/src/core/lib/security/credentials/external/aws_external_account_credentials.cc",
+ "src/src/core/lib/security/credentials/external/aws_external_account_credentials.h",
+ "src/src/core/lib/security/credentials/external/aws_request_signer.cc",
+ "src/src/core/lib/security/credentials/external/aws_request_signer.h",
+ "src/src/core/lib/security/credentials/external/external_account_credentials.cc",
+ "src/src/core/lib/security/credentials/external/external_account_credentials.h",
+ "src/src/core/lib/security/credentials/external/file_external_account_credentials.cc",
+ "src/src/core/lib/security/credentials/external/file_external_account_credentials.h",
+ "src/src/core/lib/security/credentials/external/url_external_account_credentials.cc",
+ "src/src/core/lib/security/credentials/external/url_external_account_credentials.h",
+ "src/src/core/lib/security/credentials/fake/fake_credentials.cc",
+ "src/src/core/lib/security/credentials/fake/fake_credentials.h",
+ "src/src/core/lib/security/credentials/google_default/credentials_generic.cc",
+ "src/src/core/lib/security/credentials/google_default/google_default_credentials.cc",
+ "src/src/core/lib/security/credentials/google_default/google_default_credentials.h",
+ "src/src/core/lib/security/credentials/iam/iam_credentials.cc",
+ "src/src/core/lib/security/credentials/iam/iam_credentials.h",
+ "src/src/core/lib/security/credentials/insecure/insecure_credentials.cc",
+ "src/src/core/lib/security/credentials/insecure/insecure_credentials.h",
+ "src/src/core/lib/security/credentials/jwt/json_token.cc",
+ "src/src/core/lib/security/credentials/jwt/json_token.h",
+ "src/src/core/lib/security/credentials/jwt/jwt_credentials.cc",
+ "src/src/core/lib/security/credentials/jwt/jwt_credentials.h",
+ "src/src/core/lib/security/credentials/jwt/jwt_verifier.cc",
+ "src/src/core/lib/security/credentials/jwt/jwt_verifier.h",
+ "src/src/core/lib/security/credentials/local/local_credentials.cc",
+ "src/src/core/lib/security/credentials/local/local_credentials.h",
+ "src/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc",
+ "src/src/core/lib/security/credentials/oauth2/oauth2_credentials.h",
+ "src/src/core/lib/security/credentials/plugin/plugin_credentials.cc",
+ "src/src/core/lib/security/credentials/plugin/plugin_credentials.h",
+ "src/src/core/lib/security/credentials/ssl/ssl_credentials.cc",
+ "src/src/core/lib/security/credentials/ssl/ssl_credentials.h",
+ "src/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc",
+ "src/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h",
+ "src/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc",
+ "src/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h",
+ "src/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.cc",
+ "src/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.h",
+ "src/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc",
+ "src/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h",
+ "src/src/core/lib/security/credentials/tls/tls_credentials.cc",
+ "src/src/core/lib/security/credentials/tls/tls_credentials.h",
+ "src/src/core/lib/security/credentials/tls/tls_utils.cc",
+ "src/src/core/lib/security/credentials/tls/tls_utils.h",
+ "src/src/core/lib/security/credentials/xds/xds_credentials.cc",
+ "src/src/core/lib/security/credentials/xds/xds_credentials.h",
+ "src/src/core/lib/security/security_connector/alts/alts_security_connector.cc",
+ "src/src/core/lib/security/security_connector/alts/alts_security_connector.h",
+ "src/src/core/lib/security/security_connector/fake/fake_security_connector.cc",
+ "src/src/core/lib/security/security_connector/fake/fake_security_connector.h",
+ "src/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc",
+ "src/src/core/lib/security/security_connector/insecure/insecure_security_connector.h",
+ "src/src/core/lib/security/security_connector/load_system_roots.h",
+ "src/src/core/lib/security/security_connector/load_system_roots_fallback.cc",
+ "src/src/core/lib/security/security_connector/load_system_roots_supported.cc",
+ "src/src/core/lib/security/security_connector/load_system_roots_supported.h",
+ "src/src/core/lib/security/security_connector/local/local_security_connector.cc",
+ "src/src/core/lib/security/security_connector/local/local_security_connector.h",
+ "src/src/core/lib/security/security_connector/security_connector.cc",
+ "src/src/core/lib/security/security_connector/security_connector.h",
+ "src/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc",
+ "src/src/core/lib/security/security_connector/ssl/ssl_security_connector.h",
+ "src/src/core/lib/security/security_connector/ssl_utils.cc",
+ "src/src/core/lib/security/security_connector/ssl_utils.h",
+ "src/src/core/lib/security/security_connector/ssl_utils_config.cc",
+ "src/src/core/lib/security/security_connector/ssl_utils_config.h",
+ "src/src/core/lib/security/security_connector/tls/tls_security_connector.cc",
+ "src/src/core/lib/security/security_connector/tls/tls_security_connector.h",
+ "src/src/core/lib/security/transport/auth_filters.h",
+ "src/src/core/lib/security/transport/client_auth_filter.cc",
+ "src/src/core/lib/security/transport/secure_endpoint.cc",
+ "src/src/core/lib/security/transport/secure_endpoint.h",
+ "src/src/core/lib/security/transport/security_handshaker.cc",
+ "src/src/core/lib/security/transport/security_handshaker.h",
+ "src/src/core/lib/security/transport/server_auth_filter.cc",
+ "src/src/core/lib/security/transport/tsi_error.cc",
+ "src/src/core/lib/security/transport/tsi_error.h",
+ "src/src/core/lib/security/util/json_util.cc",
+ "src/src/core/lib/security/util/json_util.h",
+ "src/src/core/lib/service_config/service_config.h",
+ "src/src/core/lib/service_config/service_config_call_data.h",
+ "src/src/core/lib/service_config/service_config_impl.cc",
+ "src/src/core/lib/service_config/service_config_impl.h",
+ "src/src/core/lib/service_config/service_config_parser.cc",
+ "src/src/core/lib/service_config/service_config_parser.h",
+ "src/src/core/lib/slice/b64.cc",
+ "src/src/core/lib/slice/b64.h",
+ "src/src/core/lib/slice/percent_encoding.cc",
+ "src/src/core/lib/slice/percent_encoding.h",
+ "src/src/core/lib/slice/slice.cc",
+ "src/src/core/lib/slice/slice.h",
+ "src/src/core/lib/slice/slice_buffer.cc",
+ "src/src/core/lib/slice/slice_buffer.h",
+ "src/src/core/lib/slice/slice_internal.h",
+ "src/src/core/lib/slice/slice_refcount.cc",
+ "src/src/core/lib/slice/slice_refcount.h",
+ "src/src/core/lib/slice/slice_string_helpers.cc",
+ "src/src/core/lib/slice/slice_string_helpers.h",
+ "src/src/core/lib/surface/api_trace.cc",
+ "src/src/core/lib/surface/api_trace.h",
+ "src/src/core/lib/surface/builtins.cc",
+ "src/src/core/lib/surface/builtins.h",
+ "src/src/core/lib/surface/byte_buffer.cc",
+ "src/src/core/lib/surface/byte_buffer_reader.cc",
+ "src/src/core/lib/surface/call.cc",
+ "src/src/core/lib/surface/call.h",
+ "src/src/core/lib/surface/call_details.cc",
+ "src/src/core/lib/surface/call_log_batch.cc",
+ "src/src/core/lib/surface/call_test_only.h",
+ "src/src/core/lib/surface/call_trace.cc",
+ "src/src/core/lib/surface/call_trace.h",
+ "src/src/core/lib/surface/channel.cc",
+ "src/src/core/lib/surface/channel.h",
+ "src/src/core/lib/surface/channel_init.cc",
+ "src/src/core/lib/surface/channel_init.h",
+ "src/src/core/lib/surface/channel_ping.cc",
+ "src/src/core/lib/surface/channel_stack_type.cc",
+ "src/src/core/lib/surface/channel_stack_type.h",
+ "src/src/core/lib/surface/completion_queue.cc",
+ "src/src/core/lib/surface/completion_queue.h",
+ "src/src/core/lib/surface/completion_queue_factory.cc",
+ "src/src/core/lib/surface/completion_queue_factory.h",
+ "src/src/core/lib/surface/event_string.cc",
+ "src/src/core/lib/surface/event_string.h",
+ "src/src/core/lib/surface/init.cc",
+ "src/src/core/lib/surface/init.h",
+ "src/src/core/lib/surface/init_internally.cc",
+ "src/src/core/lib/surface/init_internally.h",
+ "src/src/core/lib/surface/lame_client.cc",
+ "src/src/core/lib/surface/lame_client.h",
+ "src/src/core/lib/surface/metadata_array.cc",
+ "src/src/core/lib/surface/server.cc",
+ "src/src/core/lib/surface/server.h",
+ "src/src/core/lib/surface/validate_metadata.cc",
+ "src/src/core/lib/surface/validate_metadata.h",
+ "src/src/core/lib/surface/version.cc",
+ "src/src/core/lib/transport/bdp_estimator.cc",
+ "src/src/core/lib/transport/bdp_estimator.h",
+ "src/src/core/lib/transport/connectivity_state.cc",
+ "src/src/core/lib/transport/connectivity_state.h",
+ "src/src/core/lib/transport/error_utils.cc",
+ "src/src/core/lib/transport/error_utils.h",
+ "src/src/core/lib/transport/handshaker.cc",
+ "src/src/core/lib/transport/handshaker.h",
+ "src/src/core/lib/transport/handshaker_factory.h",
+ "src/src/core/lib/transport/handshaker_registry.cc",
+ "src/src/core/lib/transport/handshaker_registry.h",
+ "src/src/core/lib/transport/http2_errors.h",
+ "src/src/core/lib/transport/http_connect_handshaker.cc",
+ "src/src/core/lib/transport/http_connect_handshaker.h",
+ "src/src/core/lib/transport/metadata_batch.cc",
+ "src/src/core/lib/transport/metadata_batch.h",
+ "src/src/core/lib/transport/parsed_metadata.cc",
+ "src/src/core/lib/transport/parsed_metadata.h",
+ "src/src/core/lib/transport/pid_controller.cc",
+ "src/src/core/lib/transport/pid_controller.h",
+ "src/src/core/lib/transport/status_conversion.cc",
+ "src/src/core/lib/transport/status_conversion.h",
+ "src/src/core/lib/transport/tcp_connect_handshaker.cc",
+ "src/src/core/lib/transport/tcp_connect_handshaker.h",
+ "src/src/core/lib/transport/timeout_encoding.cc",
+ "src/src/core/lib/transport/timeout_encoding.h",
+ "src/src/core/lib/transport/transport.cc",
+ "src/src/core/lib/transport/transport.h",
+ "src/src/core/lib/transport/transport_fwd.h",
+ "src/src/core/lib/transport/transport_impl.h",
+ "src/src/core/lib/transport/transport_op_string.cc",
+ "src/src/core/lib/uri/uri_parser.cc",
+ "src/src/core/lib/uri/uri_parser.h",
+ "src/src/core/plugin_registry/grpc_plugin_registry.cc",
+ "src/src/core/plugin_registry/grpc_plugin_registry_extra.cc",
+ "src/src/core/tsi/alts/crypt/aes_gcm.cc",
+ "src/src/core/tsi/alts/crypt/gsec.cc",
+ "src/src/core/tsi/alts/crypt/gsec.h",
+ "src/src/core/tsi/alts/frame_protector/alts_counter.cc",
+ "src/src/core/tsi/alts/frame_protector/alts_counter.h",
+ "src/src/core/tsi/alts/frame_protector/alts_crypter.cc",
+ "src/src/core/tsi/alts/frame_protector/alts_crypter.h",
+ "src/src/core/tsi/alts/frame_protector/alts_frame_protector.cc",
+ "src/src/core/tsi/alts/frame_protector/alts_frame_protector.h",
+ "src/src/core/tsi/alts/frame_protector/alts_record_protocol_crypter_common.cc",
+ "src/src/core/tsi/alts/frame_protector/alts_record_protocol_crypter_common.h",
+ "src/src/core/tsi/alts/frame_protector/alts_seal_privacy_integrity_crypter.cc",
+ "src/src/core/tsi/alts/frame_protector/alts_unseal_privacy_integrity_crypter.cc",
+ "src/src/core/tsi/alts/frame_protector/frame_handler.cc",
+ "src/src/core/tsi/alts/frame_protector/frame_handler.h",
+ "src/src/core/tsi/alts/handshaker/alts_handshaker_client.cc",
+ "src/src/core/tsi/alts/handshaker/alts_handshaker_client.h",
+ "src/src/core/tsi/alts/handshaker/alts_shared_resource.cc",
+ "src/src/core/tsi/alts/handshaker/alts_shared_resource.h",
+ "src/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc",
+ "src/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h",
+ "src/src/core/tsi/alts/handshaker/alts_tsi_handshaker_private.h",
+ "src/src/core/tsi/alts/handshaker/alts_tsi_utils.cc",
+ "src/src/core/tsi/alts/handshaker/alts_tsi_utils.h",
+ "src/src/core/tsi/alts/handshaker/transport_security_common_api.cc",
+ "src/src/core/tsi/alts/handshaker/transport_security_common_api.h",
+ "src/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.cc",
+ "src/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.h",
+ "src/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.cc",
+ "src/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.h",
+ "src/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol.h",
+ "src/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.cc",
+ "src/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.h",
+ "src/src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.cc",
+ "src/src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.h",
+ "src/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc",
+ "src/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.h",
+ "src/src/core/tsi/fake_transport_security.cc",
+ "src/src/core/tsi/fake_transport_security.h",
+ "src/src/core/tsi/local_transport_security.cc",
+ "src/src/core/tsi/local_transport_security.h",
+ "src/src/core/tsi/ssl/key_logging/ssl_key_logging.cc",
+ "src/src/core/tsi/ssl/key_logging/ssl_key_logging.h",
+ "src/src/core/tsi/ssl/session_cache/ssl_session.h",
+ "src/src/core/tsi/ssl/session_cache/ssl_session_boringssl.cc",
+ "src/src/core/tsi/ssl/session_cache/ssl_session_cache.cc",
+ "src/src/core/tsi/ssl/session_cache/ssl_session_cache.h",
+ "src/src/core/tsi/ssl/session_cache/ssl_session_openssl.cc",
+ "src/src/core/tsi/ssl_transport_security.cc",
+ "src/src/core/tsi/ssl_transport_security.h",
+ "src/src/core/tsi/ssl_transport_security_utils.cc",
+ "src/src/core/tsi/ssl_transport_security_utils.h",
+ "src/src/core/tsi/ssl_types.h",
+ "src/src/core/tsi/transport_security.cc",
+ "src/src/core/tsi/transport_security.h",
+ "src/src/core/tsi/transport_security_grpc.cc",
+ "src/src/core/tsi/transport_security_grpc.h",
+ "src/src/core/tsi/transport_security_interface.h",
+ "src/third_party/xxhash/xxhash.h",
+ ]
+ public_deps = [
+ ":absl_cleanup_cleanup",
+ ":absl_container_flat_hash_map",
+ ":absl_container_flat_hash_set",
+ ":absl_container_inlined_vector",
+ ":absl_functional_any_invocable",
+ ":absl_functional_bind_front",
+ ":absl_functional_function_ref",
+ ":absl_hash_hash",
+ ":absl_meta_type_traits",
+ ":absl_status_statusor",
+ ":absl_types_span",
+ ":absl_utility_utility",
+ ":address_sorting",
+ ":boringssl",
+ ":gpr",
+ ":upb",
+ ]
+ public_configs = [ "..:grpc_internal_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("grpc_unsecure") {
+ sources = [
+ "src/src/core/ext/filters/census/grpc_context.cc",
+ "src/src/core/ext/filters/channel_idle/channel_idle_filter.cc",
+ "src/src/core/ext/filters/channel_idle/channel_idle_filter.h",
+ "src/src/core/ext/filters/channel_idle/idle_filter_state.cc",
+ "src/src/core/ext/filters/channel_idle/idle_filter_state.h",
+ "src/src/core/ext/filters/client_channel/backend_metric.cc",
+ "src/src/core/ext/filters/client_channel/backend_metric.h",
+ "src/src/core/ext/filters/client_channel/backup_poller.cc",
+ "src/src/core/ext/filters/client_channel/backup_poller.h",
+ "src/src/core/ext/filters/client_channel/channel_connectivity.cc",
+ "src/src/core/ext/filters/client_channel/client_channel.cc",
+ "src/src/core/ext/filters/client_channel/client_channel.h",
+ "src/src/core/ext/filters/client_channel/client_channel_channelz.cc",
+ "src/src/core/ext/filters/client_channel/client_channel_channelz.h",
+ "src/src/core/ext/filters/client_channel/client_channel_factory.cc",
+ "src/src/core/ext/filters/client_channel/client_channel_factory.h",
+ "src/src/core/ext/filters/client_channel/client_channel_plugin.cc",
+ "src/src/core/ext/filters/client_channel/client_channel_service_config.cc",
+ "src/src/core/ext/filters/client_channel/client_channel_service_config.h",
+ "src/src/core/ext/filters/client_channel/config_selector.cc",
+ "src/src/core/ext/filters/client_channel/config_selector.h",
+ "src/src/core/ext/filters/client_channel/connector.h",
+ "src/src/core/ext/filters/client_channel/dynamic_filters.cc",
+ "src/src/core/ext/filters/client_channel/dynamic_filters.h",
+ "src/src/core/ext/filters/client_channel/global_subchannel_pool.cc",
+ "src/src/core/ext/filters/client_channel/global_subchannel_pool.h",
+ "src/src/core/ext/filters/client_channel/health/health_check_client.cc",
+ "src/src/core/ext/filters/client_channel/health/health_check_client.h",
+ "src/src/core/ext/filters/client_channel/http_proxy.cc",
+ "src/src/core/ext/filters/client_channel/http_proxy.h",
+ "src/src/core/ext/filters/client_channel/lb_call_state_internal.h",
+ "src/src/core/ext/filters/client_channel/lb_policy/address_filtering.cc",
+ "src/src/core/ext/filters/client_channel/lb_policy/address_filtering.h",
+ "src/src/core/ext/filters/client_channel/lb_policy/backend_metric_data.h",
+ "src/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc",
+ "src/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.h",
+ "src/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc",
+ "src/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.h",
+ "src/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc",
+ "src/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h",
+ "src/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc",
+ "src/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.h",
+ "src/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc",
+ "src/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h",
+ "src/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc",
+ "src/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h",
+ "src/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.cc",
+ "src/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.h",
+ "src/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric_internal.h",
+ "src/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.cc",
+ "src/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.h",
+ "src/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc",
+ "src/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc",
+ "src/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc",
+ "src/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h",
+ "src/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc",
+ "src/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc",
+ "src/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h",
+ "src/src/core/ext/filters/client_channel/lb_policy/weighted_round_robin/static_stride_scheduler.cc",
+ "src/src/core/ext/filters/client_channel/lb_policy/weighted_round_robin/static_stride_scheduler.h",
+ "src/src/core/ext/filters/client_channel/lb_policy/weighted_round_robin/weighted_round_robin.cc",
+ "src/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc",
+ "src/src/core/ext/filters/client_channel/local_subchannel_pool.cc",
+ "src/src/core/ext/filters/client_channel/local_subchannel_pool.h",
+ "src/src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc",
+ "src/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc",
+ "src/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h",
+ "src/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc",
+ "src/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc",
+ "src/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc",
+ "src/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h",
+ "src/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc",
+ "src/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc",
+ "src/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.cc",
+ "src/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.h",
+ "src/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc",
+ "src/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc",
+ "src/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h",
+ "src/src/core/ext/filters/client_channel/resolver/polling_resolver.cc",
+ "src/src/core/ext/filters/client_channel/resolver/polling_resolver.h",
+ "src/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc",
+ "src/src/core/ext/filters/client_channel/retry_filter.cc",
+ "src/src/core/ext/filters/client_channel/retry_filter.h",
+ "src/src/core/ext/filters/client_channel/retry_service_config.cc",
+ "src/src/core/ext/filters/client_channel/retry_service_config.h",
+ "src/src/core/ext/filters/client_channel/retry_throttle.cc",
+ "src/src/core/ext/filters/client_channel/retry_throttle.h",
+ "src/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc",
+ "src/src/core/ext/filters/client_channel/subchannel.cc",
+ "src/src/core/ext/filters/client_channel/subchannel.h",
+ "src/src/core/ext/filters/client_channel/subchannel_interface_internal.h",
+ "src/src/core/ext/filters/client_channel/subchannel_pool_interface.cc",
+ "src/src/core/ext/filters/client_channel/subchannel_pool_interface.h",
+ "src/src/core/ext/filters/client_channel/subchannel_stream_client.cc",
+ "src/src/core/ext/filters/client_channel/subchannel_stream_client.h",
+ "src/src/core/ext/filters/deadline/deadline_filter.cc",
+ "src/src/core/ext/filters/deadline/deadline_filter.h",
+ "src/src/core/ext/filters/fault_injection/fault_injection_filter.cc",
+ "src/src/core/ext/filters/fault_injection/fault_injection_filter.h",
+ "src/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.cc",
+ "src/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.h",
+ "src/src/core/ext/filters/http/client/http_client_filter.cc",
+ "src/src/core/ext/filters/http/client/http_client_filter.h",
+ "src/src/core/ext/filters/http/client_authority_filter.cc",
+ "src/src/core/ext/filters/http/client_authority_filter.h",
+ "src/src/core/ext/filters/http/http_filters_plugin.cc",
+ "src/src/core/ext/filters/http/message_compress/compression_filter.cc",
+ "src/src/core/ext/filters/http/message_compress/compression_filter.h",
+ "src/src/core/ext/filters/http/server/http_server_filter.cc",
+ "src/src/core/ext/filters/http/server/http_server_filter.h",
+ "src/src/core/ext/filters/message_size/message_size_filter.cc",
+ "src/src/core/ext/filters/message_size/message_size_filter.h",
+ "src/src/core/ext/transport/chttp2/client/chttp2_connector.cc",
+ "src/src/core/ext/transport/chttp2/client/chttp2_connector.h",
+ "src/src/core/ext/transport/chttp2/server/chttp2_server.cc",
+ "src/src/core/ext/transport/chttp2/server/chttp2_server.h",
+ "src/src/core/ext/transport/chttp2/transport/bin_decoder.cc",
+ "src/src/core/ext/transport/chttp2/transport/bin_decoder.h",
+ "src/src/core/ext/transport/chttp2/transport/bin_encoder.cc",
+ "src/src/core/ext/transport/chttp2/transport/bin_encoder.h",
+ "src/src/core/ext/transport/chttp2/transport/chttp2_transport.cc",
+ "src/src/core/ext/transport/chttp2/transport/chttp2_transport.h",
+ "src/src/core/ext/transport/chttp2/transport/context_list.cc",
+ "src/src/core/ext/transport/chttp2/transport/context_list.h",
+ "src/src/core/ext/transport/chttp2/transport/decode_huff.cc",
+ "src/src/core/ext/transport/chttp2/transport/decode_huff.h",
+ "src/src/core/ext/transport/chttp2/transport/flow_control.cc",
+ "src/src/core/ext/transport/chttp2/transport/flow_control.h",
+ "src/src/core/ext/transport/chttp2/transport/frame.h",
+ "src/src/core/ext/transport/chttp2/transport/frame_data.cc",
+ "src/src/core/ext/transport/chttp2/transport/frame_data.h",
+ "src/src/core/ext/transport/chttp2/transport/frame_goaway.cc",
+ "src/src/core/ext/transport/chttp2/transport/frame_goaway.h",
+ "src/src/core/ext/transport/chttp2/transport/frame_ping.cc",
+ "src/src/core/ext/transport/chttp2/transport/frame_ping.h",
+ "src/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc",
+ "src/src/core/ext/transport/chttp2/transport/frame_rst_stream.h",
+ "src/src/core/ext/transport/chttp2/transport/frame_settings.cc",
+ "src/src/core/ext/transport/chttp2/transport/frame_settings.h",
+ "src/src/core/ext/transport/chttp2/transport/frame_window_update.cc",
+ "src/src/core/ext/transport/chttp2/transport/frame_window_update.h",
+ "src/src/core/ext/transport/chttp2/transport/hpack_constants.h",
+ "src/src/core/ext/transport/chttp2/transport/hpack_encoder.cc",
+ "src/src/core/ext/transport/chttp2/transport/hpack_encoder.h",
+ "src/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc",
+ "src/src/core/ext/transport/chttp2/transport/hpack_encoder_table.h",
+ "src/src/core/ext/transport/chttp2/transport/hpack_parser.cc",
+ "src/src/core/ext/transport/chttp2/transport/hpack_parser.h",
+ "src/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc",
+ "src/src/core/ext/transport/chttp2/transport/hpack_parser_table.h",
+ "src/src/core/ext/transport/chttp2/transport/http2_settings.cc",
+ "src/src/core/ext/transport/chttp2/transport/http2_settings.h",
+ "src/src/core/ext/transport/chttp2/transport/http_trace.cc",
+ "src/src/core/ext/transport/chttp2/transport/http_trace.h",
+ "src/src/core/ext/transport/chttp2/transport/huffsyms.cc",
+ "src/src/core/ext/transport/chttp2/transport/huffsyms.h",
+ "src/src/core/ext/transport/chttp2/transport/internal.h",
+ "src/src/core/ext/transport/chttp2/transport/parsing.cc",
+ "src/src/core/ext/transport/chttp2/transport/stream_lists.cc",
+ "src/src/core/ext/transport/chttp2/transport/stream_map.cc",
+ "src/src/core/ext/transport/chttp2/transport/stream_map.h",
+ "src/src/core/ext/transport/chttp2/transport/varint.cc",
+ "src/src/core/ext/transport/chttp2/transport/varint.h",
+ "src/src/core/ext/transport/chttp2/transport/writing.cc",
+ "src/src/core/ext/transport/inproc/inproc_plugin.cc",
+ "src/src/core/ext/transport/inproc/inproc_transport.cc",
+ "src/src/core/ext/transport/inproc/inproc_transport.h",
+ "src/src/core/ext/upb-generated/google/api/annotations.upb.c",
+ "src/src/core/ext/upb-generated/google/api/annotations.upb.h",
+ "src/src/core/ext/upb-generated/google/api/http.upb.c",
+ "src/src/core/ext/upb-generated/google/api/http.upb.h",
+ "src/src/core/ext/upb-generated/google/protobuf/any.upb.c",
+ "src/src/core/ext/upb-generated/google/protobuf/any.upb.h",
+ "src/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c",
+ "src/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h",
+ "src/src/core/ext/upb-generated/google/protobuf/duration.upb.c",
+ "src/src/core/ext/upb-generated/google/protobuf/duration.upb.h",
+ "src/src/core/ext/upb-generated/google/protobuf/empty.upb.c",
+ "src/src/core/ext/upb-generated/google/protobuf/empty.upb.h",
+ "src/src/core/ext/upb-generated/google/protobuf/struct.upb.c",
+ "src/src/core/ext/upb-generated/google/protobuf/struct.upb.h",
+ "src/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c",
+ "src/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h",
+ "src/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c",
+ "src/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h",
+ "src/src/core/ext/upb-generated/google/rpc/status.upb.c",
+ "src/src/core/ext/upb-generated/google/rpc/status.upb.h",
+ "src/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c",
+ "src/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h",
+ "src/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c",
+ "src/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h",
+ "src/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c",
+ "src/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h",
+ "src/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c",
+ "src/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h",
+ "src/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c",
+ "src/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h",
+ "src/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.c",
+ "src/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.h",
+ "src/src/core/ext/upb-generated/validate/validate.upb.c",
+ "src/src/core/ext/upb-generated/validate/validate.upb.h",
+ "src/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.c",
+ "src/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.h",
+ "src/src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.c",
+ "src/src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.h",
+ "src/src/core/lib/address_utils/parse_address.cc",
+ "src/src/core/lib/address_utils/parse_address.h",
+ "src/src/core/lib/address_utils/sockaddr_utils.cc",
+ "src/src/core/lib/address_utils/sockaddr_utils.h",
+ "src/src/core/lib/avl/avl.h",
+ "src/src/core/lib/backoff/backoff.cc",
+ "src/src/core/lib/backoff/backoff.h",
+ "src/src/core/lib/channel/call_finalization.h",
+ "src/src/core/lib/channel/call_tracer.h",
+ "src/src/core/lib/channel/channel_args.cc",
+ "src/src/core/lib/channel/channel_args.h",
+ "src/src/core/lib/channel/channel_args_preconditioning.cc",
+ "src/src/core/lib/channel/channel_args_preconditioning.h",
+ "src/src/core/lib/channel/channel_fwd.h",
+ "src/src/core/lib/channel/channel_stack.cc",
+ "src/src/core/lib/channel/channel_stack.h",
+ "src/src/core/lib/channel/channel_stack_builder.cc",
+ "src/src/core/lib/channel/channel_stack_builder.h",
+ "src/src/core/lib/channel/channel_stack_builder_impl.cc",
+ "src/src/core/lib/channel/channel_stack_builder_impl.h",
+ "src/src/core/lib/channel/channel_trace.cc",
+ "src/src/core/lib/channel/channel_trace.h",
+ "src/src/core/lib/channel/channelz.cc",
+ "src/src/core/lib/channel/channelz.h",
+ "src/src/core/lib/channel/channelz_registry.cc",
+ "src/src/core/lib/channel/channelz_registry.h",
+ "src/src/core/lib/channel/connected_channel.cc",
+ "src/src/core/lib/channel/connected_channel.h",
+ "src/src/core/lib/channel/context.h",
+ "src/src/core/lib/channel/promise_based_filter.cc",
+ "src/src/core/lib/channel/promise_based_filter.h",
+ "src/src/core/lib/channel/status_util.cc",
+ "src/src/core/lib/channel/status_util.h",
+ "src/src/core/lib/compression/compression.cc",
+ "src/src/core/lib/compression/compression_internal.cc",
+ "src/src/core/lib/compression/compression_internal.h",
+ "src/src/core/lib/compression/message_compress.cc",
+ "src/src/core/lib/compression/message_compress.h",
+ "src/src/core/lib/config/core_configuration.cc",
+ "src/src/core/lib/config/core_configuration.h",
+ "src/src/core/lib/debug/event_log.cc",
+ "src/src/core/lib/debug/event_log.h",
+ "src/src/core/lib/debug/histogram_view.cc",
+ "src/src/core/lib/debug/histogram_view.h",
+ "src/src/core/lib/debug/stats.cc",
+ "src/src/core/lib/debug/stats.h",
+ "src/src/core/lib/debug/stats_data.cc",
+ "src/src/core/lib/debug/stats_data.h",
+ "src/src/core/lib/debug/trace.cc",
+ "src/src/core/lib/debug/trace.h",
+ "src/src/core/lib/event_engine/channel_args_endpoint_config.cc",
+ "src/src/core/lib/event_engine/channel_args_endpoint_config.h",
+ "src/src/core/lib/event_engine/common_closures.h",
+ "src/src/core/lib/event_engine/default_event_engine.cc",
+ "src/src/core/lib/event_engine/default_event_engine.h",
+ "src/src/core/lib/event_engine/default_event_engine_factory.cc",
+ "src/src/core/lib/event_engine/default_event_engine_factory.h",
+ "src/src/core/lib/event_engine/event_engine.cc",
+ "src/src/core/lib/event_engine/executor/executor.h",
+ "src/src/core/lib/event_engine/forkable.cc",
+ "src/src/core/lib/event_engine/forkable.h",
+ "src/src/core/lib/event_engine/handle_containers.h",
+ "src/src/core/lib/event_engine/memory_allocator.cc",
+ "src/src/core/lib/event_engine/poller.h",
+ "src/src/core/lib/event_engine/posix.h",
+ "src/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc",
+ "src/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.h",
+ "src/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc",
+ "src/src/core/lib/event_engine/posix_engine/ev_poll_posix.h",
+ "src/src/core/lib/event_engine/posix_engine/event_poller.h",
+ "src/src/core/lib/event_engine/posix_engine/event_poller_posix_default.cc",
+ "src/src/core/lib/event_engine/posix_engine/event_poller_posix_default.h",
+ "src/src/core/lib/event_engine/posix_engine/internal_errqueue.cc",
+ "src/src/core/lib/event_engine/posix_engine/internal_errqueue.h",
+ "src/src/core/lib/event_engine/posix_engine/lockfree_event.cc",
+ "src/src/core/lib/event_engine/posix_engine/lockfree_event.h",
+ "src/src/core/lib/event_engine/posix_engine/posix_endpoint.cc",
+ "src/src/core/lib/event_engine/posix_engine/posix_endpoint.h",
+ "src/src/core/lib/event_engine/posix_engine/posix_engine.cc",
+ "src/src/core/lib/event_engine/posix_engine/posix_engine.h",
+ "src/src/core/lib/event_engine/posix_engine/posix_engine_closure.h",
+ "src/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc",
+ "src/src/core/lib/event_engine/posix_engine/posix_engine_listener.h",
+ "src/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc",
+ "src/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.h",
+ "src/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc",
+ "src/src/core/lib/event_engine/posix_engine/tcp_socket_utils.h",
+ "src/src/core/lib/event_engine/posix_engine/timer.cc",
+ "src/src/core/lib/event_engine/posix_engine/timer.h",
+ "src/src/core/lib/event_engine/posix_engine/timer_heap.cc",
+ "src/src/core/lib/event_engine/posix_engine/timer_heap.h",
+ "src/src/core/lib/event_engine/posix_engine/timer_manager.cc",
+ "src/src/core/lib/event_engine/posix_engine/timer_manager.h",
+ "src/src/core/lib/event_engine/posix_engine/traced_buffer_list.cc",
+ "src/src/core/lib/event_engine/posix_engine/traced_buffer_list.h",
+ "src/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.cc",
+ "src/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.h",
+ "src/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.cc",
+ "src/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.h",
+ "src/src/core/lib/event_engine/posix_engine/wakeup_fd_posix.h",
+ "src/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.cc",
+ "src/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.h",
+ "src/src/core/lib/event_engine/resolved_address.cc",
+ "src/src/core/lib/event_engine/resolved_address_internal.h",
+ "src/src/core/lib/event_engine/shim.cc",
+ "src/src/core/lib/event_engine/shim.h",
+ "src/src/core/lib/event_engine/slice.cc",
+ "src/src/core/lib/event_engine/slice_buffer.cc",
+ "src/src/core/lib/event_engine/tcp_socket_utils.cc",
+ "src/src/core/lib/event_engine/tcp_socket_utils.h",
+ "src/src/core/lib/event_engine/thread_pool.cc",
+ "src/src/core/lib/event_engine/thread_pool.h",
+ "src/src/core/lib/event_engine/time_util.cc",
+ "src/src/core/lib/event_engine/time_util.h",
+ "src/src/core/lib/event_engine/trace.cc",
+ "src/src/core/lib/event_engine/trace.h",
+ "src/src/core/lib/event_engine/utils.cc",
+ "src/src/core/lib/event_engine/utils.h",
+ "src/src/core/lib/event_engine/windows/iocp.cc",
+ "src/src/core/lib/event_engine/windows/iocp.h",
+ "src/src/core/lib/event_engine/windows/win_socket.cc",
+ "src/src/core/lib/event_engine/windows/win_socket.h",
+ "src/src/core/lib/event_engine/windows/windows_endpoint.cc",
+ "src/src/core/lib/event_engine/windows/windows_endpoint.h",
+ "src/src/core/lib/event_engine/windows/windows_engine.cc",
+ "src/src/core/lib/event_engine/windows/windows_engine.h",
+ "src/src/core/lib/experiments/config.cc",
+ "src/src/core/lib/experiments/config.h",
+ "src/src/core/lib/experiments/experiments.cc",
+ "src/src/core/lib/experiments/experiments.h",
+ "src/src/core/lib/gpr/spinlock.h",
+ "src/src/core/lib/gprpp/atomic_utils.h",
+ "src/src/core/lib/gprpp/bitset.h",
+ "src/src/core/lib/gprpp/chunked_vector.h",
+ "src/src/core/lib/gprpp/cpp_impl_of.h",
+ "src/src/core/lib/gprpp/dual_ref_counted.h",
+ "src/src/core/lib/gprpp/load_file.cc",
+ "src/src/core/lib/gprpp/load_file.h",
+ "src/src/core/lib/gprpp/manual_constructor.h",
+ "src/src/core/lib/gprpp/match.h",
+ "src/src/core/lib/gprpp/notification.h",
+ "src/src/core/lib/gprpp/orphanable.h",
+ "src/src/core/lib/gprpp/overload.h",
+ "src/src/core/lib/gprpp/packed_table.h",
+ "src/src/core/lib/gprpp/per_cpu.h",
+ "src/src/core/lib/gprpp/ref_counted.h",
+ "src/src/core/lib/gprpp/ref_counted_ptr.h",
+ "src/src/core/lib/gprpp/single_set_ptr.h",
+ "src/src/core/lib/gprpp/sorted_pack.h",
+ "src/src/core/lib/gprpp/status_helper.cc",
+ "src/src/core/lib/gprpp/status_helper.h",
+ "src/src/core/lib/gprpp/table.h",
+ "src/src/core/lib/gprpp/time.cc",
+ "src/src/core/lib/gprpp/time.h",
+ "src/src/core/lib/gprpp/time_averaged_stats.cc",
+ "src/src/core/lib/gprpp/time_averaged_stats.h",
+ "src/src/core/lib/gprpp/unique_type_name.h",
+ "src/src/core/lib/gprpp/validation_errors.cc",
+ "src/src/core/lib/gprpp/validation_errors.h",
+ "src/src/core/lib/gprpp/work_serializer.cc",
+ "src/src/core/lib/gprpp/work_serializer.h",
+ "src/src/core/lib/handshaker/proxy_mapper.h",
+ "src/src/core/lib/handshaker/proxy_mapper_registry.cc",
+ "src/src/core/lib/handshaker/proxy_mapper_registry.h",
+ "src/src/core/lib/http/format_request.cc",
+ "src/src/core/lib/http/format_request.h",
+ "src/src/core/lib/http/httpcli.cc",
+ "src/src/core/lib/http/httpcli.h",
+ "src/src/core/lib/http/parser.cc",
+ "src/src/core/lib/http/parser.h",
+ "src/src/core/lib/iomgr/block_annotate.h",
+ "src/src/core/lib/iomgr/buffer_list.cc",
+ "src/src/core/lib/iomgr/buffer_list.h",
+ "src/src/core/lib/iomgr/call_combiner.cc",
+ "src/src/core/lib/iomgr/call_combiner.h",
+ "src/src/core/lib/iomgr/cfstream_handle.cc",
+ "src/src/core/lib/iomgr/cfstream_handle.h",
+ "src/src/core/lib/iomgr/closure.cc",
+ "src/src/core/lib/iomgr/closure.h",
+ "src/src/core/lib/iomgr/combiner.cc",
+ "src/src/core/lib/iomgr/combiner.h",
+ "src/src/core/lib/iomgr/dualstack_socket_posix.cc",
+ "src/src/core/lib/iomgr/dynamic_annotations.h",
+ "src/src/core/lib/iomgr/endpoint.cc",
+ "src/src/core/lib/iomgr/endpoint.h",
+ "src/src/core/lib/iomgr/endpoint_cfstream.cc",
+ "src/src/core/lib/iomgr/endpoint_cfstream.h",
+ "src/src/core/lib/iomgr/endpoint_pair.h",
+ "src/src/core/lib/iomgr/endpoint_pair_posix.cc",
+ "src/src/core/lib/iomgr/endpoint_pair_windows.cc",
+ "src/src/core/lib/iomgr/error.cc",
+ "src/src/core/lib/iomgr/error.h",
+ "src/src/core/lib/iomgr/error_cfstream.cc",
+ "src/src/core/lib/iomgr/error_cfstream.h",
+ "src/src/core/lib/iomgr/ev_apple.cc",
+ "src/src/core/lib/iomgr/ev_apple.h",
+ "src/src/core/lib/iomgr/ev_epoll1_linux.cc",
+ "src/src/core/lib/iomgr/ev_epoll1_linux.h",
+ "src/src/core/lib/iomgr/ev_poll_posix.cc",
+ "src/src/core/lib/iomgr/ev_poll_posix.h",
+ "src/src/core/lib/iomgr/ev_posix.cc",
+ "src/src/core/lib/iomgr/ev_posix.h",
+ "src/src/core/lib/iomgr/ev_windows.cc",
+ "src/src/core/lib/iomgr/event_engine_shims/closure.cc",
+ "src/src/core/lib/iomgr/event_engine_shims/closure.h",
+ "src/src/core/lib/iomgr/event_engine_shims/endpoint.cc",
+ "src/src/core/lib/iomgr/event_engine_shims/endpoint.h",
+ "src/src/core/lib/iomgr/event_engine_shims/tcp_client.cc",
+ "src/src/core/lib/iomgr/event_engine_shims/tcp_client.h",
+ "src/src/core/lib/iomgr/exec_ctx.cc",
+ "src/src/core/lib/iomgr/exec_ctx.h",
+ "src/src/core/lib/iomgr/executor.cc",
+ "src/src/core/lib/iomgr/executor.h",
+ "src/src/core/lib/iomgr/fork_posix.cc",
+ "src/src/core/lib/iomgr/fork_windows.cc",
+ "src/src/core/lib/iomgr/gethostname.h",
+ "src/src/core/lib/iomgr/gethostname_fallback.cc",
+ "src/src/core/lib/iomgr/gethostname_host_name_max.cc",
+ "src/src/core/lib/iomgr/gethostname_sysconf.cc",
+ "src/src/core/lib/iomgr/grpc_if_nametoindex.h",
+ "src/src/core/lib/iomgr/grpc_if_nametoindex_posix.cc",
+ "src/src/core/lib/iomgr/grpc_if_nametoindex_unsupported.cc",
+ "src/src/core/lib/iomgr/internal_errqueue.cc",
+ "src/src/core/lib/iomgr/internal_errqueue.h",
+ "src/src/core/lib/iomgr/iocp_windows.cc",
+ "src/src/core/lib/iomgr/iocp_windows.h",
+ "src/src/core/lib/iomgr/iomgr.cc",
+ "src/src/core/lib/iomgr/iomgr.h",
+ "src/src/core/lib/iomgr/iomgr_fwd.h",
+ "src/src/core/lib/iomgr/iomgr_internal.cc",
+ "src/src/core/lib/iomgr/iomgr_internal.h",
+ "src/src/core/lib/iomgr/iomgr_posix.cc",
+ "src/src/core/lib/iomgr/iomgr_posix_cfstream.cc",
+ "src/src/core/lib/iomgr/iomgr_windows.cc",
+ "src/src/core/lib/iomgr/load_file.cc",
+ "src/src/core/lib/iomgr/load_file.h",
+ "src/src/core/lib/iomgr/lockfree_event.cc",
+ "src/src/core/lib/iomgr/lockfree_event.h",
+ "src/src/core/lib/iomgr/nameser.h",
+ "src/src/core/lib/iomgr/polling_entity.cc",
+ "src/src/core/lib/iomgr/polling_entity.h",
+ "src/src/core/lib/iomgr/pollset.cc",
+ "src/src/core/lib/iomgr/pollset.h",
+ "src/src/core/lib/iomgr/pollset_set.cc",
+ "src/src/core/lib/iomgr/pollset_set.h",
+ "src/src/core/lib/iomgr/pollset_set_windows.cc",
+ "src/src/core/lib/iomgr/pollset_set_windows.h",
+ "src/src/core/lib/iomgr/pollset_windows.cc",
+ "src/src/core/lib/iomgr/pollset_windows.h",
+ "src/src/core/lib/iomgr/port.h",
+ "src/src/core/lib/iomgr/python_util.h",
+ "src/src/core/lib/iomgr/resolve_address.cc",
+ "src/src/core/lib/iomgr/resolve_address.h",
+ "src/src/core/lib/iomgr/resolve_address_impl.h",
+ "src/src/core/lib/iomgr/resolve_address_posix.cc",
+ "src/src/core/lib/iomgr/resolve_address_posix.h",
+ "src/src/core/lib/iomgr/resolve_address_windows.cc",
+ "src/src/core/lib/iomgr/resolve_address_windows.h",
+ "src/src/core/lib/iomgr/resolved_address.h",
+ "src/src/core/lib/iomgr/sockaddr.h",
+ "src/src/core/lib/iomgr/sockaddr_posix.h",
+ "src/src/core/lib/iomgr/sockaddr_utils_posix.cc",
+ "src/src/core/lib/iomgr/sockaddr_windows.h",
+ "src/src/core/lib/iomgr/socket_factory_posix.cc",
+ "src/src/core/lib/iomgr/socket_factory_posix.h",
+ "src/src/core/lib/iomgr/socket_mutator.cc",
+ "src/src/core/lib/iomgr/socket_mutator.h",
+ "src/src/core/lib/iomgr/socket_utils.h",
+ "src/src/core/lib/iomgr/socket_utils_common_posix.cc",
+ "src/src/core/lib/iomgr/socket_utils_linux.cc",
+ "src/src/core/lib/iomgr/socket_utils_posix.cc",
+ "src/src/core/lib/iomgr/socket_utils_posix.h",
+ "src/src/core/lib/iomgr/socket_utils_windows.cc",
+ "src/src/core/lib/iomgr/socket_windows.cc",
+ "src/src/core/lib/iomgr/socket_windows.h",
+ "src/src/core/lib/iomgr/systemd_utils.cc",
+ "src/src/core/lib/iomgr/systemd_utils.h",
+ "src/src/core/lib/iomgr/tcp_client.cc",
+ "src/src/core/lib/iomgr/tcp_client.h",
+ "src/src/core/lib/iomgr/tcp_client_cfstream.cc",
+ "src/src/core/lib/iomgr/tcp_client_posix.cc",
+ "src/src/core/lib/iomgr/tcp_client_posix.h",
+ "src/src/core/lib/iomgr/tcp_client_windows.cc",
+ "src/src/core/lib/iomgr/tcp_posix.cc",
+ "src/src/core/lib/iomgr/tcp_posix.h",
+ "src/src/core/lib/iomgr/tcp_server.cc",
+ "src/src/core/lib/iomgr/tcp_server.h",
+ "src/src/core/lib/iomgr/tcp_server_posix.cc",
+ "src/src/core/lib/iomgr/tcp_server_utils_posix.h",
+ "src/src/core/lib/iomgr/tcp_server_utils_posix_common.cc",
+ "src/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc",
+ "src/src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc",
+ "src/src/core/lib/iomgr/tcp_server_windows.cc",
+ "src/src/core/lib/iomgr/tcp_windows.cc",
+ "src/src/core/lib/iomgr/tcp_windows.h",
+ "src/src/core/lib/iomgr/timer.cc",
+ "src/src/core/lib/iomgr/timer.h",
+ "src/src/core/lib/iomgr/timer_generic.cc",
+ "src/src/core/lib/iomgr/timer_generic.h",
+ "src/src/core/lib/iomgr/timer_heap.cc",
+ "src/src/core/lib/iomgr/timer_heap.h",
+ "src/src/core/lib/iomgr/timer_manager.cc",
+ "src/src/core/lib/iomgr/timer_manager.h",
+ "src/src/core/lib/iomgr/unix_sockets_posix.cc",
+ "src/src/core/lib/iomgr/unix_sockets_posix.h",
+ "src/src/core/lib/iomgr/unix_sockets_posix_noop.cc",
+ "src/src/core/lib/iomgr/wakeup_fd_eventfd.cc",
+ "src/src/core/lib/iomgr/wakeup_fd_nospecial.cc",
+ "src/src/core/lib/iomgr/wakeup_fd_pipe.cc",
+ "src/src/core/lib/iomgr/wakeup_fd_pipe.h",
+ "src/src/core/lib/iomgr/wakeup_fd_posix.cc",
+ "src/src/core/lib/iomgr/wakeup_fd_posix.h",
+ "src/src/core/lib/json/json.h",
+ "src/src/core/lib/json/json_args.h",
+ "src/src/core/lib/json/json_channel_args.h",
+ "src/src/core/lib/json/json_object_loader.cc",
+ "src/src/core/lib/json/json_object_loader.h",
+ "src/src/core/lib/json/json_reader.cc",
+ "src/src/core/lib/json/json_writer.cc",
+ "src/src/core/lib/load_balancing/lb_policy.cc",
+ "src/src/core/lib/load_balancing/lb_policy.h",
+ "src/src/core/lib/load_balancing/lb_policy_factory.h",
+ "src/src/core/lib/load_balancing/lb_policy_registry.cc",
+ "src/src/core/lib/load_balancing/lb_policy_registry.h",
+ "src/src/core/lib/load_balancing/subchannel_interface.h",
+ "src/src/core/lib/promise/activity.cc",
+ "src/src/core/lib/promise/activity.h",
+ "src/src/core/lib/promise/arena_promise.h",
+ "src/src/core/lib/promise/context.h",
+ "src/src/core/lib/promise/detail/basic_join.h",
+ "src/src/core/lib/promise/detail/basic_seq.h",
+ "src/src/core/lib/promise/detail/promise_factory.h",
+ "src/src/core/lib/promise/detail/promise_like.h",
+ "src/src/core/lib/promise/detail/status.h",
+ "src/src/core/lib/promise/detail/switch.h",
+ "src/src/core/lib/promise/exec_ctx_wakeup_scheduler.h",
+ "src/src/core/lib/promise/if.h",
+ "src/src/core/lib/promise/interceptor_list.h",
+ "src/src/core/lib/promise/intra_activity_waiter.h",
+ "src/src/core/lib/promise/latch.h",
+ "src/src/core/lib/promise/loop.h",
+ "src/src/core/lib/promise/map.h",
+ "src/src/core/lib/promise/pipe.h",
+ "src/src/core/lib/promise/poll.h",
+ "src/src/core/lib/promise/promise.h",
+ "src/src/core/lib/promise/race.h",
+ "src/src/core/lib/promise/seq.h",
+ "src/src/core/lib/promise/sleep.cc",
+ "src/src/core/lib/promise/sleep.h",
+ "src/src/core/lib/promise/trace.cc",
+ "src/src/core/lib/promise/trace.h",
+ "src/src/core/lib/promise/try_join.h",
+ "src/src/core/lib/promise/try_seq.h",
+ "src/src/core/lib/resolver/resolver.cc",
+ "src/src/core/lib/resolver/resolver.h",
+ "src/src/core/lib/resolver/resolver_factory.h",
+ "src/src/core/lib/resolver/resolver_registry.cc",
+ "src/src/core/lib/resolver/resolver_registry.h",
+ "src/src/core/lib/resolver/server_address.cc",
+ "src/src/core/lib/resolver/server_address.h",
+ "src/src/core/lib/resource_quota/api.cc",
+ "src/src/core/lib/resource_quota/api.h",
+ "src/src/core/lib/resource_quota/arena.cc",
+ "src/src/core/lib/resource_quota/arena.h",
+ "src/src/core/lib/resource_quota/memory_quota.cc",
+ "src/src/core/lib/resource_quota/memory_quota.h",
+ "src/src/core/lib/resource_quota/periodic_update.cc",
+ "src/src/core/lib/resource_quota/periodic_update.h",
+ "src/src/core/lib/resource_quota/resource_quota.cc",
+ "src/src/core/lib/resource_quota/resource_quota.h",
+ "src/src/core/lib/resource_quota/thread_quota.cc",
+ "src/src/core/lib/resource_quota/thread_quota.h",
+ "src/src/core/lib/resource_quota/trace.cc",
+ "src/src/core/lib/resource_quota/trace.h",
+ "src/src/core/lib/security/authorization/authorization_engine.h",
+ "src/src/core/lib/security/authorization/authorization_policy_provider.h",
+ "src/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc",
+ "src/src/core/lib/security/authorization/evaluate_args.cc",
+ "src/src/core/lib/security/authorization/evaluate_args.h",
+ "src/src/core/lib/security/authorization/grpc_server_authz_filter.cc",
+ "src/src/core/lib/security/authorization/grpc_server_authz_filter.h",
+ "src/src/core/lib/security/certificate_provider/certificate_provider_factory.h",
+ "src/src/core/lib/security/certificate_provider/certificate_provider_registry.cc",
+ "src/src/core/lib/security/certificate_provider/certificate_provider_registry.h",
+ "src/src/core/lib/security/context/security_context.cc",
+ "src/src/core/lib/security/context/security_context.h",
+ "src/src/core/lib/security/credentials/alts/check_gcp_environment.cc",
+ "src/src/core/lib/security/credentials/alts/check_gcp_environment.h",
+ "src/src/core/lib/security/credentials/alts/check_gcp_environment_linux.cc",
+ "src/src/core/lib/security/credentials/alts/check_gcp_environment_no_op.cc",
+ "src/src/core/lib/security/credentials/alts/check_gcp_environment_windows.cc",
+ "src/src/core/lib/security/credentials/alts/grpc_alts_credentials_client_options.cc",
+ "src/src/core/lib/security/credentials/alts/grpc_alts_credentials_options.cc",
+ "src/src/core/lib/security/credentials/alts/grpc_alts_credentials_options.h",
+ "src/src/core/lib/security/credentials/alts/grpc_alts_credentials_server_options.cc",
+ "src/src/core/lib/security/credentials/call_creds_util.cc",
+ "src/src/core/lib/security/credentials/call_creds_util.h",
+ "src/src/core/lib/security/credentials/channel_creds_registry.h",
+ "src/src/core/lib/security/credentials/composite/composite_credentials.cc",
+ "src/src/core/lib/security/credentials/composite/composite_credentials.h",
+ "src/src/core/lib/security/credentials/credentials.cc",
+ "src/src/core/lib/security/credentials/credentials.h",
+ "src/src/core/lib/security/credentials/fake/fake_credentials.cc",
+ "src/src/core/lib/security/credentials/fake/fake_credentials.h",
+ "src/src/core/lib/security/credentials/insecure/insecure_credentials.cc",
+ "src/src/core/lib/security/credentials/insecure/insecure_credentials.h",
+ "src/src/core/lib/security/credentials/plugin/plugin_credentials.cc",
+ "src/src/core/lib/security/credentials/plugin/plugin_credentials.h",
+ "src/src/core/lib/security/credentials/tls/tls_utils.cc",
+ "src/src/core/lib/security/credentials/tls/tls_utils.h",
+ "src/src/core/lib/security/security_connector/fake/fake_security_connector.cc",
+ "src/src/core/lib/security/security_connector/fake/fake_security_connector.h",
+ "src/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc",
+ "src/src/core/lib/security/security_connector/insecure/insecure_security_connector.h",
+ "src/src/core/lib/security/security_connector/load_system_roots.h",
+ "src/src/core/lib/security/security_connector/load_system_roots_fallback.cc",
+ "src/src/core/lib/security/security_connector/load_system_roots_supported.cc",
+ "src/src/core/lib/security/security_connector/load_system_roots_supported.h",
+ "src/src/core/lib/security/security_connector/security_connector.cc",
+ "src/src/core/lib/security/security_connector/security_connector.h",
+ "src/src/core/lib/security/transport/auth_filters.h",
+ "src/src/core/lib/security/transport/client_auth_filter.cc",
+ "src/src/core/lib/security/transport/secure_endpoint.cc",
+ "src/src/core/lib/security/transport/secure_endpoint.h",
+ "src/src/core/lib/security/transport/security_handshaker.cc",
+ "src/src/core/lib/security/transport/security_handshaker.h",
+ "src/src/core/lib/security/transport/server_auth_filter.cc",
+ "src/src/core/lib/security/transport/tsi_error.cc",
+ "src/src/core/lib/security/transport/tsi_error.h",
+ "src/src/core/lib/security/util/json_util.cc",
+ "src/src/core/lib/security/util/json_util.h",
+ "src/src/core/lib/service_config/service_config.h",
+ "src/src/core/lib/service_config/service_config_call_data.h",
+ "src/src/core/lib/service_config/service_config_impl.cc",
+ "src/src/core/lib/service_config/service_config_impl.h",
+ "src/src/core/lib/service_config/service_config_parser.cc",
+ "src/src/core/lib/service_config/service_config_parser.h",
+ "src/src/core/lib/slice/b64.cc",
+ "src/src/core/lib/slice/b64.h",
+ "src/src/core/lib/slice/percent_encoding.cc",
+ "src/src/core/lib/slice/percent_encoding.h",
+ "src/src/core/lib/slice/slice.cc",
+ "src/src/core/lib/slice/slice.h",
+ "src/src/core/lib/slice/slice_buffer.cc",
+ "src/src/core/lib/slice/slice_buffer.h",
+ "src/src/core/lib/slice/slice_internal.h",
+ "src/src/core/lib/slice/slice_refcount.cc",
+ "src/src/core/lib/slice/slice_refcount.h",
+ "src/src/core/lib/slice/slice_string_helpers.cc",
+ "src/src/core/lib/slice/slice_string_helpers.h",
+ "src/src/core/lib/surface/api_trace.cc",
+ "src/src/core/lib/surface/api_trace.h",
+ "src/src/core/lib/surface/builtins.cc",
+ "src/src/core/lib/surface/builtins.h",
+ "src/src/core/lib/surface/byte_buffer.cc",
+ "src/src/core/lib/surface/byte_buffer_reader.cc",
+ "src/src/core/lib/surface/call.cc",
+ "src/src/core/lib/surface/call.h",
+ "src/src/core/lib/surface/call_details.cc",
+ "src/src/core/lib/surface/call_log_batch.cc",
+ "src/src/core/lib/surface/call_test_only.h",
+ "src/src/core/lib/surface/call_trace.cc",
+ "src/src/core/lib/surface/call_trace.h",
+ "src/src/core/lib/surface/channel.cc",
+ "src/src/core/lib/surface/channel.h",
+ "src/src/core/lib/surface/channel_init.cc",
+ "src/src/core/lib/surface/channel_init.h",
+ "src/src/core/lib/surface/channel_ping.cc",
+ "src/src/core/lib/surface/channel_stack_type.cc",
+ "src/src/core/lib/surface/channel_stack_type.h",
+ "src/src/core/lib/surface/completion_queue.cc",
+ "src/src/core/lib/surface/completion_queue.h",
+ "src/src/core/lib/surface/completion_queue_factory.cc",
+ "src/src/core/lib/surface/completion_queue_factory.h",
+ "src/src/core/lib/surface/event_string.cc",
+ "src/src/core/lib/surface/event_string.h",
+ "src/src/core/lib/surface/init.cc",
+ "src/src/core/lib/surface/init.h",
+ "src/src/core/lib/surface/init_internally.cc",
+ "src/src/core/lib/surface/init_internally.h",
+ "src/src/core/lib/surface/lame_client.cc",
+ "src/src/core/lib/surface/lame_client.h",
+ "src/src/core/lib/surface/metadata_array.cc",
+ "src/src/core/lib/surface/server.cc",
+ "src/src/core/lib/surface/server.h",
+ "src/src/core/lib/surface/validate_metadata.cc",
+ "src/src/core/lib/surface/validate_metadata.h",
+ "src/src/core/lib/surface/version.cc",
+ "src/src/core/lib/transport/bdp_estimator.cc",
+ "src/src/core/lib/transport/bdp_estimator.h",
+ "src/src/core/lib/transport/connectivity_state.cc",
+ "src/src/core/lib/transport/connectivity_state.h",
+ "src/src/core/lib/transport/error_utils.cc",
+ "src/src/core/lib/transport/error_utils.h",
+ "src/src/core/lib/transport/handshaker.cc",
+ "src/src/core/lib/transport/handshaker.h",
+ "src/src/core/lib/transport/handshaker_factory.h",
+ "src/src/core/lib/transport/handshaker_registry.cc",
+ "src/src/core/lib/transport/handshaker_registry.h",
+ "src/src/core/lib/transport/http2_errors.h",
+ "src/src/core/lib/transport/http_connect_handshaker.cc",
+ "src/src/core/lib/transport/http_connect_handshaker.h",
+ "src/src/core/lib/transport/metadata_batch.cc",
+ "src/src/core/lib/transport/metadata_batch.h",
+ "src/src/core/lib/transport/parsed_metadata.cc",
+ "src/src/core/lib/transport/parsed_metadata.h",
+ "src/src/core/lib/transport/pid_controller.cc",
+ "src/src/core/lib/transport/pid_controller.h",
+ "src/src/core/lib/transport/status_conversion.cc",
+ "src/src/core/lib/transport/status_conversion.h",
+ "src/src/core/lib/transport/tcp_connect_handshaker.cc",
+ "src/src/core/lib/transport/tcp_connect_handshaker.h",
+ "src/src/core/lib/transport/timeout_encoding.cc",
+ "src/src/core/lib/transport/timeout_encoding.h",
+ "src/src/core/lib/transport/transport.cc",
+ "src/src/core/lib/transport/transport.h",
+ "src/src/core/lib/transport/transport_fwd.h",
+ "src/src/core/lib/transport/transport_impl.h",
+ "src/src/core/lib/transport/transport_op_string.cc",
+ "src/src/core/lib/uri/uri_parser.cc",
+ "src/src/core/lib/uri/uri_parser.h",
+ "src/src/core/plugin_registry/grpc_plugin_registry.cc",
+ "src/src/core/plugin_registry/grpc_plugin_registry_noextra.cc",
+ "src/src/core/tsi/alts/handshaker/transport_security_common_api.cc",
+ "src/src/core/tsi/alts/handshaker/transport_security_common_api.h",
+ "src/src/core/tsi/fake_transport_security.cc",
+ "src/src/core/tsi/fake_transport_security.h",
+ "src/src/core/tsi/local_transport_security.cc",
+ "src/src/core/tsi/local_transport_security.h",
+ "src/src/core/tsi/transport_security.cc",
+ "src/src/core/tsi/transport_security.h",
+ "src/src/core/tsi/transport_security_grpc.cc",
+ "src/src/core/tsi/transport_security_grpc.h",
+ "src/src/core/tsi/transport_security_interface.h",
+ "src/third_party/xxhash/xxhash.h",
+ ]
+ public_deps = [
+ ":absl_cleanup_cleanup",
+ ":absl_container_flat_hash_map",
+ ":absl_container_flat_hash_set",
+ ":absl_container_inlined_vector",
+ ":absl_functional_any_invocable",
+ ":absl_functional_bind_front",
+ ":absl_functional_function_ref",
+ ":absl_hash_hash",
+ ":absl_meta_type_traits",
+ ":absl_status_statusor",
+ ":absl_types_span",
+ ":absl_utility_utility",
+ ":address_sorting",
+ ":gpr",
+ ":upb",
+ ]
+ public_configs = [ "..:grpc_internal_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("grpc++") {
+ sources = [
+ "src/src/core/ext/transport/binder/client/binder_connector.cc",
+ "src/src/core/ext/transport/binder/client/binder_connector.h",
+ "src/src/core/ext/transport/binder/client/channel_create.cc",
+ "src/src/core/ext/transport/binder/client/channel_create_impl.cc",
+ "src/src/core/ext/transport/binder/client/channel_create_impl.h",
+ "src/src/core/ext/transport/binder/client/connection_id_generator.cc",
+ "src/src/core/ext/transport/binder/client/connection_id_generator.h",
+ "src/src/core/ext/transport/binder/client/endpoint_binder_pool.cc",
+ "src/src/core/ext/transport/binder/client/endpoint_binder_pool.h",
+ "src/src/core/ext/transport/binder/client/jni_utils.cc",
+ "src/src/core/ext/transport/binder/client/jni_utils.h",
+ "src/src/core/ext/transport/binder/client/security_policy_setting.cc",
+ "src/src/core/ext/transport/binder/client/security_policy_setting.h",
+ "src/src/core/ext/transport/binder/security_policy/binder_security_policy.cc",
+ "src/src/core/ext/transport/binder/server/binder_server.cc",
+ "src/src/core/ext/transport/binder/server/binder_server.h",
+ "src/src/core/ext/transport/binder/server/binder_server_credentials.cc",
+ "src/src/core/ext/transport/binder/transport/binder_stream.h",
+ "src/src/core/ext/transport/binder/transport/binder_transport.cc",
+ "src/src/core/ext/transport/binder/transport/binder_transport.h",
+ "src/src/core/ext/transport/binder/utils/binder_auto_utils.h",
+ "src/src/core/ext/transport/binder/utils/ndk_binder.cc",
+ "src/src/core/ext/transport/binder/utils/ndk_binder.h",
+ "src/src/core/ext/transport/binder/utils/transport_stream_receiver.h",
+ "src/src/core/ext/transport/binder/utils/transport_stream_receiver_impl.cc",
+ "src/src/core/ext/transport/binder/utils/transport_stream_receiver_impl.h",
+ "src/src/core/ext/transport/binder/wire_format/binder.h",
+ "src/src/core/ext/transport/binder/wire_format/binder_android.cc",
+ "src/src/core/ext/transport/binder/wire_format/binder_android.h",
+ "src/src/core/ext/transport/binder/wire_format/binder_constants.cc",
+ "src/src/core/ext/transport/binder/wire_format/binder_constants.h",
+ "src/src/core/ext/transport/binder/wire_format/transaction.cc",
+ "src/src/core/ext/transport/binder/wire_format/transaction.h",
+ "src/src/core/ext/transport/binder/wire_format/wire_reader.h",
+ "src/src/core/ext/transport/binder/wire_format/wire_reader_impl.cc",
+ "src/src/core/ext/transport/binder/wire_format/wire_reader_impl.h",
+ "src/src/core/ext/transport/binder/wire_format/wire_writer.cc",
+ "src/src/core/ext/transport/binder/wire_format/wire_writer.h",
+ "src/src/cpp/client/channel_cc.cc",
+ "src/src/cpp/client/client_callback.cc",
+ "src/src/cpp/client/client_context.cc",
+ "src/src/cpp/client/client_interceptor.cc",
+ "src/src/cpp/client/create_channel.cc",
+ "src/src/cpp/client/create_channel_internal.cc",
+ "src/src/cpp/client/create_channel_internal.h",
+ "src/src/cpp/client/create_channel_posix.cc",
+ "src/src/cpp/client/insecure_credentials.cc",
+ "src/src/cpp/client/secure_credentials.cc",
+ "src/src/cpp/client/secure_credentials.h",
+ "src/src/cpp/client/xds_credentials.cc",
+ "src/src/cpp/common/alarm.cc",
+ "src/src/cpp/common/auth_property_iterator.cc",
+ "src/src/cpp/common/channel_arguments.cc",
+ "src/src/cpp/common/channel_filter.cc",
+ "src/src/cpp/common/channel_filter.h",
+ "src/src/cpp/common/completion_queue_cc.cc",
+ "src/src/cpp/common/resource_quota_cc.cc",
+ "src/src/cpp/common/rpc_method.cc",
+ "src/src/cpp/common/secure_auth_context.cc",
+ "src/src/cpp/common/secure_auth_context.h",
+ "src/src/cpp/common/secure_channel_arguments.cc",
+ "src/src/cpp/common/secure_create_auth_context.cc",
+ "src/src/cpp/common/tls_certificate_provider.cc",
+ "src/src/cpp/common/tls_certificate_verifier.cc",
+ "src/src/cpp/common/tls_credentials_options.cc",
+ "src/src/cpp/common/validate_service_config.cc",
+ "src/src/cpp/common/version_cc.cc",
+ "src/src/cpp/server/async_generic_service.cc",
+ "src/src/cpp/server/channel_argument_option.cc",
+ "src/src/cpp/server/create_default_thread_pool.cc",
+ "src/src/cpp/server/dynamic_thread_pool.h",
+ "src/src/cpp/server/external_connection_acceptor_impl.cc",
+ "src/src/cpp/server/external_connection_acceptor_impl.h",
+ "src/src/cpp/server/health/default_health_check_service.cc",
+ "src/src/cpp/server/health/default_health_check_service.h",
+ "src/src/cpp/server/health/health_check_service.cc",
+ "src/src/cpp/server/health/health_check_service_server_builder_option.cc",
+ "src/src/cpp/server/insecure_server_credentials.cc",
+ "src/src/cpp/server/orca/call_metric_recorder.cc",
+ "src/src/cpp/server/secure_server_credentials.cc",
+ "src/src/cpp/server/secure_server_credentials.h",
+ "src/src/cpp/server/server_builder.cc",
+ "src/src/cpp/server/server_callback.cc",
+ "src/src/cpp/server/server_cc.cc",
+ "src/src/cpp/server/server_context.cc",
+ "src/src/cpp/server/server_posix.cc",
+ "src/src/cpp/server/thread_pool_interface.h",
+ "src/src/cpp/server/xds_server_credentials.cc",
+ "src/src/cpp/thread_manager/thread_manager.cc",
+ "src/src/cpp/thread_manager/thread_manager.h",
+ "src/src/cpp/util/byte_buffer_cc.cc",
+ "src/src/cpp/util/status.cc",
+ "src/src/cpp/util/string_ref.cc",
+ "src/src/cpp/util/time_cc.cc",
+ ]
+ public_deps = [ ":grpc" ]
+ public_configs = [ "..:grpc_internal_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("grpc++_alts") {
+ sources = [
+ "src/src/cpp/common/alts_context.cc",
+ "src/src/cpp/common/alts_util.cc",
+ ]
+ public_deps = [ ":grpc++" ]
+ public_configs = [ "..:grpc_internal_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("grpc++_error_details") {
+ sources = [ "src/src/cpp/util/error_details.cc" ]
+ public_deps = [ ":grpc++" ]
+ public_configs = [ "..:grpc_internal_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("grpc++_unsecure") {
+ sources = [
+ "src/src/cpp/client/channel_cc.cc",
+ "src/src/cpp/client/client_callback.cc",
+ "src/src/cpp/client/client_context.cc",
+ "src/src/cpp/client/client_interceptor.cc",
+ "src/src/cpp/client/create_channel.cc",
+ "src/src/cpp/client/create_channel_internal.cc",
+ "src/src/cpp/client/create_channel_internal.h",
+ "src/src/cpp/client/create_channel_posix.cc",
+ "src/src/cpp/client/insecure_credentials.cc",
+ "src/src/cpp/common/alarm.cc",
+ "src/src/cpp/common/channel_arguments.cc",
+ "src/src/cpp/common/channel_filter.cc",
+ "src/src/cpp/common/channel_filter.h",
+ "src/src/cpp/common/completion_queue_cc.cc",
+ "src/src/cpp/common/insecure_create_auth_context.cc",
+ "src/src/cpp/common/resource_quota_cc.cc",
+ "src/src/cpp/common/rpc_method.cc",
+ "src/src/cpp/common/validate_service_config.cc",
+ "src/src/cpp/common/version_cc.cc",
+ "src/src/cpp/server/async_generic_service.cc",
+ "src/src/cpp/server/channel_argument_option.cc",
+ "src/src/cpp/server/create_default_thread_pool.cc",
+ "src/src/cpp/server/dynamic_thread_pool.h",
+ "src/src/cpp/server/external_connection_acceptor_impl.cc",
+ "src/src/cpp/server/external_connection_acceptor_impl.h",
+ "src/src/cpp/server/health/default_health_check_service.cc",
+ "src/src/cpp/server/health/default_health_check_service.h",
+ "src/src/cpp/server/health/health_check_service.cc",
+ "src/src/cpp/server/health/health_check_service_server_builder_option.cc",
+ "src/src/cpp/server/insecure_server_credentials.cc",
+ "src/src/cpp/server/orca/call_metric_recorder.cc",
+ "src/src/cpp/server/server_builder.cc",
+ "src/src/cpp/server/server_callback.cc",
+ "src/src/cpp/server/server_cc.cc",
+ "src/src/cpp/server/server_context.cc",
+ "src/src/cpp/server/server_posix.cc",
+ "src/src/cpp/server/thread_pool_interface.h",
+ "src/src/cpp/thread_manager/thread_manager.cc",
+ "src/src/cpp/thread_manager/thread_manager.h",
+ "src/src/cpp/util/byte_buffer_cc.cc",
+ "src/src/cpp/util/status.cc",
+ "src/src/cpp/util/string_ref.cc",
+ "src/src/cpp/util/time_cc.cc",
+ ]
+ public_deps = [ ":grpc_unsecure" ]
+ public_configs = [ "..:grpc_internal_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("grpc_authorization_provider") {
+ sources = [
+ "src/src/core/ext/filters/client_channel/lb_policy/backend_metric_data.h",
+ "src/src/core/ext/upb-generated/google/protobuf/any.upb.c",
+ "src/src/core/ext/upb-generated/google/protobuf/any.upb.h",
+ "src/src/core/ext/upb-generated/google/rpc/status.upb.c",
+ "src/src/core/ext/upb-generated/google/rpc/status.upb.h",
+ "src/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c",
+ "src/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h",
+ "src/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c",
+ "src/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h",
+ "src/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c",
+ "src/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h",
+ "src/src/core/lib/address_utils/parse_address.cc",
+ "src/src/core/lib/address_utils/parse_address.h",
+ "src/src/core/lib/address_utils/sockaddr_utils.cc",
+ "src/src/core/lib/address_utils/sockaddr_utils.h",
+ "src/src/core/lib/avl/avl.h",
+ "src/src/core/lib/channel/call_finalization.h",
+ "src/src/core/lib/channel/call_tracer.h",
+ "src/src/core/lib/channel/channel_args.cc",
+ "src/src/core/lib/channel/channel_args.h",
+ "src/src/core/lib/channel/channel_args_preconditioning.cc",
+ "src/src/core/lib/channel/channel_args_preconditioning.h",
+ "src/src/core/lib/channel/channel_fwd.h",
+ "src/src/core/lib/channel/channel_stack.cc",
+ "src/src/core/lib/channel/channel_stack.h",
+ "src/src/core/lib/channel/channel_stack_builder.cc",
+ "src/src/core/lib/channel/channel_stack_builder.h",
+ "src/src/core/lib/channel/channel_stack_builder_impl.cc",
+ "src/src/core/lib/channel/channel_stack_builder_impl.h",
+ "src/src/core/lib/channel/channel_trace.cc",
+ "src/src/core/lib/channel/channel_trace.h",
+ "src/src/core/lib/channel/channelz.cc",
+ "src/src/core/lib/channel/channelz.h",
+ "src/src/core/lib/channel/channelz_registry.cc",
+ "src/src/core/lib/channel/channelz_registry.h",
+ "src/src/core/lib/channel/connected_channel.cc",
+ "src/src/core/lib/channel/connected_channel.h",
+ "src/src/core/lib/channel/context.h",
+ "src/src/core/lib/channel/promise_based_filter.cc",
+ "src/src/core/lib/channel/promise_based_filter.h",
+ "src/src/core/lib/channel/status_util.cc",
+ "src/src/core/lib/channel/status_util.h",
+ "src/src/core/lib/compression/compression.cc",
+ "src/src/core/lib/compression/compression_internal.cc",
+ "src/src/core/lib/compression/compression_internal.h",
+ "src/src/core/lib/compression/message_compress.cc",
+ "src/src/core/lib/compression/message_compress.h",
+ "src/src/core/lib/config/core_configuration.cc",
+ "src/src/core/lib/config/core_configuration.h",
+ "src/src/core/lib/debug/event_log.cc",
+ "src/src/core/lib/debug/event_log.h",
+ "src/src/core/lib/debug/histogram_view.cc",
+ "src/src/core/lib/debug/histogram_view.h",
+ "src/src/core/lib/debug/stats.cc",
+ "src/src/core/lib/debug/stats.h",
+ "src/src/core/lib/debug/stats_data.cc",
+ "src/src/core/lib/debug/stats_data.h",
+ "src/src/core/lib/debug/trace.cc",
+ "src/src/core/lib/debug/trace.h",
+ "src/src/core/lib/event_engine/channel_args_endpoint_config.cc",
+ "src/src/core/lib/event_engine/channel_args_endpoint_config.h",
+ "src/src/core/lib/event_engine/common_closures.h",
+ "src/src/core/lib/event_engine/default_event_engine.cc",
+ "src/src/core/lib/event_engine/default_event_engine.h",
+ "src/src/core/lib/event_engine/default_event_engine_factory.cc",
+ "src/src/core/lib/event_engine/default_event_engine_factory.h",
+ "src/src/core/lib/event_engine/event_engine.cc",
+ "src/src/core/lib/event_engine/executor/executor.h",
+ "src/src/core/lib/event_engine/forkable.cc",
+ "src/src/core/lib/event_engine/forkable.h",
+ "src/src/core/lib/event_engine/handle_containers.h",
+ "src/src/core/lib/event_engine/memory_allocator.cc",
+ "src/src/core/lib/event_engine/poller.h",
+ "src/src/core/lib/event_engine/posix.h",
+ "src/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc",
+ "src/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.h",
+ "src/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc",
+ "src/src/core/lib/event_engine/posix_engine/ev_poll_posix.h",
+ "src/src/core/lib/event_engine/posix_engine/event_poller.h",
+ "src/src/core/lib/event_engine/posix_engine/event_poller_posix_default.cc",
+ "src/src/core/lib/event_engine/posix_engine/event_poller_posix_default.h",
+ "src/src/core/lib/event_engine/posix_engine/internal_errqueue.cc",
+ "src/src/core/lib/event_engine/posix_engine/internal_errqueue.h",
+ "src/src/core/lib/event_engine/posix_engine/lockfree_event.cc",
+ "src/src/core/lib/event_engine/posix_engine/lockfree_event.h",
+ "src/src/core/lib/event_engine/posix_engine/posix_endpoint.cc",
+ "src/src/core/lib/event_engine/posix_engine/posix_endpoint.h",
+ "src/src/core/lib/event_engine/posix_engine/posix_engine.cc",
+ "src/src/core/lib/event_engine/posix_engine/posix_engine.h",
+ "src/src/core/lib/event_engine/posix_engine/posix_engine_closure.h",
+ "src/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc",
+ "src/src/core/lib/event_engine/posix_engine/posix_engine_listener.h",
+ "src/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc",
+ "src/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.h",
+ "src/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc",
+ "src/src/core/lib/event_engine/posix_engine/tcp_socket_utils.h",
+ "src/src/core/lib/event_engine/posix_engine/timer.cc",
+ "src/src/core/lib/event_engine/posix_engine/timer.h",
+ "src/src/core/lib/event_engine/posix_engine/timer_heap.cc",
+ "src/src/core/lib/event_engine/posix_engine/timer_heap.h",
+ "src/src/core/lib/event_engine/posix_engine/timer_manager.cc",
+ "src/src/core/lib/event_engine/posix_engine/timer_manager.h",
+ "src/src/core/lib/event_engine/posix_engine/traced_buffer_list.cc",
+ "src/src/core/lib/event_engine/posix_engine/traced_buffer_list.h",
+ "src/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.cc",
+ "src/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.h",
+ "src/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.cc",
+ "src/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.h",
+ "src/src/core/lib/event_engine/posix_engine/wakeup_fd_posix.h",
+ "src/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.cc",
+ "src/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.h",
+ "src/src/core/lib/event_engine/resolved_address.cc",
+ "src/src/core/lib/event_engine/resolved_address_internal.h",
+ "src/src/core/lib/event_engine/shim.cc",
+ "src/src/core/lib/event_engine/shim.h",
+ "src/src/core/lib/event_engine/slice.cc",
+ "src/src/core/lib/event_engine/slice_buffer.cc",
+ "src/src/core/lib/event_engine/tcp_socket_utils.cc",
+ "src/src/core/lib/event_engine/tcp_socket_utils.h",
+ "src/src/core/lib/event_engine/thread_pool.cc",
+ "src/src/core/lib/event_engine/thread_pool.h",
+ "src/src/core/lib/event_engine/time_util.cc",
+ "src/src/core/lib/event_engine/time_util.h",
+ "src/src/core/lib/event_engine/trace.cc",
+ "src/src/core/lib/event_engine/trace.h",
+ "src/src/core/lib/event_engine/utils.cc",
+ "src/src/core/lib/event_engine/utils.h",
+ "src/src/core/lib/event_engine/windows/iocp.cc",
+ "src/src/core/lib/event_engine/windows/iocp.h",
+ "src/src/core/lib/event_engine/windows/win_socket.cc",
+ "src/src/core/lib/event_engine/windows/win_socket.h",
+ "src/src/core/lib/event_engine/windows/windows_endpoint.cc",
+ "src/src/core/lib/event_engine/windows/windows_endpoint.h",
+ "src/src/core/lib/event_engine/windows/windows_engine.cc",
+ "src/src/core/lib/event_engine/windows/windows_engine.h",
+ "src/src/core/lib/experiments/config.cc",
+ "src/src/core/lib/experiments/config.h",
+ "src/src/core/lib/experiments/experiments.cc",
+ "src/src/core/lib/experiments/experiments.h",
+ "src/src/core/lib/gpr/spinlock.h",
+ "src/src/core/lib/gprpp/atomic_utils.h",
+ "src/src/core/lib/gprpp/bitset.h",
+ "src/src/core/lib/gprpp/chunked_vector.h",
+ "src/src/core/lib/gprpp/cpp_impl_of.h",
+ "src/src/core/lib/gprpp/dual_ref_counted.h",
+ "src/src/core/lib/gprpp/load_file.cc",
+ "src/src/core/lib/gprpp/load_file.h",
+ "src/src/core/lib/gprpp/manual_constructor.h",
+ "src/src/core/lib/gprpp/match.h",
+ "src/src/core/lib/gprpp/notification.h",
+ "src/src/core/lib/gprpp/orphanable.h",
+ "src/src/core/lib/gprpp/overload.h",
+ "src/src/core/lib/gprpp/packed_table.h",
+ "src/src/core/lib/gprpp/per_cpu.h",
+ "src/src/core/lib/gprpp/ref_counted.h",
+ "src/src/core/lib/gprpp/ref_counted_ptr.h",
+ "src/src/core/lib/gprpp/sorted_pack.h",
+ "src/src/core/lib/gprpp/status_helper.cc",
+ "src/src/core/lib/gprpp/status_helper.h",
+ "src/src/core/lib/gprpp/table.h",
+ "src/src/core/lib/gprpp/time.cc",
+ "src/src/core/lib/gprpp/time.h",
+ "src/src/core/lib/gprpp/time_averaged_stats.cc",
+ "src/src/core/lib/gprpp/time_averaged_stats.h",
+ "src/src/core/lib/gprpp/unique_type_name.h",
+ "src/src/core/lib/gprpp/validation_errors.cc",
+ "src/src/core/lib/gprpp/validation_errors.h",
+ "src/src/core/lib/gprpp/work_serializer.cc",
+ "src/src/core/lib/gprpp/work_serializer.h",
+ "src/src/core/lib/handshaker/proxy_mapper.h",
+ "src/src/core/lib/handshaker/proxy_mapper_registry.cc",
+ "src/src/core/lib/handshaker/proxy_mapper_registry.h",
+ "src/src/core/lib/iomgr/block_annotate.h",
+ "src/src/core/lib/iomgr/buffer_list.cc",
+ "src/src/core/lib/iomgr/buffer_list.h",
+ "src/src/core/lib/iomgr/call_combiner.cc",
+ "src/src/core/lib/iomgr/call_combiner.h",
+ "src/src/core/lib/iomgr/cfstream_handle.cc",
+ "src/src/core/lib/iomgr/cfstream_handle.h",
+ "src/src/core/lib/iomgr/closure.cc",
+ "src/src/core/lib/iomgr/closure.h",
+ "src/src/core/lib/iomgr/combiner.cc",
+ "src/src/core/lib/iomgr/combiner.h",
+ "src/src/core/lib/iomgr/dualstack_socket_posix.cc",
+ "src/src/core/lib/iomgr/dynamic_annotations.h",
+ "src/src/core/lib/iomgr/endpoint.cc",
+ "src/src/core/lib/iomgr/endpoint.h",
+ "src/src/core/lib/iomgr/endpoint_cfstream.cc",
+ "src/src/core/lib/iomgr/endpoint_cfstream.h",
+ "src/src/core/lib/iomgr/endpoint_pair.h",
+ "src/src/core/lib/iomgr/endpoint_pair_posix.cc",
+ "src/src/core/lib/iomgr/endpoint_pair_windows.cc",
+ "src/src/core/lib/iomgr/error.cc",
+ "src/src/core/lib/iomgr/error.h",
+ "src/src/core/lib/iomgr/error_cfstream.cc",
+ "src/src/core/lib/iomgr/error_cfstream.h",
+ "src/src/core/lib/iomgr/ev_apple.cc",
+ "src/src/core/lib/iomgr/ev_apple.h",
+ "src/src/core/lib/iomgr/ev_epoll1_linux.cc",
+ "src/src/core/lib/iomgr/ev_epoll1_linux.h",
+ "src/src/core/lib/iomgr/ev_poll_posix.cc",
+ "src/src/core/lib/iomgr/ev_poll_posix.h",
+ "src/src/core/lib/iomgr/ev_posix.cc",
+ "src/src/core/lib/iomgr/ev_posix.h",
+ "src/src/core/lib/iomgr/ev_windows.cc",
+ "src/src/core/lib/iomgr/event_engine_shims/closure.cc",
+ "src/src/core/lib/iomgr/event_engine_shims/closure.h",
+ "src/src/core/lib/iomgr/event_engine_shims/endpoint.cc",
+ "src/src/core/lib/iomgr/event_engine_shims/endpoint.h",
+ "src/src/core/lib/iomgr/event_engine_shims/tcp_client.cc",
+ "src/src/core/lib/iomgr/event_engine_shims/tcp_client.h",
+ "src/src/core/lib/iomgr/exec_ctx.cc",
+ "src/src/core/lib/iomgr/exec_ctx.h",
+ "src/src/core/lib/iomgr/executor.cc",
+ "src/src/core/lib/iomgr/executor.h",
+ "src/src/core/lib/iomgr/fork_posix.cc",
+ "src/src/core/lib/iomgr/fork_windows.cc",
+ "src/src/core/lib/iomgr/gethostname.h",
+ "src/src/core/lib/iomgr/gethostname_fallback.cc",
+ "src/src/core/lib/iomgr/gethostname_host_name_max.cc",
+ "src/src/core/lib/iomgr/gethostname_sysconf.cc",
+ "src/src/core/lib/iomgr/grpc_if_nametoindex.h",
+ "src/src/core/lib/iomgr/grpc_if_nametoindex_posix.cc",
+ "src/src/core/lib/iomgr/grpc_if_nametoindex_unsupported.cc",
+ "src/src/core/lib/iomgr/internal_errqueue.cc",
+ "src/src/core/lib/iomgr/internal_errqueue.h",
+ "src/src/core/lib/iomgr/iocp_windows.cc",
+ "src/src/core/lib/iomgr/iocp_windows.h",
+ "src/src/core/lib/iomgr/iomgr.cc",
+ "src/src/core/lib/iomgr/iomgr.h",
+ "src/src/core/lib/iomgr/iomgr_fwd.h",
+ "src/src/core/lib/iomgr/iomgr_internal.cc",
+ "src/src/core/lib/iomgr/iomgr_internal.h",
+ "src/src/core/lib/iomgr/iomgr_posix.cc",
+ "src/src/core/lib/iomgr/iomgr_posix_cfstream.cc",
+ "src/src/core/lib/iomgr/iomgr_windows.cc",
+ "src/src/core/lib/iomgr/load_file.cc",
+ "src/src/core/lib/iomgr/load_file.h",
+ "src/src/core/lib/iomgr/lockfree_event.cc",
+ "src/src/core/lib/iomgr/lockfree_event.h",
+ "src/src/core/lib/iomgr/nameser.h",
+ "src/src/core/lib/iomgr/polling_entity.cc",
+ "src/src/core/lib/iomgr/polling_entity.h",
+ "src/src/core/lib/iomgr/pollset.cc",
+ "src/src/core/lib/iomgr/pollset.h",
+ "src/src/core/lib/iomgr/pollset_set.cc",
+ "src/src/core/lib/iomgr/pollset_set.h",
+ "src/src/core/lib/iomgr/pollset_set_windows.cc",
+ "src/src/core/lib/iomgr/pollset_set_windows.h",
+ "src/src/core/lib/iomgr/pollset_windows.cc",
+ "src/src/core/lib/iomgr/pollset_windows.h",
+ "src/src/core/lib/iomgr/port.h",
+ "src/src/core/lib/iomgr/python_util.h",
+ "src/src/core/lib/iomgr/resolve_address.cc",
+ "src/src/core/lib/iomgr/resolve_address.h",
+ "src/src/core/lib/iomgr/resolve_address_impl.h",
+ "src/src/core/lib/iomgr/resolve_address_posix.cc",
+ "src/src/core/lib/iomgr/resolve_address_posix.h",
+ "src/src/core/lib/iomgr/resolve_address_windows.cc",
+ "src/src/core/lib/iomgr/resolve_address_windows.h",
+ "src/src/core/lib/iomgr/resolved_address.h",
+ "src/src/core/lib/iomgr/sockaddr.h",
+ "src/src/core/lib/iomgr/sockaddr_posix.h",
+ "src/src/core/lib/iomgr/sockaddr_utils_posix.cc",
+ "src/src/core/lib/iomgr/sockaddr_windows.h",
+ "src/src/core/lib/iomgr/socket_factory_posix.cc",
+ "src/src/core/lib/iomgr/socket_factory_posix.h",
+ "src/src/core/lib/iomgr/socket_mutator.cc",
+ "src/src/core/lib/iomgr/socket_mutator.h",
+ "src/src/core/lib/iomgr/socket_utils.h",
+ "src/src/core/lib/iomgr/socket_utils_common_posix.cc",
+ "src/src/core/lib/iomgr/socket_utils_linux.cc",
+ "src/src/core/lib/iomgr/socket_utils_posix.cc",
+ "src/src/core/lib/iomgr/socket_utils_posix.h",
+ "src/src/core/lib/iomgr/socket_utils_windows.cc",
+ "src/src/core/lib/iomgr/socket_windows.cc",
+ "src/src/core/lib/iomgr/socket_windows.h",
+ "src/src/core/lib/iomgr/systemd_utils.cc",
+ "src/src/core/lib/iomgr/systemd_utils.h",
+ "src/src/core/lib/iomgr/tcp_client.cc",
+ "src/src/core/lib/iomgr/tcp_client.h",
+ "src/src/core/lib/iomgr/tcp_client_cfstream.cc",
+ "src/src/core/lib/iomgr/tcp_client_posix.cc",
+ "src/src/core/lib/iomgr/tcp_client_posix.h",
+ "src/src/core/lib/iomgr/tcp_client_windows.cc",
+ "src/src/core/lib/iomgr/tcp_posix.cc",
+ "src/src/core/lib/iomgr/tcp_posix.h",
+ "src/src/core/lib/iomgr/tcp_server.cc",
+ "src/src/core/lib/iomgr/tcp_server.h",
+ "src/src/core/lib/iomgr/tcp_server_posix.cc",
+ "src/src/core/lib/iomgr/tcp_server_utils_posix.h",
+ "src/src/core/lib/iomgr/tcp_server_utils_posix_common.cc",
+ "src/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc",
+ "src/src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc",
+ "src/src/core/lib/iomgr/tcp_server_windows.cc",
+ "src/src/core/lib/iomgr/tcp_windows.cc",
+ "src/src/core/lib/iomgr/tcp_windows.h",
+ "src/src/core/lib/iomgr/timer.cc",
+ "src/src/core/lib/iomgr/timer.h",
+ "src/src/core/lib/iomgr/timer_generic.cc",
+ "src/src/core/lib/iomgr/timer_generic.h",
+ "src/src/core/lib/iomgr/timer_heap.cc",
+ "src/src/core/lib/iomgr/timer_heap.h",
+ "src/src/core/lib/iomgr/timer_manager.cc",
+ "src/src/core/lib/iomgr/timer_manager.h",
+ "src/src/core/lib/iomgr/unix_sockets_posix.cc",
+ "src/src/core/lib/iomgr/unix_sockets_posix.h",
+ "src/src/core/lib/iomgr/unix_sockets_posix_noop.cc",
+ "src/src/core/lib/iomgr/wakeup_fd_eventfd.cc",
+ "src/src/core/lib/iomgr/wakeup_fd_nospecial.cc",
+ "src/src/core/lib/iomgr/wakeup_fd_pipe.cc",
+ "src/src/core/lib/iomgr/wakeup_fd_pipe.h",
+ "src/src/core/lib/iomgr/wakeup_fd_posix.cc",
+ "src/src/core/lib/iomgr/wakeup_fd_posix.h",
+ "src/src/core/lib/json/json.h",
+ "src/src/core/lib/json/json_reader.cc",
+ "src/src/core/lib/json/json_writer.cc",
+ "src/src/core/lib/load_balancing/lb_policy.cc",
+ "src/src/core/lib/load_balancing/lb_policy.h",
+ "src/src/core/lib/load_balancing/lb_policy_factory.h",
+ "src/src/core/lib/load_balancing/lb_policy_registry.cc",
+ "src/src/core/lib/load_balancing/lb_policy_registry.h",
+ "src/src/core/lib/load_balancing/subchannel_interface.h",
+ "src/src/core/lib/matchers/matchers.cc",
+ "src/src/core/lib/matchers/matchers.h",
+ "src/src/core/lib/promise/activity.cc",
+ "src/src/core/lib/promise/activity.h",
+ "src/src/core/lib/promise/arena_promise.h",
+ "src/src/core/lib/promise/context.h",
+ "src/src/core/lib/promise/detail/basic_join.h",
+ "src/src/core/lib/promise/detail/basic_seq.h",
+ "src/src/core/lib/promise/detail/promise_factory.h",
+ "src/src/core/lib/promise/detail/promise_like.h",
+ "src/src/core/lib/promise/detail/status.h",
+ "src/src/core/lib/promise/detail/switch.h",
+ "src/src/core/lib/promise/exec_ctx_wakeup_scheduler.h",
+ "src/src/core/lib/promise/if.h",
+ "src/src/core/lib/promise/interceptor_list.h",
+ "src/src/core/lib/promise/intra_activity_waiter.h",
+ "src/src/core/lib/promise/loop.h",
+ "src/src/core/lib/promise/map.h",
+ "src/src/core/lib/promise/pipe.h",
+ "src/src/core/lib/promise/poll.h",
+ "src/src/core/lib/promise/promise.h",
+ "src/src/core/lib/promise/race.h",
+ "src/src/core/lib/promise/seq.h",
+ "src/src/core/lib/promise/trace.cc",
+ "src/src/core/lib/promise/trace.h",
+ "src/src/core/lib/promise/try_join.h",
+ "src/src/core/lib/promise/try_seq.h",
+ "src/src/core/lib/resolver/resolver.cc",
+ "src/src/core/lib/resolver/resolver.h",
+ "src/src/core/lib/resolver/resolver_factory.h",
+ "src/src/core/lib/resolver/resolver_registry.cc",
+ "src/src/core/lib/resolver/resolver_registry.h",
+ "src/src/core/lib/resolver/server_address.cc",
+ "src/src/core/lib/resolver/server_address.h",
+ "src/src/core/lib/resource_quota/api.cc",
+ "src/src/core/lib/resource_quota/api.h",
+ "src/src/core/lib/resource_quota/arena.cc",
+ "src/src/core/lib/resource_quota/arena.h",
+ "src/src/core/lib/resource_quota/memory_quota.cc",
+ "src/src/core/lib/resource_quota/memory_quota.h",
+ "src/src/core/lib/resource_quota/periodic_update.cc",
+ "src/src/core/lib/resource_quota/periodic_update.h",
+ "src/src/core/lib/resource_quota/resource_quota.cc",
+ "src/src/core/lib/resource_quota/resource_quota.h",
+ "src/src/core/lib/resource_quota/thread_quota.cc",
+ "src/src/core/lib/resource_quota/thread_quota.h",
+ "src/src/core/lib/resource_quota/trace.cc",
+ "src/src/core/lib/resource_quota/trace.h",
+ "src/src/core/lib/security/authorization/authorization_engine.h",
+ "src/src/core/lib/security/authorization/authorization_policy_provider.h",
+ "src/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc",
+ "src/src/core/lib/security/authorization/evaluate_args.cc",
+ "src/src/core/lib/security/authorization/evaluate_args.h",
+ "src/src/core/lib/security/authorization/grpc_authorization_engine.cc",
+ "src/src/core/lib/security/authorization/grpc_authorization_engine.h",
+ "src/src/core/lib/security/authorization/grpc_authorization_policy_provider.cc",
+ "src/src/core/lib/security/authorization/grpc_authorization_policy_provider.h",
+ "src/src/core/lib/security/authorization/grpc_server_authz_filter.cc",
+ "src/src/core/lib/security/authorization/grpc_server_authz_filter.h",
+ "src/src/core/lib/security/authorization/matchers.cc",
+ "src/src/core/lib/security/authorization/matchers.h",
+ "src/src/core/lib/security/authorization/rbac_policy.cc",
+ "src/src/core/lib/security/authorization/rbac_policy.h",
+ "src/src/core/lib/security/authorization/rbac_translator.cc",
+ "src/src/core/lib/security/authorization/rbac_translator.h",
+ "src/src/core/lib/security/certificate_provider/certificate_provider_factory.h",
+ "src/src/core/lib/security/certificate_provider/certificate_provider_registry.cc",
+ "src/src/core/lib/security/certificate_provider/certificate_provider_registry.h",
+ "src/src/core/lib/security/context/security_context.cc",
+ "src/src/core/lib/security/context/security_context.h",
+ "src/src/core/lib/security/credentials/alts/check_gcp_environment.cc",
+ "src/src/core/lib/security/credentials/alts/check_gcp_environment.h",
+ "src/src/core/lib/security/credentials/alts/check_gcp_environment_linux.cc",
+ "src/src/core/lib/security/credentials/alts/check_gcp_environment_no_op.cc",
+ "src/src/core/lib/security/credentials/alts/check_gcp_environment_windows.cc",
+ "src/src/core/lib/security/credentials/alts/grpc_alts_credentials_client_options.cc",
+ "src/src/core/lib/security/credentials/alts/grpc_alts_credentials_options.cc",
+ "src/src/core/lib/security/credentials/alts/grpc_alts_credentials_options.h",
+ "src/src/core/lib/security/credentials/alts/grpc_alts_credentials_server_options.cc",
+ "src/src/core/lib/security/credentials/call_creds_util.cc",
+ "src/src/core/lib/security/credentials/call_creds_util.h",
+ "src/src/core/lib/security/credentials/channel_creds_registry.h",
+ "src/src/core/lib/security/credentials/composite/composite_credentials.cc",
+ "src/src/core/lib/security/credentials/composite/composite_credentials.h",
+ "src/src/core/lib/security/credentials/credentials.cc",
+ "src/src/core/lib/security/credentials/credentials.h",
+ "src/src/core/lib/security/credentials/plugin/plugin_credentials.cc",
+ "src/src/core/lib/security/credentials/plugin/plugin_credentials.h",
+ "src/src/core/lib/security/credentials/tls/tls_utils.cc",
+ "src/src/core/lib/security/credentials/tls/tls_utils.h",
+ "src/src/core/lib/security/security_connector/load_system_roots.h",
+ "src/src/core/lib/security/security_connector/load_system_roots_fallback.cc",
+ "src/src/core/lib/security/security_connector/load_system_roots_supported.cc",
+ "src/src/core/lib/security/security_connector/load_system_roots_supported.h",
+ "src/src/core/lib/security/security_connector/security_connector.cc",
+ "src/src/core/lib/security/security_connector/security_connector.h",
+ "src/src/core/lib/security/transport/auth_filters.h",
+ "src/src/core/lib/security/transport/client_auth_filter.cc",
+ "src/src/core/lib/security/transport/secure_endpoint.cc",
+ "src/src/core/lib/security/transport/secure_endpoint.h",
+ "src/src/core/lib/security/transport/security_handshaker.cc",
+ "src/src/core/lib/security/transport/security_handshaker.h",
+ "src/src/core/lib/security/transport/server_auth_filter.cc",
+ "src/src/core/lib/security/transport/tsi_error.cc",
+ "src/src/core/lib/security/transport/tsi_error.h",
+ "src/src/core/lib/security/util/json_util.cc",
+ "src/src/core/lib/security/util/json_util.h",
+ "src/src/core/lib/service_config/service_config.h",
+ "src/src/core/lib/service_config/service_config_call_data.h",
+ "src/src/core/lib/service_config/service_config_parser.cc",
+ "src/src/core/lib/service_config/service_config_parser.h",
+ "src/src/core/lib/slice/b64.cc",
+ "src/src/core/lib/slice/b64.h",
+ "src/src/core/lib/slice/percent_encoding.cc",
+ "src/src/core/lib/slice/percent_encoding.h",
+ "src/src/core/lib/slice/slice.cc",
+ "src/src/core/lib/slice/slice.h",
+ "src/src/core/lib/slice/slice_buffer.cc",
+ "src/src/core/lib/slice/slice_buffer.h",
+ "src/src/core/lib/slice/slice_internal.h",
+ "src/src/core/lib/slice/slice_refcount.cc",
+ "src/src/core/lib/slice/slice_refcount.h",
+ "src/src/core/lib/slice/slice_string_helpers.cc",
+ "src/src/core/lib/slice/slice_string_helpers.h",
+ "src/src/core/lib/surface/api_trace.cc",
+ "src/src/core/lib/surface/api_trace.h",
+ "src/src/core/lib/surface/builtins.cc",
+ "src/src/core/lib/surface/builtins.h",
+ "src/src/core/lib/surface/byte_buffer.cc",
+ "src/src/core/lib/surface/byte_buffer_reader.cc",
+ "src/src/core/lib/surface/call.cc",
+ "src/src/core/lib/surface/call.h",
+ "src/src/core/lib/surface/call_details.cc",
+ "src/src/core/lib/surface/call_log_batch.cc",
+ "src/src/core/lib/surface/call_test_only.h",
+ "src/src/core/lib/surface/call_trace.cc",
+ "src/src/core/lib/surface/call_trace.h",
+ "src/src/core/lib/surface/channel.cc",
+ "src/src/core/lib/surface/channel.h",
+ "src/src/core/lib/surface/channel_init.cc",
+ "src/src/core/lib/surface/channel_init.h",
+ "src/src/core/lib/surface/channel_ping.cc",
+ "src/src/core/lib/surface/channel_stack_type.cc",
+ "src/src/core/lib/surface/channel_stack_type.h",
+ "src/src/core/lib/surface/completion_queue.cc",
+ "src/src/core/lib/surface/completion_queue.h",
+ "src/src/core/lib/surface/completion_queue_factory.cc",
+ "src/src/core/lib/surface/completion_queue_factory.h",
+ "src/src/core/lib/surface/event_string.cc",
+ "src/src/core/lib/surface/event_string.h",
+ "src/src/core/lib/surface/init.h",
+ "src/src/core/lib/surface/init_internally.cc",
+ "src/src/core/lib/surface/init_internally.h",
+ "src/src/core/lib/surface/lame_client.cc",
+ "src/src/core/lib/surface/lame_client.h",
+ "src/src/core/lib/surface/metadata_array.cc",
+ "src/src/core/lib/surface/server.cc",
+ "src/src/core/lib/surface/server.h",
+ "src/src/core/lib/surface/validate_metadata.cc",
+ "src/src/core/lib/surface/validate_metadata.h",
+ "src/src/core/lib/surface/version.cc",
+ "src/src/core/lib/transport/connectivity_state.cc",
+ "src/src/core/lib/transport/connectivity_state.h",
+ "src/src/core/lib/transport/error_utils.cc",
+ "src/src/core/lib/transport/error_utils.h",
+ "src/src/core/lib/transport/handshaker.cc",
+ "src/src/core/lib/transport/handshaker.h",
+ "src/src/core/lib/transport/handshaker_factory.h",
+ "src/src/core/lib/transport/handshaker_registry.cc",
+ "src/src/core/lib/transport/handshaker_registry.h",
+ "src/src/core/lib/transport/http2_errors.h",
+ "src/src/core/lib/transport/metadata_batch.cc",
+ "src/src/core/lib/transport/metadata_batch.h",
+ "src/src/core/lib/transport/parsed_metadata.cc",
+ "src/src/core/lib/transport/parsed_metadata.h",
+ "src/src/core/lib/transport/status_conversion.cc",
+ "src/src/core/lib/transport/status_conversion.h",
+ "src/src/core/lib/transport/timeout_encoding.cc",
+ "src/src/core/lib/transport/timeout_encoding.h",
+ "src/src/core/lib/transport/transport.cc",
+ "src/src/core/lib/transport/transport.h",
+ "src/src/core/lib/transport/transport_fwd.h",
+ "src/src/core/lib/transport/transport_impl.h",
+ "src/src/core/lib/transport/transport_op_string.cc",
+ "src/src/core/lib/uri/uri_parser.cc",
+ "src/src/core/lib/uri/uri_parser.h",
+ "src/src/core/tsi/alts/handshaker/transport_security_common_api.cc",
+ "src/src/core/tsi/alts/handshaker/transport_security_common_api.h",
+ "src/src/core/tsi/transport_security.cc",
+ "src/src/core/tsi/transport_security.h",
+ "src/src/core/tsi/transport_security_grpc.cc",
+ "src/src/core/tsi/transport_security_grpc.h",
+ "src/src/core/tsi/transport_security_interface.h",
+ ]
+ public_deps = [
+ ":absl_cleanup_cleanup",
+ ":absl_container_flat_hash_map",
+ ":absl_container_flat_hash_set",
+ ":absl_container_inlined_vector",
+ ":absl_functional_any_invocable",
+ ":absl_functional_function_ref",
+ ":absl_hash_hash",
+ ":absl_meta_type_traits",
+ ":absl_status_statusor",
+ ":absl_types_span",
+ ":absl_utility_utility",
+ ":gpr",
+ ":upb",
+ ]
+ public_configs = [ "..:grpc_internal_config" ]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}
diff --git a/docs/contributing/build-instructions.md b/docs/contributing/build-instructions.md
index e037479..74eeecf 100644
--- a/docs/contributing/build-instructions.md
+++ b/docs/contributing/build-instructions.md
@@ -149,6 +149,21 @@
ui/run-unittests
```
+This command will perform the build first; which is not necessary if you
+already have a development server running. In this case, to avoid interference
+with the rebuild done by development server and to get the results faster, you
+can use
+
+```bash
+ui/run-unittests --no-build
+```
+
+to skip the build steps.
+
+Script `ui/run-unittests` also supports `--watch` parameter, which would
+restart the testing when the underlying source files are changed. This can be
+used in conjunction with `--no-build`, and on its own as well.
+
## Build files
The source of truth of our build file is in the BUILD.gn files, which are based
diff --git a/docs/contributing/sdk-releasing.md b/docs/contributing/sdk-releasing.md
index 5e62cca..b5b6984 100644
--- a/docs/contributing/sdk-releasing.md
+++ b/docs/contributing/sdk-releasing.md
@@ -21,6 +21,20 @@
## a) Creating a new major version
+Make sure that the current master branch builds on
+[LUCI](https://luci-scheduler.appspot.com/jobs/perfetto) by triggering all the
+builds and waiting for their success. If any of the builds fail, fix the failure
+on master before proceeding.
+
+Create an entry in CHANGELOG with the new major version: this usually involves
+renaming the "Unreleased" entry to the version number you chose earlier
+([example](https://r.android.com/2417175)).
+
+Test that the perfetto build tools can parse the CHANGELOG: after building,
+running `perfetto --version` should show your new version number.
+
+Upload the CHANGELOG change and submit it on the master branch.
+
Create a release branch for the new major version ("v16.x" here):
```bash
diff --git a/docs/faq.md b/docs/faq.md
index 29ba71b..7a05913 100644
--- a/docs/faq.md
+++ b/docs/faq.md
@@ -1,23 +1,48 @@
# Frequently Asked Questions
-This page contains some common questions that the Perfetto team is asked
-and their answers.
-
-- [Frequently Asked Questions](#frequently-asked-questions)
- - [How do I open trace in UI from command line?](#how-do-i-open-trace-in-ui-from-command-line)
## How do I open trace in UI from command line?
+
When collecting traces from the command line, a convenient way to open traces
-is to use the [open_trace_in_ui script](/tools/open_trace_in_ui).
+is to use the [open\_trace\_in\_ui script](/tools/open_trace_in_ui).
This can be used as follows:
+
```sh
curl -OL https://github.com/google/perfetto/raw/master/tools/open_trace_in_ui
chmod +x open_trace_in_ui
./open_trace_in_ui -i /path/to/trace
```
-If you already have a Perfetto checkout, the first steps can be skipped.
+If you already have a Perfetto checkout, the first two steps can be skipped.
From the Perfetto root, run:
+
```sh
tools/open_trace_in_ui -i /path/to/trace
-```
\ No newline at end of file
+```
+
+## Incorrectly displayed overlapping events in JSON trace
+
+NOTE: JSON is considered a legacy trace format and is supported on a best-effort
+basis.
+
+The Perfetto UI and trace processor do support overlapping B/E/X events, in
+compliance with the
+[JSON spec](https://docs.google.com/document/d/1CvAClvFfyA5R-PhYUmn5OOQtYMH4h6I0nSsKchNAySU/preview#heading=h.nso4gcezn7n1).
+As stated in the spec, events are only allowed to perfecty nest.
+
+Users are recommended to emit
+[TrackEvent](/docs/instrumentation/track-events.md)
+instead, Perfetto's native trace format. See
+[this guide](/docs/reference/synthetic-track-event.md) for how common JSON
+events can be represented using
+TrackEvent.
+
+## How can I use Perfetto tooling without instrumenting my program?
+A common problem is that users want to use Perfetto analysis and visualization
+tooling but they don't want to instrument their program. This can be because
+Perfetto is not a good fit for their use-case or because they may already have
+an existing tracing system.
+
+The recommended approach for this is to emit Perfetto's native TrackEvent proto
+format. A reference guide for this is available
+[here](/docs/reference/synthetic-track-event.md).
diff --git a/docs/images/synthetic-track-event-counter.png b/docs/images/synthetic-track-event-counter.png
new file mode 100644
index 0000000..fc659d5
--- /dev/null
+++ b/docs/images/synthetic-track-event-counter.png
Binary files differ
diff --git a/docs/images/synthetic-track-event-flow.png b/docs/images/synthetic-track-event-flow.png
new file mode 100644
index 0000000..e0a20ed
--- /dev/null
+++ b/docs/images/synthetic-track-event-flow.png
Binary files differ
diff --git a/docs/images/synthetic-track-event-process.png b/docs/images/synthetic-track-event-process.png
new file mode 100644
index 0000000..db1379e
--- /dev/null
+++ b/docs/images/synthetic-track-event-process.png
Binary files differ
diff --git a/docs/images/synthetic-track-event-thread.png b/docs/images/synthetic-track-event-thread.png
new file mode 100644
index 0000000..d247662
--- /dev/null
+++ b/docs/images/synthetic-track-event-thread.png
Binary files differ
diff --git a/docs/instrumentation/tracing-sdk.md b/docs/instrumentation/tracing-sdk.md
index 75d10db..cd49de3 100644
--- a/docs/instrumentation/tracing-sdk.md
+++ b/docs/instrumentation/tracing-sdk.md
@@ -30,7 +30,7 @@
To start using the Client API, first check out the latest SDK release:
```bash
-git clone https://android.googlesource.com/platform/external/perfetto -b v29.0
+git clone https://android.googlesource.com/platform/external/perfetto -b v32.1
```
The SDK consists of two files, `sdk/perfetto.h` and `sdk/perfetto.cc`. These are
diff --git a/docs/reference/synthetic-track-event.md b/docs/reference/synthetic-track-event.md
new file mode 100644
index 0000000..1052d77
--- /dev/null
+++ b/docs/reference/synthetic-track-event.md
@@ -0,0 +1,375 @@
+# Writing TrackEvent Protos Synthetically
+This page acts as a reference guide to synthetically generate TrackEvent,
+Perfetto's native protobuf based tracing format. This allows using Perfetto's
+analysis and visualzation without using collecting traces using the Perfetto
+SDK.
+
+TrackEvent protos can be manually written using the
+[official protobuf library](https://protobuf.dev/reference/) or any other
+protobuf-compatible library. To be language-agnostic, the rest of this page
+will show examples using the
+[text format](https://protobuf.dev/reference/protobuf/textformat-spec/)
+representation of protobufs.
+
+## Thread-scoped (sync) slices
+NOTE: in the legacy JSON tracing format, this section correspond to B/E/I/X
+events with the associated M (metadata) events.
+
+Thread scoped slices are used to trace execution of functions on a single
+thread. As only one function runs on a single thread over time, this requires
+that child slices nest perfectly inside parent slices and do not partially
+overlap.
+
+
+
+This is corresponds to the following protos:
+```
+# Emit this packet once *before* you emit the first event for this process.
+packet: {
+ track_descriptor: {
+ uuid: 894893984 # 64-bit random number.
+ process: {
+ pid: 1234 # PID for your process.
+ process_name: "My process name"
+ }
+ }
+}
+
+# Emit this packet once *before* you emit the first event for this thread.
+packet: {
+ track_descriptor: {
+ uuid: 49083589894 # 64-bit random number.
+ parent_uuid: 894893984 # UUID from above.
+ thread: {
+ pid: 1234 # PID for your process.
+ tid: 5678 # TID for your thread.
+ thread_name: "My thread name"
+ }
+ }
+}
+
+# The events for this thread.
+packet: {
+ timestamp: 200
+ track_event: {
+ type: TYPE_SLICE_BEGIN
+ track_uuid: 49083589894 # Same random number from above.
+ name: "My special parent"
+ }
+ trusted_packet_sequence_id: 3903809 # Generate *once*, use throughout.
+}
+packet: {
+ timestamp: 250
+ track_event: {
+ type: TYPE_SLICE_BEGIN
+ track_uuid: 49083589894
+ name: "My special child"
+ }
+ trusted_packet_sequence_id: 3903809
+}
+packet {
+ timestamp: 285
+ track_event {
+ type: TYPE_INSTANT
+ track_uuid: 49083589894
+ }
+ trusted_packet_sequence_id: 3903809
+}
+packet: {
+ timestamp: 290
+ track_event: {
+ type: TYPE_SLICE_END
+ track_uuid: 49083589894
+ }
+ trusted_packet_sequence_id: 3903809
+}
+packet: {
+ timestamp: 300
+ track_event: {
+ type: TYPE_SLICE_END
+ track_uuid: 49083589894
+ }
+ trusted_packet_sequence_id: 3903809
+}
+```
+
+## Process-scoped (async) slices
+NOTE: in the legacy JSON tracing format, this section corresponds to b/e/n
+events with the associated M (metadata) events.
+
+Process-scoped slices are useful to trace execution of a "piece of work" across
+multiple threads of a process. A process-scoped slice can start on a thread
+A and end on a thread B. Examples include work submitted to thread pools
+and coroutines.
+
+Process tracks can be named corresponding to the executor and can also have
+child slices in an identical way to thread-scoped slices. Importantly, this
+means slices on a single track must **strictly nest** inside each other
+without overlapping.
+
+As separating each track in the UI can cause a lot of clutter, the UI
+visually merges process tracks with the same name in each process. Note that
+this **does not** change the data model (e.g. in trace processor
+tracks remain separated) as this is simply a visual grouping.
+
+
+
+This is corresponds to the following protos:
+```
+# The first track associated with this process.
+packet {
+ track_descriptor {
+ uuid: 48948 # 64-bit random number.
+ name: "My special track"
+ process {
+ pid: 1234 # PID for your process
+ process_name: "My process name"
+ }
+ }
+}
+# The events for the first track.
+packet {
+ timestamp: 200
+ track_event {
+ type: TYPE_SLICE_BEGIN
+ track_uuid: 48948 # Same random number from above.
+ name: "My special parent A"
+ }
+ trusted_packet_sequence_id: 3903809 # Generate *once*, use throughout.
+}
+packet {
+ timestamp: 250
+ track_event {
+ type: TYPE_SLICE_BEGIN
+ track_uuid: 48948
+ name: "My special child"
+ }
+ trusted_packet_sequence_id: 3903809
+}
+packet {
+ timestamp: 290
+ track_event {
+ type: TYPE_SLICE_END
+ track_uuid: 48948
+ }
+ trusted_packet_sequence_id: 3903809
+}
+packet {
+ timestamp: 300
+ track_event {
+ type: TYPE_SLICE_END
+ track_uuid: 48948
+ }
+ trusted_packet_sequence_id: 3903809
+}
+
+# The second track associated with this process. Note how we make the above
+# track the "parent" of this track: this means that this track also is
+# associated to the same process. Note further this shows as the same visual
+# track in the UI but remains separate in the trace and data model. Emitting
+# these events on a separate track is necessary because these events overlap
+# *without* nesting with the above events.
+packet {
+ track_descriptor {
+ uuid: 2390190934 # 64-bit random number.
+ name: "My special track"
+ parent_uuid: 48948
+ }
+}
+# The events for the second track.
+packet {
+ timestamp: 230
+ track_event {
+ type: TYPE_SLICE_BEGIN
+ track_uuid: 2390190934 # Same random number from above.
+ name: "My special parent A"
+ }
+ trusted_packet_sequence_id: 3903809
+}
+packet {
+ timestamp: 260
+ track_event {
+ type: TYPE_SLICE_BEGIN
+ track_uuid: 2390190934
+ name: "My special child"
+ }
+ trusted_packet_sequence_id: 3903809
+}
+packet {
+ timestamp: 270
+ track_event {
+ type: TYPE_SLICE_END
+ track_uuid: 2390190934
+ }
+ trusted_packet_sequence_id: 3903809
+}
+packet {
+ timestamp: 295
+ track_event {
+ type: TYPE_SLICE_END
+ track_uuid: 2390190934
+ }
+ trusted_packet_sequence_id: 3903809
+}
+```
+
+## Flows
+NOTE: in the legacy JSON tracing format, this section correspond to s/t/f
+events.
+
+Flows allow connecting any number of slices with arrows. The semantic meaning
+of the arrow varies across different applications but most commonly it is used
+to track work passing between threads or processes: e.g. the UI thread asks a
+background thread to do some work and notify when the result is available.
+
+NOTE: a single flow *cannot* fork ands imply represents a single stream of
+arrows from one slice to the next. See [this](https://source.chromium.org/chromium/chromium/src/+/main:third_party/perfetto/protos/perfetto/trace/perfetto_trace.proto;drc=ba05b783d9c29fe334a02913cf157ea1d415d37c;l=9604) comment for information.
+
+
+
+```
+# The main thread of the process.
+packet {
+ track_descriptor {
+ uuid: 93094
+ thread {
+ pid: 100
+ tid: 100
+ thread_name: "Main thread"
+ }
+ }
+}
+packet {
+ timestamp: 200
+ track_event {
+ type: TYPE_SLICE_BEGIN
+ track_uuid: 93094
+ name: "Request generation"
+ flow_ids: 1055895987 # Random number used to track work
+ # across threads/processes.
+ }
+ trusted_packet_sequence_id: 3903809
+}
+packet {
+ timestamp: 300
+ track_event {
+ type: TYPE_SLICE_END
+ track_uuid: 93094
+ }
+ trusted_packet_sequence_id: 3903809
+}
+packet {
+ timestamp: 400
+ track_event {
+ type: TYPE_SLICE_BEGIN
+ track_uuid: 93094
+ name: "Process background result"
+ flow_ids: 1055895987 # Same as above.
+ }
+ trusted_packet_sequence_id: 3903809
+}
+packet {
+ timestamp: 500
+ track_event {
+ type: TYPE_SLICE_END
+ track_uuid: 93094
+ }
+ trusted_packet_sequence_id: 3903809
+}
+
+# The background thread of the process.
+packet {
+ track_descriptor {
+ uuid: 40489498
+ thread {
+ pid: 100
+ tid: 101
+ thread_name: "Background thread"
+ }
+ }
+}
+packet {
+ timestamp: 310
+ track_event {
+ type: TYPE_SLICE_BEGIN
+ track_uuid: 40489498
+ name: "Background work"
+ flow_ids: 1055895987 # Same as above.
+ }
+ trusted_packet_sequence_id: 3903809
+}
+packet {
+ timestamp: 385
+ track_event {
+ type: TYPE_SLICE_END
+ track_uuid: 40489498
+ }
+ trusted_packet_sequence_id: 3903809
+}
+```
+
+## Counters
+NOTE: in the legacy JSON tracing format, this section correspond to C events.
+
+Counters are useful to represent continuous values which change with time.
+Common examples include CPU frequency, memory usage, battery charge etc.
+
+
+
+This corresponds to the following protos:
+```
+# Counter track scoped to a process.
+packet {
+ track_descriptor {
+ uuid: 1388
+ process {
+ pid: 1024
+ process_name: "MySpecialProcess"
+ }
+ }
+}
+packet {
+ track_descriptor {
+ uuid: 4489498
+ parent_uuid: 1388
+ name: "My special counter"
+ counter {}
+ }
+}
+packet {
+ timestamp: 200
+ track_event {
+ type: TYPE_COUNTER
+ track_uuid: 4489498
+ counter_value: 34567 # Value at start
+ }
+ trusted_packet_sequence_id: 3903809
+}
+packet {
+ timestamp: 250
+ track_event {
+ type: TYPE_COUNTER
+ track_uuid: 4489498
+ counter_value: 67890 # Value goes up
+ }
+ trusted_packet_sequence_id: 3903809
+}
+packet {
+ timestamp: 300
+ track_event {
+ type: TYPE_COUNTER
+ track_uuid: 4489498
+ counter_value: 12345 # Value goes down
+ }
+ trusted_packet_sequence_id: 3903809
+}
+packet {
+ timestamp: 400
+ track_event {
+ type: TYPE_COUNTER
+ track_uuid: 4489498
+ counter_value: 12345 # Final value
+ }
+ trusted_packet_sequence_id: 3903809
+}
+```
diff --git a/docs/toc.md b/docs/toc.md
index 1d37192..bc96bbc 100644
--- a/docs/toc.md
+++ b/docs/toc.md
@@ -67,6 +67,7 @@
* [Trace Packet proto](reference/trace-packet-proto.autogen)
* [perfetto cmdline](reference/perfetto-cli.md)
* [heap_profile cmdline](reference/heap_profile-cli.md)
+ * [Synthetic TrackEvent](reference/synthetic-track-event.md)
* [Contributing](#)
* [Getting started](contributing/getting-started.md)
diff --git a/docs/tracing-101.md b/docs/tracing-101.md
index 61ea985..ef80452 100644
--- a/docs/tracing-101.md
+++ b/docs/tracing-101.md
@@ -1,9 +1,6 @@
# Tracing 101
-*This page provides a birds-eye view of performance analysis using Perfetto.
-The aim is for to orient even people who have no idea what "tracing" is. You
-should walk away from this page with a good understanding of the available
-capabilities in Perfetto and how they can be used to improve performance of a
-system.*
+*This page provides a birds-eye view of performance analysis.
+The aim is to orient people who have no idea what "tracing" is.*
## Introduction to...
### Performance
@@ -148,7 +145,7 @@
systems. It helps identify the changes they can make to improve performance
and verify the impact of those changes.
-NOTE: In Perfetto, since profiles and traces can be collected simultaneously,
+NOTE: In Perfetto, since profiles and traces can be collected simultaneously,
we call everything a "trace" even if it may contain (only) profiling data
inside.
diff --git a/examples/sdk/README.md b/examples/sdk/README.md
index e25c308..238d50d 100644
--- a/examples/sdk/README.md
+++ b/examples/sdk/README.md
@@ -15,7 +15,7 @@
First, check out the latest Perfetto release:
```bash
-git clone https://android.googlesource.com/platform/external/perfetto -b v29.0
+git clone https://android.googlesource.com/platform/external/perfetto -b v32.1
```
Then, build using CMake:
diff --git a/gn/BUILD.gn b/gn/BUILD.gn
index 0130ce7..01f12d0 100644
--- a/gn/BUILD.gn
+++ b/gn/BUILD.gn
@@ -275,13 +275,8 @@
"GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
]
cflags = []
- if (is_clang || !is_win) {
- cflags += [
- "-Wno-unknown-warning-option",
- "-Wno-deprecated",
- "-Wno-undef",
- "-Wno-zero-as-null-pointer-constant",
- ]
+ if (!is_clang || !is_win) {
+ cflags += [ "-Wno-deprecated-declarations" ]
}
if (is_clang && is_win) {
cflags += [
diff --git a/gn/perfetto.gni b/gn/perfetto.gni
index 04c07ca..f41e959 100644
--- a/gn/perfetto.gni
+++ b/gn/perfetto.gni
@@ -307,6 +307,11 @@
# typically handles only itanium mangling.
enable_perfetto_llvm_demangle =
enable_perfetto_trace_processor && perfetto_build_standalone
+
+ # Enables gRPC support. This is used as the RPC framework for cloud trace
+ # processor in open source but is disabled by default because of how
+ # heavyweight gRPC is.
+ enable_perfetto_grpc = false
}
declare_args() {
diff --git a/gn/standalone/BUILD.gn b/gn/standalone/BUILD.gn
index bd21589..329aa97 100644
--- a/gn/standalone/BUILD.gn
+++ b/gn/standalone/BUILD.gn
@@ -84,6 +84,7 @@
"-Wno-reserved-identifier",
"-Wno-unknown-sanitizers",
"-Wno-unknown-warning-option",
+ "-Wno-unsafe-buffer-usage",
]
} else if (!is_clang && !is_win) {
# Use return std::move(...) for compatibility with old GCC compilers.
diff --git a/include/perfetto/base/compiler.h b/include/perfetto/base/compiler.h
index c67e315..bf1b823 100644
--- a/include/perfetto/base/compiler.h
+++ b/include/perfetto/base/compiler.h
@@ -25,6 +25,10 @@
#if __cplusplus >= 201703
#define PERFETTO_IS_AT_LEAST_CPP17() 1
+#elif defined(_MSVC_LANG) && _MSVC_LANG >= 201703L
+// Without additional flags, MSVC is not standard compliant and keeps
+// __cplusplus stuck at an old value, even with C++17
+#define PERFETTO_IS_AT_LEAST_CPP17() 1
#else
#define PERFETTO_IS_AT_LEAST_CPP17() 0
#endif
diff --git a/include/perfetto/ext/base/circular_queue.h b/include/perfetto/ext/base/circular_queue.h
index d607562..1f69ce5 100644
--- a/include/perfetto/ext/base/circular_queue.h
+++ b/include/perfetto/ext/base/circular_queue.h
@@ -20,6 +20,7 @@
#include <stdint.h>
#include <stdlib.h>
+#include <cstddef>
#include <iterator>
#include "perfetto/base/logging.h"
@@ -234,6 +235,16 @@
void clear() { erase_front(size()); }
+ void shrink_to_fit() {
+ // We only bother shrinking if we can fit in quarter of the capacity we are
+ // currently using. Moreover, don't bother shrinking below 4096 elements as
+ // that will cause a lot of reallocations for little benefit.
+ if (size() > capacity() / 2 || capacity() <= 4096) {
+ return;
+ }
+ ChangeCapacity(capacity() / 2);
+ }
+
T& at(size_t idx) {
PERFETTO_DCHECK(idx < size());
return *Get(begin_ + idx);
@@ -272,6 +283,13 @@
// anything other than crash in this case.
PERFETTO_CHECK(new_capacity > capacity_);
+ ChangeCapacity(new_capacity);
+ }
+
+ void ChangeCapacity(size_t new_capacity) {
+ // We should still have enough space to fit all the elements in the queue.
+ PERFETTO_CHECK(new_capacity >= size());
+
AlignedUniquePtr<T[]> new_vec = AlignedAllocTyped<T[]>(new_capacity);
// Move all elements in the expanded array.
diff --git a/include/perfetto/ext/base/string_view.h b/include/perfetto/ext/base/string_view.h
index 7c48ea0..1fe3696 100644
--- a/include/perfetto/ext/base/string_view.h
+++ b/include/perfetto/ext/base/string_view.h
@@ -127,11 +127,7 @@
return false;
if (other.size() > size())
return false;
- for (uint32_t i = 0; i < other.size(); ++i) {
- if (at(i) != other.at(i))
- return false;
- }
- return true;
+ return memcmp(data(), other.data(), other.size()) == 0;
}
bool EndsWith(const StringView& other) const {
@@ -141,12 +137,8 @@
return false;
if (other.size() > size())
return false;
- const size_t off = size() - other.size();
- for (size_t i = 0; i < other.size(); ++i) {
- if (at(off + i) != other.at(i))
- return false;
- }
- return true;
+ size_t off = size() - other.size();
+ return memcmp(data() + off, other.data(), other.size()) == 0;
}
std::string ToStdString() const {
diff --git a/include/perfetto/protozero/BUILD.gn b/include/perfetto/protozero/BUILD.gn
index c99f7fd..4c6c08f 100644
--- a/include/perfetto/protozero/BUILD.gn
+++ b/include/perfetto/protozero/BUILD.gn
@@ -20,6 +20,7 @@
"cpp_message_obj.h",
"field.h",
"field_writer.h",
+ "gen_field_helpers.h",
"message.h",
"message_arena.h",
"message_handle.h",
diff --git a/include/perfetto/protozero/gen_field_helpers.h b/include/perfetto/protozero/gen_field_helpers.h
new file mode 100644
index 0000000..ad3dee8
--- /dev/null
+++ b/include/perfetto/protozero/gen_field_helpers.h
@@ -0,0 +1,152 @@
+/*
+ * Copyright (C) 2023 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.
+ */
+
+#ifndef INCLUDE_PERFETTO_PROTOZERO_GEN_FIELD_HELPERS_H_
+#define INCLUDE_PERFETTO_PROTOZERO_GEN_FIELD_HELPERS_H_
+
+#include "perfetto/protozero/message.h"
+#include "perfetto/protozero/proto_decoder.h"
+#include "perfetto/protozero/proto_utils.h"
+#include "perfetto/protozero/scattered_heap_buffer.h"
+
+namespace protozero {
+namespace internal {
+namespace gen_helpers {
+
+// This file implements some helpers used by the protobuf generated code in the
+// .gen.cc files.
+//
+// The .gen.cc generated protobuf implementation (as opposed to the .pbzero.h
+// implementation) is not zero-copy and is not supposed to be used in fast
+// paths, so most of these helpers are designed to reduce binary size.
+
+void DeserializeString(const protozero::Field& field, std::string* dst);
+
+// Read packed repeated elements (serialized as `wire_type`) from `field` into
+// the `*dst` vector. Returns false if some bytes of `field` could not be
+// interpreted correctly as `wire_type`.
+template <proto_utils::ProtoWireType wire_type, typename CppType>
+bool DeserializePackedRepeated(const protozero::Field& field,
+ std::vector<CppType>* dst) {
+ bool parse_error = false;
+ for (::protozero::PackedRepeatedFieldIterator<wire_type, CppType> rep(
+ field.data(), field.size(), &parse_error);
+ rep; ++rep) {
+ dst->emplace_back(*rep);
+ }
+ return !parse_error;
+}
+
+extern template bool
+DeserializePackedRepeated<proto_utils::ProtoWireType::kVarInt, uint64_t>(
+ const protozero::Field& field,
+ std::vector<uint64_t>* dst);
+
+extern template bool
+DeserializePackedRepeated<proto_utils::ProtoWireType::kVarInt, int64_t>(
+ const protozero::Field& field,
+ std::vector<int64_t>* dst);
+
+extern template bool
+DeserializePackedRepeated<proto_utils::ProtoWireType::kVarInt, uint32_t>(
+ const protozero::Field& field,
+ std::vector<uint32_t>* dst);
+
+extern template bool
+DeserializePackedRepeated<proto_utils::ProtoWireType::kVarInt, int32_t>(
+ const protozero::Field& field,
+ std::vector<int32_t>* dst);
+
+// Serializers for different type of fields
+
+void SerializeTinyVarInt(uint32_t field_id, bool value, Message* msg);
+
+template <typename T>
+void SerializeExtendedVarInt(uint32_t field_id, T value, Message* msg) {
+ msg->AppendVarInt(field_id, value);
+}
+
+extern template void SerializeExtendedVarInt<uint64_t>(uint32_t field_id,
+ uint64_t value,
+ Message* msg);
+
+extern template void SerializeExtendedVarInt<uint32_t>(uint32_t field_id,
+ uint32_t value,
+ Message* msg);
+
+template <typename T>
+void SerializeVarInt(uint32_t field_id, T value, Message* msg) {
+ SerializeExtendedVarInt(
+ field_id, proto_utils::ExtendValueForVarIntSerialization(value), msg);
+}
+
+template <typename T>
+void SerializeSignedVarInt(uint32_t field_id, T value, Message* msg) {
+ SerializeVarInt(field_id, proto_utils::ZigZagEncode(value), msg);
+}
+
+template <typename T>
+void SerializeFixed(uint32_t field_id, T value, Message* msg) {
+ msg->AppendFixed(field_id, value);
+}
+
+extern template void SerializeFixed<double>(uint32_t field_id,
+ double value,
+ Message* msg);
+
+extern template void SerializeFixed<float>(uint32_t field_id,
+ float value,
+ Message* msg);
+
+extern template void SerializeFixed<uint64_t>(uint32_t field_id,
+ uint64_t value,
+ Message* msg);
+
+extern template void SerializeFixed<int64_t>(uint32_t field_id,
+ int64_t value,
+ Message* msg);
+
+extern template void SerializeFixed<uint32_t>(uint32_t field_id,
+ uint32_t value,
+ Message* msg);
+
+extern template void SerializeFixed<int32_t>(uint32_t field_id,
+ int32_t value,
+ Message* msg);
+
+void SerializeString(uint32_t field_id, const std::string& value, Message* msg);
+
+void SerializeUnknownFields(const std::string& unknown_fields, Message* msg);
+
+// Wrapper around HeapBuffered that avoids inlining.
+class MessageSerializer {
+ public:
+ MessageSerializer();
+ ~MessageSerializer();
+
+ Message* get() { return msg_.get(); }
+ std::vector<uint8_t> SerializeAsArray();
+ std::string SerializeAsString();
+
+ private:
+ HeapBuffered<Message> msg_;
+};
+
+} // namespace gen_helpers
+} // namespace internal
+} // namespace protozero
+
+#endif // INCLUDE_PERFETTO_PROTOZERO_GEN_FIELD_HELPERS_H_
diff --git a/include/perfetto/protozero/proto_utils.h b/include/perfetto/protozero/proto_utils.h
index eafd6ce..2896b3d 100644
--- a/include/perfetto/protozero/proto_utils.h
+++ b/include/perfetto/protozero/proto_utils.h
@@ -178,7 +178,9 @@
}
template <typename T>
-inline uint8_t* WriteVarInt(T value, uint8_t* target) {
+auto ExtendValueForVarIntSerialization(T value) -> typename std::make_unsigned<
+ typename std::conditional<std::is_unsigned<T>::value, T, int64_t>::type>::
+ type {
// If value is <= 0 we must first sign extend to int64_t (see [1]).
// Finally we always cast to an unsigned value to to avoid arithmetic
// (sign expanding) shifts in the while loop.
@@ -198,6 +200,13 @@
MaybeExtendedType extended_value = static_cast<MaybeExtendedType>(value);
UnsignedType unsigned_value = static_cast<UnsignedType>(extended_value);
+ return unsigned_value;
+}
+
+template <typename T>
+inline uint8_t* WriteVarInt(T value, uint8_t* target) {
+ auto unsigned_value = ExtendValueForVarIntSerialization(value);
+
while (unsigned_value >= 0x80) {
*target++ = static_cast<uint8_t>(unsigned_value) | 0x80;
unsigned_value >>= 7;
diff --git a/include/perfetto/trace_processor/ref_counted.h b/include/perfetto/trace_processor/ref_counted.h
index 4eb27c9..02996f0 100644
--- a/include/perfetto/trace_processor/ref_counted.h
+++ b/include/perfetto/trace_processor/ref_counted.h
@@ -88,6 +88,23 @@
// This case is really the move-assignment operator=(&&).
void reset(T* new_obj) { *this = RefPtr<T>(new_obj); }
+ // Releases the pointer owned by this RefPtr *without* decrementing the
+ // refcount. Callers *must* call |FromReleasedUnsafe| at a later date with
+ // this pointer to avoid memory leaks.
+ T* ReleaseUnsafe() {
+ auto* old_ptr = ptr_;
+ ptr_ = nullptr;
+ return old_ptr;
+ }
+
+ // Creates a RefPtr from a pointer returned by |ReleaseUnsafe|. Passing a
+ // pointer from any other source results in undefined behaviour.
+ static RefPtr<T> FromReleasedUnsafe(T* ptr) {
+ RefPtr<T> res;
+ res.ptr_ = ptr;
+ return res;
+ }
+
// Move operators.
RefPtr(RefPtr&& move_from) noexcept {
ptr_ = move_from.ptr_;
diff --git a/include/perfetto/tracing.h b/include/perfetto/tracing.h
index c542741..8769cb3 100644
--- a/include/perfetto/tracing.h
+++ b/include/perfetto/tracing.h
@@ -23,6 +23,7 @@
// The only exception to this should be large projects where build time is a
// concern (e.g. chromium), which migh prefer sticking to strict IWYU.
+#include "perfetto/base/time.h"
#include "perfetto/tracing/buffer_exhausted_policy.h"
#include "perfetto/tracing/console_interceptor.h"
#include "perfetto/tracing/core/data_source_config.h"
diff --git a/include/perfetto/tracing/data_source.h b/include/perfetto/tracing/data_source.h
index 5065c5b..7206776 100644
--- a/include/perfetto/tracing/data_source.h
+++ b/include/perfetto/tracing/data_source.h
@@ -56,8 +56,14 @@
// should be made visible outside the current module. (e.g., in Chrome's
// component build).
#if !defined(PERFETTO_COMPONENT_EXPORT)
+#if PERFETTO_BUILDFLAG(PERFETTO_COMPILER_MSVC)
+// Workaround for C4003: not enough arguments for function-like macro invocation
+// 'PERFETTO_INTERNAL_DECLARE_TRACK_EVENT_DATA_SOURCE'
+#define PERFETTO_COMPONENT_EXPORT __declspec()
+#else
#define PERFETTO_COMPONENT_EXPORT
#endif
+#endif
namespace perfetto {
namespace internal {
@@ -368,9 +374,24 @@
constexpr auto kMaxDataSourceInstances = internal::kMaxDataSourceInstances;
// See tracing_muxer.h for the structure of the TLS.
- auto* tracing_impl = internal::TracingMuxer::Get();
- if (PERFETTO_UNLIKELY(!tls_state_))
+ if (PERFETTO_UNLIKELY(!tls_state_)) {
+ // If the TLS hasn't been obtained yet, it's possible that this thread
+ // hasn't observed the initialization of global state like the muxer yet.
+ // To ensure that the thread "sees" the effects of such initialization,
+ // we have to reload |instances| with an acquire fence, ensuring that any
+ // initialization performed before instances was updated is visible
+ // in this thread.
+ instances &= Traits::GetActiveInstances(trace_point_data)
+ ->load(std::memory_order_acquire);
+ if (!instances)
+ return;
tls_state_ = GetOrCreateDataSourceTLS(&static_state_);
+ }
+
+ // |tls_state_| is valid, which means that the current thread must have
+ // observed the initialization of the muxer, and obtaining it without a
+ // fence is safe.
+ auto* tracing_impl = internal::TracingMuxer::Get();
// Avoid re-entering the trace point recursively.
if (PERFETTO_UNLIKELY(tls_state_->root_tls->is_in_trace_point))
@@ -435,10 +456,11 @@
// Here we need an acquire barrier, which matches the release-store made
// by TracingMuxerImpl::SetupDataSource(), to ensure that the backend_id
// and buffer_id are consistent.
- instances = Traits::GetActiveInstances(trace_point_data)
- ->load(std::memory_order_acquire);
+ instances &= Traits::GetActiveInstances(trace_point_data)
+ ->load(std::memory_order_acquire);
instance_state = static_state_.TryGetCached(instances, i);
- if (!instance_state || !instance_state->trace_lambda_enabled)
+ if (!instance_state || !instance_state->trace_lambda_enabled.load(
+ std::memory_order_relaxed))
continue;
tls_inst.muxer_id_for_testing = instance_state->muxer_id_for_testing;
tls_inst.backend_id = instance_state->backend_id;
diff --git a/include/perfetto/tracing/internal/data_source_internal.h b/include/perfetto/tracing/internal/data_source_internal.h
index 9d9c6a2..8cfe5e6 100644
--- a/include/perfetto/tracing/internal/data_source_internal.h
+++ b/include/perfetto/tracing/internal/data_source_internal.h
@@ -59,7 +59,7 @@
// Keep this flag as the first field. This allows the compiler to directly
// dereference the DataSourceState* pointer in the trace fast-path without
// doing extra pointr arithmetic.
- bool trace_lambda_enabled = false;
+ std::atomic<bool> trace_lambda_enabled = false;
// The overall TracingMuxerImpl instance id, which gets incremented by
// ResetForTesting.
diff --git a/include/perfetto/tracing/track_event.h b/include/perfetto/tracing/track_event.h
index 2651927..7366b85 100644
--- a/include/perfetto/tracing/track_event.h
+++ b/include/perfetto/tracing/track_event.h
@@ -17,7 +17,6 @@
#ifndef INCLUDE_PERFETTO_TRACING_TRACK_EVENT_H_
#define INCLUDE_PERFETTO_TRACING_TRACK_EVENT_H_
-#include "perfetto/base/time.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"
diff --git a/protos/perfetto/metrics/android/android_frame_timeline_metric.proto b/protos/perfetto/metrics/android/android_frame_timeline_metric.proto
index d6be2ec..d0f4d50 100644
--- a/protos/perfetto/metrics/android/android_frame_timeline_metric.proto
+++ b/protos/perfetto/metrics/android/android_frame_timeline_metric.proto
@@ -35,6 +35,10 @@
optional int64 frame_dur_p90 = 11;
optional int64 frame_dur_p95 = 12;
optional int64 frame_dur_p99 = 13;
+ optional double frame_dur_ms_p50 = 14;
+ optional double frame_dur_ms_p90 = 15;
+ optional double frame_dur_ms_p95 = 16;
+ optional double frame_dur_ms_p99 = 17;
reserved 1, 2;
}
diff --git a/protos/perfetto/metrics/android/binder_metric.proto b/protos/perfetto/metrics/android/binder_metric.proto
index f60d022..feb478b 100644
--- a/protos/perfetto/metrics/android/binder_metric.proto
+++ b/protos/perfetto/metrics/android/binder_metric.proto
@@ -18,8 +18,12 @@
package perfetto.protos;
-// This metric provides per-process Binder statistics for traces with binder_driver enabled
-// Specifically, transactions are categorized and counted
+// This metric provides the following:
+// 1. Per-process Binder statistics for traces with binder_driver enabled.
+// Specifically, transactions are categorized and counted
+// 2. Unaggregated binder txn durations with per-txn aggregated thread state and
+// blocked function
+// durations
message AndroidBinderMetric {
message PerProcessBreakdown {
optional string process_name = 1;
@@ -28,5 +32,41 @@
optional uint32 count = 4;
}
+ message UnaggregatedTxnBreakdown {
+ // General
+ optional string aidl_name = 1;
+ // Client
+ optional uint32 binder_txn_id = 2;
+ optional string client_process = 3;
+ optional string client_thread = 4;
+ optional bool is_main_thread = 5;
+ optional int64 client_ts = 6;
+ optional int64 client_dur = 7;
+ // Server
+ optional uint32 binder_reply_id = 8;
+ optional string server_process = 9;
+ optional string server_thread = 10;
+ optional int64 server_ts = 11;
+ optional int64 server_dur = 12;
+ // Aggregations
+ repeated ThreadStateBreakdown thread_states = 13;
+ repeated BlockedFunctionBreakdown blocked_functions = 14;
+ }
+
+ message ThreadStateBreakdown {
+ optional string thread_state_type = 1;
+ optional string thread_state = 2;
+ optional int64 thread_state_dur = 3;
+ optional int64 thread_state_count = 4;
+ }
+
+ message BlockedFunctionBreakdown {
+ optional string thread_state_type = 1;
+ optional string blocked_function = 2;
+ optional int64 blocked_function_dur = 3;
+ optional int64 blocked_function_count = 4;
+ }
+
repeated PerProcessBreakdown process_breakdown = 1;
-}
\ No newline at end of file
+ repeated UnaggregatedTxnBreakdown unaggregated_txn_breakdown = 2;
+}
diff --git a/protos/perfetto/metrics/android/jank_cuj_metric.proto b/protos/perfetto/metrics/android/jank_cuj_metric.proto
index a2bb50d..10bb9a7 100644
--- a/protos/perfetto/metrics/android/jank_cuj_metric.proto
+++ b/protos/perfetto/metrics/android/jank_cuj_metric.proto
@@ -78,7 +78,7 @@
optional bool sf_missed = 6;
}
- // Next id: 12
+ // Next id: 16
message Metrics {
// Overall number of frames within the CUJ.
optional int64 total_frames = 1;
@@ -96,28 +96,43 @@
// Not available in timeline_metrics and trace_metrics.
optional int64 missed_frames_max_successive = 5;
- // Max frame duration.
- // Not available in counter_metrics.
+ // Max frame duration in nanoseconds.
optional int64 frame_dur_max = 6;
- // Average frame duration.
+ // Average frame duration in nanoseconds.
// Not available in counter_metrics.
optional int64 frame_dur_avg = 7;
- // Median frame duration.
+ // Median frame duration in nanoseconds.
// Not available in counter_metrics.
optional int64 frame_dur_p50 = 8;
- // P90 frame duration.
+ // P90 frame duration in nanoseconds.
// Not available in counter_metrics.
optional int64 frame_dur_p90 = 9;
- // P95 frame duration.
+ // P95 frame duration in nanoseconds.
// Not available in counter_metrics.
optional int64 frame_dur_p95 = 10;
- // P99 frame duration.
+ // P99 frame duration in nanoseconds.
// Not available in counter_metrics.
optional int64 frame_dur_p99 = 11;
+
+ // Median frame duration in milliseconds.
+ // Not available in counter_metrics.
+ optional double frame_dur_ms_p50 = 12;
+
+ // P90 frame duration in milliseconds.
+ // Not available in counter_metrics.
+ optional double frame_dur_ms_p90 = 13;
+
+ // P95 frame duration in milliseconds.
+ // Not available in counter_metrics.
+ optional double frame_dur_ms_p95 = 14;
+
+ // P99 frame duration in milliseconds.
+ // Not available in counter_metrics.
+ optional double frame_dur_ms_p99 = 15;
}
}
diff --git a/protos/perfetto/metrics/perfetto_merged_metrics.proto b/protos/perfetto/metrics/perfetto_merged_metrics.proto
index d4507af..4db6c88 100644
--- a/protos/perfetto/metrics/perfetto_merged_metrics.proto
+++ b/protos/perfetto/metrics/perfetto_merged_metrics.proto
@@ -64,6 +64,10 @@
optional int64 frame_dur_p90 = 11;
optional int64 frame_dur_p95 = 12;
optional int64 frame_dur_p99 = 13;
+ optional double frame_dur_ms_p50 = 14;
+ optional double frame_dur_ms_p90 = 15;
+ optional double frame_dur_ms_p95 = 16;
+ optional double frame_dur_ms_p99 = 17;
reserved 1, 2;
}
@@ -133,8 +137,12 @@
// Begin of protos/perfetto/metrics/android/binder_metric.proto
-// This metric provides per-process Binder statistics for traces with binder_driver enabled
-// Specifically, transactions are categorized and counted
+// This metric provides the following:
+// 1. Per-process Binder statistics for traces with binder_driver enabled.
+// Specifically, transactions are categorized and counted
+// 2. Unaggregated binder txn durations with per-txn aggregated thread state and
+// blocked function
+// durations
message AndroidBinderMetric {
message PerProcessBreakdown {
optional string process_name = 1;
@@ -143,8 +151,45 @@
optional uint32 count = 4;
}
+ message UnaggregatedTxnBreakdown {
+ // General
+ optional string aidl_name = 1;
+ // Client
+ optional uint32 binder_txn_id = 2;
+ optional string client_process = 3;
+ optional string client_thread = 4;
+ optional bool is_main_thread = 5;
+ optional int64 client_ts = 6;
+ optional int64 client_dur = 7;
+ // Server
+ optional uint32 binder_reply_id = 8;
+ optional string server_process = 9;
+ optional string server_thread = 10;
+ optional int64 server_ts = 11;
+ optional int64 server_dur = 12;
+ // Aggregations
+ repeated ThreadStateBreakdown thread_states = 13;
+ repeated BlockedFunctionBreakdown blocked_functions = 14;
+ }
+
+ message ThreadStateBreakdown {
+ optional string thread_state_type = 1;
+ optional string thread_state = 2;
+ optional int64 thread_state_dur = 3;
+ optional int64 thread_state_count = 4;
+ }
+
+ message BlockedFunctionBreakdown {
+ optional string thread_state_type = 1;
+ optional string blocked_function = 2;
+ optional int64 blocked_function_dur = 3;
+ optional int64 blocked_function_count = 4;
+ }
+
repeated PerProcessBreakdown process_breakdown = 1;
+ repeated UnaggregatedTxnBreakdown unaggregated_txn_breakdown = 2;
}
+
// End of protos/perfetto/metrics/android/binder_metric.proto
// Begin of protos/perfetto/metrics/android/camera_metric.proto
@@ -744,7 +789,7 @@
optional bool sf_missed = 6;
}
- // Next id: 12
+ // Next id: 16
message Metrics {
// Overall number of frames within the CUJ.
optional int64 total_frames = 1;
@@ -762,29 +807,44 @@
// Not available in timeline_metrics and trace_metrics.
optional int64 missed_frames_max_successive = 5;
- // Max frame duration.
- // Not available in counter_metrics.
+ // Max frame duration in nanoseconds.
optional int64 frame_dur_max = 6;
- // Average frame duration.
+ // Average frame duration in nanoseconds.
// Not available in counter_metrics.
optional int64 frame_dur_avg = 7;
- // Median frame duration.
+ // Median frame duration in nanoseconds.
// Not available in counter_metrics.
optional int64 frame_dur_p50 = 8;
- // P90 frame duration.
+ // P90 frame duration in nanoseconds.
// Not available in counter_metrics.
optional int64 frame_dur_p90 = 9;
- // P95 frame duration.
+ // P95 frame duration in nanoseconds.
// Not available in counter_metrics.
optional int64 frame_dur_p95 = 10;
- // P99 frame duration.
+ // P99 frame duration in nanoseconds.
// Not available in counter_metrics.
optional int64 frame_dur_p99 = 11;
+
+ // Median frame duration in milliseconds.
+ // Not available in counter_metrics.
+ optional double frame_dur_ms_p50 = 12;
+
+ // P90 frame duration in milliseconds.
+ // Not available in counter_metrics.
+ optional double frame_dur_ms_p90 = 13;
+
+ // P95 frame duration in milliseconds.
+ // Not available in counter_metrics.
+ optional double frame_dur_ms_p95 = 14;
+
+ // P99 frame duration in milliseconds.
+ // Not available in counter_metrics.
+ optional double frame_dur_ms_p99 = 15;
}
}
diff --git a/protos/perfetto/trace/chrome/chrome_metadata.proto b/protos/perfetto/trace/chrome/chrome_metadata.proto
index 8882593..d2c46e4 100644
--- a/protos/perfetto/trace/chrome/chrome_metadata.proto
+++ b/protos/perfetto/trace/chrome/chrome_metadata.proto
@@ -85,4 +85,7 @@
// List of all active triggers in current session, when trace was triggered.
repeated TriggerRule active_rules = 2;
+
+ // Hash of the scenario name.
+ optional fixed32 scenario_name_hash = 3;
}
diff --git a/protos/perfetto/trace/perfetto_trace.proto b/protos/perfetto/trace/perfetto_trace.proto
index 5f3473a..a215592 100644
--- a/protos/perfetto/trace/perfetto_trace.proto
+++ b/protos/perfetto/trace/perfetto_trace.proto
@@ -3823,6 +3823,9 @@
// List of all active triggers in current session, when trace was triggered.
repeated TriggerRule active_rules = 2;
+
+ // Hash of the scenario name.
+ optional fixed32 scenario_name_hash = 3;
}
// End of protos/perfetto/trace/chrome/chrome_metadata.proto
diff --git a/protos/third_party/chromium/chrome_track_event.proto b/protos/third_party/chromium/chrome_track_event.proto
index fb35740..911dbe0 100644
--- a/protos/third_party/chromium/chrome_track_event.proto
+++ b/protos/third_party/chromium/chrome_track_event.proto
@@ -728,6 +728,7 @@
TASK_TYPE_INTERNAL_POST_MESSAGE_FORWARDING = 79;
TASK_TYPE_INTERNAL_NAVIGATION_CANCELLATION = 80;
TASK_TYPE_LOW_PRIORITY_SCRIPT_EXECUTION = 81;
+ TASK_TYPE_STORAGE = 82;
}
enum FrameType {
diff --git a/python/generators/diff_tests/runner.py b/python/generators/diff_tests/runner.py
index dab06d1..c6eb14e 100644
--- a/python/generators/diff_tests/runner.py
+++ b/python/generators/diff_tests/runner.py
@@ -21,7 +21,7 @@
import sys
import tempfile
from dataclasses import dataclass
-from typing import Dict, List, Tuple
+from typing import List, Tuple, Optional
from google.protobuf import text_format
from python.generators.diff_tests.testing import TestCase, TestType
@@ -63,7 +63,7 @@
passed: bool
stderr: str
exit_code: int
- perf_result: PerfResult
+ perf_result: Optional[PerfResult]
def __init__(self, test: TestCase, gen_trace_path: str, cmd: List[str],
expected_text: str, actual_text: str, stderr: str,
@@ -88,7 +88,10 @@
actual_content = self.actual.replace('\r\n', '\n')
self.passed = (expected_content == actual_content)
- self.perf_result = PerfResult(self.test, perf_lines)
+ if self.exit_code == 0:
+ self.perf_result = PerfResult(self.test, perf_lines)
+ else:
+ self.perf_result = None
def write_diff(self):
expected_lines = self.expected.splitlines(True)
diff --git a/python/generators/diff_tests/testing.py b/python/generators/diff_tests/testing.py
index 81e4dcf..aeef2b0 100644
--- a/python/generators/diff_tests/testing.py
+++ b/python/generators/diff_tests/testing.py
@@ -16,7 +16,7 @@
import inspect
import os
from dataclasses import dataclass
-from typing import Dict, List, Union
+from typing import List, Union
from enum import Enum
import re
@@ -29,6 +29,11 @@
@dataclass
+class DataPath(Path):
+ filename: str
+
+
+@dataclass
class Metric:
name: str
@@ -64,9 +69,9 @@
@dataclass
class DiffTestBlueprint:
- trace: Union[Path, Json, Systrace, TextProto]
- query: Union[str, Path, Metric]
- out: Union[Path, Json, Csv, TextProto]
+ trace: Union[Path, DataPath, Json, Systrace, TextProto]
+ query: Union[str, Path, DataPath, Metric]
+ out: Union[Path, DataPath, Json, Csv, TextProto]
def is_trace_file(self):
return isinstance(self.trace, Path)
@@ -105,39 +110,66 @@
# script.
class TestCase:
+ def __get_query_path(self) -> str:
+ if not self.blueprint.is_query_file():
+ return None
+
+ if isinstance(self.blueprint.query, DataPath):
+ path = os.path.join(self.test_dir, 'data', self.blueprint.query.filename)
+ else:
+ path = os.path.abspath(
+ os.path.join(self.index_dir, self.blueprint.query.filename))
+
+ if not os.path.exists(path):
+ raise AssertionError(
+ f"Query file ({path}) for test '{self.name}' does not exist.")
+ return path
+
+ def __get_trace_path(self) -> str:
+ if not self.blueprint.is_trace_file():
+ return None
+
+ if isinstance(self.blueprint.trace, DataPath):
+ path = os.path.join(self.test_dir, 'data', self.blueprint.trace.filename)
+ else:
+ path = os.path.abspath(
+ os.path.join(self.index_dir, self.blueprint.trace.filename))
+
+ if not os.path.exists(path):
+ raise AssertionError(
+ f"Trace file ({path}) for test '{self.name}' does not exist.")
+ return path
+
+ def __get_out_path(self) -> str:
+ if not self.blueprint.is_out_file():
+ return None
+
+ if isinstance(self.blueprint.out, DataPath):
+ path = os.path.join(self.test_dir, 'data', self.blueprint.out.filename)
+ else:
+ path = os.path.abspath(
+ os.path.join(self.index_dir, self.blueprint.out.filename))
+
+ if not os.path.exists(path):
+ raise AssertionError(
+ f"Out file ({path}) for test '{self.name}' does not exist.")
+ return path
+
def __init__(self, name: str, blueprint: DiffTestBlueprint,
index_dir: str) -> None:
self.name = name
self.blueprint = blueprint
+ self.index_dir = index_dir
+ self.test_dir = os.path.dirname(os.path.dirname(os.path.dirname(index_dir)))
if blueprint.is_metric():
self.type = TestType.METRIC
else:
self.type = TestType.QUERY
- if blueprint.is_query_file():
- self.query_path = os.path.abspath(
- os.path.join(index_dir, blueprint.query.filename))
- if not os.path.exists(self.query_path):
- raise AssertionError(f"Query file for {self.name} does not exist.")
- else:
- self.query_path = None
-
- if blueprint.is_trace_file():
- self.trace_path = os.path.abspath(
- os.path.join(index_dir, blueprint.trace.filename))
- if not os.path.exists(self.trace_path):
- raise AssertionError(f"Trace file for {self.name} does not exist.")
- else:
- self.trace_path = None
-
- if blueprint.is_out_file():
- self.expected_path = os.path.abspath(
- os.path.join(index_dir, blueprint.out.filename))
- if not os.path.exists(self.expected_path):
- raise AssertionError(f"Out file for {self.name} does not exist.")
- else:
- self.expected_path = None
+ self.query_path = self.__get_query_path()
+ self.trace_path = self.__get_trace_path()
+ self.expected_path = self.__get_out_path()
# Verifies that the test should be in test suite. If False, test will not be
# executed.
@@ -149,7 +181,7 @@
# Virtual class responsible for fetching diff tests.
# All functions with name starting with `test_` have to return
# DiffTestBlueprint and function name is a test name. All DiffTestModules have
-# to be included in `test/trace_processor/include_index.py`.
+# to be included in `test/diff_tests/trace_processor/include_index.py`.
# `fetch_diff_test` function should not be overwritten.
class TestSuite:
diff --git a/python/generators/diff_tests/utils.py b/python/generators/diff_tests/utils.py
index 9f88555..cb447fd 100644
--- a/python/generators/diff_tests/utils.py
+++ b/python/generators/diff_tests/utils.py
@@ -151,7 +151,7 @@
def read_all_tests(name_filter: str, root_dir: str) -> List[testing.TestCase]:
# Import
- INCLUDE_PATH = os.path.join(root_dir, 'test', 'trace_processor')
+ INCLUDE_PATH = os.path.join(root_dir, 'test', 'trace_processor', 'diff_tests')
sys.path.append(INCLUDE_PATH)
from include_index import fetch_all_diff_tests
sys.path.pop()
diff --git a/python/perfetto/prebuilts/manifests/trace_processor_shell.py b/python/perfetto/prebuilts/manifests/trace_processor_shell.py
index 8510090..1ea60ef 100755
--- a/python/perfetto/prebuilts/manifests/trace_processor_shell.py
+++ b/python/perfetto/prebuilts/manifests/trace_processor_shell.py
@@ -1,15 +1,15 @@
-# This file has been generated by: /usr/local/google/home/lalitm/perfetto/tools/roll-prebuilts v31.0
+# This file has been generated by: tools/roll-prebuilts v32.1
TRACE_PROCESSOR_SHELL_MANIFEST = [{
'arch':
'mac-amd64',
'file_name':
'trace_processor_shell',
'file_size':
- 8516960,
+ 8566376,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/mac-amd64/trace_processor_shell',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/mac-amd64/trace_processor_shell',
'sha256':
- 'e15e409929d3c140ce82f69ad3f0b0634a4d9b765a1a61f03d8ff29d87cb8f7f',
+ 'e918db13f3068de751bacd15fb8b3ff920cc6290508512e820186eed0150731b',
'platform':
'darwin',
'machine': ['x86_64']
@@ -19,11 +19,11 @@
'file_name':
'trace_processor_shell',
'file_size':
- 7270264,
+ 7286792,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/mac-arm64/trace_processor_shell',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/mac-arm64/trace_processor_shell',
'sha256':
- 'd500226e1d53c3e8db4f29f44df463139f8fbc81ba2364934f6a69e76d9d065d',
+ 'e98902c678b642773e867b9308e041ef9c37d07199077c4903e586ddb3ac6b7c',
'platform':
'darwin',
'machine': ['arm64']
@@ -33,11 +33,11 @@
'file_name':
'trace_processor_shell',
'file_size':
- 8944032,
+ 8976816,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/linux-amd64/trace_processor_shell',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/linux-amd64/trace_processor_shell',
'sha256':
- '5a2303c36e852f044962c502b9e24d1f5ffb468f25c4672cbe8e5dd9c345906c',
+ 'da6a99374f04cc10fd19dd5247a5d6ea9a0e6572a12b6f77de5c64827bc7c98c',
'platform':
'linux',
'machine': ['x86_64']
@@ -47,11 +47,11 @@
'file_name':
'trace_processor_shell',
'file_size':
- 7110964,
+ 7109580,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/linux-arm/trace_processor_shell',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/linux-arm/trace_processor_shell',
'sha256':
- '4646a44ccab1f28c29c045edda338ebbde2880d5431cc151a6003daf8efe8ddb',
+ 'd996276bb125c2d95b677e0c3326f8822947f9d2bedcdfec82581da36c50fa90',
'platform':
'linux',
'machine': ['armv6l', 'armv7l', 'armv8l']
@@ -61,11 +61,11 @@
'file_name':
'trace_processor_shell',
'file_size':
- 8380416,
+ 8395080,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/linux-arm64/trace_processor_shell',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/linux-arm64/trace_processor_shell',
'sha256':
- '130c60bebbbb338d8e9c250a5fbd526296d4cab49af08680fef5134cb6831130',
+ 'cd9d4dec964223549eb3e6580e1d4f72aa0dd8467ad0da22fcdf8b6c6b39ff34',
'platform':
'linux',
'machine': ['aarch64']
@@ -75,55 +75,55 @@
'file_name':
'trace_processor_shell',
'file_size':
- 5807408,
+ 5807400,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/android-arm/trace_processor_shell',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/android-arm/trace_processor_shell',
'sha256':
- '5d13bc0d37f3379a6fd0d66d8f98c36ec8bf80c133b7660ae8b7cbcfe41284f4'
+ 'a691c3b8c4f62dc73bd9e0538e812abe6b340b0ab7c8516d3395d7d726725305'
}, {
'arch':
'android-arm64',
'file_name':
'trace_processor_shell',
'file_size':
- 7458752,
+ 7471024,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/android-arm64/trace_processor_shell',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/android-arm64/trace_processor_shell',
'sha256':
- '3e038732d0ee77875e6376ddf0f804271c4e5337b76977e939c91a553621587a'
+ 'a2269b32897bc7c16426b0af6f213994b67df439386b5acd19fe67da56e574ad'
}, {
'arch':
'android-x86',
'file_name':
'trace_processor_shell',
'file_size':
- 8404228,
+ 8400124,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/android-x86/trace_processor_shell',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/android-x86/trace_processor_shell',
'sha256':
- '1a04a4d888dfa16a5baa36073df50f28ea9f5ed688fb59fe8ef24a9f3341ad77'
+ 'd4d999cd23b3fb3d288227bbb6c42ebed9ea664efda65c03bf1b3d527126517e'
}, {
'arch':
'android-x64',
'file_name':
'trace_processor_shell',
'file_size':
- 8744960,
+ 8757232,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/android-x64/trace_processor_shell',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/android-x64/trace_processor_shell',
'sha256':
- '45fe2744b60baac964c636304b4b83853405f7f4f7329b2764cf921d3d90a2b1'
+ '5ac30fa1e290a5d6a5f1ae648d0d2e42ebc4abd6be3594a9f8aa843841e26593'
}, {
'arch':
'windows-amd64',
'file_name':
'trace_processor_shell.exe',
'file_size':
- 8152064,
+ 8189952,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/windows-amd64/trace_processor_shell.exe',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/windows-amd64/trace_processor_shell.exe',
'sha256':
- '6d5e873b65ea68ec5ddf51a02a049f350e9da4f5f78cc7294d0bbf95f7673ea9',
+ 'f11b220447ecf9a7b6f4394443c915f1dea92a2316b3c35da823e6e42dfacd9d',
'platform':
'win32',
'machine': ['amd64']
diff --git a/python/perfetto/prebuilts/manifests/tracebox.py b/python/perfetto/prebuilts/manifests/tracebox.py
index 50a74de..9c707a5 100755
--- a/python/perfetto/prebuilts/manifests/tracebox.py
+++ b/python/perfetto/prebuilts/manifests/tracebox.py
@@ -1,15 +1,15 @@
-# This file has been generated by: /usr/local/google/home/lalitm/perfetto/tools/roll-prebuilts v31.0
+# This file has been generated by: tools/roll-prebuilts v32.1
TRACEBOX_MANIFEST = [{
'arch':
'mac-amd64',
'file_name':
'tracebox',
'file_size':
- 1431944,
+ 1464912,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/mac-amd64/tracebox',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/mac-amd64/tracebox',
'sha256':
- '9ba2bd56eac2464060158fc6a972709663102fd79e210036558a79e0450a39a7',
+ '453523bcbdde071447192afbd30bb3479bf7b5a6c82759eedad7228760ba91de',
'platform':
'darwin',
'machine': ['x86_64']
@@ -19,11 +19,11 @@
'file_name':
'tracebox',
'file_size':
- 1325592,
+ 1358808,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/mac-arm64/tracebox',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/mac-arm64/tracebox',
'sha256':
- '2bc59074dc169bd3ca0b58fc8e6536b5a8d35f99ef6d44ce467719b888f5f65e',
+ '2b843df989889e728a002f9829b18d1ce3ce5a7bb4b267ee3ea108f1d67606ad',
'platform':
'darwin',
'machine': ['arm64']
@@ -33,11 +33,11 @@
'file_name':
'tracebox',
'file_size':
- 2140080,
+ 2176672,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/linux-amd64/tracebox',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/linux-amd64/tracebox',
'sha256':
- 'ee12c839586f19d024c6de78825b416fcb7d9a6d4fe6e9266e239812ec63e188',
+ '8ecb2d40b77d846f8d849913ddf5c6629d67a55c4891984d4cd236822d3655a8',
'platform':
'linux',
'machine': ['x86_64']
@@ -47,11 +47,11 @@
'file_name':
'tracebox',
'file_size':
- 1286400,
+ 1306960,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/linux-arm/tracebox',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/linux-arm/tracebox',
'sha256':
- 'e4b76213b71d192a6155f576ccf265b9f2605090eff01444216fa49e3f06c40c',
+ '023c81e41ea8d7548f2e749bbbaaf4d19036d719d66033036a54aa0c2b14f8d4',
'platform':
'linux',
'machine': ['armv6l', 'armv7l', 'armv8l']
@@ -61,11 +61,11 @@
'file_name':
'tracebox',
'file_size':
- 2070760,
+ 2105360,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/linux-arm64/tracebox',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/linux-arm64/tracebox',
'sha256':
- '653469e497c7f021c51220b2b3f0a70efce35dcb4ca897bbf09e24a89af92aea',
+ '1ae9264b304a6336dcdaa938c7eb0aeffd3689149fcd1e10ac67c6d995c8e54f',
'platform':
'linux',
'machine': ['aarch64']
@@ -75,42 +75,42 @@
'file_name':
'tracebox',
'file_size':
- 1157076,
+ 1181652,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/android-arm/tracebox',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/android-arm/tracebox',
'sha256':
- '6f610486d0ee1d052a21d6c16491a2c373634bbfa5374fed01026eb2767c05f7'
+ 'f7704023112300f74d351cc62c5c3d1fa386e749013b8cdf74678dfd9731c066'
}, {
'arch':
'android-arm64',
'file_name':
'tracebox',
'file_size':
- 1768104,
+ 1800872,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/android-arm64/tracebox',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/android-arm64/tracebox',
'sha256':
- 'b30ca03fa0cb1261386b5d6b01161c275bf68026e894bf5d74781abf8f78acef'
+ '18ae4f02caac24282111dc605d287f29470c2af5f93e49fdb7ca9fe1282b392a'
}, {
'arch':
'android-x86',
'file_name':
'tracebox',
'file_size':
- 1755052,
+ 1787820,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/android-x86/tracebox',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/android-x86/tracebox',
'sha256':
- '781ed489fe91aad98fc72f9d0faf69c62323feaac8ae0ce813fbfe0274789144'
+ '50a00e310e16f087b508ef96ff2ca0f6c49b90190ec07fa68953203419507ced'
}, {
'arch':
'android-x64',
'file_name':
'tracebox',
'file_size':
- 2038440,
+ 2071208,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/android-x64/tracebox',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/android-x64/tracebox',
'sha256':
- 'e58167092e4ec060efc152ace675175f04af57c564ec2ca38704fa65af8a7b25'
+ '84d6c3996dfe0728d4a8df974fd17ccee08aea91edd46724914e45ba6f1b95bd'
}]
diff --git a/python/perfetto/prebuilts/manifests/traceconv.py b/python/perfetto/prebuilts/manifests/traceconv.py
index e17cd91..c2cf45a 100755
--- a/python/perfetto/prebuilts/manifests/traceconv.py
+++ b/python/perfetto/prebuilts/manifests/traceconv.py
@@ -1,15 +1,15 @@
-# This file has been generated by: /usr/local/google/home/lalitm/perfetto/tools/roll-prebuilts v31.0
+# This file has been generated by: tools/roll-prebuilts v32.1
TRACECONV_MANIFEST = [{
'arch':
'mac-amd64',
'file_name':
'traceconv',
'file_size':
- 7772872,
+ 7805800,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/mac-amd64/traceconv',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/mac-amd64/traceconv',
'sha256':
- 'a987cfd2e722994a5911032d046ec2d0b912845a83b093226c3fccd5e316ed01',
+ '0ea0a025cedab2b6cfe605f127daa2a12c98f051f9314c9ab8a59c55306b36c2',
'platform':
'darwin',
'machine': ['x86_64']
@@ -19,11 +19,11 @@
'file_name':
'traceconv',
'file_size':
- 6554552,
+ 6587480,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/mac-arm64/traceconv',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/mac-arm64/traceconv',
'sha256':
- '972610d249990d4b03de50bece4a7adf03ebd6b3cc3c2c10feb7bb6561c1fce1',
+ '85bb771be931fe90c9da122f412efb884ff8bd2bd2eaa3f083c2c6ea5dd9205a',
'platform':
'darwin',
'machine': ['arm64']
@@ -33,11 +33,11 @@
'file_name':
'traceconv',
'file_size':
- 8073432,
+ 8100352,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/linux-amd64/traceconv',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/linux-amd64/traceconv',
'sha256':
- 'e34f6ddd91ad0de62bfbef76303f2a94136470fe5a4f679af2f5b8898548ac13',
+ 'c201fe1c30a00c0e7a1eac169ab91f05d6468a485b0791db3c439888e9334fde',
'platform':
'linux',
'machine': ['x86_64']
@@ -47,11 +47,11 @@
'file_name':
'traceconv',
'file_size':
- 6677612,
+ 6674592,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/linux-arm/traceconv',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/linux-arm/traceconv',
'sha256':
- '55c9cd6e5c5bc65210068a173b0c16ad3323faaba0fccec20247dca5bd3b913d',
+ '5a0bc650e39a289b2051a55ac3e7e2c05cb56f053e2b8dc31bb183e75892be28',
'platform':
'linux',
'machine': ['armv6l', 'armv7l', 'armv8l']
@@ -61,11 +61,11 @@
'file_name':
'traceconv',
'file_size':
- 7543648,
+ 7554976,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/linux-arm64/traceconv',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/linux-arm64/traceconv',
'sha256':
- '2477857470f613410f6151acb06b6b6a067ef8612d619eee86dd2a3b8aac2a3e',
+ 'f2a3d4c3a7e6af760a4a03fe70e6c32479260bd6487f4b89d49412231c42e197',
'platform':
'linux',
'machine': ['aarch64']
@@ -75,55 +75,55 @@
'file_name':
'traceconv',
'file_size':
- 5360020,
+ 5355916,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/android-arm/traceconv',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/android-arm/traceconv',
'sha256':
- '60cecbd8d9b6357bb89929fa5afa1eba6c1d46d621e62ee558509424d88bd53d'
+ '58101b41d4930abfebef729d2657252ca6f2c3cff4ebcb838165d606808ff0ad'
}, {
'arch':
'android-arm64',
'file_name':
'traceconv',
'file_size':
- 6769184,
+ 6773264,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/android-arm64/traceconv',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/android-arm64/traceconv',
'sha256':
- 'e373cbed4502977290abe3e246132ced538fca33881058e6049676ef9c613dd9'
+ 'a7fc9fb02e94c92821d36cd0fb90bff75cbe32688e5f2678426b796a5f86ba53'
}, {
'arch':
'android-x86',
'file_name':
'traceconv',
'file_size':
- 7682412,
+ 7670116,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/android-x86/traceconv',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/android-x86/traceconv',
'sha256':
- 'dcaa5d156247433537d59ad33238feb23dc0f97ba64c51581360f25ac0fc16a8'
+ '1a64a26516b5a0db710532b4a6f495d4f83153df56b2847093d1b6d17e749b6b'
}, {
'arch':
'android-x64',
'file_name':
'traceconv',
'file_size':
- 7903832,
+ 7916104,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/android-x64/traceconv',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/android-x64/traceconv',
'sha256':
- 'b73b8d398019b2a349d3748b4fe4096a069c6362697375d3c2668cf79ef1bb38'
+ '9badc970a3573a038977a7fef59b4d57797ef57e2e4e2d5f23804a0bfcdf1585'
}, {
'arch':
'windows-amd64',
'file_name':
'traceconv.exe',
'file_size':
- 7188992,
+ 7217664,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/windows-amd64/traceconv.exe',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/windows-amd64/traceconv.exe',
'sha256':
- '9cbdfcad3b5f2164d0c9e79d4f8b749db693814ae97fba038385d2e6f0111f72',
+ 'd2b9c3ca448c9815c2393716758e85d4d2c8033ce0531b4551703a2b7e3d43a0',
'platform':
'win32',
'machine': ['amd64']
diff --git a/python/perfetto/trace_processor/metrics.descriptor b/python/perfetto/trace_processor/metrics.descriptor
index bafcbbc..bf8b56e 100644
--- a/python/perfetto/trace_processor/metrics.descriptor
+++ b/python/perfetto/trace_processor/metrics.descriptor
Binary files differ
diff --git a/python/tools/cpu_profile.py b/python/tools/cpu_profile.py
index 5a142c0..8968bb9 100644
--- a/python/tools/cpu_profile.py
+++ b/python/tools/cpu_profile.py
@@ -79,7 +79,7 @@
traces if requested.
For usage instructions, please see:
- https://perfetto.dev/docs/quickstart/cpu-profiling
+ https://perfetto.dev/docs/quickstart/callstack-sampling
"""
parser = argparse.ArgumentParser(description=DESCRIPTION)
parser.add_argument(
@@ -98,6 +98,25 @@
metavar="DURATION",
type=int,
default=0)
+ # Profiling using hardware counters.
+ parser.add_argument(
+ "-e",
+ "--event",
+ help="Use the specified hardware counter event for sampling.",
+ metavar="EVENT",
+ action="append",
+ # See: '//perfetto/protos/perfetto/trace/perfetto_trace.proto'.
+ choices=['HW_CPU_CYCLES', 'HW_INSTRUCTIONS', 'HW_CACHE_REFERENCES',
+ 'HW_CACHE_MISSES', 'HW_BRANCH_INSTRUCTIONS', 'HW_BRANCH_MISSES',
+ 'HW_BUS_CYCLES', 'HW_STALLED_CYCLES_FRONTEND',
+ 'HW_STALLED_CYCLES_BACKEND'],
+ default=[])
+ parser.add_argument(
+ "-k",
+ "--kernel-frames",
+ help="Collect kernel frames. Default: false.",
+ action="store_true",
+ default=False)
parser.add_argument(
"-n",
"--name",
@@ -109,7 +128,8 @@
"--partial-matching",
help="If set, enables \"partial matching\" on the strings in --names/-n."
"Processes that are already running when profiling is started, and whose "
- "names include any of the values in --names/-n as substrings will be profiled.",
+ "names include any of the values in --names/-n as substrings will be "
+ "profiled.",
action="store_true")
parser.add_argument(
"-c",
@@ -135,8 +155,11 @@
default=None)
args = parser.parse_args()
- if args.config is not None and args.name is not None:
- sys.exit("--name/-n should not be provided when --config/-c is provided.")
+ if args.config is not None:
+ if args.name is not None:
+ sys.exit("--name/-n should not be specified with --config/-c.")
+ elif args.event is not None:
+ sys.exit("-e/--event should not be specified with --config/-c.")
elif args.config is None and args.name is None:
sys.exit("One of --names/-n or --config/-c is required.")
@@ -144,7 +167,8 @@
def get_matching_processes(args, names_to_match):
- """Returns a list of currently-running processes whose names match `names_to_match`.
+ """Returns a list of currently-running processes whose names match
+ `names_to_match`.
Args:
args: The command-line arguments provided to this script.
@@ -171,7 +195,8 @@
def get_perfetto_config(args):
- """Returns a Perfetto config with CPU profiling enabled for the selected processes.
+ """Returns a Perfetto config with CPU profiling enabled for the selected
+ processes.
Args:
args: The command-line arguments provided to this script.
@@ -183,7 +208,7 @@
except IOError as error:
sys.exit("Unable to read config file: {}".format(error))
- CONFIG_INDENT = ' '
+ CONFIG_INDENT = ' '
CONFIG = textwrap.dedent('''\
buffers {{
size_kb: 2048
@@ -203,18 +228,6 @@
}}
}}
- data_sources {{
- config {{
- name: "linux.perf"
- target_buffer: 1
- perf_event_config {{
- all_cpus: true
- sampling_frequency: {frequency}
- {target_config}
- }}
- }}
- }}
-
duration_ms: {duration}
write_into_file: true
flush_timeout_ms: 30000
@@ -232,6 +245,35 @@
target_config = "\n".join(
[f'{CONFIG_INDENT}target_cmdline: "{p}"' for p in matching_processes])
+ events = args.event or ['SW_CPU_CLOCK']
+ for event in events:
+ CONFIG += (textwrap.dedent('''
+ data_sources {{
+ config {{
+ name: "linux.perf"
+ target_buffer: 1
+ perf_event_config {{
+ timebase {{
+ counter: %s
+ frequency: {frequency}
+ timestamp_clock: PERF_CLOCK_MONOTONIC
+ }}
+ callstack_sampling {{
+ scope {{
+ {target_config}
+ }}
+ kernel_frames: {kernel_config}
+ }}
+ }}
+ }}
+ }}
+ ''') % (event))
+
+ if args.kernel_frames:
+ kernel_config = "true"
+ else:
+ kernel_config = "false"
+
if not args.print_config:
print("Configured profiling for these processes:\n")
for matching_process in matching_processes:
@@ -241,7 +283,8 @@
config = CONFIG.format(
frequency=args.frequency,
duration=args.duration,
- target_config=target_config)
+ target_config=target_config,
+ kernel_config=kernel_config)
return config
@@ -261,7 +304,8 @@
def get_and_prepare_profile_target(args):
- """Returns the target where the trace/profile will be output. Creates a new directory if necessary.
+ """Returns the target where the trace/profile will be output. Creates a
+ new directory if necessary.
Args:
args: The command-line arguments provided to this script.
@@ -293,14 +337,23 @@
}
if not release_or_newer('R'):
sys.exit("This tool requires Android R+ to run.")
+
+ # Push configuration to the device.
+ tf = tempfile.NamedTemporaryFile()
+ tf.file.write(config.encode('utf-8'))
+ tf.file.flush()
+ profile_config_path = '/data/misc/perfetto-configs/config-' + UUID
+ adb_check_output(['adb', 'push', tf.name, profile_config_path])
+ tf.close()
+
+
profile_device_path = '/data/misc/perfetto-traces/profile-' + UUID
- perfetto_command = ('CONFIG=\'{}\'; echo ${{CONFIG}} | '
- 'perfetto --txt -c - -o {} -d')
+ perfetto_command = ('perfetto --txt -c {} -o {} -d')
try:
perfetto_pid = int(
adb_check_output([
'adb', 'exec-out',
- perfetto_command.format(config, profile_device_path)
+ perfetto_command.format(profile_config_path, profile_device_path)
]).strip())
except ValueError as error:
sys.exit("Unable to start profiling: {}".format(error))
@@ -330,6 +383,7 @@
profile_host_path = os.path.join(profile_target, 'raw-trace')
adb_check_output(['adb', 'pull', profile_device_path, profile_host_path])
+ adb_check_output(['adb', 'shell', 'rm', profile_config_path])
adb_check_output(['adb', 'shell', 'rm', profile_device_path])
@@ -360,7 +414,8 @@
def symbolize_trace(traceconv, profile_target):
- """Attempts symbolization of the recorded trace/profile, if symbols are available.
+ """Attempts symbolization of the recorded trace/profile, if symbols are
+ available.
Args:
traceconv: The path to the `traceconv` binary used for symbolization.
diff --git a/src/profiling/common/producer_support.cc b/src/profiling/common/producer_support.cc
index 8ab0b42..a160149 100644
--- a/src/profiling/common/producer_support.cc
+++ b/src/profiling/common/producer_support.cc
@@ -110,10 +110,25 @@
return true;
}
+ bool trusted_initiator = ds_config.session_initiator() ==
+ DataSourceConfig::SESSION_INITIATOR_TRUSTED_SYSTEM;
+
uint64_t uid_without_profile = uid % kAidUserOffset;
uint64_t uid_for_lookup = 0;
- if (uid_without_profile >= kAidAppStart &&
- uid_without_profile <= kAidAppEnd) {
+ if (uid_without_profile < kAidAppStart) {
+ // Platform processes are considered profileable by the platform itself.
+ // This includes platform UIDs from other profiles, e.g. "u10_system".
+ // It's possible that this is an app (e.g. com.android.settings runs as
+ // AID_SYSTEM), but we will skip checking packages.list for the profileable
+ // manifest flags, as running under a platform UID is considered sufficient.
+ // Minor consequence: shell cannot profile platform apps, even if their
+ // manifest flags opt into profiling from shell. Resolving this would
+ // require definitively disambiguating native processes from apps if both
+ // can run as the same platform UID.
+ return trusted_initiator;
+
+ } else if (uid_without_profile >= kAidAppStart &&
+ uid_without_profile <= kAidAppEnd) {
// normal app
uid_for_lookup = uid_without_profile;
@@ -133,8 +148,6 @@
// even be the package in which the service was defined).
// TODO(rsavitski): find a way for the platform to tell native services
// about isolated<->app relations.
- bool trusted_initiator = ds_config.session_initiator() ==
- DataSourceConfig::SESSION_INITIATOR_TRUSTED_SYSTEM;
return trusted_initiator &&
AllPackagesProfileableByTrustedInitiator(packages_list_path);
diff --git a/src/protozero/BUILD.gn b/src/protozero/BUILD.gn
index dcb85d3..d553aac 100644
--- a/src/protozero/BUILD.gn
+++ b/src/protozero/BUILD.gn
@@ -31,6 +31,7 @@
]
sources = [
"field.cc",
+ "gen_field_helpers.cc",
"message.cc",
"message_arena.cc",
"message_handle.cc",
diff --git a/src/protozero/gen_field_helpers.cc b/src/protozero/gen_field_helpers.cc
new file mode 100644
index 0000000..85a41f7
--- /dev/null
+++ b/src/protozero/gen_field_helpers.cc
@@ -0,0 +1,103 @@
+/*
+ * Copyright (C) 2023 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.
+ */
+
+#include "perfetto/protozero/gen_field_helpers.h"
+
+namespace protozero {
+namespace internal {
+namespace gen_helpers {
+
+void DeserializeString(const protozero::Field& field, std::string* dst) {
+ field.get(dst);
+}
+
+template bool DeserializePackedRepeated<proto_utils::ProtoWireType::kVarInt,
+ uint64_t>(const protozero::Field& field,
+ std::vector<uint64_t>* dst);
+
+template bool DeserializePackedRepeated<proto_utils::ProtoWireType::kVarInt,
+ int64_t>(const protozero::Field& field,
+ std::vector<int64_t>* dst);
+
+template bool DeserializePackedRepeated<proto_utils::ProtoWireType::kVarInt,
+ uint32_t>(const protozero::Field& field,
+ std::vector<uint32_t>* dst);
+
+template bool DeserializePackedRepeated<proto_utils::ProtoWireType::kVarInt,
+ int32_t>(const protozero::Field& field,
+ std::vector<int32_t>* dst);
+
+void SerializeTinyVarInt(uint32_t field_id, bool value, Message* msg) {
+ msg->AppendTinyVarInt(field_id, value);
+}
+
+template void SerializeExtendedVarInt<uint64_t>(uint32_t field_id,
+ uint64_t value,
+ Message* msg);
+
+template void SerializeExtendedVarInt<uint32_t>(uint32_t field_id,
+ uint32_t value,
+ Message* msg);
+
+template void SerializeFixed<double>(uint32_t field_id,
+ double value,
+ Message* msg);
+
+template void SerializeFixed<float>(uint32_t field_id,
+ float value,
+ Message* msg);
+
+template void SerializeFixed<uint64_t>(uint32_t field_id,
+ uint64_t value,
+ Message* msg);
+
+template void SerializeFixed<int64_t>(uint32_t field_id,
+ int64_t value,
+ Message* msg);
+
+template void SerializeFixed<uint32_t>(uint32_t field_id,
+ uint32_t value,
+ Message* msg);
+
+template void SerializeFixed<int32_t>(uint32_t field_id,
+ int32_t value,
+ Message* msg);
+
+void SerializeString(uint32_t field_id,
+ const std::string& value,
+ Message* msg) {
+ msg->AppendString(field_id, value);
+}
+
+void SerializeUnknownFields(const std::string& unknown_fields, Message* msg) {
+ msg->AppendRawProtoBytes(unknown_fields.data(), unknown_fields.size());
+}
+
+MessageSerializer::MessageSerializer() = default;
+
+MessageSerializer::~MessageSerializer() = default;
+
+std::vector<uint8_t> MessageSerializer::SerializeAsArray() {
+ return msg_.SerializeAsArray();
+}
+
+std::string MessageSerializer::SerializeAsString() {
+ return msg_.SerializeAsString();
+}
+
+} // namespace gen_helpers
+} // namespace internal
+} // namespace protozero
diff --git a/src/protozero/protoc_plugin/cppgen_plugin.cc b/src/protozero/protoc_plugin/cppgen_plugin.cc
index a963910..eadc23a 100644
--- a/src/protozero/protoc_plugin/cppgen_plugin.cc
+++ b/src/protozero/protoc_plugin/cppgen_plugin.cc
@@ -46,6 +46,7 @@
using perfetto::base::StripSuffix;
using perfetto::base::ToUpper;
+static constexpr auto TYPE_STRING = FieldDescriptor::TYPE_STRING;
static constexpr auto TYPE_MESSAGE = FieldDescriptor::TYPE_MESSAGE;
static constexpr auto TYPE_SINT32 = FieldDescriptor::TYPE_SINT32;
static constexpr auto TYPE_SINT64 = FieldDescriptor::TYPE_SINT64;
@@ -147,6 +148,7 @@
h_printer.Print("#include \"perfetto/protozero/copyable_ptr.h\"\n");
h_printer.Print("#include \"perfetto/base/export.h\"\n\n");
+ cc_printer.Print("#include \"perfetto/protozero/gen_field_helpers.h\"\n");
cc_printer.Print("#include \"perfetto/protozero/message.h\"\n");
cc_printer.Print(
"#include \"perfetto/protozero/packed_repeated_fields.h\"\n");
@@ -388,26 +390,26 @@
const FieldDescriptor* field) const {
switch (field->type()) {
case FieldDescriptor::TYPE_BOOL:
- return "AppendTinyVarInt";
+ return "::protozero::internal::gen_helpers::SerializeTinyVarInt";
case FieldDescriptor::TYPE_INT32:
case FieldDescriptor::TYPE_INT64:
case FieldDescriptor::TYPE_UINT32:
case FieldDescriptor::TYPE_UINT64:
case FieldDescriptor::TYPE_ENUM:
- return "AppendVarInt";
+ return "::protozero::internal::gen_helpers::SerializeVarInt";
case FieldDescriptor::TYPE_SINT32:
case FieldDescriptor::TYPE_SINT64:
- return "AppendSignedVarInt";
+ return "::protozero::internal::gen_helpers::SerializeSignedVarInt";
case FieldDescriptor::TYPE_FIXED32:
case FieldDescriptor::TYPE_FIXED64:
case FieldDescriptor::TYPE_SFIXED32:
case FieldDescriptor::TYPE_SFIXED64:
case FieldDescriptor::TYPE_FLOAT:
case FieldDescriptor::TYPE_DOUBLE:
- return "AppendFixed";
+ return "::protozero::internal::gen_helpers::SerializeFixed";
case FieldDescriptor::TYPE_STRING:
case FieldDescriptor::TYPE_BYTES:
- return "AppendString";
+ return "::protozero::internal::gen_helpers::SerializeString";
case FieldDescriptor::TYPE_GROUP:
case FieldDescriptor::TYPE_MESSAGE:
abort();
@@ -755,7 +757,10 @@
"n", field->lowercase_name());
p->Indent();
if (field->options().lazy()) {
- p->Print("$n$_ = field.as_std_string();\n", "n", field->lowercase_name());
+ p->Print(
+ "::protozero::internal::gen_helpers::DeserializeString(field, "
+ "&$n$_);\n",
+ "n", field->lowercase_name());
} else {
std::string statement;
if (field->type() == TYPE_MESSAGE) {
@@ -764,6 +769,10 @@
if (field->type() == TYPE_SINT32 || field->type() == TYPE_SINT64) {
// sint32/64 fields are special and need to be zig-zag-decoded.
statement = "field.get_signed(&$rval$);\n";
+ } else if (field->type() == TYPE_STRING) {
+ statement =
+ "::protozero::internal::gen_helpers::DeserializeString(field, "
+ "&$rval$);\n";
} else {
statement = "field.get(&$rval$);\n";
}
@@ -774,10 +783,12 @@
PERFETTO_FATAL("packed signed (zigzag) fields are not supported");
}
p->Print(
- "for (::protozero::PackedRepeatedFieldIterator<$w$, $c$> "
- "rep(field.data(), field.size(), &packed_error); rep; ++rep) {\n",
- "w", GetPackedWireType(field), "c", GetCppType(field, false));
- p->Print(" $n$_.emplace_back(*rep);\n", "n", field->lowercase_name());
+ "if "
+ "(!::protozero::internal::gen_helpers::DeserializePackedRepeated"
+ "<$w$, $c$>(field, &$n$_)) {\n",
+ "w", GetPackedWireType(field), "c", GetCppType(field, false), "n",
+ field->lowercase_name());
+ p->Print(" packed_error = true;");
p->Print("}\n");
} else if (field->is_repeated()) {
p->Print("$n$_.emplace_back();\n", "n", field->lowercase_name());
@@ -807,7 +818,7 @@
// Generate the SerializeAsString() method definition.
p->Print("std::string $f$::SerializeAsString() const {\n", "f", full_name);
p->Indent();
- p->Print("::protozero::HeapBuffered<::protozero::Message> msg;\n");
+ p->Print("::protozero::internal::gen_helpers::MessageSerializer msg;\n");
p->Print("Serialize(msg.get());\n");
p->Print("return msg.SerializeAsString();\n");
p->Outdent();
@@ -817,7 +828,7 @@
p->Print("std::vector<uint8_t> $f$::SerializeAsArray() const {\n", "f",
full_name);
p->Indent();
- p->Print("::protozero::HeapBuffered<::protozero::Message> msg;\n");
+ p->Print("::protozero::internal::gen_helpers::MessageSerializer msg;\n");
p->Print("Serialize(msg.get());\n");
p->Print("return msg.SerializeAsArray();\n");
p->Outdent();
@@ -863,7 +874,7 @@
"msg->BeginNestedMessage<::protozero::Message>($id$));\n");
} else {
args["setter"] = GetProtozeroSetter(field);
- p->Print(args, "msg->$setter$($id$, $rvalue$);\n");
+ p->Print(args, "$setter$($id$, $rvalue$, msg);\n");
}
p->Outdent();
p->Print("}\n");
@@ -872,8 +883,8 @@
p->Print("\n");
} // for (field)
p->Print(
- "msg->AppendRawProtoBytes(unknown_fields_.data(), "
- "unknown_fields_.size());\n");
+ "protozero::internal::gen_helpers::SerializeUnknownFields(unknown_fields_"
+ ", msg);\n");
p->Outdent();
p->Print("}\n\n");
}
diff --git a/src/protozero/test/cppgen_conformance_unittest.cc b/src/protozero/test/cppgen_conformance_unittest.cc
index 933c74f..5ac43aa 100644
--- a/src/protozero/test/cppgen_conformance_unittest.cc
+++ b/src/protozero/test/cppgen_conformance_unittest.cc
@@ -62,7 +62,8 @@
msg->set_big_enum(decltype(msg->big_enum())::BEGIN);
msg->set_field_string("FizzBuzz");
- msg->set_field_bytes(reinterpret_cast<const uint8_t*>("\x11\x00\xBE\xEF"), 4);
+ msg->set_field_bytes(reinterpret_cast<const uint8_t*>("\x11\x00\xBE\xEF"),
+ 4u);
msg->add_repeated_int32(1);
msg->add_repeated_int32(-1);
msg->add_repeated_int32(100);
@@ -100,7 +101,7 @@
pbgold::EveryField gold_msg;
gold_msg.ParseFromString(serialized);
CheckTestingFields(gold_msg);
- EXPECT_EQ(serialized.size(), static_cast<size_t>(gold_msg.ByteSize()));
+ EXPECT_EQ(serialized.size(), static_cast<size_t>(gold_msg.ByteSizeLong()));
}
TEST(ProtoCppConformanceTest, GoldEncode_GenDecode) {
diff --git a/src/protozero/test/protozero_conformance_unittest.cc b/src/protozero/test/protozero_conformance_unittest.cc
index bdb15fa..7a73b69 100644
--- a/src/protozero/test/protozero_conformance_unittest.cc
+++ b/src/protozero/test/protozero_conformance_unittest.cc
@@ -94,7 +94,7 @@
EXPECT_EQ(-1, gold_msg.repeated_int32(1));
EXPECT_EQ(100, gold_msg.repeated_int32(2));
EXPECT_EQ(2000000, gold_msg.repeated_int32(3));
- EXPECT_EQ(serialized.size(), static_cast<size_t>(gold_msg.ByteSize()));
+ EXPECT_EQ(serialized.size(), static_cast<size_t>(gold_msg.ByteSizeLong()));
}
TEST(ProtoZeroConformanceTest, NestedMessages) {
diff --git a/src/trace_processor/dynamic/experimental_annotated_stack_generator.cc b/src/trace_processor/dynamic/experimental_annotated_stack_generator.cc
index a346653..1527295 100644
--- a/src/trace_processor/dynamic/experimental_annotated_stack_generator.cc
+++ b/src/trace_processor/dynamic/experimental_annotated_stack_generator.cc
@@ -267,10 +267,12 @@
// Mixed callstack, tag libart frames as uninteresting (common-frame).
// Special case a subset of interpreter implementation frames as
// "common-frame-interp" using frame name prefixes. Those functions are
- // actually executed, whereas the managed "interp" frames are synthesised
- // as their caller by the unwinding library (based on the dex_pc virtual
- // register restored using the libart's DWARF info). Example:
+ // actually executed, whereas the managed "interp" frames are synthesised as
+ // their caller by the unwinding library (based on the dex_pc virtual
+ // register restored using the libart's DWARF info). The heuristic covers
+ // the "nterp" and "switch" interpreter implementations.
//
+ // Example:
// <towards root>
// android.view.WindowLayout.computeFrames [interp]
// nterp_op_iget_object_slow_path [common-frame-interp]
@@ -279,11 +281,16 @@
// process in?" based on the leaf frame of the callstack. As we want to
// classify such cases as interpreted, even though the leaf frame is
// libart.so.
+ //
+ // For "switch" interpreter, we match any frame starting with
+ // "art::interpreter::" according to itanium mangling.
if (annotation_state == State::kEraseLibart &&
map_type == MapType::kNativeLibart) {
NullTermStringView fname = context_->storage->GetString(fname_id);
if (fname.StartsWith("nterp_") || fname.StartsWith("Nterp") ||
- fname.StartsWith("ExecuteNterp")) {
+ fname.StartsWith("ExecuteNterp") ||
+ fname.StartsWith("ExecuteSwitchImpl") ||
+ fname.StartsWith("_ZN3art11interpreter")) {
annotations_reversed.push_back(common_frame_interp);
continue;
}
diff --git a/src/trace_processor/importers/ftrace/ftrace_parser.cc b/src/trace_processor/importers/ftrace/ftrace_parser.cc
index 29582c9..6e57384 100644
--- a/src/trace_processor/importers/ftrace/ftrace_parser.cc
+++ b/src/trace_processor/importers/ftrace/ftrace_parser.cc
@@ -1702,6 +1702,8 @@
proc_tracker->UpdateThreadNameByUtid(new_utid, new_comm,
ThreadNamePriority::kFtrace);
proc_tracker->AssociateThreads(source_utid, new_utid);
+
+ ThreadStateTracker::GetOrCreate(context_)->PushNewTaskEvent(timestamp, new_utid, source_utid);
}
void FtraceParser::ParseTaskRename(ConstBytes blob) {
diff --git a/src/trace_processor/importers/ftrace/thread_state_tracker.cc b/src/trace_processor/importers/ftrace/thread_state_tracker.cc
index 9ff75e3..227a90a 100644
--- a/src/trace_processor/importers/ftrace/thread_state_tracker.cc
+++ b/src/trace_processor/importers/ftrace/thread_state_tracker.cc
@@ -70,6 +70,12 @@
AddOpenState(event_ts, utid, runnable_string_id_, base::nullopt, waker_utid);
}
+void ThreadStateTracker::PushNewTaskEvent(int64_t event_ts,
+ UniqueTid utid,
+ UniqueTid waker_utid) {
+ AddOpenState(event_ts, utid, runnable_string_id_, base::nullopt, waker_utid);
+}
+
void ThreadStateTracker::PushBlockedReason(
UniqueTid utid,
base::Optional<bool> io_wait,
diff --git a/src/trace_processor/importers/ftrace/thread_state_tracker.h b/src/trace_processor/importers/ftrace/thread_state_tracker.h
index af3ad4c..3f8b7a5 100644
--- a/src/trace_processor/importers/ftrace/thread_state_tracker.h
+++ b/src/trace_processor/importers/ftrace/thread_state_tracker.h
@@ -51,6 +51,10 @@
// Will add a runnable state for utid and close the previously blocked one.
void PushWakingEvent(int64_t event_ts, UniqueTid utid, UniqueTid waker_utid);
+ // Will add a runnable state for utid. For a new task there are no previous
+ // states to close.
+ void PushNewTaskEvent(int64_t event_ts, UniqueTid utid, UniqueTid waker_utid);
+
// Updates the current blocked state for utid with blocked reason.
void PushBlockedReason(UniqueTid utid,
base::Optional<bool> io_wait,
diff --git a/src/trace_processor/importers/fuchsia/fuchsia_trace_parser.cc b/src/trace_processor/importers/fuchsia/fuchsia_trace_parser.cc
index e36da64..a4dc251 100644
--- a/src/trace_processor/importers/fuchsia/fuchsia_trace_parser.cc
+++ b/src/trace_processor/importers/fuchsia/fuchsia_trace_parser.cc
@@ -270,6 +270,11 @@
procs->GetOrCreateProcess(static_cast<uint32_t>(tinfo.pid));
std::string name_str =
context_->storage->GetString(name).ToStdString();
+ uint64_t counter_id;
+ if (!cursor.ReadUint64(&counter_id)) {
+ context_->storage->IncrementStats(stats::fuchsia_invalid_event);
+ return;
+ }
// Note: In the Fuchsia trace format, counter values are stored in the
// arguments for the record, with the data series defined by both the
// record name and the argument name. In Perfetto, counters only have
@@ -278,6 +283,7 @@
std::string counter_name_str = name_str + ":";
counter_name_str +=
context_->storage->GetString(arg.name).ToStdString();
+ counter_name_str += ":" + std::to_string(counter_id);
bool is_valid_value = false;
double counter_value = -1;
switch (arg.value.Type()) {
diff --git a/src/trace_processor/importers/fuchsia/fuchsia_trace_utils.cc b/src/trace_processor/importers/fuchsia/fuchsia_trace_utils.cc
index d7879be..47de0f8 100644
--- a/src/trace_processor/importers/fuchsia/fuchsia_trace_utils.cc
+++ b/src/trace_processor/importers/fuchsia/fuchsia_trace_utils.cc
@@ -80,7 +80,7 @@
case ArgType::kString:
return Variadic::String(string_);
case ArgType::kPointer:
- return Variadic::Integer(static_cast<int64_t>(pointer_));
+ return Variadic::Pointer(pointer_);
case ArgType::kKoid:
return Variadic::Integer(static_cast<int64_t>(koid_));
case ArgType::kUnknown:
diff --git a/src/trace_processor/importers/proto/android_probes_parser.cc b/src/trace_processor/importers/proto/android_probes_parser.cc
index 8712c19..d4018e3 100644
--- a/src/trace_processor/importers/proto/android_probes_parser.cc
+++ b/src/trace_processor/importers/proto/android_probes_parser.cc
@@ -77,6 +77,8 @@
context->storage->InternString("batt.current.avg_ua")),
screen_state_id_(context->storage->InternString("ScreenState")),
device_state_id_(context->storage->InternString("DeviceStateChanged")),
+ battery_status_id_(context->storage->InternString("BatteryStatus")),
+ plug_type_id_(context->storage->InternString("PlugType")),
net_arg_length_(context->storage->InternString("packet_length")),
net_arg_ip_proto_(context->storage->InternString("packet_transport")),
net_arg_tcp_flags_(context->storage->InternString("packet_tcp_flags")),
@@ -408,15 +410,9 @@
for (auto it = properties.values(); it; ++it) {
protos::pbzero::AndroidSystemProperty::PropertyValue::Decoder kv(*it);
base::StringView name(kv.name());
- if (name == "debug.tracing.screen_state") {
- base::Optional<int32_t> state =
- base::StringToInt32(kv.value().ToStdString());
- if (state) {
- TrackId track =
- context_->track_tracker->InternGlobalCounterTrack(screen_state_id_);
- context_->event_tracker->PushCounter(ts, *state, track);
- }
- } else if (name == "debug.tracing.device_state") {
+ base::Optional<StringId> mapped_name_id;
+
+ if (name == "debug.tracing.device_state") {
auto state = kv.value();
StringId state_id = context_->storage->InternString(state);
@@ -437,6 +433,21 @@
context_->track_tracker->InternGlobalCounterTrack(name_id);
context_->event_tracker->PushCounter(ts, *state, track);
}
+ } else if (name == "debug.tracing.screen_state") {
+ mapped_name_id = screen_state_id_;
+ } else if (name == "debug.tracing.battery_status") {
+ mapped_name_id = battery_status_id_;
+ } else if (name == "debug.tracing.plug_type") {
+ mapped_name_id = plug_type_id_;
+ }
+ if (mapped_name_id) {
+ base::Optional<int32_t> state =
+ base::StringToInt32(kv.value().ToStdString());
+ if (state) {
+ TrackId track =
+ context_->track_tracker->InternGlobalCounterTrack(*mapped_name_id);
+ context_->event_tracker->PushCounter(ts, *state, track);
+ }
}
}
}
diff --git a/src/trace_processor/importers/proto/android_probes_parser.h b/src/trace_processor/importers/proto/android_probes_parser.h
index 001a8e8..420ffb8 100644
--- a/src/trace_processor/importers/proto/android_probes_parser.h
+++ b/src/trace_processor/importers/proto/android_probes_parser.h
@@ -55,6 +55,8 @@
const StringId batt_current_avg_id_;
const StringId screen_state_id_;
const StringId device_state_id_;
+ const StringId battery_status_id_;
+ const StringId plug_type_id_;
const StringId net_arg_length_;
const StringId net_arg_ip_proto_;
diff --git a/src/trace_processor/metrics/sql/android/android_binder.sql b/src/trace_processor/metrics/sql/android/android_binder.sql
index 5c2e464..71dd9de 100644
--- a/src/trace_processor/metrics/sql/android/android_binder.sql
+++ b/src/trace_processor/metrics/sql/android/android_binder.sql
@@ -34,5 +34,44 @@
)
)
FROM android_binder_metrics_by_process
+ ),
+ 'unaggregated_txn_breakdown', (
+ SELECT RepeatedField(
+ AndroidBinderMetric_UnaggregatedTxnBreakdown(
+ 'aidl_name', aidl_name,
+ 'binder_txn_id', binder_txn_id,
+ 'client_process', client_process,
+ 'client_thread', client_thread,
+ 'is_main_thread', is_main_thread,
+ 'client_ts', client_ts,
+ 'client_dur', client_dur,
+ 'binder_reply_id', binder_reply_id,
+ 'server_process', server_process,
+ 'server_thread', server_thread,
+ 'server_ts', server_ts,
+ 'server_dur', server_dur,
+ 'thread_states', (
+ SELECT RepeatedField(
+ AndroidBinderMetric_ThreadStateBreakdown(
+ 'thread_state_type', thread_state_type,
+ 'thread_state', thread_state,
+ 'thread_state_dur', thread_state_dur,
+ 'thread_state_count', thread_state_count
+ )
+ ) FROM android_sync_binder_thread_state_by_txn t WHERE t.binder_txn_id = android_sync_binder_metrics_by_txn.binder_txn_id
+ ),
+ 'blocked_functions', (
+ SELECT RepeatedField(
+ AndroidBinderMetric_BlockedFunctionBreakdown(
+ 'thread_state_type', thread_state_type,
+ 'blocked_function', blocked_function,
+ 'blocked_function_dur', blocked_function_dur,
+ 'blocked_function_count', blocked_function_count
+ )
+ ) FROM android_sync_binder_blocked_functions_by_txn b WHERE b.binder_txn_id = android_sync_binder_metrics_by_txn.binder_txn_id
+ )
+ )
+ )
+ FROM android_sync_binder_metrics_by_txn
)
);
diff --git a/src/trace_processor/metrics/sql/android/android_frame_timeline_metric.sql b/src/trace_processor/metrics/sql/android/android_frame_timeline_metric.sql
index bbccaa8..44a55a2 100644
--- a/src/trace_processor/metrics/sql/android/android_frame_timeline_metric.sql
+++ b/src/trace_processor/metrics/sql/android/android_frame_timeline_metric.sql
@@ -35,6 +35,10 @@
CAST(PERCENTILE(dur, 90) AS INTEGER) AS frame_dur_p90,
CAST(PERCENTILE(dur, 95) AS INTEGER) AS frame_dur_p95,
CAST(PERCENTILE(dur, 99) AS INTEGER) AS frame_dur_p99,
+ PERCENTILE(dur / 1e6, 50) AS frame_dur_ms_p50,
+ PERCENTILE(dur / 1e6, 90) AS frame_dur_ms_p90,
+ PERCENTILE(dur / 1e6, 95) AS frame_dur_ms_p95,
+ PERCENTILE(dur / 1e6, 99) AS frame_dur_ms_p99,
CAST(AVG(dur) AS INTEGER) AS frame_dur_avg,
MAX(dur) AS frame_dur_max
FROM actual_frame_timeline_slice
diff --git a/src/trace_processor/metrics/sql/android/android_jank_cuj.sql b/src/trace_processor/metrics/sql/android/android_jank_cuj.sql
index caaac19..eec6435 100644
--- a/src/trace_processor/metrics/sql/android/android_jank_cuj.sql
+++ b/src/trace_processor/metrics/sql/android/android_jank_cuj.sql
@@ -115,7 +115,11 @@
'frame_dur_p50', CAST(PERCENTILE(f.dur, 50) AS INTEGER),
'frame_dur_p90', CAST(PERCENTILE(f.dur, 90) AS INTEGER),
'frame_dur_p95', CAST(PERCENTILE(f.dur, 95) AS INTEGER),
- 'frame_dur_p99', CAST(PERCENTILE(f.dur, 99) AS INTEGER))
+ 'frame_dur_p99', CAST(PERCENTILE(f.dur, 99) AS INTEGER),
+ 'frame_dur_ms_p50', PERCENTILE(f.dur / 1e6, 50),
+ 'frame_dur_ms_p90', PERCENTILE(f.dur / 1e6, 90),
+ 'frame_dur_ms_p95', PERCENTILE(f.dur / 1e6, 95),
+ 'frame_dur_ms_p99', PERCENTILE(f.dur / 1e6, 99))
FROM android_jank_cuj_frame f
WHERE f.cuj_id = cuj.cuj_id),
'timeline_metrics', (
@@ -129,7 +133,11 @@
'frame_dur_p50', CAST(PERCENTILE(f.dur, 50) AS INTEGER),
'frame_dur_p90', CAST(PERCENTILE(f.dur, 90) AS INTEGER),
'frame_dur_p95', CAST(PERCENTILE(f.dur, 95) AS INTEGER),
- 'frame_dur_p99', CAST(PERCENTILE(f.dur, 99) AS INTEGER))
+ 'frame_dur_p99', CAST(PERCENTILE(f.dur, 99) AS INTEGER),
+ 'frame_dur_ms_p50', PERCENTILE(f.dur / 1e6, 50),
+ 'frame_dur_ms_p90', PERCENTILE(f.dur / 1e6, 90),
+ 'frame_dur_ms_p95', PERCENTILE(f.dur / 1e6, 95),
+ 'frame_dur_ms_p99', PERCENTILE(f.dur / 1e6, 99))
FROM android_jank_cuj_frame_timeline f
WHERE f.cuj_id = cuj.cuj_id),
'frame', (
diff --git a/src/trace_processor/metrics/sql/android/android_startup.sql b/src/trace_processor/metrics/sql/android/android_startup.sql
index 634e908..bd80e8a 100644
--- a/src/trace_processor/metrics/sql/android/android_startup.sql
+++ b/src/trace_processor/metrics/sql/android/android_startup.sql
@@ -151,7 +151,7 @@
MAIN_THREAD_TIME_FOR_LAUNCH_AND_STATE(launches.startup_id, 'Running'), 0
),
'runnable_dur_ns', IFNULL(
- MAIN_THREAD_TIME_FOR_LAUNCH_AND_STATE(launches.startup_id, 'R'), 0
+ MAIN_THREAD_TIME_FOR_LAUNCH_AND_STATE(launches.startup_id, 'R*'), 0
),
'uninterruptible_sleep_dur_ns', IFNULL(
MAIN_THREAD_TIME_FOR_LAUNCH_AND_STATE(launches.startup_id, 'D*'), 0
@@ -320,7 +320,7 @@
UNION ALL
SELECT 'Main Thread - Time spent in Runnable state'
AS slow_cause
- WHERE MAIN_THREAD_TIME_FOR_LAUNCH_AND_STATE(launches.startup_id, 'R') > 1e8
+ WHERE MAIN_THREAD_TIME_FOR_LAUNCH_AND_STATE(launches.startup_id, 'R*') > 100e6
UNION ALL
SELECT 'Main Thread - Time spent in interruptible sleep state'
@@ -358,6 +358,13 @@
WHERE ANDROID_SUM_DUR_FOR_STARTUP_AND_SLICE(launches.startup_id, 'VerifyClass*') > 10e6
UNION ALL
+ SELECT 'Potential CPU contention with '
+ || MOST_ACTIVE_PROCESS_FOR_LAUNCH(launches.startup_id)
+ AS slow_cause
+ WHERE MAIN_THREAD_TIME_FOR_LAUNCH_AND_STATE(launches.startup_id, 'R*') > 100e6
+ AND MOST_ACTIVE_PROCESS_FOR_LAUNCH(launches.startup_id) IS NOT NULL
+
+ UNION ALL
SELECT 'JIT Activity'
AS slow_cause
WHERE THREAD_TIME_FOR_LAUNCH_STATE_AND_THREAD(
diff --git a/src/trace_processor/metrics/sql/android/startup/mcycles_per_launch.sql b/src/trace_processor/metrics/sql/android/startup/mcycles_per_launch.sql
index 993d61e..b47381e 100644
--- a/src/trace_processor/metrics/sql/android/startup/mcycles_per_launch.sql
+++ b/src/trace_processor/metrics/sql/android/startup/mcycles_per_launch.sql
@@ -111,3 +111,16 @@
);
'
);
+
+-- Given a launch id, returns the most active process name.
+SELECT CREATE_FUNCTION(
+ 'MOST_ACTIVE_PROCESS_FOR_LAUNCH(startup_id INT)',
+ 'STRING',
+ '
+ SELECT process.name AS process_name
+ FROM top_mcyles_process_excluding_started_per_launch
+ JOIN process USING (upid)
+ WHERE startup_id = $startup_id
+ ORDER BY mcycles DESC LIMIT 1;
+ '
+);
diff --git a/src/trace_processor/metrics/sql/chrome/chrome_long_tasks.sql b/src/trace_processor/metrics/sql/chrome/chrome_long_tasks.sql
index ec05765..3bd052b 100644
--- a/src/trace_processor/metrics/sql/chrome/chrome_long_tasks.sql
+++ b/src/trace_processor/metrics/sql/chrome/chrome_long_tasks.sql
@@ -24,6 +24,12 @@
'function_prefix', ''
);
+SELECT CREATE_FUNCTION(
+ 'IS_LONG_CHOREOGRAPHER_TASK(dur LONG)',
+ 'BOOL',
+ 'SELECT $dur >= 4 * 1e6'
+);
+
-- Note that not all slices will be mojo slices; filter on interface_name IS
-- NOT NULL for mojo slices specifically.
DROP TABLE IF EXISTS long_tasks_extracted_slices;
@@ -72,7 +78,7 @@
SELECT *
FROM SELECT_BEGIN_MAIN_FRAME_JAVA_SLICES('LongTaskTracker')
UNION ALL
- SELECT * FROM chrome_choreographer_tasks
+ SELECT * FROM chrome_choreographer_tasks WHERE IS_LONG_CHOREOGRAPHER_TASK(dur)
),
-- Intermediate step to allow us to sort java view names.
root_slice_and_java_view_not_grouped AS (
@@ -101,6 +107,7 @@
GET_JAVA_VIEWS_TASK_TYPE(kind) AS task_type,
id
FROM long_task_slices_with_java_views
+ WHERE kind = "SingleThreadProxy::BeginMainFrame"
),
scheduler_tasks_with_mojo AS (
SELECT
@@ -129,7 +136,16 @@
FROM long_tasks_internal_tbl s1
LEFT JOIN scheduler_tasks_with_mojo s2 ON s2.id = s1.id
LEFT JOIN java_views_tasks s3 ON s3.id = s1.id
-LEFT JOIN navigation_tasks s4 ON s4.id = s1.id;
+LEFT JOIN navigation_tasks s4 ON s4.id = s1.id
+UNION ALL
+-- Choreographer slices won't necessarily be associated with an overlying
+-- LongTaskTracker slice, so join them separately.
+SELECT
+ printf('%s(java_views=%s)', kind, java_views) as full_name,
+ GET_JAVA_VIEWS_TASK_TYPE(kind) AS task_type,
+ id
+FROM long_task_slices_with_java_views
+WHERE kind = "Choreographer";
DROP VIEW IF EXISTS chrome_long_tasks;
CREATE VIEW chrome_long_tasks AS
diff --git a/src/trace_processor/metrics/sql/chrome/chrome_reliable_range.sql b/src/trace_processor/metrics/sql/chrome/chrome_reliable_range.sql
index 0a74953..20edb1e 100644
--- a/src/trace_processor/metrics/sql/chrome/chrome_reliable_range.sql
+++ b/src/trace_processor/metrics/sql/chrome/chrome_reliable_range.sql
@@ -121,7 +121,7 @@
USING (upid)
WHERE
EXTRACT_ARG(process.arg_set_id, 'chrome.process_type')
- IN ('Browser', 'Renderer')
+ IN ('Browser', 'Renderer', 'Gpu')
)
WHERE utid is NULL;
diff --git a/src/trace_processor/sorter/trace_sorter.cc b/src/trace_processor/sorter/trace_sorter.cc
index d855512..6ecbb04 100644
--- a/src/trace_processor/sorter/trace_sorter.cc
+++ b/src/trace_processor/sorter/trace_sorter.cc
@@ -106,42 +106,44 @@
// This loop identifies the queue which starts with the earliest event and
// also remembers the earliest event of the 2nd queue (in min_queue_ts[1]).
- bool has_queues_with_expired_events = false;
+ bool all_queues_empty = true;
for (size_t i = 0; i < queues_.size(); i++) {
auto& queue = queues_[i];
if (queue.events_.empty())
continue;
- PERFETTO_DCHECK(queue.min_ts_ >= global_min_ts_);
- PERFETTO_DCHECK(queue.max_ts_ <= global_max_ts_);
- if (!has_queues_with_expired_events || queue.min_ts_ < min_queue_ts[0]) {
+ all_queues_empty = false;
+
+ PERFETTO_DCHECK(queue.max_ts_ <= append_max_ts_);
+ if (queue.min_ts_ < min_queue_ts[0]) {
min_queue_ts[1] = min_queue_ts[0];
min_queue_ts[0] = queue.min_ts_;
min_queue_idx = i;
- has_queues_with_expired_events = true;
} else if (queue.min_ts_ < min_queue_ts[1]) {
min_queue_ts[1] = queue.min_ts_;
}
}
- if (!has_queues_with_expired_events) {
- // All the queues have events that start after the window (i.e. they are
- // too recent and not eligible to be extracted given the current window).
+ if (all_queues_empty)
break;
- }
Queue& queue = queues_[min_queue_idx];
auto& events = queue.events_;
if (queue.needs_sorting())
queue.Sort();
PERFETTO_DCHECK(queue.min_ts_ == events.front().ts);
- PERFETTO_DCHECK(queue.min_ts_ == global_min_ts_);
// Now that we identified the min-queue, extract all events from it until
// we hit either: (1) the min-ts of the 2nd queue or (2) the packet index
// limit, whichever comes first.
size_t num_extracted = 0;
for (auto& event : events) {
- if (event.descriptor.offset() >= limit_offset ||
- event.ts > min_queue_ts[1]) {
+ if (event.descriptor.offset() >= limit_offset) {
+ break;
+ }
+
+ if (event.ts > min_queue_ts[1]) {
+ // We should never hit this condition on the first extraction as by
+ // the algorithm above (event.ts =) min_queue_ts[0] <= min_queue[1].
+ PERFETTO_DCHECK(num_extracted > 0);
break;
}
@@ -149,11 +151,9 @@
MaybePushAndEvictEvent(min_queue_idx, event);
} // for (event: events)
- if (!num_extracted) {
- // No events can be extracted from any of the queues. This means that
- // either we hit the window or all queues are empty.
+ // The earliest event cannot be extracted without going past the limit.
+ if (!num_extracted)
break;
- }
// Now remove the entries from the event buffer and update the queue-local
// and global time bounds.
@@ -163,35 +163,14 @@
// queue.
variadic_queue_.FreeMemory();
- // Update the global_{min,max}_ts to reflect the bounds after extraction.
+ // Update the queue timestamps to reflect the bounds after extraction.
if (events.empty()) {
queue.min_ts_ = kTsMax;
queue.max_ts_ = 0;
- global_min_ts_ = min_queue_ts[1];
-
- // If we extraced the max entry from a queue (i.e. we emptied the queue)
- // we need to recompute the global max, because it might have been the one
- // just extracted.
- global_max_ts_ = 0;
- for (auto& q : queues_)
- global_max_ts_ = std::max(global_max_ts_, q.max_ts_);
} else {
queue.min_ts_ = queue.events_.front().ts;
- global_min_ts_ = std::min(queue.min_ts_, min_queue_ts[1]);
}
} // for(;;)
-
-#if PERFETTO_DCHECK_IS_ON()
- // Check that the global min/max are consistent.
- int64_t dbg_min_ts = kTsMax;
- int64_t dbg_max_ts = 0;
- for (auto& q : queues_) {
- dbg_min_ts = std::min(dbg_min_ts, q.min_ts_);
- dbg_max_ts = std::max(dbg_max_ts, q.max_ts_);
- }
- PERFETTO_DCHECK(global_min_ts_ == dbg_min_ts);
- PERFETTO_DCHECK(global_max_ts_ == dbg_max_ts);
-#endif
}
void TraceSorter::EvictVariadic(const TimestampedDescriptor& ts_desc) {
diff --git a/src/trace_processor/sorter/trace_sorter.h b/src/trace_processor/sorter/trace_sorter.h
index 87f259b..215194d 100644
--- a/src/trace_processor/sorter/trace_sorter.h
+++ b/src/trace_processor/sorter/trace_sorter.h
@@ -154,7 +154,7 @@
TracePacketData{std::move(event), std::move(state)});
queue->Append(TimestampedDescriptor{
timestamp, Descriptor(offset, EventType::kFtraceEvent)});
- UpdateGlobalTs(queue);
+ UpdateAppendMaxTs(queue);
}
inline void PushInlineFtraceEvent(uint32_t cpu,
int64_t timestamp,
@@ -170,7 +170,7 @@
uint32_t offset = variadic_queue_.Append(inline_sched_switch);
queue->Append(TimestampedDescriptor{
timestamp, Descriptor(offset, EventType::kInlineSchedSwitch)});
- UpdateGlobalTs(queue);
+ UpdateAppendMaxTs(queue);
}
inline void PushInlineFtraceEvent(uint32_t cpu,
int64_t timestamp,
@@ -180,7 +180,7 @@
uint32_t offset = variadic_queue_.Append(inline_sched_waking);
queue->Append(TimestampedDescriptor{
timestamp, Descriptor(offset, EventType::kInlineSchedWaking)});
- UpdateGlobalTs(queue);
+ UpdateAppendMaxTs(queue);
}
void ExtractEventsForced() {
@@ -205,7 +205,7 @@
flushes_since_extraction_ = 0;
}
- int64_t max_timestamp() const { return global_max_ts_; }
+ int64_t max_timestamp() const { return append_max_ts_; }
private:
// Stores offset and type of metadata.
@@ -316,12 +316,11 @@
EventType type) {
Queue* queue = GetQueue(0);
queue->Append(TimestampedDescriptor{ts, Descriptor{offset, type}});
- UpdateGlobalTs(queue);
+ UpdateAppendMaxTs(queue);
}
- inline void UpdateGlobalTs(Queue* queue) {
- global_min_ts_ = std::min(global_min_ts_, queue->min_ts_);
- global_max_ts_ = std::max(global_max_ts_, queue->max_ts_);
+ inline void UpdateAppendMaxTs(Queue* queue) {
+ append_max_ts_ = std::max(append_max_ts_, queue->max_ts_);
}
void ParseTracePacket(const TimestampedDescriptor& ts_desc);
@@ -361,11 +360,8 @@
// queues_[x] is the ftrace queue for CPU(x - 1).
std::vector<Queue> queues_;
- // max(e.timestamp for e in queues_).
- int64_t global_max_ts_ = 0;
-
- // min(e.timestamp for e in queues_).
- int64_t global_min_ts_ = std::numeric_limits<int64_t>::max();
+ // max(e.ts for e appended to the sorter)
+ int64_t append_max_ts_ = 0;
// Used for performance tests. True when setting
// TRACE_PROCESSOR_SORT_ONLY=1.
diff --git a/src/trace_processor/stdlib/android/binder.sql b/src/trace_processor/stdlib/android/binder.sql
index d62d7d8..7fb9611 100644
--- a/src/trace_processor/stdlib/android/binder.sql
+++ b/src/trace_processor/stdlib/android/binder.sql
@@ -14,6 +14,8 @@
-- limitations under the License.
--
+SELECT IMPORT('common.timestamps');
+
-- Count Binder transactions per process.
--
-- @column process_name Name of the process that started the binder transaction.
@@ -35,3 +37,230 @@
GROUP BY
process_name,
slice_name;
+
+-- Breakdown synchronous binder transactions per txn.
+--
+-- @column aidl_name name of the binder interface if existing
+-- @column binder_txn_id slice id of the binder txn
+-- @column client_process name of the client process
+-- @column client_thread name of the client thread
+-- @column client_upid name of the client upid
+-- @column client_utid name of the client utid
+-- @column client_ts timestamp of the client txn
+-- @column client_dur dur of the client txn
+-- @column is_main_thread Whether the txn was initiated from the main thread of the client process
+-- @column binder_reply_id slice id of the binder reply
+-- @column server_process name of the server process
+-- @column server_thread name of the server thread
+-- @column server_upid name of the server upid
+-- @column server_utid name of the server utid
+-- @column server_ts timestamp of the server txn
+-- @column server_dur dur of the server txn
+CREATE VIEW android_sync_binder_metrics_by_txn AS
+WITH
+ binder_txn AS (
+ SELECT
+ slice.id AS binder_txn_id,
+ process.name AS process_name,
+ thread.name AS thread_name,
+ thread.utid AS utid,
+ process.upid AS upid,
+ slice.ts,
+ slice.dur,
+ thread.is_main_thread
+ FROM slice
+ INNER JOIN thread_track
+ ON slice.track_id = thread_track.id
+ INNER JOIN thread
+ USING (utid)
+ INNER JOIN process
+ USING (upid)
+ LEFT JOIN slice non_existent ON non_existent.parent_id = slice.id
+ WHERE slice.name = 'binder transaction'
+ AND non_existent.depth IS NULL
+ ),
+ binder_reply AS (
+ SELECT
+ binder_txn.*,
+ binder_reply.ts AS server_ts,
+ binder_reply.dur AS server_dur,
+ binder_reply.id AS binder_reply_id,
+ IIF(aidl.name LIKE 'AIDL::%' AND aidl.depth = binder_reply.depth + 1, aidl.name, NULL) AS aidl_name,
+ reply_thread.name AS server_thread,
+ reply_process.name AS server_process,
+ reply_thread.utid AS server_utid,
+ reply_process.upid AS server_upid
+ FROM binder_txn
+ INNER JOIN flow binder_flow
+ ON binder_txn.binder_txn_id = binder_flow.slice_out
+ INNER JOIN slice binder_reply
+ ON binder_flow.slice_in = binder_reply.id
+ INNER JOIN thread_track reply_thread_track ON binder_reply.track_id = reply_thread_track.id
+ INNER JOIN thread reply_thread ON reply_thread.utid = reply_thread_track.utid
+ INNER JOIN process reply_process ON reply_process.upid = reply_thread.upid
+ LEFT JOIN slice aidl ON aidl.parent_id = binder_reply.id
+ )
+SELECT
+ MIN(aidl_name) AS aidl_name,
+ binder_txn_id,
+ process_name AS client_process,
+ thread_name AS client_thread,
+ upid AS client_upid,
+ utid AS client_utid,
+ is_main_thread,
+ ts AS client_ts,
+ dur AS client_dur,
+ binder_reply_id,
+ server_process,
+ server_thread,
+ server_upid,
+ server_utid,
+ server_ts,
+ server_dur
+FROM binder_reply
+WHERE client_dur >= 0 AND server_dur >= 0 AND client_dur >= server_dur
+GROUP BY
+ process_name,
+ thread_name,
+ binder_txn_id,
+ binder_reply_id;
+
+-- Breakdown synchronous binder transactions per txn.
+--
+-- @column aidl_name name of the binder interface if existing
+-- @column binder_txn_id slice id of the binder txn
+-- @column client_process name of the client process
+-- @column client_thread name of the client thread
+-- @column client_upid name of the client upid
+-- @column client_utid name of the client utid
+-- @column client_ts timestamp of the client txn
+-- @column client_dur dur of the client txn
+-- @column is_main_thread Whether the txn was initiated from the main thread of the client process
+-- @column binder_reply_id slice id of the binder reply
+-- @column server_process name of the server process
+-- @column server_thread name of the server thread
+-- @column server_upid name of the server upid
+-- @column server_utid name of the server utid
+-- @column server_ts timestamp of the server txn
+-- @column server_dur dur of the server txn
+-- @column thread_state_type whether thread state is on the txn or reply side
+-- @column thread_state_ts ts of the txn thread_state
+-- @column thread_state_dur dur of the txn thread_state
+-- @column thread_state actual thread state of the txn thread_state
+-- @column blocked_function blocked kernel function in the txn thread_state
+CREATE VIEW android_sync_binder_txn_thread_state_by_txn
+AS
+SELECT
+ binder.*,
+ 'binder_txn' AS thread_state_type,
+ txn_state.state AS thread_state,
+ SPANS_OVERLAPPING_DUR(txn_state.ts, txn_state.dur, client_ts, client_dur) AS thread_state_dur,
+ blocked_function
+FROM android_sync_binder_metrics_by_txn binder
+INNER JOIN thread_state txn_state
+ ON (
+ txn_state.utid = binder.client_utid)
+ AND (
+ (txn_state.ts + txn_state.dur BETWEEN client_ts AND client_ts + client_dur)
+ OR (client_ts + client_dur BETWEEN txn_state.ts AND txn_state.ts + txn_state.dur));
+
+-- Breakdown synchronous binder transactions per reply.
+--
+-- @column aidl_name name of the binder interface if existing
+-- @column binder_txn_id slice id of the binder txn
+-- @column client_process name of the client process
+-- @column client_thread name of the client thread
+-- @column client_upid name of the client upid
+-- @column client_utid name of the client utid
+-- @column client_ts timestamp of the client txn
+-- @column client_dur dur of the client txn
+-- @column is_main_thread Whether the txn was initiated from the main thread of the client process
+-- @column binder_reply_id slice id of the binder reply
+-- @column server_process name of the server process
+-- @column server_thread name of the server thread
+-- @column server_upid name of the server upid
+-- @column server_utid name of the server utid
+-- @column server_ts timestamp of the server txn
+-- @column server_dur dur of the server txn
+-- @column thread_state_type whether thread state is on the txn or reply side
+-- @column thread_state_ts ts of the reply thread_state
+-- @column thread_state_dur dur of the reply thread_state
+-- @column thread_state actual thread state of the reply thread_state
+-- @column blocked_function blocked kernel function in the reply thread_state
+CREATE VIEW android_sync_binder_reply_thread_state_by_txn
+AS
+SELECT
+ binder.*,
+ 'binder_reply' AS thread_state_type,
+ reply_state.state AS thread_state,
+ SPANS_OVERLAPPING_DUR(reply_state.ts, reply_state.dur, server_ts, server_dur) AS thread_state_dur,
+ blocked_function
+FROM android_sync_binder_metrics_by_txn binder
+INNER JOIN thread_state reply_state
+ ON (
+ reply_state.utid = binder.server_utid)
+ AND (
+ (reply_state.ts + reply_state.dur BETWEEN server_ts AND server_ts + server_dur)
+ OR (server_ts + server_dur BETWEEN reply_state.ts AND reply_state.ts + reply_state.dur));
+
+-- Aggregated thread_states on the client and server side per binder txn
+--
+-- @column binder_txn_id slice id of the binder txn
+-- @column binder_reply_id slice id of the binder reply
+-- @column thread_state_type whether thread state is on the txn or reply side
+-- @column thread_state a thread_state that occurred in the txn
+-- @column thread_state_dur aggregated dur of the |thread_state| in the txn
+-- @column thread_state_count aggregated count of the |thread_state| in the txn
+CREATE VIEW android_sync_binder_thread_state_by_txn
+AS
+SELECT
+ binder_txn_id,
+ binder_reply_id,
+ thread_state_type,
+ thread_state,
+ SUM(thread_state_dur) AS thread_state_dur,
+ COUNT(thread_state_dur) AS thread_state_count
+FROM android_sync_binder_txn_thread_state_by_txn
+GROUP BY binder_txn_id, binder_reply_id, thread_state_type, thread_state
+UNION ALL
+SELECT
+ binder_txn_id,
+ binder_reply_id,
+ thread_state_type,
+ thread_state,
+ SUM(thread_state_dur) AS thread_state_dur,
+ COUNT(thread_state_dur) AS thread_state_count
+FROM android_sync_binder_reply_thread_state_by_txn
+GROUP BY binder_txn_id, binder_reply_id, thread_state_type, thread_state;
+
+-- Aggregated blocked_functions on the client and server side per binder txn
+--
+-- @column binder_txn_id slice id of the binder txn
+-- @column binder_reply_id slice id of the binder reply
+-- @column thread_state_type whether thread state is on the txn or reply side
+-- @column blocked_function blocked kernel function in a thread state
+-- @column blocked_function_dur aggregated dur of the |blocked_function| in the txn
+-- @column blocked_function_count aggregated count of the |blocked_function| in the txn
+CREATE VIEW android_sync_binder_blocked_functions_by_txn
+AS
+SELECT
+ binder_txn_id,
+ binder_reply_id,
+ thread_state_type,
+ blocked_function,
+ SUM(thread_state_dur) AS blocked_function_dur,
+ COUNT(thread_state_dur) AS blocked_function_count
+FROM android_sync_binder_txn_thread_state_by_txn
+WHERE blocked_function IS NOT NULL
+GROUP BY binder_txn_id, binder_reply_id, blocked_function
+UNION ALL
+SELECT
+ binder_txn_id,
+ binder_reply_id,
+ thread_state_type,
+ blocked_function,
+ SUM(thread_state_dur) AS blocked_function_dur,
+ COUNT(thread_state_dur) AS blocked_function_count
+FROM android_sync_binder_reply_thread_state_by_txn
+WHERE blocked_function IS NOT NULL
+GROUP BY binder_txn_id, binder_reply_id, blocked_function;
diff --git a/src/trace_processor/stdlib/common/timestamps.sql b/src/trace_processor/stdlib/common/timestamps.sql
index c1088b8..e3958ed 100644
--- a/src/trace_processor/stdlib/common/timestamps.sql
+++ b/src/trace_processor/stdlib/common/timestamps.sql
@@ -55,4 +55,28 @@
SELECT (IIF($ts1 < $ts2, $ts2, $ts1)
< IIF($ts_end1 < $ts_end2, $ts_end1, $ts_end2))
'
-);
\ No newline at end of file
+);
+
+--Return the overlapping duration between two spans.
+--If either duration is less than 0 or there's no intersection, 0 is returned
+--
+-- @arg ts1 LONG Timestamp of first slice start.
+-- @arg dur1 LONG Duration of first slice.
+-- @arg ts2 LONG Timestamp of second slice start.
+-- @arg dur2 LONG Duration of second slice.
+-- @ret INT Overlapping duration
+SELECT CREATE_FUNCTION(
+ 'SPANS_OVERLAPPING_DUR(ts1 LONG, dur1 LONG, ts2 LONG, dur2 LONG)',
+ 'INT',
+ '
+ SELECT
+ CASE
+ WHEN $dur1 = -1 OR $dur2 = -1 THEN 0
+ WHEN $ts1 + $dur1 < $ts2 OR $ts2 + $dur2 < $ts1 THEN 0
+ WHEN ($ts1 >= $ts2) AND ($ts1 + $dur1 <= $ts2 + $dur2) THEN $dur1
+ WHEN ($ts1 < $ts2) AND ($ts1 + $dur1 < $ts2 + $dur2) THEN $ts1 + $dur1 - $ts2
+ WHEN ($ts1 > $ts2) AND ($ts1 + $dur1 > $ts2 + $dur2) THEN $ts2 + $dur2 - $ts1
+ ELSE $dur2
+ END
+ '
+);
diff --git a/src/trace_processor/trace_processor_shell.cc b/src/trace_processor/trace_processor_shell.cc
index e3581e6..0a0ba23 100644
--- a/src/trace_processor/trace_processor_shell.cc
+++ b/src/trace_processor/trace_processor_shell.cc
@@ -18,6 +18,7 @@
#include <stdio.h>
#include <sys/stat.h>
+#include <cctype>
#include <cinttypes>
#include <functional>
#include <iostream>
diff --git a/src/trace_processor/util/BUILD.gn b/src/trace_processor/util/BUILD.gn
index af28c16..98ff445 100644
--- a/src/trace_processor/util/BUILD.gn
+++ b/src/trace_processor/util/BUILD.gn
@@ -34,6 +34,17 @@
sources = [ "sql_modules.h" ]
}
+source_set("bump_allocator") {
+ sources = [
+ "bump_allocator.cc",
+ "bump_allocator.h",
+ ]
+ deps = [
+ "../../../gn:default_deps",
+ "../../base",
+ ]
+}
+
source_set("gzip") {
sources = [
"gzip_utils.cc",
@@ -206,6 +217,7 @@
source_set("unittests") {
sources = [
+ "bump_allocator_unittest.cc",
"debug_annotation_parser_unittest.cc",
"glob_unittest.cc",
"proto_profiler_unittest.cc",
@@ -217,6 +229,7 @@
]
testonly = true
deps = [
+ ":bump_allocator",
":descriptors",
":glob",
":gzip",
diff --git a/src/trace_processor/util/annotated_callsites.cc b/src/trace_processor/util/annotated_callsites.cc
index 7d33088..5e23130 100644
--- a/src/trace_processor/util/annotated_callsites.cc
+++ b/src/trace_processor/util/annotated_callsites.cc
@@ -104,10 +104,12 @@
// Mixed callstack, tag libart frames as uninteresting (common-frame).
// Special case a subset of interpreter implementation frames as
// "common-frame-interp" using frame name prefixes. Those functions are
- // actually executed, whereas the managed "interp" frames are synthesised
- // as their caller by the unwinding library (based on the dex_pc virtual
- // register restored using the libart's DWARF info). Example:
+ // actually executed, whereas the managed "interp" frames are synthesised as
+ // their caller by the unwinding library (based on the dex_pc virtual
+ // register restored using the libart's DWARF info). The heuristic covers
+ // the "nterp" and "switch" interpreter implementations.
//
+ // Example:
// <towards root>
// android.view.WindowLayout.computeFrames [interp]
// nterp_op_iget_object_slow_path [common-frame-interp]
@@ -116,10 +118,15 @@
// process in?" based on the leaf frame of the callstack. As we want to
// classify such cases as interpreted, even though the leaf frame is
// libart.so.
+ //
+ // For "switch" interpreter, we match any frame starting with
+ // "art::interpreter::" according to itanium mangling.
if (state == State::kEraseLibart && map_type == MapType::kNativeLibart) {
NullTermStringView fname = context_.storage->GetString(frame.name());
if (fname.StartsWith("nterp_") || fname.StartsWith("Nterp") ||
- fname.StartsWith("ExecuteNterp")) {
+ fname.StartsWith("ExecuteNterp") ||
+ fname.StartsWith("ExecuteSwitchImpl") ||
+ fname.StartsWith("_ZN3art11interpreter")) {
return {state, CallsiteAnnotation::kCommonFrameInterp};
}
return {state, CallsiteAnnotation::kCommonFrame};
diff --git a/src/trace_processor/util/bump_allocator.cc b/src/trace_processor/util/bump_allocator.cc
new file mode 100644
index 0000000..1c00a8c
--- /dev/null
+++ b/src/trace_processor/util/bump_allocator.cc
@@ -0,0 +1,144 @@
+/*
+ * Copyright (C) 2023 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.
+ */
+
+#include "src/trace_processor/util/bump_allocator.h"
+
+#include "perfetto/base/compiler.h"
+#include "perfetto/base/logging.h"
+#include "perfetto/ext/base/optional.h"
+#include "perfetto/ext/base/utils.h"
+
+namespace perfetto {
+namespace trace_processor {
+namespace {
+
+// TODO(b/266983484): consider using base::PagedMemory unless a) we are on a
+// platform where that doesn't make sense (WASM) b) we are trying to do heap
+// profiling.
+base::AlignedUniquePtr<uint8_t[]> Allocate(uint32_t size) {
+ uint8_t* ptr = static_cast<uint8_t*>(base::AlignedAlloc(8, size));
+ // Poison the region to try and catch out of bound accesses.
+ PERFETTO_ASAN_POISON(ptr, size);
+ return base::AlignedUniquePtr<uint8_t[]>(ptr);
+}
+
+} // namespace
+
+BumpAllocator::BumpAllocator() = default;
+
+BumpAllocator::~BumpAllocator() {
+ for (const auto& chunk : chunks_) {
+ PERFETTO_CHECK(chunk.unfreed_allocations == 0);
+ }
+}
+
+BumpAllocator::AllocId BumpAllocator::Alloc(uint32_t size) {
+ // Size is required to be a multiple of 8 to avoid needing to deal with
+ // alignment. It must also be at most kChunkSize as we do not support cross
+ // chunk spanning allocations.
+ PERFETTO_DCHECK(size % 8 == 0);
+ PERFETTO_DCHECK(size <= kChunkSize);
+
+ // Fast path: check if we have space to service this allocation in the current
+ // chunk.
+ base::Optional<AllocId> alloc_id = TryAllocInLastChunk(size);
+ if (alloc_id) {
+ return *alloc_id;
+ }
+
+ // Slow path: we don't have enough space in the last chunk so we create one.
+ Chunk chunk;
+ chunk.allocation = Allocate(kChunkSize);
+ chunks_.emplace_back(std::move(chunk));
+
+ // Ensure that we haven't exceeded the maximum number of chunks.
+ PERFETTO_CHECK(LastChunkIndex() < kMaxChunkCount);
+
+ // This time the allocation should definitely succeed in the last chunk (which
+ // we just added).
+ alloc_id = TryAllocInLastChunk(size);
+ PERFETTO_CHECK(alloc_id);
+ return *alloc_id;
+}
+
+void BumpAllocator::Free(AllocId id) {
+ Chunk& chunk = chunks_.at(ChunkIndexToQueueIndex(id.chunk_index));
+ PERFETTO_DCHECK(chunk.unfreed_allocations > 0);
+ chunk.unfreed_allocations--;
+}
+
+void* BumpAllocator::GetPointer(AllocId id) {
+ uint32_t queue_index = ChunkIndexToQueueIndex(id.chunk_index);
+ return chunks_.at(queue_index).allocation.get() + id.chunk_offset;
+}
+
+uint32_t BumpAllocator::EraseFrontFreeChunks() {
+ uint32_t to_erase_chunks = 0;
+ for (; to_erase_chunks < chunks_.size(); ++to_erase_chunks) {
+ // Break on the first chunk which still has unfreed allocations.
+ if (chunks_.at(to_erase_chunks).unfreed_allocations > 0) {
+ break;
+ }
+ }
+ chunks_.erase_front(to_erase_chunks);
+ erased_front_chunks_count_ += to_erase_chunks;
+ return to_erase_chunks;
+}
+
+uint32_t BumpAllocator::PastEndSerializedId() {
+ if (chunks_.empty()) {
+ return AllocId{erased_front_chunks_count_, 0}.Serialize();
+ }
+ return AllocId{LastChunkIndex(), chunks_.back().bump_offset}.Serialize();
+}
+
+base::Optional<BumpAllocator::AllocId> BumpAllocator::TryAllocInLastChunk(
+ uint32_t size) {
+ if (chunks_.empty()) {
+ return base::nullopt;
+ }
+
+ // TODO(266983484): consider switching this to bump downwards instead of
+ // upwards for more efficient code generation.
+ Chunk& chunk = chunks_.back();
+
+ // Verify some invariants:
+ // 1) The allocation must exist
+ // 2) The bump must be in the bounds of the chunk.
+ PERFETTO_DCHECK(chunk.allocation);
+ PERFETTO_DCHECK(chunk.bump_offset <= kChunkSize);
+
+ // If the end of the allocation ends up after this chunk, we cannot service it
+ // in this chunk.
+ uint32_t alloc_offset = chunk.bump_offset;
+ uint32_t new_bump_offset = chunk.bump_offset + size;
+ if (new_bump_offset > kChunkSize) {
+ return base::nullopt;
+ }
+
+ // Set the new offset equal to the end of this allocation and increment the
+ // unfreed allocation counter.
+ chunk.bump_offset = new_bump_offset;
+ chunk.unfreed_allocations++;
+
+ // Unpoison the allocation range to allow access to it on ASAN builds.
+ PERFETTO_ASAN_UNPOISON(chunk.allocation.get() + alloc_offset, size);
+
+ return AllocId{LastChunkIndex(), alloc_offset};
+}
+
+} // namespace trace_processor
+} // namespace perfetto
diff --git a/src/trace_processor/util/bump_allocator.h b/src/trace_processor/util/bump_allocator.h
new file mode 100644
index 0000000..cd5e593
--- /dev/null
+++ b/src/trace_processor/util/bump_allocator.h
@@ -0,0 +1,192 @@
+/*
+ * Copyright (C) 2023 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.
+ */
+
+#ifndef SRC_TRACE_PROCESSOR_UTIL_BUMP_ALLOCATOR_H_
+#define SRC_TRACE_PROCESSOR_UTIL_BUMP_ALLOCATOR_H_
+
+#include <cmath>
+#include <cstdint>
+#include <cstring>
+#include <limits>
+#include <memory>
+#include "perfetto/ext/base/circular_queue.h"
+#include "perfetto/ext/base/optional.h"
+#include "perfetto/ext/base/utils.h"
+
+namespace perfetto {
+namespace trace_processor {
+
+// A simple memory allocator which "bumps" a pointer to service allocations.
+// See [1] for more details for an overview of bump allocators.
+//
+// This implementation works by obtaining a large chunk of memory from the
+// system allocator (i.e. from malloc). Every allocation uses that chunk as long
+// as there is free space inside. Once an allocation is requested which does not
+// fit in that chunk, a new chunk is requested from the system.
+//
+// IMPORTANT: all allocations returned from this allocator are 8-aligned and
+// all allocation sizes must be a multiple of 8.
+//
+// IMPORTANT: this allocator can allocate a total of 4GB of memory (2^32). Once
+// this is exhausted, any further allocation will cause a CHECK.
+//
+// IMPORTANT: all allocations *must* be explicitly freed before destroying this
+// object. The destructor will CHECK if it detects any allocation which is
+// unfreed.
+//
+// [1] https://rust-hosted-langs.github.io/book/chapter-simple-bump.html
+class BumpAllocator {
+ public:
+ // The limit on the total amount of memory which can be allocated. Required
+ // as we can only address 4GB of memory with AllocId.
+ static constexpr uint64_t kAllocLimit = 4ull * 1024 * 1024 * 1024; // 4GB
+
+ // The size of the "large chunk" requested from the system allocator.
+ // The size of this value trades-off between unused memory use vs CPU cost
+ // of going to the system allocator. 64KB feels a good trade-off there.
+ static constexpr uint32_t kChunkSize = 64u * 1024; // 64KB
+
+ // The maximum number of chunks which this allocator can have.
+ static constexpr uint32_t kMaxChunkCount = kAllocLimit / kChunkSize;
+
+ // The number of bits used to represent the offset the chunk in AllocId.
+ //
+ // This is simply log2(kChunkSize): we have a separate constant as log2 is
+ // not a constexpr function: the static assets below verify this stays in
+ // sync.
+ static constexpr uint32_t kChunkOffsetAllocIdBits = 16u;
+
+ // The number of bits used to represent the chunk index in AllocId.
+ static constexpr uint32_t kChunkIndexAllocIdBits =
+ 32u - kChunkOffsetAllocIdBits;
+
+ // Represents an allocation returned from the allocator. We return this
+ // instead of just returning a pointer to allow looking up a chunk an
+ // allocation belongs to without needing having to scan chunks.
+ struct AllocId {
+ uint32_t chunk_index : kChunkIndexAllocIdBits;
+ uint32_t chunk_offset : kChunkOffsetAllocIdBits;
+
+ uint32_t Serialize() const {
+ return static_cast<uint32_t>(chunk_index) << kChunkOffsetAllocIdBits |
+ chunk_offset;
+ }
+
+ static AllocId FromSerialized(uint32_t serialized) {
+ AllocId id;
+ id.chunk_index = serialized >> kChunkOffsetAllocIdBits;
+ id.chunk_offset = serialized;
+ return id;
+ }
+ };
+ static_assert(sizeof(AllocId) == sizeof(uint32_t),
+ "AllocId should be 32-bit in size to allow serialization");
+ static_assert(
+ kMaxChunkCount == (1 << kChunkIndexAllocIdBits),
+ "Max chunk count must match the number of bits used for chunk indices");
+ static_assert(
+ kChunkSize == (1 << kChunkOffsetAllocIdBits),
+ "Chunk size must match the number of bits used for offset within chunk");
+ static_assert(kAllocLimit == 1ull << sizeof(AllocId) * 8,
+ "Total limit on allocations must be equal to the number of "
+ "bits used for AllocId");
+
+ BumpAllocator();
+
+ // Verifies that all calls to |Alloc| were paired with matching calls to
+ // |Free|.
+ ~BumpAllocator();
+
+ BumpAllocator(BumpAllocator&&) noexcept = default;
+ BumpAllocator& operator=(BumpAllocator&&) noexcept = default;
+
+ // Allocates |size| bytes of memory. |size| must be a multiple of 8 and less
+ // than or equal to |kChunkSize|.
+ //
+ // Returns an |AllocId| which can be converted to a pointer using
+ // |GetPointer|.
+ AllocId Alloc(uint32_t size);
+
+ // Frees an allocation previously allocated by |Alloc|. This function is *not*
+ // idempotent.
+ //
+ // Once this function returns, |id| is no longer valid for any use. Trying
+ // to use it further (e.g. to passing to other methods including Free itself)
+ // will cause undefined behaviour.
+ void Free(AllocId id);
+
+ // Given an AllocId, returns a pointer which can be read from/written to.
+ //
+ // The caller is only allowed to access up to |size| bytes, where |size| ==
+ // the |size| argument to Alloc.
+ void* GetPointer(AllocId);
+
+ // Removes chunks from the start of this allocator where all the allocations
+ // in the chunks have been freed. This releases the memory back to the system.
+ //
+ // Returns the number of chunks freed.
+ uint32_t EraseFrontFreeChunks();
+
+ // Returns a "past the end" serialized AllocId i.e. a serialized value
+ // greater than all previously returned AllocIds.
+ uint32_t PastEndSerializedId();
+
+ // Returns the number of erased chunks from the start of this allocator.
+ //
+ // This value may change any time |EraseFrontFreeChunks| is called but is
+ // constant otherwise.
+ uint32_t erased_front_chunks_count() const {
+ return erased_front_chunks_count_;
+ }
+
+ private:
+ struct Chunk {
+ // The allocation from the system for this chunk. Because all allocations
+ // need to be 8 byte aligned, the chunk also needs to be 8-byte aligned.
+ // base::AlignedUniquePtr ensures this is the case.
+ base::AlignedUniquePtr<uint8_t[]> allocation;
+
+ // The bump offset relative to |allocation.data|. Incremented to service
+ // Alloc requests.
+ uint32_t bump_offset = 0;
+
+ // The number of unfreed allocations in this chunk.
+ uint32_t unfreed_allocations = 0;
+ };
+
+ // Tries to allocate |size| bytes in the final chunk in |chunks_|. Returns
+ // an AllocId if this was successful or base::nullopt otherwise.
+ base::Optional<AllocId> TryAllocInLastChunk(uint32_t size);
+
+ uint32_t ChunkIndexToQueueIndex(uint32_t chunk_index) const {
+ return chunk_index - erased_front_chunks_count_;
+ }
+ uint32_t QueueIndexToChunkIndex(uint32_t index_in_chunks_vec) const {
+ return erased_front_chunks_count_ + index_in_chunks_vec;
+ }
+ uint32_t LastChunkIndex() const {
+ PERFETTO_DCHECK(!chunks_.empty());
+ return QueueIndexToChunkIndex(static_cast<uint32_t>(chunks_.size() - 1));
+ }
+
+ base::CircularQueue<Chunk> chunks_;
+ uint32_t erased_front_chunks_count_ = 0;
+};
+
+} // namespace trace_processor
+} // namespace perfetto
+
+#endif // SRC_TRACE_PROCESSOR_UTIL_BUMP_ALLOCATOR_H_
diff --git a/src/trace_processor/util/bump_allocator_unittest.cc b/src/trace_processor/util/bump_allocator_unittest.cc
new file mode 100644
index 0000000..4608be6
--- /dev/null
+++ b/src/trace_processor/util/bump_allocator_unittest.cc
@@ -0,0 +1,129 @@
+/*
+ * Copyright (C) 2023 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.
+ */
+
+#include "src/trace_processor/util/bump_allocator.h"
+
+#include <limits>
+#include <random>
+#include <vector>
+
+#include "perfetto/ext/base/utils.h"
+#include "test/gtest_and_gmock.h"
+
+namespace perfetto {
+namespace trace_processor {
+
+class BumpAllocatorUnittest : public ::testing::Test {
+ public:
+ // Allocates |size| bytes of memory with aligned to |align|, writes |size|
+ // bytes in the region, reads |size| bytes and then frees the memory.
+ //
+ // Very useful to check that none of the internal DCHECKs of the allocator
+ // fire.
+ void AllocateWriteReadAndFree(uint32_t size) {
+ BumpAllocator::AllocId id = allocator_.Alloc(size);
+ uint8_t* ptr = static_cast<uint8_t*>(allocator_.GetPointer(id));
+
+ std::vector<uint8_t> data(size);
+ for (uint32_t i = 0; i < size; ++i) {
+ data[i] = static_cast<uint8_t>(rnd_engine_() &
+ std::numeric_limits<uint8_t>::max());
+ }
+ memcpy(ptr, data.data(), size);
+ ASSERT_EQ(memcmp(ptr, data.data(), size), 0);
+ allocator_.Free(id);
+ }
+
+ protected:
+ std::minstd_rand0 rnd_engine_;
+ BumpAllocator allocator_;
+};
+
+TEST_F(BumpAllocatorUnittest, AllocSmoke) {
+ AllocateWriteReadAndFree(8);
+ AllocateWriteReadAndFree(16);
+ AllocateWriteReadAndFree(24);
+ AllocateWriteReadAndFree(64);
+ AllocateWriteReadAndFree(1024);
+ AllocateWriteReadAndFree(BumpAllocator::kChunkSize);
+
+ allocator_.EraseFrontFreeChunks();
+}
+
+TEST_F(BumpAllocatorUnittest, EraseFrontAtAnyTime) {
+ BumpAllocator::AllocId id = allocator_.Alloc(8);
+ allocator_.EraseFrontFreeChunks();
+ allocator_.Free(id);
+ allocator_.EraseFrontFreeChunks();
+}
+
+TEST_F(BumpAllocatorUnittest, Serialize) {
+ BumpAllocator::AllocId id = allocator_.Alloc(8);
+ ASSERT_EQ(id.Serialize(), 0u);
+ ASSERT_EQ(allocator_.PastEndSerializedId(), 8u);
+ allocator_.Free(id);
+
+ id = allocator_.Alloc(8);
+ ASSERT_EQ(id.Serialize(), 8u);
+ allocator_.Free(id);
+
+ id = allocator_.Alloc(BumpAllocator::kChunkSize);
+ ASSERT_EQ(id.Serialize(), BumpAllocator::kChunkSize);
+ allocator_.Free(id);
+}
+
+TEST_F(BumpAllocatorUnittest, HighNumberSerialize) {
+ BumpAllocator::AllocId id = BumpAllocator::AllocId::FromSerialized(1138352);
+ ASSERT_EQ(id.chunk_index, 1138352 / BumpAllocator::kChunkSize);
+ ASSERT_EQ(id.chunk_offset, 1138352 % BumpAllocator::kChunkSize);
+ ASSERT_EQ(id.Serialize(), 1138352u);
+}
+
+TEST_F(BumpAllocatorUnittest, EraseFrontAccounting) {
+ AllocateWriteReadAndFree(8);
+ ASSERT_EQ(allocator_.EraseFrontFreeChunks(), 1u);
+ ASSERT_EQ(allocator_.erased_front_chunks_count(), 1u);
+ AllocateWriteReadAndFree(8);
+ ASSERT_EQ(allocator_.EraseFrontFreeChunks(), 1u);
+ ASSERT_EQ(allocator_.erased_front_chunks_count(), 2u);
+}
+
+TEST_F(BumpAllocatorUnittest, EraseFrontFreeChunk) {
+ AllocateWriteReadAndFree(8);
+ allocator_.EraseFrontFreeChunks();
+
+ auto past_id =
+ BumpAllocator::AllocId::FromSerialized(allocator_.PastEndSerializedId());
+ ASSERT_EQ(past_id.chunk_index, 1u);
+ ASSERT_EQ(past_id.chunk_offset, 0u);
+
+ auto id = allocator_.Alloc(8);
+ ASSERT_EQ(id.chunk_index, past_id.chunk_index);
+ ASSERT_EQ(id.chunk_offset, past_id.chunk_offset);
+ allocator_.Free(id);
+}
+
+TEST_F(BumpAllocatorUnittest, StressTest) {
+ std::minstd_rand0 rnd_engine;
+ for (int i = 0; i < 1000; i++) {
+ uint32_t size =
+ static_cast<uint32_t>((rnd_engine() * 8) % BumpAllocator::kChunkSize);
+ AllocateWriteReadAndFree(size);
+ }
+}
+
+} // namespace trace_processor
+} // namespace perfetto
diff --git a/src/traced/probes/ftrace/ftrace_config_muxer.cc b/src/traced/probes/ftrace/ftrace_config_muxer.cc
index 5b0ad79..61a26dd 100644
--- a/src/traced/probes/ftrace/ftrace_config_muxer.cc
+++ b/src/traced/probes/ftrace/ftrace_config_muxer.cc
@@ -585,40 +585,56 @@
FtraceProcfs* ftrace,
ProtoTranslationTable* table,
SyscallTable syscalls,
- std::map<std::string, std::vector<GroupAndName>> vendor_events)
+ std::map<std::string, std::vector<GroupAndName>> vendor_events,
+ bool secondary_instance)
: ftrace_(ftrace),
table_(table),
syscalls_(std::move(syscalls)),
current_state_(),
ds_configs_(),
- vendor_events_(vendor_events) {}
+ vendor_events_(vendor_events),
+ secondary_instance_(secondary_instance) {}
FtraceConfigMuxer::~FtraceConfigMuxer() = default;
-FtraceConfigId FtraceConfigMuxer::SetupConfig(const FtraceConfig& request,
- FtraceSetupErrors* errors) {
+bool FtraceConfigMuxer::SetupConfig(FtraceConfigId id,
+ const FtraceConfig& request,
+ FtraceSetupErrors* errors) {
EventFilter filter;
- bool is_ftrace_enabled = ftrace_->IsTracingEnabled();
if (ds_configs_.empty()) {
PERFETTO_DCHECK(active_configs_.empty());
- // If someone outside of perfetto is using ftrace give up now.
- if (!request.preserve_ftrace_buffer() && is_ftrace_enabled &&
- !IsOldAtrace()) {
- PERFETTO_ELOG("ftrace in use by non-Perfetto.");
- return 0;
+ // If someone outside of perfetto is using a non-nop tracer, yield. We can't
+ // realistically figure out all notions of "in use" even if we look at
+ // set_event or events/enable, so this is all we check for.
+ if (!request.preserve_ftrace_buffer() && !ftrace_->IsTracingAvailable()) {
+ PERFETTO_ELOG(
+ "ftrace in use by non-Perfetto. Check that %s current_tracer is nop.",
+ ftrace_->GetRootPath().c_str());
+ return false;
}
- // Setup ftrace, without starting it. Setting buffers can be quite slow
- // (up to hundreds of ms).
- if (!request.preserve_ftrace_buffer())
- SetupClock(request);
- SetupBufferSize(request);
- } else {
- // Did someone turn ftrace off behind our back? If so give up.
- if (!active_configs_.empty() && !is_ftrace_enabled && !IsOldAtrace()) {
- PERFETTO_ELOG("ftrace disabled by non-Perfetto.");
- return 0;
+ // Clear tracefs state, remembering which value of "tracing_on" to restore
+ // to after we're done, though we won't restore the rest of the tracefs
+ // state.
+ current_state_.saved_tracing_on = ftrace_->GetTracingOn();
+ if (!request.preserve_ftrace_buffer()) {
+ ftrace_->SetTracingOn(false);
+ // This will fail on release ("user") builds due to ACLs, but that's
+ // acceptable since the per-event enabling/disabling should still be
+ // balanced.
+ ftrace_->DisableAllEvents();
+ ftrace_->ClearTrace();
}
+
+ // Set up the rest of the tracefs state, without starting it.
+ // Notes:
+ // * resizing buffers can be quite slow (up to hundreds of ms).
+ // * resizing buffers doesn't clear their existing contents, which matters
+ // to the preserve_ftrace_buffer option.
+ if (!request.preserve_ftrace_buffer()) {
+ SetupClock(request);
+ }
+ SetupBufferSize(request);
}
std::set<GroupAndName> events = GetFtraceEvents(request, table_);
@@ -636,11 +652,17 @@
}
if (RequiresAtrace(request)) {
+ if (secondary_instance_) {
+ PERFETTO_ELOG(
+ "Secondary ftrace instances do not support atrace_categories and "
+ "atrace_apps options as they affect global state");
+ return false;
+ }
if (IsOldAtrace() && !ds_configs_.empty()) {
PERFETTO_ELOG(
"Concurrent atrace sessions are not supported before Android P, "
"bailing out.");
- return 0;
+ return false;
}
UpdateAtrace(request, errors ? &errors->atrace_errors : nullptr);
}
@@ -686,7 +708,7 @@
EventFilter syscall_filter = BuildSyscallFilter(filter, request);
if (!SetSyscallEventFilter(syscall_filter)) {
PERFETTO_ELOG("Failed to set raw_syscall ftrace filter in SetupConfig");
- return 0;
+ return false;
}
// Kernel function tracing (function_graph).
@@ -702,19 +724,19 @@
// through a trace (but some might get added).
if (request.enable_function_graph()) {
if (!current_state_.funcgraph_on && !ftrace_->ClearFunctionFilters())
- return 0;
+ return false;
if (!current_state_.funcgraph_on && !ftrace_->ClearFunctionGraphFilters())
- return 0;
+ return false;
if (!ftrace_->AppendFunctionFilters(request.function_filters()))
- return 0;
+ return false;
if (!ftrace_->AppendFunctionGraphFilters(request.function_graph_roots()))
- return 0;
+ return false;
if (!current_state_.funcgraph_on &&
!ftrace_->SetCurrentTracer("function_graph")) {
PERFETTO_LOG(
"Unable to enable function_graph tracing since a concurrent ftrace "
"data source is using a different tracer");
- return 0;
+ return false;
}
current_state_.funcgraph_on = true;
}
@@ -736,7 +758,6 @@
std::vector<std::string> apps(request.atrace_apps());
std::vector<std::string> categories(request.atrace_categories());
- FtraceConfigId id = ++last_id_;
ds_configs_.emplace(
std::piecewise_construct, std::forward_as_tuple(id),
std::forward_as_tuple(std::move(filter), std::move(syscall_filter),
@@ -745,7 +766,7 @@
request.symbolize_ksyms(),
request.preserve_ftrace_buffer(),
GetSyscallsReturningFds(syscalls_)));
- return id;
+ return true;
}
bool FtraceConfigMuxer::ActivateConfig(FtraceConfigId id) {
@@ -754,14 +775,10 @@
return false;
}
+ // Enable tracing_on to activate ftrace ring buffer before activate the first
+ // config.
if (active_configs_.empty()) {
- if (!ds_configs_.at(id).preserve_ftrace_buffer &&
- ftrace_->IsTracingEnabled() && !IsOldAtrace()) {
- // If someone outside of perfetto is using ftrace give up now.
- PERFETTO_ELOG("ftrace in use by non-Perfetto.");
- return false;
- }
- if (!ftrace_->EnableTracing()) {
+ if (!ftrace_->SetTracingOn(true)) {
PERFETTO_ELOG("Failed to enable ftrace.");
return false;
}
@@ -816,14 +833,14 @@
current_state_.ftrace_events.DisableEvent(event->ftrace_event_id);
}
- // If there aren't any more active configs, disable ftrace.
auto active_it = active_configs_.find(config_id);
if (active_it != active_configs_.end()) {
active_configs_.erase(active_it);
if (active_configs_.empty()) {
- // This was the last active config, disable ftrace.
- if (!ftrace_->DisableTracing())
- PERFETTO_ELOG("Failed to disable ftrace.");
+ // This was the last active config for now, but potentially more dormant
+ // configs need to be activated. We are not interested in reading while no
+ // active configs so diasble tracing_on here.
+ ftrace_->SetTracingOn(false);
}
}
@@ -835,6 +852,7 @@
current_state_.cpu_buffer_size_pages = 1;
ftrace_->DisableAllEvents();
ftrace_->ClearTrace();
+ ftrace_->SetTracingOn(current_state_.saved_tracing_on);
}
if (current_state_.atrace_on) {
diff --git a/src/traced/probes/ftrace/ftrace_config_muxer.h b/src/traced/probes/ftrace/ftrace_config_muxer.h
index 4247af1..2a2fca8 100644
--- a/src/traced/probes/ftrace/ftrace_config_muxer.h
+++ b/src/traced/probes/ftrace/ftrace_config_muxer.h
@@ -108,19 +108,20 @@
FtraceProcfs* ftrace,
ProtoTranslationTable* table,
SyscallTable syscalls,
- std::map<std::string, std::vector<GroupAndName>> vendor_events);
+ std::map<std::string, std::vector<GroupAndName>> vendor_events,
+ bool secondary_instance = false);
virtual ~FtraceConfigMuxer();
// Ask FtraceConfigMuxer to adjust ftrace procfs settings to
- // match the requested config. Returns an id to manage this
- // config or zero on failure.
+ // match the requested config. Returns true on success and false on failure.
// This is best effort. FtraceConfigMuxer may not be able to adjust the
// buffer size right now. Events may be missing or there may be extra events
// (if you enable an atrace category we try to give you the matching events).
// If someone else is tracing we won't touch atrace (since it resets the
// buffer).
- FtraceConfigId SetupConfig(const FtraceConfig& request,
- FtraceSetupErrors* = nullptr);
+ bool SetupConfig(FtraceConfigId id,
+ const FtraceConfig& request,
+ FtraceSetupErrors* = nullptr);
// Activate ftrace for the given config (if not already active).
bool ActivateConfig(FtraceConfigId);
@@ -185,6 +186,7 @@
bool atrace_on = false;
std::vector<std::string> atrace_apps;
std::vector<std::string> atrace_categories;
+ bool saved_tracing_on; // Backup for the original tracing_on.
};
FtraceConfigMuxer(const FtraceConfigMuxer&) = delete;
@@ -220,9 +222,6 @@
// so the filter can be updated before ds_configs_.
bool SetSyscallEventFilter(const EventFilter& extra_syscalls);
- FtraceConfigId GetNextId();
-
- FtraceConfigId last_id_ = 1;
FtraceProcfs* ftrace_;
ProtoTranslationTable* table_;
SyscallTable syscalls_;
@@ -235,11 +234,17 @@
// sizes and events, but don't enable ftrace (i.e. tracing_on).
std::map<FtraceConfigId, FtraceDataSourceConfig> ds_configs_;
- std::map<std::string, std::vector<GroupAndName>> vendor_events_;
-
// Subset of |ds_configs_| that are currently active. At any time ftrace is
// enabled iff |active_configs_| is not empty.
std::set<FtraceConfigId> active_configs_;
+
+ std::map<std::string, std::vector<GroupAndName>> vendor_events_;
+
+ // If true, this muxer is for a secondary ftrace instance
+ // (tracefs/instances/<name>). At the moment, we only support basic ftrace
+ // event recording in such instances. So only |ftrace_events| and
+ // |ftrace_buffer_size| options are guaranteed to work.
+ bool secondary_instance_;
};
size_t ComputeCpuBufferSizeInPages(size_t requested_buffer_size_kb);
diff --git a/src/traced/probes/ftrace/ftrace_config_muxer_unittest.cc b/src/traced/probes/ftrace/ftrace_config_muxer_unittest.cc
index 96c8da6..69c96d3 100644
--- a/src/traced/probes/ftrace/ftrace_config_muxer_unittest.cc
+++ b/src/traced/probes/ftrace/ftrace_config_muxer_unittest.cc
@@ -237,13 +237,22 @@
FtraceConfigMuxer model(&ftrace, fake_table.get(), GetSyscallTable(), {});
+ ON_CALL(ftrace, ReadFileIntoString("/root/trace_clock"))
+ .WillByDefault(Return("[local] global boot"));
+ EXPECT_CALL(ftrace, ReadFileIntoString("/root/trace_clock"))
+ .Times(AnyNumber());
+ EXPECT_CALL(ftrace, ReadFileIntoString("/root/current_tracer"))
+ .WillOnce(Return("nop"));
+ EXPECT_CALL(ftrace, ReadOneCharFromFile("/root/tracing_on"))
+ .WillOnce(Return('1'));
EXPECT_CALL(ftrace, WriteToFile(_, _)).WillRepeatedly(Return(true));
EXPECT_CALL(ftrace, WriteToFile("/root/events/raw_syscalls/sys_enter/filter",
"id == 0 || id == 1"));
EXPECT_CALL(ftrace, WriteToFile("/root/events/raw_syscalls/sys_exit/filter",
"id == 0 || id == 1"));
- FtraceConfigId id = model.SetupConfig(config);
+ FtraceConfigId id = 37;
+ ASSERT_TRUE(model.SetupConfig(id, config));
ASSERT_TRUE(model.ActivateConfig(id));
const std::set<size_t>& filter = model.GetSyscallFilterForTesting();
@@ -259,8 +268,17 @@
config.add_syscall_events("sys_open");
config.add_syscall_events("sys_not_a_call");
+ ON_CALL(ftrace, ReadFileIntoString("/root/trace_clock"))
+ .WillByDefault(Return("[local] global boot"));
+ EXPECT_CALL(ftrace, ReadFileIntoString("/root/trace_clock"))
+ .Times(AnyNumber());
+ EXPECT_CALL(ftrace, ReadFileIntoString("/root/current_tracer"))
+ .WillOnce(Return("nop"));
+ EXPECT_CALL(ftrace, ReadOneCharFromFile("/root/tracing_on"))
+ .WillOnce(Return('1'));
+
// Unknown syscall is ignored.
- ASSERT_TRUE(model.SetupConfig(config));
+ ASSERT_TRUE(model.SetupConfig(/*id = */ 73, config));
ASSERT_THAT(model.GetSyscallFilterForTesting(), UnorderedElementsAre(0));
}
@@ -280,16 +298,21 @@
FtraceConfig syscall_read_config = syscall_config;
syscall_read_config.add_syscall_events("sys_read");
+ ON_CALL(ftrace, ReadFileIntoString("/root/current_tracer"))
+ .WillByDefault(Return("nop"));
+
// Expect no filter for non-syscall config.
- model.SetupConfig(empty_config);
+ ASSERT_TRUE(model.SetupConfig(/* id= */ 179239, empty_config));
ASSERT_THAT(model.GetSyscallFilterForTesting(), UnorderedElementsAre());
// Expect no filter for syscall config with no specified events.
- FtraceConfigId syscall_id = model.SetupConfig(syscall_config);
+ FtraceConfigId syscall_id = 73;
+ ASSERT_TRUE(model.SetupConfig(syscall_id, syscall_config));
ASSERT_THAT(model.GetSyscallFilterForTesting(), UnorderedElementsAre());
// Still expect no filter to satisfy this and the above.
- FtraceConfigId syscall_open_id = model.SetupConfig(syscall_open_config);
+ FtraceConfigId syscall_open_id = 101;
+ ASSERT_TRUE(model.SetupConfig(syscall_open_id, syscall_open_config));
ASSERT_THAT(model.GetSyscallFilterForTesting(), UnorderedElementsAre());
// After removing the generic syscall trace, only the one with filter is left.
@@ -297,7 +320,8 @@
ASSERT_THAT(model.GetSyscallFilterForTesting(), UnorderedElementsAre(0));
// With sys_read and sys_open traced separately, filter includes both.
- FtraceConfigId syscall_read_id = model.SetupConfig(syscall_read_config);
+ FtraceConfigId syscall_read_id = 57;
+ ASSERT_TRUE(model.SetupConfig(syscall_read_id, syscall_read_config));
ASSERT_THAT(model.GetSyscallFilterForTesting(), UnorderedElementsAre(0, 1));
// After removing configs with filters, filter is reset to empty.
@@ -314,17 +338,20 @@
FtraceConfigMuxer model(&ftrace, mock_table.get(), GetSyscallTable(), {});
+ EXPECT_CALL(ftrace, ReadFileIntoString("/root/current_tracer"))
+ .WillOnce(Return("nop"));
+ EXPECT_CALL(ftrace, ReadOneCharFromFile("/root/tracing_on"))
+ .WillOnce(Return('1'));
+ EXPECT_CALL(ftrace, WriteToFile("/root/tracing_on", "0"));
+ EXPECT_CALL(ftrace, WriteToFile("/root/events/enable", "0"));
+ EXPECT_CALL(ftrace, ClearFile("/root/trace"));
+ EXPECT_CALL(ftrace, ClearFile(MatchesRegex("/root/per_cpu/cpu[0-9]/trace")));
ON_CALL(ftrace, ReadFileIntoString("/root/trace_clock"))
.WillByDefault(Return("[local] global boot"));
EXPECT_CALL(ftrace, ReadFileIntoString("/root/trace_clock"))
.Times(AnyNumber());
-
- EXPECT_CALL(ftrace, ReadOneCharFromFile("/root/tracing_on"))
- .Times(2)
- .WillRepeatedly(Return('0'));
EXPECT_CALL(ftrace, WriteToFile("/root/buffer_size_kb", _));
EXPECT_CALL(ftrace, WriteToFile("/root/trace_clock", "boot"));
- EXPECT_CALL(ftrace, WriteToFile("/root/tracing_on", "1"));
EXPECT_CALL(ftrace,
WriteToFile("/root/events/power/cpu_frequency/enable", "1"));
EXPECT_CALL(*mock_table, GetEvent(GroupAndName("power", "cpu_frequency")))
@@ -340,7 +367,10 @@
EXPECT_CALL(*mock_table,
GetOrCreateEvent(GroupAndName("power", "cpu_frequency")));
- FtraceConfigId id = model.SetupConfig(config);
+ FtraceConfigId id = 7;
+ ASSERT_TRUE(model.SetupConfig(id, config));
+
+ EXPECT_CALL(ftrace, WriteToFile("/root/tracing_on", "1"));
ASSERT_TRUE(model.ActivateConfig(id));
const FtraceDataSourceConfig* ds_config = model.GetDataSourceConfig(id);
@@ -379,7 +409,13 @@
.WillByDefault(Return(&event2));
EXPECT_CALL(*mock_table, GetOrCreateEvent(GroupAndName("group_two", "foo")));
- FtraceConfigId id = model.SetupConfig(config);
+ ON_CALL(ftrace, ReadFileIntoString("/root/current_tracer"))
+ .WillByDefault(Return("nop"));
+ ON_CALL(ftrace, ReadFileIntoString("/root/events/enable"))
+ .WillByDefault(Return("0"));
+
+ FtraceConfigId id = 5;
+ ASSERT_TRUE(model.SetupConfig(id, config));
ASSERT_TRUE(model.ActivateConfig(id));
const FtraceDataSourceConfig* ds_config = model.GetDataSourceConfig(id);
@@ -397,17 +433,20 @@
FtraceConfig config = CreateFtraceConfig({"sched/*"});
+ EXPECT_CALL(ftrace, ReadFileIntoString("/root/current_tracer"))
+ .WillOnce(Return("nop"));
+ EXPECT_CALL(ftrace, ReadOneCharFromFile("/root/tracing_on"))
+ .WillOnce(Return('1'));
+ EXPECT_CALL(ftrace, WriteToFile("/root/tracing_on", "0"));
+ EXPECT_CALL(ftrace, WriteToFile("/root/events/enable", "0"));
+ EXPECT_CALL(ftrace, ClearFile("/root/trace"));
+ EXPECT_CALL(ftrace, ClearFile(MatchesRegex("/root/per_cpu/cpu[0-9]/trace")));
ON_CALL(ftrace, ReadFileIntoString("/root/trace_clock"))
.WillByDefault(Return("[local] global boot"));
EXPECT_CALL(ftrace, ReadFileIntoString("/root/trace_clock"))
.Times(AnyNumber());
-
- EXPECT_CALL(ftrace, ReadOneCharFromFile("/root/tracing_on"))
- .Times(2)
- .WillRepeatedly(Return('0'));
EXPECT_CALL(ftrace, WriteToFile("/root/buffer_size_kb", _));
EXPECT_CALL(ftrace, WriteToFile("/root/trace_clock", "boot"));
- EXPECT_CALL(ftrace, WriteToFile("/root/tracing_on", "1"));
EXPECT_CALL(ftrace,
WriteToFile("/root/events/sched/sched_switch/enable", "1"));
EXPECT_CALL(ftrace,
@@ -441,8 +480,11 @@
EXPECT_CALL(*mock_table,
GetOrCreateEvent(GroupAndName("sched", "sched_new_event")));
- FtraceConfigId id = model.SetupConfig(config);
+ FtraceConfigId id = 13;
+ ASSERT_TRUE(model.SetupConfig(id, config));
ASSERT_TRUE(id);
+
+ EXPECT_CALL(ftrace, WriteToFile("/root/tracing_on", "1"));
ASSERT_TRUE(model.ActivateConfig(id));
const FtraceDataSourceConfig* ds_config = model.GetDataSourceConfig(id);
@@ -492,7 +534,13 @@
.WillByDefault(Return(&event2));
EXPECT_CALL(*mock_table, GetOrCreateEvent(GroupAndName("group_two", "foo")));
- FtraceConfigId id = model.SetupConfig(config);
+ ON_CALL(ftrace, ReadFileIntoString("/root/current_tracer"))
+ .WillByDefault(Return("nop"));
+ ON_CALL(ftrace, ReadFileIntoString("/root/events/enable"))
+ .WillByDefault(Return("0"));
+
+ FtraceConfigId id = 23;
+ ASSERT_TRUE(model.SetupConfig(id, config));
ASSERT_TRUE(model.ActivateConfig(id));
const FtraceDataSourceConfig* ds_config = model.GetDataSourceConfig(id);
@@ -512,22 +560,27 @@
FtraceConfigMuxer model(&ftrace, table_.get(), GetSyscallTable(), {});
+ EXPECT_CALL(ftrace, ReadFileIntoString("/root/current_tracer"))
+ .WillOnce(Return("nop"));
+ EXPECT_CALL(ftrace, ReadOneCharFromFile("/root/tracing_on"))
+ .WillOnce(Return('1'));
+ EXPECT_CALL(ftrace, WriteToFile("/root/tracing_on", "0"));
+ EXPECT_CALL(ftrace, WriteToFile("/root/events/enable", "0"));
+ EXPECT_CALL(ftrace, ClearFile("/root/trace"));
+ EXPECT_CALL(ftrace, ClearFile(MatchesRegex("/root/per_cpu/cpu[0-9]/trace")));
ON_CALL(ftrace, ReadFileIntoString("/root/trace_clock"))
.WillByDefault(Return("[local] global boot"));
EXPECT_CALL(ftrace, ReadFileIntoString("/root/trace_clock"))
.Times(AnyNumber());
-
- EXPECT_CALL(ftrace, ReadOneCharFromFile("/root/tracing_on"))
- .Times(2)
- .WillRepeatedly(Return('0'));
EXPECT_CALL(ftrace, WriteToFile("/root/buffer_size_kb", _));
EXPECT_CALL(ftrace, WriteToFile("/root/trace_clock", "boot"));
- EXPECT_CALL(ftrace, WriteToFile("/root/tracing_on", "1"));
EXPECT_CALL(ftrace,
WriteToFile("/root/events/sched/sched_switch/enable", "1"));
- FtraceConfigId id = model.SetupConfig(config);
- ASSERT_TRUE(id);
+ FtraceConfigId id = 97;
+ ASSERT_TRUE(model.SetupConfig(id, config));
+
+ EXPECT_CALL(ftrace, WriteToFile("/root/tracing_on", "1"));
ASSERT_TRUE(model.ActivateConfig(id));
const FtraceDataSourceConfig* ds_config = model.GetDataSourceConfig(id);
@@ -542,13 +595,14 @@
ASSERT_TRUE(testing::Mock::VerifyAndClearExpectations(&ftrace));
EXPECT_CALL(ftrace, NumberOfCpus()).Times(AnyNumber());
+ EXPECT_CALL(ftrace,
+ WriteToFile("/root/events/sched/sched_switch/enable", "0"));
EXPECT_CALL(ftrace, WriteToFile("/root/tracing_on", "0"));
EXPECT_CALL(ftrace, WriteToFile("/root/buffer_size_kb", "4"));
EXPECT_CALL(ftrace, WriteToFile("/root/events/enable", "0"));
- EXPECT_CALL(ftrace,
- WriteToFile("/root/events/sched/sched_switch/enable", "0"));
EXPECT_CALL(ftrace, ClearFile("/root/trace"));
EXPECT_CALL(ftrace, ClearFile(MatchesRegex("/root/per_cpu/cpu[0-9]/trace")));
+ EXPECT_CALL(ftrace, WriteToFile("/root/tracing_on", "1"));
ASSERT_TRUE(model.RemoveConfig(id));
}
@@ -561,10 +615,9 @@
FtraceConfigMuxer model(&ftrace, table_.get(), GetSyscallTable(), {});
// If someone is using ftrace already don't stomp on what they are doing.
- EXPECT_CALL(ftrace, ReadOneCharFromFile("/root/tracing_on"))
- .WillOnce(Return('1'));
- FtraceConfigId id = model.SetupConfig(config);
- ASSERT_FALSE(id);
+ EXPECT_CALL(ftrace, ReadFileIntoString("/root/current_tracer"))
+ .WillOnce(Return("function"));
+ ASSERT_FALSE(model.SetupConfig(/* id= */ 123, config));
}
TEST_F(FtraceConfigMuxerTest, Atrace) {
@@ -576,15 +629,17 @@
FtraceConfigMuxer model(&ftrace, table_.get(), GetSyscallTable(), {});
- EXPECT_CALL(ftrace, ReadOneCharFromFile("/root/tracing_on"))
- .WillOnce(Return('0'));
+ ON_CALL(ftrace, ReadFileIntoString("/root/current_tracer"))
+ .WillByDefault(Return("nop"));
+ ON_CALL(ftrace, ReadFileIntoString("/root/events/enable"))
+ .WillByDefault(Return("0"));
EXPECT_CALL(atrace, RunAtrace(ElementsAreArray({"atrace", "--async_start",
"--only_userspace", "sched"}),
_))
.WillOnce(Return(true));
- FtraceConfigId id = model.SetupConfig(config);
- ASSERT_TRUE(id);
+ FtraceConfigId id = 57;
+ ASSERT_TRUE(model.SetupConfig(id, config));
// "ftrace" group events are always enabled, and therefore the "print" event
// will show up in the per data source event filter (as we want to record it),
@@ -618,8 +673,10 @@
FtraceConfigMuxer model(&ftrace, table_.get(), GetSyscallTable(), {});
- EXPECT_CALL(ftrace, ReadOneCharFromFile("/root/tracing_on"))
- .WillOnce(Return('0'));
+ ON_CALL(ftrace, ReadFileIntoString("/root/current_tracer"))
+ .WillByDefault(Return("nop"));
+ ON_CALL(ftrace, ReadFileIntoString("/root/events/enable"))
+ .WillByDefault(Return("0"));
EXPECT_CALL(
atrace,
RunAtrace(
@@ -629,8 +686,8 @@
_))
.WillOnce(Return(true));
- FtraceConfigId id = model.SetupConfig(config);
- ASSERT_TRUE(id);
+ FtraceConfigId id = 97;
+ ASSERT_TRUE(model.SetupConfig(id, config));
const FtraceDataSourceConfig* ds_config = model.GetDataSourceConfig(id);
ASSERT_TRUE(ds_config);
@@ -663,13 +720,17 @@
FtraceConfigMuxer model(&ftrace, table_.get(), GetSyscallTable(), {});
+ ON_CALL(ftrace, ReadFileIntoString("/root/current_tracer"))
+ .WillByDefault(Return("nop"));
+ ON_CALL(ftrace, ReadFileIntoString("/root/events/enable"))
+ .WillByDefault(Return("0"));
EXPECT_CALL(atrace, RunAtrace(ElementsAreArray({"atrace", "--async_start",
"--only_userspace", "cat_a",
"-a", "app_a"}),
_))
.WillOnce(Return(true));
- FtraceConfigId id_a = model.SetupConfig(config_a);
- ASSERT_TRUE(id_a);
+ FtraceConfigId id_a = 3;
+ ASSERT_TRUE(model.SetupConfig(id_a, config_a));
EXPECT_CALL(
atrace,
@@ -677,8 +738,8 @@
"cat_a", "cat_b", "-a", "app_a,app_b"}),
_))
.WillOnce(Return(true));
- FtraceConfigId id_b = model.SetupConfig(config_b);
- ASSERT_TRUE(id_b);
+ FtraceConfigId id_b = 13;
+ ASSERT_TRUE(model.SetupConfig(id_b, config_b));
EXPECT_CALL(atrace,
RunAtrace(ElementsAreArray({"atrace", "--async_start",
@@ -686,8 +747,8 @@
"cat_c", "-a", "app_a,app_b,app_c"}),
_))
.WillOnce(Return(true));
- FtraceConfigId id_c = model.SetupConfig(config_c);
- ASSERT_TRUE(id_c);
+ FtraceConfigId id_c = 23;
+ ASSERT_TRUE(model.SetupConfig(id_c, config_c));
EXPECT_CALL(
atrace,
@@ -734,14 +795,18 @@
FtraceConfigMuxer model(&ftrace, table_.get(), GetSyscallTable(), {});
+ ON_CALL(ftrace, ReadFileIntoString("/root/current_tracer"))
+ .WillByDefault(Return("nop"));
+ ON_CALL(ftrace, ReadFileIntoString("/root/events/enable"))
+ .WillByDefault(Return("0"));
EXPECT_CALL(
atrace,
RunAtrace(ElementsAreArray({"atrace", "--async_start", "--only_userspace",
"cat_1", "cat_2", "-a", "app_1,app_2"}),
_))
.WillOnce(Return(true));
- FtraceConfigId id_a = model.SetupConfig(config_a);
- ASSERT_TRUE(id_a);
+ FtraceConfigId id_a = 7;
+ ASSERT_TRUE(model.SetupConfig(id_a, config_a));
EXPECT_CALL(atrace, RunAtrace(ElementsAreArray({"atrace", "--async_start",
"--only_userspace", "cat_1",
@@ -749,8 +814,8 @@
"app_1,app_2,app_fail"}),
_))
.WillOnce(Return(false));
- FtraceConfigId id_b = model.SetupConfig(config_b);
- ASSERT_TRUE(id_b);
+ FtraceConfigId id_b = 17;
+ ASSERT_TRUE(model.SetupConfig(id_b, config_b));
EXPECT_CALL(atrace,
RunAtrace(ElementsAreArray({"atrace", "--async_start",
@@ -758,8 +823,8 @@
"cat_3", "-a", "app_1,app_2,app_3"}),
_))
.WillOnce(Return(true));
- FtraceConfigId id_c = model.SetupConfig(config_c);
- ASSERT_TRUE(id_c);
+ FtraceConfigId id_c = 47;
+ ASSERT_TRUE(model.SetupConfig(id_c, config_c));
EXPECT_CALL(
atrace,
@@ -795,16 +860,20 @@
FtraceConfigMuxer model(&ftrace, table_.get(), GetSyscallTable(), {});
+ ON_CALL(ftrace, ReadFileIntoString("/root/current_tracer"))
+ .WillByDefault(Return("nop"));
+ ON_CALL(ftrace, ReadFileIntoString("/root/events/enable"))
+ .WillByDefault(Return("0"));
EXPECT_CALL(atrace, RunAtrace(ElementsAreArray({"atrace", "--async_start",
"--only_userspace", "cat_1",
"-a", "app_1"}),
_))
.WillOnce(Return(true));
- FtraceConfigId id_a = model.SetupConfig(config_a);
- ASSERT_TRUE(id_a);
+ FtraceConfigId id_a = 19;
+ ASSERT_TRUE(model.SetupConfig(id_a, config_a));
- FtraceConfigId id_b = model.SetupConfig(config_b);
- ASSERT_TRUE(id_b);
+ FtraceConfigId id_b = 29;
+ ASSERT_TRUE(model.SetupConfig(id_b, config_b));
ASSERT_TRUE(model.RemoveConfig(id_a));
@@ -832,26 +901,30 @@
FtraceConfigMuxer model(&ftrace, table_.get(), GetSyscallTable(), {});
- FtraceConfigId id_a = model.SetupConfig(config_a);
- ASSERT_TRUE(id_a);
+ ON_CALL(ftrace, ReadFileIntoString("/root/current_tracer"))
+ .WillByDefault(Return("nop"));
+ ON_CALL(ftrace, ReadFileIntoString("/root/events/enable"))
+ .WillByDefault(Return("0"));
+ FtraceConfigId id_a = 179;
+ ASSERT_TRUE(model.SetupConfig(id_a, config_a));
EXPECT_CALL(atrace, RunAtrace(ElementsAreArray({"atrace", "--async_start",
"--only_userspace", "b"}),
_))
.WillOnce(Return(true));
- FtraceConfigId id_b = model.SetupConfig(config_b);
- ASSERT_TRUE(id_b);
+ FtraceConfigId id_b = 239;
+ ASSERT_TRUE(model.SetupConfig(id_b, config_b));
- FtraceConfigId id_c = model.SetupConfig(config_c);
- ASSERT_TRUE(id_c);
+ FtraceConfigId id_c = 101;
+ ASSERT_TRUE(model.SetupConfig(id_c, config_c));
EXPECT_CALL(atrace,
RunAtrace(ElementsAreArray({"atrace", "--async_start",
"--only_userspace", "b", "d"}),
_))
.WillOnce(Return(true));
- FtraceConfigId id_d = model.SetupConfig(config_d);
- ASSERT_TRUE(id_d);
+ FtraceConfigId id_d = 47;
+ ASSERT_TRUE(model.SetupConfig(id_d, config_d));
EXPECT_CALL(atrace, RunAtrace(ElementsAreArray({"atrace", "--async_start",
"--only_userspace", "b"}),
@@ -879,8 +952,10 @@
*config.add_atrace_categories() = "cat_1";
*config.add_atrace_categories() = "cat_2";
- EXPECT_CALL(ftrace, ReadOneCharFromFile("/root/tracing_on"))
- .WillRepeatedly(Return('0'));
+ ON_CALL(ftrace, ReadFileIntoString("/root/current_tracer"))
+ .WillByDefault(Return("nop"));
+ ON_CALL(ftrace, ReadFileIntoString("/root/events/enable"))
+ .WillByDefault(Return("0"));
FtraceConfigMuxer model(&ftrace, table_.get(), GetSyscallTable(), {});
@@ -896,8 +971,8 @@
}));
FtraceSetupErrors errors{};
- FtraceConfigId id_a = model.SetupConfig(config, &errors);
- ASSERT_TRUE(id_a);
+ FtraceConfigId id_a = 23;
+ ASSERT_TRUE(model.SetupConfig(id_a, config, &errors));
EXPECT_EQ(errors.atrace_errors, "foo\nbar\n");
}
@@ -990,17 +1065,20 @@
CreateFtraceConfig({"sched/sched_switch", "cgroup/cgroup_mkdir"});
FtraceConfigMuxer model(&ftrace, table_.get(), GetSyscallTable(), {});
+ EXPECT_CALL(ftrace, ReadFileIntoString("/root/current_tracer"))
+ .WillOnce(Return("nop"));
+ EXPECT_CALL(ftrace, ReadOneCharFromFile("/root/tracing_on"))
+ .WillOnce(Return('1'));
+ EXPECT_CALL(ftrace, WriteToFile("/root/tracing_on", "0"));
+ EXPECT_CALL(ftrace, WriteToFile("/root/events/enable", "0"));
+ EXPECT_CALL(ftrace, ClearFile("/root/trace"));
+ EXPECT_CALL(ftrace, ClearFile(MatchesRegex("/root/per_cpu/cpu[0-9]/trace")));
ON_CALL(ftrace, ReadFileIntoString("/root/trace_clock"))
.WillByDefault(Return("[local] global boot"));
EXPECT_CALL(ftrace, ReadFileIntoString("/root/trace_clock"))
.Times(AnyNumber());
-
- EXPECT_CALL(ftrace, ReadOneCharFromFile("/root/tracing_on"))
- .Times(2)
- .WillRepeatedly(Return('0'));
EXPECT_CALL(ftrace, WriteToFile("/root/buffer_size_kb", _));
EXPECT_CALL(ftrace, WriteToFile("/root/trace_clock", "boot"));
- EXPECT_CALL(ftrace, WriteToFile("/root/tracing_on", "1"));
EXPECT_CALL(ftrace,
WriteToFile("/root/events/sched/sched_switch/enable", "1"));
EXPECT_CALL(ftrace,
@@ -1008,8 +1086,10 @@
.WillOnce(Return(false));
EXPECT_CALL(ftrace, AppendToFile("/root/set_event", "cgroup:cgroup_mkdir"))
.WillOnce(Return(true));
- FtraceConfigId id = model.SetupConfig(config);
- ASSERT_TRUE(id);
+ FtraceConfigId id = 97;
+ ASSERT_TRUE(model.SetupConfig(id, config));
+
+ EXPECT_CALL(ftrace, WriteToFile("/root/tracing_on", "1"));
ASSERT_TRUE(model.ActivateConfig(id));
const FtraceDataSourceConfig* ds_config = model.GetDataSourceConfig(id);
@@ -1025,9 +1105,6 @@
EXPECT_THAT(central_filter->GetEnabledEvents(),
Contains(kCgroupMkdirEventId));
- EXPECT_CALL(ftrace, WriteToFile("/root/tracing_on", "0"));
- EXPECT_CALL(ftrace, WriteToFile("/root/buffer_size_kb", "4"));
- EXPECT_CALL(ftrace, WriteToFile("/root/events/enable", "0"));
EXPECT_CALL(ftrace,
WriteToFile("/root/events/sched/sched_switch/enable", "0"));
EXPECT_CALL(ftrace,
@@ -1035,8 +1112,12 @@
.WillOnce(Return(false));
EXPECT_CALL(ftrace, AppendToFile("/root/set_event", "!cgroup:cgroup_mkdir"))
.WillOnce(Return(true));
+ EXPECT_CALL(ftrace, WriteToFile("/root/tracing_on", "0"));
+ EXPECT_CALL(ftrace, WriteToFile("/root/buffer_size_kb", "4"));
+ EXPECT_CALL(ftrace, WriteToFile("/root/events/enable", "0"));
EXPECT_CALL(ftrace, ClearFile("/root/trace"));
EXPECT_CALL(ftrace, ClearFile(MatchesRegex("/root/per_cpu/cpu[0-9]/trace")));
+ EXPECT_CALL(ftrace, WriteToFile("/root/tracing_on", "1"));
ASSERT_TRUE(model.RemoveConfig(id));
}
@@ -1058,9 +1139,14 @@
// Second data source - no compact encoding (default).
FtraceConfig config_disabled = CreateFtraceConfig({"sched/sched_switch"});
+ ON_CALL(ftrace, ReadFileIntoString("/root/current_tracer"))
+ .WillByDefault(Return("nop"));
+ ON_CALL(ftrace, ReadFileIntoString("/root/events/enable"))
+ .WillByDefault(Return("0"));
+
{
- FtraceConfigId id = model.SetupConfig(config_enabled);
- ASSERT_TRUE(id);
+ FtraceConfigId id = 73;
+ ASSERT_TRUE(model.SetupConfig(id, config_enabled));
const FtraceDataSourceConfig* ds_config = model.GetDataSourceConfig(id);
ASSERT_TRUE(ds_config);
EXPECT_THAT(ds_config->event_filter.GetEnabledEvents(),
@@ -1068,8 +1154,8 @@
EXPECT_TRUE(ds_config->compact_sched.enabled);
}
{
- FtraceConfigId id = model.SetupConfig(config_disabled);
- ASSERT_TRUE(id);
+ FtraceConfigId id = 87;
+ ASSERT_TRUE(model.SetupConfig(id, config_disabled));
const FtraceDataSourceConfig* ds_config = model.GetDataSourceConfig(id);
ASSERT_TRUE(ds_config);
EXPECT_THAT(ds_config->event_filter.GetEnabledEvents(),
@@ -1086,8 +1172,13 @@
FtraceConfig config = CreateFtraceConfig({"sched/sched_switch"});
config.mutable_compact_sched()->set_enabled(true);
- FtraceConfigId id = model.SetupConfig(config);
- ASSERT_TRUE(id);
+ ON_CALL(ftrace, ReadFileIntoString("/root/current_tracer"))
+ .WillByDefault(Return("nop"));
+ ON_CALL(ftrace, ReadFileIntoString("/root/events/enable"))
+ .WillByDefault(Return("0"));
+
+ FtraceConfigId id = 67;
+ ASSERT_TRUE(model.SetupConfig(id, config));
// The translation table says that the scheduling events' format didn't match
// compile-time assumptions, so we won't enable compact events even if
@@ -1124,9 +1215,14 @@
CreateFtraceConfig({"sched/sched_switch", "sched/generic"});
config_with_disable.set_disable_generic_events(true);
+ ON_CALL(ftrace, ReadFileIntoString("/root/current_tracer"))
+ .WillByDefault(Return("nop"));
+ ON_CALL(ftrace, ReadFileIntoString("/root/events/enable"))
+ .WillByDefault(Return("0"));
+
{
- FtraceConfigId id = model.SetupConfig(config_default);
- ASSERT_TRUE(id);
+ FtraceConfigId id = 123;
+ ASSERT_TRUE(model.SetupConfig(id, config_default));
const FtraceDataSourceConfig* ds_config = model.GetDataSourceConfig(id);
ASSERT_TRUE(ds_config);
// Both events enabled for the data source by default.
@@ -1135,8 +1231,8 @@
UnorderedElementsAre(kFakeSchedSwitchEventId, kFtraceGenericEventId));
}
{
- FtraceConfigId id = model.SetupConfig(config_with_disable);
- ASSERT_TRUE(id);
+ FtraceConfigId id = 321;
+ ASSERT_TRUE(model.SetupConfig(id, config_with_disable));
const FtraceDataSourceConfig* ds_config = model.GetDataSourceConfig(id);
ASSERT_TRUE(ds_config);
// Only the statically known event is enabled.
@@ -1158,8 +1254,14 @@
*config.add_function_graph_roots() = "sched*";
*config.add_function_graph_roots() = "*mm_fault";
+ ON_CALL(ftrace, ReadFileIntoString("/root/current_tracer"))
+ .WillByDefault(Return("nop"));
+
EXPECT_CALL(ftrace, WriteToFile(_, _)).WillRepeatedly(Return(true));
+ EXPECT_CALL(ftrace, ClearFile("/root/trace"));
+ EXPECT_CALL(ftrace, ClearFile(MatchesRegex("/root/per_cpu/cpu[0-9]/trace")));
+
// Set up config, assert that the tracefs writes happened:
EXPECT_CALL(ftrace, ClearFile("/root/set_ftrace_filter"));
EXPECT_CALL(ftrace, ClearFile("/root/set_graph_function"));
@@ -1171,7 +1273,8 @@
.WillOnce(Return(true));
EXPECT_CALL(ftrace, WriteToFile("/root/current_tracer", "function_graph"))
.WillOnce(Return(true));
- FtraceConfigId id = model.SetupConfig(config);
+ FtraceConfigId id = 43;
+ ASSERT_TRUE(model.SetupConfig(id, config));
ASSERT_TRUE(testing::Mock::VerifyAndClearExpectations(&ftrace));
// Toggle config on and off, tracer won't be reset yet:
ASSERT_TRUE(model.ActivateConfig(id));
@@ -1188,5 +1291,17 @@
ASSERT_TRUE(testing::Mock::VerifyAndClearExpectations(&ftrace));
}
+TEST_F(FtraceConfigMuxerTest, SecondaryInstanceDoNotSupportAtrace) {
+ auto fake_table = CreateFakeTable();
+ NiceMock<MockFtraceProcfs> ftrace;
+ FtraceConfigMuxer model(&ftrace, fake_table.get(), GetSyscallTable(), {},
+ /* secondary_instance= */ true);
+
+ FtraceConfig config = CreateFtraceConfig({"sched/sched_switch"});
+ *config.add_atrace_categories() = "sched";
+
+ ASSERT_FALSE(model.SetupConfig(/* id= */ 73, config));
+}
+
} // namespace
} // namespace perfetto
diff --git a/src/traced/probes/ftrace/ftrace_controller.cc b/src/traced/probes/ftrace/ftrace_controller.cc
index d7eb5e6..3aee056 100644
--- a/src/traced/probes/ftrace/ftrace_controller.cc
+++ b/src/traced/probes/ftrace/ftrace_controller.cc
@@ -40,7 +40,6 @@
#include "src/traced/probes/ftrace/atrace_hal_wrapper.h"
#include "src/traced/probes/ftrace/cpu_reader.h"
#include "src/traced/probes/ftrace/cpu_stats_parser.h"
-#include "src/traced/probes/ftrace/vendor_tracepoints.h"
#include "src/traced/probes/ftrace/event_info.h"
#include "src/traced/probes/ftrace/ftrace_config_muxer.h"
#include "src/traced/probes/ftrace/ftrace_data_source.h"
@@ -48,6 +47,7 @@
#include "src/traced/probes/ftrace/ftrace_procfs.h"
#include "src/traced/probes/ftrace/ftrace_stats.h"
#include "src/traced/probes/ftrace/proto_translation_table.h"
+#include "src/traced/probes/ftrace/vendor_tracepoints.h"
namespace perfetto {
namespace {
@@ -175,32 +175,36 @@
std::unique_ptr<FtraceConfigMuxer> model =
std::unique_ptr<FtraceConfigMuxer>(new FtraceConfigMuxer(
ftrace_procfs.get(), table.get(), std::move(syscalls), vendor_evts));
- return std::unique_ptr<FtraceController>(new FtraceController(
- std::move(ftrace_procfs), std::move(table), std::move(model), runner,
- observer, preserve_ftrace_buffer));
+ return std::unique_ptr<FtraceController>(
+ new FtraceController(std::move(ftrace_procfs), std::move(table),
+ std::move(model), runner, observer));
}
+FtraceController::FtraceInstanceState::FtraceInstanceState(
+ std::unique_ptr<FtraceProcfs> ftrace_procfs,
+ std::unique_ptr<ProtoTranslationTable> table,
+ std::unique_ptr<FtraceConfigMuxer> ftrace_config_muxer)
+ : ftrace_procfs_(std::move(ftrace_procfs)),
+ table_(std::move(table)),
+ ftrace_config_muxer_(std::move(ftrace_config_muxer)) {}
+
FtraceController::FtraceController(std::unique_ptr<FtraceProcfs> ftrace_procfs,
std::unique_ptr<ProtoTranslationTable> table,
std::unique_ptr<FtraceConfigMuxer> model,
base::TaskRunner* task_runner,
- Observer* observer,
- bool preserve_ftrace_buffer)
+ Observer* observer)
: task_runner_(task_runner),
observer_(observer),
symbolizer_(new LazyKernelSymbolizer()),
- ftrace_procfs_(std::move(ftrace_procfs)),
- table_(std::move(table)),
- ftrace_config_muxer_(std::move(model)),
+ primary_(std::move(ftrace_procfs), std::move(table), std::move(model)),
ftrace_clock_snapshot_(new FtraceClockSnapshot()),
- preserve_ftrace_buffer_(preserve_ftrace_buffer),
weak_factory_(this) {}
FtraceController::~FtraceController() {
for (const auto* data_source : data_sources_)
- ftrace_config_muxer_->RemoveConfig(data_source->config_id());
+ primary_.ftrace_config_muxer_->RemoveConfig(data_source->config_id());
data_sources_.clear();
- started_data_sources_.clear();
+ primary_.started_data_sources_.clear();
StopIfNeeded();
}
@@ -210,10 +214,10 @@
void FtraceController::StartIfNeeded() {
using FtraceClock = protos::pbzero::FtraceClock;
- if (started_data_sources_.size() > 1)
+ if (primary_.started_data_sources_.size() > 1)
return;
- PERFETTO_DCHECK(!started_data_sources_.empty());
- PERFETTO_DCHECK(per_cpu_.empty());
+ PERFETTO_DCHECK(!primary_.started_data_sources_.empty());
+ PERFETTO_DCHECK(primary_.per_cpu_.empty());
// Lazily allocate the memory used for reading & parsing ftrace.
if (!parsing_mem_.IsValid()) {
@@ -222,21 +226,23 @@
}
// If we're not using the boot clock, snapshot the ftrace clock.
- FtraceClock clock = ftrace_config_muxer_->ftrace_clock();
+ FtraceClock clock = primary_.ftrace_config_muxer_->ftrace_clock();
if (clock != FtraceClock::FTRACE_CLOCK_UNSPECIFIED) {
- cpu_zero_stats_fd_ = ftrace_procfs_->OpenCpuStats(0 /* cpu */);
+ cpu_zero_stats_fd_ = primary_.ftrace_procfs_->OpenCpuStats(0 /* cpu */);
MaybeSnapshotFtraceClock();
}
- size_t num_cpus = ftrace_procfs_->NumberOfCpus();
- per_cpu_.clear();
- per_cpu_.reserve(num_cpus);
- size_t period_page_quota = ftrace_config_muxer_->GetPerCpuBufferSizePages();
+ size_t num_cpus = primary_.ftrace_procfs_->NumberOfCpus();
+ primary_.per_cpu_.clear();
+ primary_.per_cpu_.reserve(num_cpus);
+ size_t period_page_quota =
+ primary_.ftrace_config_muxer_->GetPerCpuBufferSizePages();
for (size_t cpu = 0; cpu < num_cpus; cpu++) {
- auto reader = std::unique_ptr<CpuReader>(new CpuReader(
- cpu, table_.get(), symbolizer_.get(), ftrace_clock_snapshot_.get(),
- ftrace_procfs_->OpenPipeForCpu(cpu)));
- per_cpu_.emplace_back(std::move(reader), period_page_quota);
+ auto reader = std::unique_ptr<CpuReader>(
+ new CpuReader(cpu, primary_.table_.get(), symbolizer_.get(),
+ ftrace_clock_snapshot_.get(),
+ primary_.ftrace_procfs_->OpenPipeForCpu(cpu)));
+ primary_.per_cpu_.emplace_back(std::move(reader), period_page_quota);
}
// Start the repeating read tasks.
@@ -277,14 +283,14 @@
void FtraceController::ReadTick(int generation) {
metatrace::ScopedEvent evt(metatrace::TAG_FTRACE,
metatrace::FTRACE_READ_TICK);
- if (started_data_sources_.empty() || generation != generation_) {
+ if (primary_.started_data_sources_.empty() || generation != generation_) {
return;
}
#if PERFETTO_DCHECK_IS_ON()
// The OnFtraceDataWrittenIntoDataSourceBuffers() below is supposed to clear
// all metadata, including the |kernel_addrs| map for symbolization.
- for (FtraceDataSource* ds : started_data_sources_) {
+ for (FtraceDataSource* ds : primary_.started_data_sources_) {
FtraceMetadata* ftrace_metadata = ds->mutable_metadata();
PERFETTO_DCHECK(ftrace_metadata->kernel_addrs.empty());
PERFETTO_DCHECK(ftrace_metadata->last_kernel_addr_index_written == 0);
@@ -294,20 +300,21 @@
// Read all cpu buffers with remaining per-period quota.
bool all_cpus_done = true;
uint8_t* parsing_buf = reinterpret_cast<uint8_t*>(parsing_mem_.Get());
- const auto ftrace_clock = ftrace_config_muxer_->ftrace_clock();
- for (size_t i = 0; i < per_cpu_.size(); i++) {
- size_t orig_quota = per_cpu_[i].period_page_quota;
+ const auto ftrace_clock = primary_.ftrace_config_muxer_->ftrace_clock();
+ for (size_t i = 0; i < primary_.per_cpu_.size(); i++) {
+ size_t orig_quota = primary_.per_cpu_[i].period_page_quota;
if (orig_quota == 0)
continue;
size_t max_pages = std::min(orig_quota, kMaxPagesPerCpuPerReadTick);
- CpuReader& cpu_reader = *per_cpu_[i].reader;
+ CpuReader& cpu_reader = *primary_.per_cpu_[i].reader;
cpu_reader.set_ftrace_clock(ftrace_clock);
- size_t pages_read = cpu_reader.ReadCycle(
- parsing_buf, kParsingBufferSizePages, max_pages, started_data_sources_);
+ size_t pages_read =
+ cpu_reader.ReadCycle(parsing_buf, kParsingBufferSizePages, max_pages,
+ primary_.started_data_sources_);
size_t new_quota = (pages_read >= orig_quota) ? 0 : orig_quota - pages_read;
- per_cpu_[i].period_page_quota = new_quota;
+ primary_.per_cpu_[i].period_page_quota = new_quota;
// Reader got stopped by the cap on the number of pages (to not do too much
// work on the shared thread at once), but can read more in this drain
@@ -332,8 +339,9 @@
});
} else {
// Done until next drain period.
- size_t period_page_quota = ftrace_config_muxer_->GetPerCpuBufferSizePages();
- for (auto& per_cpu : per_cpu_)
+ size_t period_page_quota =
+ primary_.ftrace_config_muxer_->GetPerCpuBufferSizePages();
+ for (auto& per_cpu : primary_.per_cpu_)
per_cpu.period_page_quota = period_page_quota;
// Snapshot the clock so the data in the next period will be clock synced as
@@ -362,11 +370,11 @@
}
void FtraceController::ClearTrace() {
- ftrace_procfs_->ClearTrace();
+ primary_.ftrace_procfs_->ClearTrace();
}
-void FtraceController::DisableAllEvents() {
- ftrace_procfs_->DisableAllEvents();
+bool FtraceController::IsTracingAvailable() {
+ return primary_.ftrace_procfs_->IsTracingAvailable();
}
void FtraceController::Flush(FlushRequestID flush_id) {
@@ -377,33 +385,33 @@
// don't get stuck chasing the writer if there's a very high bandwidth of
// events.
size_t per_cpu_buf_size_pages =
- ftrace_config_muxer_->GetPerCpuBufferSizePages();
+ primary_.ftrace_config_muxer_->GetPerCpuBufferSizePages();
uint8_t* parsing_buf = reinterpret_cast<uint8_t*>(parsing_mem_.Get());
- for (size_t i = 0; i < per_cpu_.size(); i++) {
- per_cpu_[i].reader->ReadCycle(parsing_buf, kParsingBufferSizePages,
- per_cpu_buf_size_pages,
- started_data_sources_);
+ for (size_t i = 0; i < primary_.per_cpu_.size(); i++) {
+ primary_.per_cpu_[i].reader->ReadCycle(parsing_buf, kParsingBufferSizePages,
+ per_cpu_buf_size_pages,
+ primary_.started_data_sources_);
}
observer_->OnFtraceDataWrittenIntoDataSourceBuffers();
- for (FtraceDataSource* data_source : started_data_sources_)
+ for (FtraceDataSource* data_source : primary_.started_data_sources_)
data_source->OnFtraceFlushComplete(flush_id);
}
void FtraceController::StopIfNeeded() {
- if (!started_data_sources_.empty())
+ if (!primary_.started_data_sources_.empty())
return;
// We are not implicitly flushing on Stop. The tracing service is supposed to
// ask for an explicit flush before stopping, unless it needs to perform a
// non-graceful stop.
- per_cpu_.clear();
+ primary_.per_cpu_.clear();
cpu_zero_stats_fd_.reset();
// Muxer cannot change the current_tracer until we close the trace pipe fds
// (i.e. per_cpu_). Hence an explicit request here.
- ftrace_config_muxer_->ResetCurrentTracer();
+ primary_.ftrace_config_muxer_->ResetCurrentTracer();
if (!retain_ksyms_on_stop_) {
symbolizer_->Destroy();
@@ -419,13 +427,15 @@
if (!ValidConfig(data_source->config()))
return false;
- auto config_id = ftrace_config_muxer_->SetupConfig(
- data_source->config(), data_source->mutable_setup_errors());
- if (!config_id)
+ FtraceConfigId config_id = next_cfg_id_++;
+ if (!primary_.ftrace_config_muxer_->SetupConfig(
+ config_id, data_source->config(),
+ data_source->mutable_setup_errors())) {
return false;
+ }
const FtraceDataSourceConfig* ds_config =
- ftrace_config_muxer_->GetDataSourceConfig(config_id);
+ primary_.ftrace_config_muxer_->GetDataSourceConfig(config_id);
auto it_and_inserted = data_sources_.insert(data_source);
PERFETTO_DCHECK(it_and_inserted.second);
data_source->Initialize(config_id, ds_config);
@@ -438,10 +448,10 @@
FtraceConfigId config_id = data_source->config_id();
PERFETTO_CHECK(config_id);
- if (!ftrace_config_muxer_->ActivateConfig(config_id))
+ if (!primary_.ftrace_config_muxer_->ActivateConfig(config_id))
return false;
- started_data_sources_.insert(data_source);
+ primary_.started_data_sources_.insert(data_source);
StartIfNeeded();
// Parse kernel symbols if required by the config. This can be an expensive
@@ -464,16 +474,16 @@
}
void FtraceController::RemoveDataSource(FtraceDataSource* data_source) {
- started_data_sources_.erase(data_source);
+ primary_.started_data_sources_.erase(data_source);
size_t removed = data_sources_.erase(data_source);
if (!removed)
return; // Can happen if AddDataSource failed (e.g. too many sessions).
- ftrace_config_muxer_->RemoveConfig(data_source->config_id());
+ primary_.ftrace_config_muxer_->RemoveConfig(data_source->config_id());
StopIfNeeded();
}
void FtraceController::DumpFtraceStats(FtraceStats* stats) {
- DumpAllCpuStats(ftrace_procfs_.get(), stats);
+ DumpAllCpuStats(primary_.ftrace_procfs_.get(), stats);
if (symbolizer_ && symbolizer_->is_valid()) {
auto* symbol_map = symbolizer_->GetOrCreateKernelSymbolMap();
stats->kernel_symbols_parsed =
@@ -487,7 +497,7 @@
if (!cpu_zero_stats_fd_)
return;
- auto ftrace_clock = ftrace_config_muxer_->ftrace_clock();
+ auto ftrace_clock = primary_.ftrace_config_muxer_->ftrace_clock();
PERFETTO_DCHECK(ftrace_clock != protos::pbzero::FTRACE_CLOCK_UNSPECIFIED);
// Snapshot the boot clock *before* reading CPU stats so that
diff --git a/src/traced/probes/ftrace/ftrace_controller.h b/src/traced/probes/ftrace/ftrace_controller.h
index 9a8ec2b..6cc6b79 100644
--- a/src/traced/probes/ftrace/ftrace_controller.h
+++ b/src/traced/probes/ftrace/ftrace_controller.h
@@ -77,8 +77,8 @@
bool preserve_ftrace_buffer);
virtual ~FtraceController();
- void DisableAllEvents();
void ClearTrace();
+ bool IsTracingAvailable();
bool AddDataSource(FtraceDataSource*) PERFETTO_WARN_UNUSED_RESULT;
bool StartDataSource(FtraceDataSource*);
@@ -100,8 +100,7 @@
std::unique_ptr<ProtoTranslationTable>,
std::unique_ptr<FtraceConfigMuxer>,
base::TaskRunner*,
- Observer*,
- bool);
+ Observer*);
// Protected and virtual for testing.
virtual uint64_t NowMs() const;
@@ -116,6 +115,18 @@
size_t period_page_quota = 0;
};
+ struct FtraceInstanceState {
+ FtraceInstanceState(std::unique_ptr<FtraceProcfs> ftrace_procfs,
+ std::unique_ptr<ProtoTranslationTable> table_,
+ std::unique_ptr<FtraceConfigMuxer> ftrace_config_muxer);
+
+ std::unique_ptr<FtraceProcfs> ftrace_procfs_;
+ std::unique_ptr<ProtoTranslationTable> table_;
+ std::unique_ptr<FtraceConfigMuxer> ftrace_config_muxer_;
+ std::vector<PerCpuState> per_cpu_; // empty if tracing isn't active
+ std::set<FtraceDataSource*> started_data_sources_;
+ };
+
FtraceController(const FtraceController&) = delete;
FtraceController& operator=(const FtraceController&) = delete;
@@ -134,17 +145,12 @@
base::PagedMemory parsing_mem_;
base::ScopedFile cpu_zero_stats_fd_;
std::unique_ptr<LazyKernelSymbolizer> symbolizer_;
- std::unique_ptr<FtraceProcfs> ftrace_procfs_;
- std::unique_ptr<ProtoTranslationTable> table_;
- std::unique_ptr<FtraceConfigMuxer> ftrace_config_muxer_;
+ FtraceInstanceState primary_;
std::unique_ptr<FtraceClockSnapshot> ftrace_clock_snapshot_;
int generation_ = 0;
- bool atrace_running_ = false;
bool retain_ksyms_on_stop_ = false;
- bool preserve_ftrace_buffer_ = false;
- std::vector<PerCpuState> per_cpu_; // empty if tracing isn't active
std::set<FtraceDataSource*> data_sources_;
- std::set<FtraceDataSource*> started_data_sources_;
+ FtraceConfigId next_cfg_id_ = 1;
base::WeakPtrFactory<FtraceController> weak_factory_; // Keep last.
};
diff --git a/src/traced/probes/ftrace/ftrace_controller_unittest.cc b/src/traced/probes/ftrace/ftrace_controller_unittest.cc
index 01e075f..16861ca 100644
--- a/src/traced/probes/ftrace/ftrace_controller_unittest.cc
+++ b/src/traced/probes/ftrace/ftrace_controller_unittest.cc
@@ -132,6 +132,13 @@
.WillByDefault(Invoke(this, &MockFtraceProcfs::ReadTracingOn));
EXPECT_CALL(*this, ReadOneCharFromFile("/root/tracing_on"))
.Times(AnyNumber());
+
+ ON_CALL(*this, WriteToFile("/root/current_tracer", _))
+ .WillByDefault(Invoke(this, &MockFtraceProcfs::WriteCurrentTracer));
+ ON_CALL(*this, ReadFileIntoString("/root/current_tracer"))
+ .WillByDefault(Invoke(this, &MockFtraceProcfs::ReadCurrentTracer));
+ EXPECT_CALL(*this, ReadFileIntoString("/root/current_tracer"))
+ .Times(AnyNumber());
}
bool WriteTracingOn(const std::string& /*path*/, const std::string& value) {
@@ -144,6 +151,16 @@
return tracing_on_ ? '1' : '0';
}
+ bool WriteCurrentTracer(const std::string& /*path*/,
+ const std::string& value) {
+ current_tracer_ = value;
+ return true;
+ }
+
+ std::string ReadCurrentTracer(const std::string& /*path*/) {
+ return current_tracer_;
+ }
+
base::ScopedFile OpenPipeForCpu(size_t /*cpu*/) override {
return base::ScopedFile(base::OpenFile("/dev/null", O_RDONLY));
}
@@ -159,7 +176,8 @@
bool is_tracing_on() { return tracing_on_; }
private:
- bool tracing_on_ = false;
+ bool tracing_on_ = true;
+ std::string current_tracer_ = "nop";
};
} // namespace
@@ -176,8 +194,7 @@
std::move(table),
std::move(model),
runner.get(),
- /*observer=*/this,
- false),
+ /*observer=*/this),
runner_(std::move(runner)),
procfs_(raw_procfs) {}
@@ -261,8 +278,16 @@
FtraceConfig config = CreateFtraceConfig({"group/foo"});
- EXPECT_CALL(*controller->procfs(), WriteToFile(kFooEnablePath, "1"));
+ EXPECT_CALL(*controller->procfs(), WriteToFile("/root/tracing_on", "0"));
+ EXPECT_CALL(*controller->procfs(), WriteToFile("/root/events/enable", "0"));
+ EXPECT_CALL(*controller->procfs(), ClearFile("/root/trace"))
+ .WillOnce(Return(true));
+ EXPECT_CALL(*controller->procfs(),
+ ClearFile(MatchesRegex("/root/per_cpu/cpu[0-9]/trace")))
+ .WillRepeatedly(Return(true));
EXPECT_CALL(*controller->procfs(), WriteToFile("/root/buffer_size_kb", _));
+ EXPECT_CALL(*controller->procfs(), WriteToFile(kFooEnablePath, "1"));
+
auto data_source = controller->AddFakeDataSource(config);
ASSERT_TRUE(data_source);
@@ -279,19 +304,19 @@
Mock::VerifyAndClearExpectations(controller->runner());
// State clearing on tracing teardown.
+ EXPECT_CALL(*controller->procfs(), WriteToFile(kFooEnablePath, "0"));
+ EXPECT_CALL(*controller->procfs(), WriteToFile("/root/tracing_on", "0"));
EXPECT_CALL(*controller->procfs(), WriteToFile("/root/buffer_size_kb", "4"));
+ EXPECT_CALL(*controller->procfs(), WriteToFile("/root/events/enable", "0"));
EXPECT_CALL(*controller->procfs(), ClearFile("/root/trace"))
.WillOnce(Return(true));
EXPECT_CALL(*controller->procfs(),
ClearFile(MatchesRegex("/root/per_cpu/cpu[0-9]/trace")))
.WillRepeatedly(Return(true));
- EXPECT_CALL(*controller->procfs(), WriteToFile(kFooEnablePath, "0"));
- EXPECT_CALL(*controller->procfs(), WriteToFile("/root/tracing_on", "0"));
- EXPECT_CALL(*controller->procfs(), WriteToFile("/root/events/enable", "0"));
- EXPECT_TRUE(controller->procfs()->is_tracing_on());
+ EXPECT_CALL(*controller->procfs(), WriteToFile("/root/tracing_on", "1"));
data_source.reset();
- EXPECT_FALSE(controller->procfs()->is_tracing_on());
+ EXPECT_TRUE(controller->procfs()->is_tracing_on());
}
TEST(FtraceControllerTest, MultipleSinks) {
@@ -303,6 +328,13 @@
// No read tasks posted as part of adding the data sources.
EXPECT_CALL(*controller->runner(), PostDelayedTask(_, _)).Times(0);
+ EXPECT_CALL(*controller->procfs(), WriteToFile("/root/tracing_on", "0"));
+ EXPECT_CALL(*controller->procfs(), WriteToFile("/root/events/enable", "0"));
+ EXPECT_CALL(*controller->procfs(), ClearFile("/root/trace"))
+ .WillOnce(Return(true));
+ EXPECT_CALL(*controller->procfs(),
+ ClearFile(MatchesRegex("/root/per_cpu/cpu[0-9]/trace")))
+ .WillRepeatedly(Return(true));
EXPECT_CALL(*controller->procfs(), WriteToFile("/root/buffer_size_kb", _));
EXPECT_CALL(*controller->procfs(), WriteToFile(kFooEnablePath, "1"));
auto data_sourceA = controller->AddFakeDataSource(configA);
@@ -323,17 +355,22 @@
Mock::VerifyAndClearExpectations(controller->runner());
data_sourceA.reset();
+ EXPECT_TRUE(controller->procfs()->is_tracing_on());
// State clearing on tracing teardown.
EXPECT_CALL(*controller->procfs(), WriteToFile(kFooEnablePath, "0"));
EXPECT_CALL(*controller->procfs(), WriteToFile(kBarEnablePath, "0"));
- EXPECT_CALL(*controller->procfs(), WriteToFile("/root/buffer_size_kb", "4"));
EXPECT_CALL(*controller->procfs(), WriteToFile("/root/tracing_on", "0"));
+ EXPECT_CALL(*controller->procfs(), WriteToFile("/root/buffer_size_kb", "4"));
EXPECT_CALL(*controller->procfs(), WriteToFile("/root/events/enable", "0"));
- EXPECT_CALL(*controller->procfs(), ClearFile("/root/trace"));
+ EXPECT_CALL(*controller->procfs(), ClearFile("/root/trace"))
+ .WillOnce(Return(true));
EXPECT_CALL(*controller->procfs(),
- ClearFile(MatchesRegex("/root/per_cpu/cpu[0-9]/trace")));
+ ClearFile(MatchesRegex("/root/per_cpu/cpu[0-9]/trace")))
+ .WillRepeatedly(Return(true));
+ EXPECT_CALL(*controller->procfs(), WriteToFile("/root/tracing_on", "1"));
data_sourceB.reset();
+ EXPECT_TRUE(controller->procfs()->is_tracing_on());
}
TEST(FtraceControllerTest, ControllerMayDieFirst) {
@@ -341,6 +378,13 @@
FtraceConfig config = CreateFtraceConfig({"group/foo"});
+ EXPECT_CALL(*controller->procfs(), WriteToFile("/root/tracing_on", "0"));
+ EXPECT_CALL(*controller->procfs(), WriteToFile("/root/events/enable", "0"));
+ EXPECT_CALL(*controller->procfs(), ClearFile("/root/trace"))
+ .WillOnce(Return(true));
+ EXPECT_CALL(*controller->procfs(),
+ ClearFile(MatchesRegex("/root/per_cpu/cpu[0-9]/trace")))
+ .WillRepeatedly(Return(true));
EXPECT_CALL(*controller->procfs(), WriteToFile("/root/buffer_size_kb", _));
EXPECT_CALL(*controller->procfs(), WriteToFile(kFooEnablePath, "1"));
auto data_source = controller->AddFakeDataSource(config);
@@ -350,14 +394,15 @@
// State clearing on tracing teardown.
EXPECT_CALL(*controller->procfs(), WriteToFile(kFooEnablePath, "0"));
+ EXPECT_CALL(*controller->procfs(), WriteToFile("/root/tracing_on", "0"));
+ EXPECT_CALL(*controller->procfs(), WriteToFile("/root/buffer_size_kb", "4"));
+ EXPECT_CALL(*controller->procfs(), WriteToFile("/root/events/enable", "0"));
EXPECT_CALL(*controller->procfs(), ClearFile("/root/trace"))
.WillOnce(Return(true));
EXPECT_CALL(*controller->procfs(),
ClearFile(MatchesRegex("/root/per_cpu/cpu[0-9]/trace")))
.WillRepeatedly(Return(true));
- EXPECT_CALL(*controller->procfs(), WriteToFile("/root/tracing_on", "0"));
- EXPECT_CALL(*controller->procfs(), WriteToFile("/root/buffer_size_kb", "4"));
- EXPECT_CALL(*controller->procfs(), WriteToFile("/root/events/enable", "0"));
+ EXPECT_CALL(*controller->procfs(), WriteToFile("/root/tracing_on", "1"));
controller.reset();
data_source.reset();
}
diff --git a/src/traced/probes/ftrace/ftrace_procfs.cc b/src/traced/probes/ftrace/ftrace_procfs.cc
index 9865512..bd1c60c 100644
--- a/src/traced/probes/ftrace/ftrace_procfs.cc
+++ b/src/traced/probes/ftrace/ftrace_procfs.cc
@@ -180,6 +180,12 @@
return ReadFileIntoString(path);
}
+std::string FtraceProcfs::GetCurrentTracer() {
+ std::string path = root_ + "current_tracer";
+ std::string current_tracer = ReadFileIntoString(path);
+ return base::StripSuffix(current_tracer, "\n");
+}
+
bool FtraceProcfs::SetCurrentTracer(const std::string& tracer) {
std::string path = root_ + "current_tracer";
return WriteToFile(path, tracer);
@@ -407,25 +413,7 @@
return WriteNumberToFile(path, pages * (base::kPageSize / 1024ul));
}
-bool FtraceProcfs::EnableTracing() {
- KernelLogWrite("perfetto: enabled ftrace\n");
- PERFETTO_LOG("enabled ftrace in %s", root_.c_str());
- std::string path = root_ + "tracing_on";
- return WriteToFile(path, "1");
-}
-
-bool FtraceProcfs::DisableTracing() {
- KernelLogWrite("perfetto: disabled ftrace\n");
- PERFETTO_LOG("disabled ftrace in %s", root_.c_str());
- std::string path = root_ + "tracing_on";
- return WriteToFile(path, "0");
-}
-
-bool FtraceProcfs::SetTracingOn(bool enable) {
- return enable ? EnableTracing() : DisableTracing();
-}
-
-bool FtraceProcfs::IsTracingEnabled() {
+bool FtraceProcfs::GetTracingOn() {
std::string path = root_ + "tracing_on";
char tracing_on = ReadOneCharFromFile(path);
if (tracing_on == '\0')
@@ -433,6 +421,37 @@
return tracing_on == '1';
}
+bool FtraceProcfs::SetTracingOn(bool on) {
+ std::string path = root_ + "tracing_on";
+ if (!WriteToFile(path, on ? "1" : "0")) {
+ PERFETTO_PLOG("Failed to write %s", path.c_str());
+ return false;
+ }
+ if (on) {
+ KernelLogWrite("perfetto: enabled ftrace\n");
+ PERFETTO_LOG("enabled ftrace in %s", root_.c_str());
+ } else {
+ KernelLogWrite("perfetto: disabled ftrace\n");
+ PERFETTO_LOG("disabled ftrace in %s", root_.c_str());
+ }
+
+ return true;
+}
+
+bool FtraceProcfs::IsTracingAvailable() {
+ std::string current_tracer = GetCurrentTracer();
+
+ // Ftrace tracing is available if current_tracer == "nop".
+ // events/enable could be 0, 1, X or 0*. 0* means events would be
+ // dynamically enabled so we need to treat as event tracing is in use.
+ // However based on the discussion in asop/2328817, on Android events/enable
+ // is "X" after boot up. To avoid causing more problem, the decision is just
+ // look at current_tracer.
+ // As the discussion in asop/2328817, if GetCurrentTracer failed to
+ // read file and return "", we treat it as tracing is available.
+ return current_tracer == "nop" || current_tracer == "";
+}
+
bool FtraceProcfs::SetClock(const std::string& clock_name) {
std::string path = root_ + "trace_clock";
return WriteToFile(path, clock_name);
diff --git a/src/traced/probes/ftrace/ftrace_procfs.h b/src/traced/probes/ftrace/ftrace_procfs.h
index 115d300..40a7da9 100644
--- a/src/traced/probes/ftrace/ftrace_procfs.h
+++ b/src/traced/probes/ftrace/ftrace_procfs.h
@@ -68,6 +68,7 @@
virtual std::string ReadPageHeaderFormat() const;
+ std::string GetCurrentTracer();
// Sets the "current_tracer". Might fail with EBUSY if tracing pipes have
// already been opened for reading.
bool SetCurrentTracer(const std::string& tracer);
@@ -134,19 +135,17 @@
// Writes the string |str| as an event into the trace buffer.
bool WriteTraceMarker(const std::string& str);
- // Enable tracing.
- bool EnableTracing();
+ // Read tracing_on and return true if tracing_on is 1, otherwise return false.
+ bool GetTracingOn();
- // Disables tracing, does not clear the buffer.
- bool DisableTracing();
+ // Write 1 to tracing_on if |on| is true, otherwise write 0.
+ bool SetTracingOn(bool on);
- // Enables/disables tracing, does not clear the buffer.
- bool SetTracingOn(bool enable);
-
- // Returns true iff tracing is enabled.
- // Necessarily racy: another program could enable/disable tracing at any
- // point.
- bool IsTracingEnabled();
+ // Returns true if ftrace tracing is available.
+ // Ftrace tracing is available iff "/current_tracer" is "nop", indicates
+ // function tracing is not in use. Necessarily
+ // racy: another program could enable/disable tracing at any point.
+ bool IsTracingAvailable();
// Set the clock. |clock_name| should be one of the names returned by
// AvailableClocks. Setting the clock clears the buffer.
diff --git a/src/traced/probes/ftrace/ftrace_procfs_integrationtest.cc b/src/traced/probes/ftrace/ftrace_procfs_integrationtest.cc
index 25e1aa7..24ad32a 100644
--- a/src/traced/probes/ftrace/ftrace_procfs_integrationtest.cc
+++ b/src/traced/probes/ftrace/ftrace_procfs_integrationtest.cc
@@ -81,19 +81,18 @@
void FtraceProcfsIntegrationTest::SetUp() {
ftrace_ = FtraceProcfs::Create(GetFtracePath());
ASSERT_TRUE(ftrace_);
- if (ftrace_->IsTracingEnabled()) {
+ if (!ftrace_->IsTracingAvailable()) {
GTEST_SKIP() << "Something else is using ftrace, skipping";
}
- ftrace_->DisableAllEvents();
ftrace_->ClearTrace();
- ftrace_->EnableTracing();
+ ftrace_->SetTracingOn(true);
}
void FtraceProcfsIntegrationTest::TearDown() {
ftrace_->DisableAllEvents();
ftrace_->ClearTrace();
- ftrace_->DisableTracing();
+ ftrace_->SetTracingOn(false);
}
TEST_F(FtraceProcfsIntegrationTest, ANDROID_ONLY_TEST(CreateWithBadPath)) {
@@ -123,20 +122,30 @@
EXPECT_THAT(GetTraceOutput(), Not(HasSubstr("sched_switch")));
}
-TEST_F(FtraceProcfsIntegrationTest, ANDROID_ONLY_TEST(EnableDisableTracing)) {
- EXPECT_TRUE(ftrace_->IsTracingEnabled());
+TEST_F(FtraceProcfsIntegrationTest,
+ ANDROID_ONLY_TEST(EnableDisableTraceBuffer)) {
ftrace_->WriteTraceMarker("Before");
- ftrace_->DisableTracing();
- EXPECT_FALSE(ftrace_->IsTracingEnabled());
+ ftrace_->SetTracingOn(false);
ftrace_->WriteTraceMarker("During");
- ftrace_->EnableTracing();
- EXPECT_TRUE(ftrace_->IsTracingEnabled());
+ ftrace_->SetTracingOn(true);
ftrace_->WriteTraceMarker("After");
EXPECT_THAT(GetTraceOutput(), HasSubstr("Before"));
EXPECT_THAT(GetTraceOutput(), Not(HasSubstr("During")));
EXPECT_THAT(GetTraceOutput(), HasSubstr("After"));
}
+TEST_F(FtraceProcfsIntegrationTest, ANDROID_ONLY_TEST(IsTracingAvailable)) {
+ EXPECT_TRUE(ftrace_->IsTracingAvailable());
+ ftrace_->SetCurrentTracer("function");
+ EXPECT_FALSE(ftrace_->IsTracingAvailable());
+ ftrace_->SetCurrentTracer("nop");
+ EXPECT_TRUE(ftrace_->IsTracingAvailable());
+ ASSERT_TRUE(ftrace_->EnableEvent("sched", "sched_switch"));
+ EXPECT_FALSE(ftrace_->IsTracingAvailable());
+ ftrace_->DisableAllEvents();
+ EXPECT_TRUE(ftrace_->IsTracingAvailable());
+}
+
TEST_F(FtraceProcfsIntegrationTest, ANDROID_ONLY_TEST(ReadFormatFile)) {
std::string format = ftrace_->ReadEventFormat("ftrace", "print");
EXPECT_THAT(format, HasSubstr("name: print"));
@@ -168,7 +177,6 @@
TEST_F(FtraceProcfsIntegrationTest,
ANDROID_ONLY_TEST(FtraceControllerHardReset)) {
ftrace_->SetCpuBufferSizeInPages(4ul);
- ftrace_->EnableTracing();
ftrace_->EnableEvent("sched", "sched_switch");
ftrace_->WriteTraceMarker("Hello, World!");
diff --git a/src/traced/probes/kmem_activity_trigger.cc b/src/traced/probes/kmem_activity_trigger.cc
index b30108c..7e29a96 100644
--- a/src/traced/probes/kmem_activity_trigger.cc
+++ b/src/traced/probes/kmem_activity_trigger.cc
@@ -52,7 +52,7 @@
KmemActivityTrigger::WorkerData::~WorkerData() {
PERFETTO_DCHECK_THREAD(thread_checker_);
if (ftrace_procfs_) {
- ftrace_procfs_->DisableTracing();
+ ftrace_procfs_->SetTracingOn(false);
ftrace_procfs_->ClearTrace();
}
DisarmFtraceFDWatches();
@@ -79,7 +79,7 @@
ftrace_procfs_->DisableAllEvents();
ftrace_procfs_->EnableEvent("vmscan", "mm_vmscan_direct_reclaim_begin");
ftrace_procfs_->EnableEvent("compaction", "mm_compaction_begin");
- ftrace_procfs_->EnableTracing();
+ ftrace_procfs_->SetTracingOn(true);
num_cpus_ = ftrace_procfs_->NumberOfCpus();
for (size_t cpu = 0; cpu < num_cpus_; cpu++) {
diff --git a/src/traced/probes/probes_producer.cc b/src/traced/probes/probes_producer.cc
index 04e5248..0d2573a 100644
--- a/src/traced/probes/probes_producer.cc
+++ b/src/traced/probes/probes_producer.cc
@@ -137,11 +137,6 @@
ftrace_creation_failed_ = true;
return nullptr;
}
-
- if (!ftrace_config.preserve_ftrace_buffer()) {
- ftrace_->DisableAllEvents();
- ftrace_->ClearTrace();
- }
}
PERFETTO_LOG("Ftrace setup (target_buf=%" PRIu32 ")", config.target_buffer());
diff --git a/src/tracing/internal/tracing_muxer_impl.cc b/src/tracing/internal/tracing_muxer_impl.cc
index 463d0d4..38cd239 100644
--- a/src/tracing/internal/tracing_muxer_impl.cc
+++ b/src/tracing/internal/tracing_muxer_impl.cc
@@ -1314,7 +1314,8 @@
std::unique_lock<std::recursive_mutex> lock(ds.internal_state->lock);
if (ds.internal_state->interceptor)
ds.internal_state->interceptor->OnStart({});
- ds.internal_state->trace_lambda_enabled = true;
+ ds.internal_state->trace_lambda_enabled.store(true,
+ std::memory_order_relaxed);
PERFETTO_DCHECK(ds.internal_state->data_source != nullptr);
if (!ds.requires_callbacks_under_lock)
@@ -1408,7 +1409,8 @@
TracingSessionGlobalID startup_session_id;
{
std::lock_guard<std::recursive_mutex> guard(ds.internal_state->lock);
- ds.internal_state->trace_lambda_enabled = false;
+ ds.internal_state->trace_lambda_enabled.store(false,
+ std::memory_order_relaxed);
ds.internal_state->data_source.reset();
ds.internal_state->interceptor.reset();
startup_buffer_reservation =
diff --git a/src/tracing/test/aligned_buffer_test.cc b/src/tracing/test/aligned_buffer_test.cc
index 6a603ea..082e130 100644
--- a/src/tracing/test/aligned_buffer_test.cc
+++ b/src/tracing/test/aligned_buffer_test.cc
@@ -20,8 +20,10 @@
namespace perfetto {
+#if !PERFETTO_IS_AT_LEAST_CPP17()
// static
constexpr size_t AlignedBufferTest::kNumPages;
+#endif
void AlignedBufferTest::SetUp() {
page_size_ = GetParam();
diff --git a/src/tracing/test/api_integrationtest.cc b/src/tracing/test/api_integrationtest.cc
index 0e131dd..583d281 100644
--- a/src/tracing/test/api_integrationtest.cc
+++ b/src/tracing/test/api_integrationtest.cc
@@ -45,6 +45,7 @@
#include "src/tracing/test/api_test_support.h"
#include "src/tracing/test/tracing_module.h"
+#include "perfetto/base/time.h"
#include "perfetto/protozero/scattered_heap_buffer.h"
#include "perfetto/tracing/core/data_source_descriptor.h"
#include "perfetto/tracing/core/trace_config.h"
@@ -200,12 +201,15 @@
using perfetto::internal::TrackEventIncrementalState;
using perfetto::internal::TrackEventInternal;
using ::testing::_;
+using ::testing::AllOf;
using ::testing::ContainerEq;
using ::testing::Contains;
+using ::testing::Each;
using ::testing::ElementsAre;
using ::testing::HasSubstr;
using ::testing::Invoke;
using ::testing::InvokeWithoutArgs;
+using ::testing::IsEmpty;
using ::testing::NiceMock;
using ::testing::Not;
using ::testing::Property;
@@ -5549,6 +5553,54 @@
"trigger1")))));
}
+TEST_P(PerfettoApiTest, StartTracingWhileExecutingTracepoint) {
+ perfetto::TraceConfig cfg;
+ auto* buffer = cfg.add_buffers();
+ buffer->set_size_kb(64);
+ auto* ds_cfg = cfg.add_data_sources()->mutable_config();
+ ds_cfg->set_name("my_data_source");
+
+ std::atomic<bool> quit = false;
+ WaitableTestEvent outside_tracing;
+ WaitableTestEvent tracing;
+ std::thread t([&] {
+ while (!quit) {
+ MockDataSource::Trace([&](MockDataSource::TraceContext ctx) {
+ {
+ auto packet = ctx.NewTracePacket();
+ packet->set_for_testing()->set_str("My String");
+ }
+ { auto packet = ctx.NewTracePacket(); }
+ tracing.Notify();
+ });
+ outside_tracing.Notify();
+ std::this_thread::yield();
+ }
+ });
+ outside_tracing.Wait();
+
+ auto* tracing_session = NewTrace(cfg);
+ tracing_session->get()->StartBlocking();
+ tracing.Wait();
+ tracing_session->get()->StopBlocking();
+
+ // The data source instance should be stopped.
+ auto* data_source = &data_sources_["my_data_source"];
+ data_source->on_stop.Wait();
+
+ quit = true;
+ t.join();
+
+ auto trace = StopSessionAndReturnParsedTrace(tracing_session);
+ std::vector<std::string> test_strings;
+ for (auto& trace_packet : trace.packet()) {
+ if (trace_packet.has_for_testing()) {
+ test_strings.push_back(trace_packet.for_testing().str());
+ }
+ }
+ EXPECT_THAT(test_strings, AllOf(Not(IsEmpty()), Each("My String")));
+}
+
class PerfettoStartupTracingApiTest : public PerfettoApiTest {
public:
using SetupStartupTracingOpts = perfetto::Tracing::SetupStartupTracingOpts;
diff --git a/test/data/android_binder_metric_trace.atr.sha256 b/test/data/android_binder_metric_trace.atr.sha256
new file mode 100644
index 0000000..93a6a92
--- /dev/null
+++ b/test/data/android_binder_metric_trace.atr.sha256
@@ -0,0 +1 @@
+64f323d9561628a1de87372504ffa900b53d6d214319e3c00b083d0ba8a2bfa5
\ No newline at end of file
diff --git a/test/data/ui-screenshots/ui-android_trace_30s_expand_camera.png.sha256 b/test/data/ui-screenshots/ui-android_trace_30s_expand_camera.png.sha256
index f0f270b..4542096 100644
--- a/test/data/ui-screenshots/ui-android_trace_30s_expand_camera.png.sha256
+++ b/test/data/ui-screenshots/ui-android_trace_30s_expand_camera.png.sha256
@@ -1 +1 @@
-9afd1d1f82d762dc2b2e294bdbd68f834f10ca7c7eab4a9787eaf3e75e8f1bbb
\ No newline at end of file
+42318df513cb597e8eed8f30da87e0d5549e450458ee2a72096617564f1c9641
\ No newline at end of file
diff --git a/test/data/ui-screenshots/ui-android_trace_30s_load.png.sha256 b/test/data/ui-screenshots/ui-android_trace_30s_load.png.sha256
index de62f0b..435886a 100644
--- a/test/data/ui-screenshots/ui-android_trace_30s_load.png.sha256
+++ b/test/data/ui-screenshots/ui-android_trace_30s_load.png.sha256
@@ -1 +1 @@
-a7da2d0e1f2f20dffad44e554dc5a6998bf70d0128ca900907157b4a2303c63a
\ No newline at end of file
+304307cd023efbd545daa08c981fc8f28f94181eea2229247a217d3379982ce9
\ No newline at end of file
diff --git a/test/data/ui-screenshots/ui-chrome_missing_track_names_load.png.sha256 b/test/data/ui-screenshots/ui-chrome_missing_track_names_load.png.sha256
index 8528d4c..c2c4480 100644
--- a/test/data/ui-screenshots/ui-chrome_missing_track_names_load.png.sha256
+++ b/test/data/ui-screenshots/ui-chrome_missing_track_names_load.png.sha256
@@ -1 +1 @@
-d10161589d43cb6a0bc1df341581db5489f3ac6efcdf254894a5851178165a13
\ No newline at end of file
+a74598d5e5bfc01edc3893310ee565d951634caa48408e7909d57c2ef9112df0
\ No newline at end of file
diff --git a/test/data/ui-screenshots/ui-chrome_rendering_desktop_expand_browser_proc.png.sha256 b/test/data/ui-screenshots/ui-chrome_rendering_desktop_expand_browser_proc.png.sha256
index e223d72..0bf5879 100644
--- a/test/data/ui-screenshots/ui-chrome_rendering_desktop_expand_browser_proc.png.sha256
+++ b/test/data/ui-screenshots/ui-chrome_rendering_desktop_expand_browser_proc.png.sha256
@@ -1 +1 @@
-0f3c280c0b44ed4e9d4a0849512ca3f21914cd86581cde1bb5e6f1dce4ea7843
\ No newline at end of file
+be9aed5344f35089cc633006ccdd695073a34cc74064cd89235521c9d7787aca
\ No newline at end of file
diff --git a/test/data/ui-screenshots/ui-chrome_rendering_desktop_load.png.sha256 b/test/data/ui-screenshots/ui-chrome_rendering_desktop_load.png.sha256
index b4eb4f7..8d20ae2 100644
--- a/test/data/ui-screenshots/ui-chrome_rendering_desktop_load.png.sha256
+++ b/test/data/ui-screenshots/ui-chrome_rendering_desktop_load.png.sha256
@@ -1 +1 @@
-77ad6a3f90b414957bd1fd78d39ceb380b28f384b4d4a0a3ed1e11e394f635be
\ No newline at end of file
+a1719fb24ddb802efd12be5dcd33ca6936ab8c1bb952bb5c5458f1e26bce9625
\ No newline at end of file
diff --git a/test/data/ui-screenshots/ui-chrome_rendering_desktop_select_slice_with_flows.png.sha256 b/test/data/ui-screenshots/ui-chrome_rendering_desktop_select_slice_with_flows.png.sha256
index 98195eb..4a2f0c4 100644
--- a/test/data/ui-screenshots/ui-chrome_rendering_desktop_select_slice_with_flows.png.sha256
+++ b/test/data/ui-screenshots/ui-chrome_rendering_desktop_select_slice_with_flows.png.sha256
@@ -1 +1 @@
-b4e711f0c25cea261c84ec594ac0939887d81687a70a47e291075c8bb24ff1f1
\ No newline at end of file
+7306700e0412cdb55390941b3d52e986414e2acbb2e74c32a93f8d9a4de1d43a
\ No newline at end of file
diff --git a/test/data/ui-screenshots/ui-routing_navigate_open_trace_from_url.png.sha256 b/test/data/ui-screenshots/ui-routing_navigate_open_trace_from_url.png.sha256
index fd28c9c..11e6f1f 100644
--- a/test/data/ui-screenshots/ui-routing_navigate_open_trace_from_url.png.sha256
+++ b/test/data/ui-screenshots/ui-routing_navigate_open_trace_from_url.png.sha256
@@ -1 +1 @@
-21d088add5542b38703452ac16600f878f865bc220baad0d912bc56d982ab207
\ No newline at end of file
+6e57bf0534cd22c5452d49580451043f9bedaa5fa560beea334a451daea96e42
\ No newline at end of file
diff --git a/test/data/ui-screenshots/ui-routing_open_two_traces_then_go_back_access_subpage_then_go_back.png.sha256 b/test/data/ui-screenshots/ui-routing_open_two_traces_then_go_back_access_subpage_then_go_back.png.sha256
index 32cf9b1..556052a 100644
--- a/test/data/ui-screenshots/ui-routing_open_two_traces_then_go_back_access_subpage_then_go_back.png.sha256
+++ b/test/data/ui-screenshots/ui-routing_open_two_traces_then_go_back_access_subpage_then_go_back.png.sha256
@@ -1 +1 @@
-6bb4ec59ccea148ed9ddd2878dad220dcdeb0264a3a61334c9ee66d57cd8094d
\ No newline at end of file
+b74e614897b9c0fc652b36c8c2cc025f6ea3d54754edbcf828d137275921c89c
\ No newline at end of file
diff --git a/test/data/ui-screenshots/ui-routing_open_two_traces_then_go_back_open_first_trace_from_url.png.sha256 b/test/data/ui-screenshots/ui-routing_open_two_traces_then_go_back_open_first_trace_from_url.png.sha256
index fd28c9c..11e6f1f 100644
--- a/test/data/ui-screenshots/ui-routing_open_two_traces_then_go_back_open_first_trace_from_url.png.sha256
+++ b/test/data/ui-screenshots/ui-routing_open_two_traces_then_go_back_open_first_trace_from_url.png.sha256
@@ -1 +1 @@
-21d088add5542b38703452ac16600f878f865bc220baad0d912bc56d982ab207
\ No newline at end of file
+6e57bf0534cd22c5452d49580451043f9bedaa5fa560beea334a451daea96e42
\ No newline at end of file
diff --git a/test/data/ui-screenshots/ui-routing_open_two_traces_then_go_back_open_second_trace_from_url.png.sha256 b/test/data/ui-screenshots/ui-routing_open_two_traces_then_go_back_open_second_trace_from_url.png.sha256
index 32cf9b1..556052a 100644
--- a/test/data/ui-screenshots/ui-routing_open_two_traces_then_go_back_open_second_trace_from_url.png.sha256
+++ b/test/data/ui-screenshots/ui-routing_open_two_traces_then_go_back_open_second_trace_from_url.png.sha256
@@ -1 +1 @@
-6bb4ec59ccea148ed9ddd2878dad220dcdeb0264a3a61334c9ee66d57cd8094d
\ No newline at end of file
+b74e614897b9c0fc652b36c8c2cc025f6ea3d54754edbcf828d137275921c89c
\ No newline at end of file
diff --git a/test/data/ui-screenshots/ui-routing_start_from_no_trace_go_back_to_first_trace.png.sha256 b/test/data/ui-screenshots/ui-routing_start_from_no_trace_go_back_to_first_trace.png.sha256
index 651681e..890256b 100644
--- a/test/data/ui-screenshots/ui-routing_start_from_no_trace_go_back_to_first_trace.png.sha256
+++ b/test/data/ui-screenshots/ui-routing_start_from_no_trace_go_back_to_first_trace.png.sha256
@@ -1 +1 @@
-d8c9876668f6f0673d99adf2ad7ee30dad0ffafe60bd0faa9fb709e49addba20
\ No newline at end of file
+f6d364436cb58281efdca972d3645ab3e95408f6aecfaaf286217fa55f40bcca
\ No newline at end of file
diff --git a/test/data/ui-screenshots/ui-routing_start_from_no_trace_open_second_trace.png.sha256 b/test/data/ui-screenshots/ui-routing_start_from_no_trace_open_second_trace.png.sha256
index fd28c9c..11e6f1f 100644
--- a/test/data/ui-screenshots/ui-routing_start_from_no_trace_open_second_trace.png.sha256
+++ b/test/data/ui-screenshots/ui-routing_start_from_no_trace_open_second_trace.png.sha256
@@ -1 +1 @@
-21d088add5542b38703452ac16600f878f865bc220baad0d912bc56d982ab207
\ No newline at end of file
+6e57bf0534cd22c5452d49580451043f9bedaa5fa560beea334a451daea96e42
\ No newline at end of file
diff --git a/test/data/ui-screenshots/ui-routing_start_from_no_trace_open_trace_.png.sha256 b/test/data/ui-screenshots/ui-routing_start_from_no_trace_open_trace_.png.sha256
index 32cf9b1..556052a 100644
--- a/test/data/ui-screenshots/ui-routing_start_from_no_trace_open_trace_.png.sha256
+++ b/test/data/ui-screenshots/ui-routing_start_from_no_trace_open_trace_.png.sha256
@@ -1 +1 @@
-6bb4ec59ccea148ed9ddd2878dad220dcdeb0264a3a61334c9ee66d57cd8094d
\ No newline at end of file
+b74e614897b9c0fc652b36c8c2cc025f6ea3d54754edbcf828d137275921c89c
\ No newline at end of file
diff --git a/test/data/ui-screenshots/ui-routing_start_from_no_trace_refresh.png.sha256 b/test/data/ui-screenshots/ui-routing_start_from_no_trace_refresh.png.sha256
index 32cf9b1..556052a 100644
--- a/test/data/ui-screenshots/ui-routing_start_from_no_trace_refresh.png.sha256
+++ b/test/data/ui-screenshots/ui-routing_start_from_no_trace_refresh.png.sha256
@@ -1 +1 @@
-6bb4ec59ccea148ed9ddd2878dad220dcdeb0264a3a61334c9ee66d57cd8094d
\ No newline at end of file
+b74e614897b9c0fc652b36c8c2cc025f6ea3d54754edbcf828d137275921c89c
\ No newline at end of file
diff --git a/test/ftrace_integrationtest.cc b/test/ftrace_integrationtest.cc
index 42d251f..068ebf7 100644
--- a/test/ftrace_integrationtest.cc
+++ b/test/ftrace_integrationtest.cc
@@ -173,7 +173,7 @@
helper.StartTracing(trace_config);
// Wait for traced_probes to start.
- helper.WaitFor([&] { return ftrace_procfs_->IsTracingEnabled(); }, "ftrace");
+ helper.WaitFor([&] { return ftrace_procfs_->GetTracingOn(); }, "ftrace");
// Do a first flush just to synchronize with the producer. The problem here
// is that, on a Linux workstation, the producer can take several seconds just
diff --git a/test/stress_test/stress_test.cc b/test/stress_test/stress_test.cc
index 513b4bb..213017e 100644
--- a/test/stress_test/stress_test.cc
+++ b/test/stress_test/stress_test.cc
@@ -27,6 +27,7 @@
#include "perfetto/base/build_config.h"
#include "perfetto/base/compiler.h"
+#include "perfetto/base/time.h"
#include "perfetto/ext/base/ctrl_c_handler.h"
#include "perfetto/ext/base/file_utils.h"
#include "perfetto/ext/base/scoped_file.h"
diff --git a/test/trace_processor/android/tests.py b/test/trace_processor/android/tests.py
deleted file mode 100644
index 1b45a2d..0000000
--- a/test/trace_processor/android/tests.py
+++ /dev/null
@@ -1,112 +0,0 @@
-#!/usr/bin/env python3
-# Copyright (C) 2023 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 a
-#
-# 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.
-
-from python.generators.diff_tests.testing import Path, Metric
-from python.generators.diff_tests.testing import Csv, Json, TextProto
-from python.generators.diff_tests.testing import DiffTestBlueprint
-from python.generators.diff_tests.testing import TestSuite
-
-
-class Android(TestSuite):
-
- def test_android_system_property_counter(self):
- return DiffTestBlueprint(
- trace=TextProto(r"""
- packet {
- timestamp: 1000
- android_system_property {
- values {
- name: "debug.tracing.screen_state"
- value: "2"
- }
- values {
- name: "debug.tracing.device_state"
- value: "some_state_from_sysprops"
- }
- }
- }
- packet {
- ftrace_events {
- cpu: 1
- event {
- timestamp: 2000
- pid: 1
- print {
- buf: "C|1000|ScreenState|1\n"
- }
- }
- event {
- timestamp: 3000
- pid: 1
- print {
- buf: "N|1000|DeviceStateChanged|some_state_from_atrace\n"
- }
- }
- }
- }
- """),
- query="""
- SELECT t.id, t.type, t.name, c.id, c.ts, c.type, c.value
- FROM counter_track t JOIN counter c ON t.id = c.track_id
- WHERE name = 'ScreenState';
- """,
- out=Csv("""
- "id","type","name","id","ts","type","value"
- 0,"counter_track","ScreenState",0,1000,"counter",2.000000
- 0,"counter_track","ScreenState",1,2000,"counter",1.000000
- """))
-
- def test_android_system_property_slice(self):
- return DiffTestBlueprint(
- trace=TextProto(r"""
- packet {
- timestamp: 1000
- android_system_property {
- values {
- name: "debug.tracing.screen_state"
- value: "2"
- }
- values {
- name: "debug.tracing.device_state"
- value: "some_state_from_sysprops"
- }
- }
- }
- packet {
- ftrace_events {
- cpu: 1
- event {
- timestamp: 2000
- pid: 1
- print {
- buf: "C|1000|ScreenState|1\n"
- }
- }
- event {
- timestamp: 3000
- pid: 1
- print {
- buf: "N|1000|DeviceStateChanged|some_state_from_atrace\n"
- }
- }
- }
- }
- """),
- query="""
- SELECT t.id, t.type, t.name, s.id, s.ts, s.dur, s.type, s.name
- FROM track t JOIN slice s ON s.track_id = t.id
- WHERE t.name = 'DeviceStateChanged';
- """,
- out=Path('android_system_property_slice.out'))
diff --git a/test/trace_processor/diff_tests/android/android_binder_metric.out b/test/trace_processor/diff_tests/android/android_binder_metric.out
new file mode 100644
index 0000000..5c02398
--- /dev/null
+++ b/test/trace_processor/diff_tests/android/android_binder_metric.out
@@ -0,0 +1,39582 @@
+android_binder {
+ process_breakdown {
+ process_name: "/apex/com.android.hardware.vibrator/bin/hw/android.hardware.vibrator-service.example"
+ pid: 481
+ slice_name: "binder reply"
+ count: 29
+ }
+ process_breakdown {
+ process_name: "/apex/com.android.os.statsd/bin/statsd"
+ pid: 415
+ slice_name: "binder async rcv"
+ count: 1
+ }
+ process_breakdown {
+ process_name: "/apex/com.android.os.statsd/bin/statsd"
+ pid: 415
+ slice_name: "binder reply"
+ count: 1
+ }
+ process_breakdown {
+ process_name: "/apex/com.android.os.statsd/bin/statsd"
+ pid: 415
+ slice_name: "binder transaction"
+ count: 7
+ }
+ process_breakdown {
+ process_name: "/system/bin/apexd"
+ pid: 317
+ slice_name: "binder async rcv"
+ count: 1
+ }
+ process_breakdown {
+ process_name: "/system/bin/audioserver"
+ pid: 492
+ slice_name: "binder transaction"
+ count: 158
+ }
+ process_breakdown {
+ process_name: "/system/bin/audioserver"
+ pid: 492
+ slice_name: "binder transaction async"
+ count: 2
+ }
+ process_breakdown {
+ process_name: "/system/bin/bootanimation"
+ pid: 581
+ slice_name: "binder async rcv"
+ count: 57
+ }
+ process_breakdown {
+ process_name: "/system/bin/bootanimation"
+ pid: 581
+ slice_name: "binder transaction async"
+ count: 57
+ }
+ process_breakdown {
+ process_name: "/system/bin/cameraserver"
+ pid: 537
+ slice_name: "binder async rcv"
+ count: 3
+ }
+ process_breakdown {
+ process_name: "/system/bin/cameraserver"
+ pid: 537
+ slice_name: "binder transaction"
+ count: 168
+ }
+ process_breakdown {
+ process_name: "/system/bin/hwservicemanager"
+ pid: 247
+ slice_name: "binder reply"
+ count: 6
+ }
+ process_breakdown {
+ process_name: "/system/bin/idmap2d"
+ pid: 541
+ slice_name: "binder reply"
+ count: 53
+ }
+ process_breakdown {
+ process_name: "/system/bin/installd"
+ pid: 548
+ slice_name: "binder reply"
+ count: 108
+ }
+ process_breakdown {
+ process_name: "/system/bin/servicemanager"
+ pid: 243
+ slice_name: "binder reply"
+ count: 601
+ }
+ process_breakdown {
+ process_name: "/system/bin/servicemanager"
+ pid: 243
+ slice_name: "binder transaction async"
+ count: 2
+ }
+ process_breakdown {
+ process_name: "/system/bin/storaged"
+ pid: 555
+ slice_name: "binder async rcv"
+ count: 1
+ }
+ process_breakdown {
+ process_name: "/system/bin/storaged"
+ pid: 555
+ slice_name: "binder transaction"
+ count: 39
+ }
+ process_breakdown {
+ process_name: "/system/bin/surfaceflinger"
+ pid: 496
+ slice_name: "binder async rcv"
+ count: 244
+ }
+ process_breakdown {
+ process_name: "/system/bin/surfaceflinger"
+ pid: 496
+ slice_name: "binder reply"
+ count: 60
+ }
+ process_breakdown {
+ process_name: "/system/bin/surfaceflinger"
+ pid: 496
+ slice_name: "binder transaction"
+ count: 181
+ }
+ process_breakdown {
+ process_name: "/system/bin/surfaceflinger"
+ pid: 496
+ slice_name: "binder transaction async"
+ count: 58
+ }
+ process_breakdown {
+ process_name: "/system/bin/vold"
+ pid: 255
+ slice_name: "binder reply"
+ count: 2
+ }
+ process_breakdown {
+ process_name: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ pid: 446
+ slice_name: "binder reply"
+ count: 180
+ }
+ process_breakdown {
+ process_name: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ pid: 446
+ slice_name: "binder transaction async"
+ count: 180
+ }
+ process_breakdown {
+ process_name: "/vendor/bin/hw/android.hardware.health-service.cuttlefish"
+ pid: 431
+ slice_name: "binder reply"
+ count: 2
+ }
+ process_breakdown {
+ process_name: "/vendor/bin/hw/android.hardware.health-service.cuttlefish"
+ pid: 431
+ slice_name: "binder transaction"
+ count: 1
+ }
+ process_breakdown {
+ process_name: "/vendor/bin/hw/android.hardware.health-service.cuttlefish"
+ pid: 431
+ slice_name: "binder transaction async"
+ count: 3
+ }
+ process_breakdown {
+ process_name: "/vendor/bin/hw/android.hardware.input.processor-service.example"
+ pid: 447
+ slice_name: "binder reply"
+ count: 9
+ }
+ process_breakdown {
+ process_name: "/vendor/bin/hw/android.hardware.lights-service.example"
+ pid: 448
+ slice_name: "binder reply"
+ count: 1
+ }
+ process_breakdown {
+ process_name: "/vendor/bin/hw/android.hardware.sensors-service.example"
+ pid: 458
+ slice_name: "binder reply"
+ count: 4
+ }
+ process_breakdown {
+ process_name: "/vendor/bin/hw/android.hardware.sensors-service.example"
+ pid: 458
+ slice_name: "binder transaction"
+ count: 1
+ }
+ process_breakdown {
+ process_name: "kworker/0:2-virtio_vsock"
+ pid: 146
+ slice_name: "binder_deferred_func"
+ count: 1
+ }
+ process_breakdown {
+ process_name: "media.metrics"
+ pid: 550
+ slice_name: "binder async rcv"
+ count: 2
+ }
+ process_breakdown {
+ process_name: "system_server"
+ pid: 641
+ slice_name: "binder async rcv"
+ count: 4
+ }
+ process_breakdown {
+ process_name: "system_server"
+ pid: 641
+ slice_name: "binder reply"
+ count: 14
+ }
+ process_breakdown {
+ process_name: "system_server"
+ pid: 641
+ slice_name: "binder transaction"
+ count: 515
+ }
+ process_breakdown {
+ process_name: "system_server"
+ pid: 641
+ slice_name: "binder transaction async"
+ count: 11
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 36932
+ client_process: "/apex/com.android.os.statsd/bin/statsd"
+ client_thread: "binder:415_3"
+ is_main_thread: false
+ client_ts: 25827352153
+ client_dur: 86322
+ binder_reply_id: 36933
+ server_process: "system_server"
+ server_thread: "binder:641_5"
+ server_ts: 25827417672
+ server_dur: 11316
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 11316
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 4197
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 10488
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 71637
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 36935
+ client_process: "/apex/com.android.os.statsd/bin/statsd"
+ client_thread: "binder:415_3"
+ is_main_thread: false
+ client_ts: 25827531554
+ client_dur: 41057
+ binder_reply_id: 36936
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25827545050
+ server_dur: 18590
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 18590
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6262
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 8551
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 26244
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37992
+ client_process: "/apex/com.android.os.statsd/bin/statsd"
+ client_thread: "binder:415_3"
+ is_main_thread: false
+ client_ts: 25927698833
+ client_dur: 43619
+ binder_reply_id: 37993
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25927713489
+ server_dur: 18478
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 18478
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6587
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9084
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 27948
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 38855
+ client_process: "/apex/com.android.os.statsd/bin/statsd"
+ client_thread: "binder:415_3"
+ is_main_thread: false
+ client_ts: 26027844321
+ client_dur: 76502
+ binder_reply_id: 38856
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 26027869620
+ server_dur: 38328
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 38328
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7886
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 13944
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 54672
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 39760
+ client_process: "/apex/com.android.os.statsd/bin/statsd"
+ client_thread: "binder:415_3"
+ is_main_thread: false
+ client_ts: 26128022950
+ client_dur: 93620
+ binder_reply_id: 39761
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 26128060441
+ server_dur: 42549
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 42549
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9275
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12113
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 72232
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 40843
+ client_process: "/apex/com.android.os.statsd/bin/statsd"
+ client_thread: "binder:415_3"
+ is_main_thread: false
+ client_ts: 26228226807
+ client_dur: 92197
+ binder_reply_id: 40844
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 26228257962
+ server_dur: 47691
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 47691
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9430
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14131
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 68636
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 41614
+ client_process: "/apex/com.android.os.statsd/bin/statsd"
+ client_thread: "binder:415_3"
+ is_main_thread: false
+ client_ts: 26328427074
+ client_dur: 88516
+ binder_reply_id: 41615
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 26328457296
+ server_dur: 45253
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 45253
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8807
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14713
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 64996
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 78
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 21625430256
+ client_dur: 106084
+ binder_reply_id: 79
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 21625451288
+ server_dur: 25329
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 25329
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 54823
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 13955
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 37306
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 184
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 21651104412
+ client_dur: 1553854
+ binder_reply_id: 185
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 21651127883
+ server_dur: 24255
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 24255
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 1500261
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 13419
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 40174
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 773
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 21681078075
+ client_dur: 6957581
+ binder_reply_id: 774
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 21681097331
+ server_dur: 20398
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 20398
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6912350
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11911
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 33320
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 818
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 21713184564
+ client_dur: 1238385
+ binder_reply_id: 820
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 21713209886
+ server_dur: 8733
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 8733
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 1200529
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 6320
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 31536
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 877
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 21745330426
+ client_dur: 2415345
+ binder_reply_id: 878
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 21745354167
+ server_dur: 24535
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 24535
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 2360609
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 15864
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 38872
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 1424
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 21772841582
+ client_dur: 60073
+ binder_reply_id: 1425
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 21772864934
+ server_dur: 21372
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 21372
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9111
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14396
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 36566
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 1455
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 21797991492
+ client_dur: 58946
+ binder_reply_id: 1456
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 21798015547
+ server_dur: 20885
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 20885
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7996
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14722
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 36228
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 1481
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 21823141587
+ client_dur: 61370
+ binder_reply_id: 1482
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 21823167028
+ server_dur: 21656
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 21656
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8234
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 15111
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 38025
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 1497
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 21848290804
+ client_dur: 60709
+ binder_reply_id: 1498
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 21848316259
+ server_dur: 20391
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 20391
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8688
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14729
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 37292
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 2017
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 21873440775
+ client_dur: 55934
+ binder_reply_id: 2018
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 21873461764
+ server_dur: 21136
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 21136
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7541
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14337
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 34056
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 2065
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 21898589558
+ client_dur: 58875
+ binder_reply_id: 2066
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 21898611789
+ server_dur: 20494
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 20494
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9715
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 15312
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 33848
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 2135
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 21923738957
+ client_dur: 64169
+ binder_reply_id: 2136
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 21923761253
+ server_dur: 25784
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 25784
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9461
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16260
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 38448
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 2196
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 21948891420
+ client_dur: 64699
+ binder_reply_id: 2197
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 21948920277
+ server_dur: 20540
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 20540
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9162
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12849
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 42688
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 2636
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 21974296208
+ client_dur: 104989
+ binder_reply_id: 2637
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 21974341636
+ server_dur: 25187
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 25187
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 19693
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 48420
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 36876
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 2673
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 21999539011
+ client_dur: 71202
+ binder_reply_id: 2674
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 21999568501
+ server_dur: 20357
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 20357
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 12476
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 27311
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 31415
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 2726
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 22024711257
+ client_dur: 328183
+ binder_reply_id: 2727
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22024736108
+ server_dur: 25338
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 25338
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 260919
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 27372
+ thread_state_count: 3
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 39892
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 2761
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 22050132357
+ client_dur: 59459
+ binder_reply_id: 2762
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22050156562
+ server_dur: 20679
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 20679
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8573
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 15568
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 35318
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 3272
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 22075288214
+ client_dur: 58461
+ binder_reply_id: 3273
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22075311405
+ server_dur: 20809
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 20809
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8226
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 18334
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 31901
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 3305
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 22100443015
+ client_dur: 66715
+ binder_reply_id: 3306
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22100466870
+ server_dur: 19761
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 19761
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 16790
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16723
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 33202
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 3325
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 22125600618
+ client_dur: 65545
+ binder_reply_id: 3326
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22125623322
+ server_dur: 20702
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 20702
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7254
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 15487
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 42804
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 3379
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 22150759363
+ client_dur: 56369
+ binder_reply_id: 3380
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22150779993
+ server_dur: 22255
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 22255
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7557
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14217
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 34595
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 3922
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 22175906178
+ client_dur: 63847
+ binder_reply_id: 3923
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22175929226
+ server_dur: 25370
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 25370
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9181
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16228
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 38438
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 3949
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 22201561660
+ client_dur: 209987
+ binder_reply_id: 3950
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22201735902
+ server_dur: 20781
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 20781
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9071
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12291
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 188625
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 3964
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 22227603566
+ client_dur: 61556
+ binder_reply_id: 3965
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22227627247
+ server_dur: 19354
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 19354
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 11425
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 20107
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 30024
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 4011
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 22252767831
+ client_dur: 65418
+ binder_reply_id: 4012
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22252793033
+ server_dur: 24322
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 24322
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9532
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16695
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 39191
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 4590
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 22277925922
+ client_dur: 297059
+ binder_reply_id: 4591
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22278187629
+ server_dur: 20875
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 20875
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8032
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 13622
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 275405
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 4681
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 22303375651
+ client_dur: 55580
+ binder_reply_id: 4682
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22303396802
+ server_dur: 20656
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 20656
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7541
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 15865
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 32174
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 4789
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 22328804156
+ client_dur: 83145
+ binder_reply_id: 4790
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22328852158
+ server_dur: 21212
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 21212
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7428
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12713
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 63004
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 4912
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 22354003523
+ client_dur: 56819
+ binder_reply_id: 4913
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22354025291
+ server_dur: 20568
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 20568
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7717
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16651
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 32451
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 5344
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 22379156345
+ client_dur: 66779
+ binder_reply_id: 5345
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22379180900
+ server_dur: 25632
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 25632
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9606
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16243
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 40930
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 5480
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 22404448968
+ client_dur: 67438
+ binder_reply_id: 5481
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22404473541
+ server_dur: 24816
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 24816
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 10691
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16730
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 40017
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 5608
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 22429616334
+ client_dur: 74108
+ binder_reply_id: 5609
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22429639907
+ server_dur: 32292
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 32292
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 13271
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14730
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 46107
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 5747
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 22455238568
+ client_dur: 55788
+ binder_reply_id: 5748
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22455259634
+ server_dur: 20555
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 20555
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7809
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16028
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 31951
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 6304
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 22480383875
+ client_dur: 56554
+ binder_reply_id: 6305
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22480404678
+ server_dur: 20572
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 20572
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8832
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14625
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 33097
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 6443
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 22505531489
+ client_dur: 59218
+ binder_reply_id: 6444
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22505553139
+ server_dur: 22859
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 22859
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7802
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16504
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 34912
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 6611
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 22531090402
+ client_dur: 56749
+ binder_reply_id: 6612
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22531111630
+ server_dur: 20210
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 20210
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8856
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 15572
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 32321
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 6785
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 22556242635
+ client_dur: 57252
+ binder_reply_id: 6786
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22556262293
+ server_dur: 20917
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 20917
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9697
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14521
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 33034
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 7409
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 22581426858
+ client_dur: 266380
+ binder_reply_id: 7433
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22581641694
+ server_dur: 31182
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 31182
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 13421
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 5204
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12458
+ thread_state_count: 3
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 235297
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 7623
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 22606961662
+ client_dur: 557886
+ binder_reply_id: 7624
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22606985795
+ server_dur: 21756
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 21756
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 504854
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12479
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 40553
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 7798
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 22632616662
+ client_dur: 57814
+ binder_reply_id: 7799
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22632638644
+ server_dur: 20728
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 20728
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8302
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16765
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 32747
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 7953
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 22657890096
+ client_dur: 63825
+ binder_reply_id: 7954
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22657912861
+ server_dur: 22058
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 22058
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 13576
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 15710
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 34539
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 8572
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 22683093531
+ client_dur: 80792
+ binder_reply_id: 8575
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22683116244
+ server_dur: 21278
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 21278
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 16273
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 12328
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 23857
+ thread_state_count: 4
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 28334
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 8751
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 22708307977
+ client_dur: 67445
+ binder_reply_id: 8752
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22708332522
+ server_dur: 26370
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 26370
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9819
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 17290
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 40336
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 8919
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 22733506276
+ client_dur: 119221
+ binder_reply_id: 8921
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22733593661
+ server_dur: 19257
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 19257
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8050
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9268
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 101903
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 9084
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 22758727072
+ client_dur: 446508
+ binder_reply_id: 9090
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22759138073
+ server_dur: 20676
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 20676
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7674
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12230
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 426604
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 9710
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 22784311059
+ client_dur: 161051
+ binder_reply_id: 9722
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22784409798
+ server_dur: 20874
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 20874
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 28504
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16032
+ thread_state_count: 3
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 116515
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 9919
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 22809748047
+ client_dur: 57852
+ binder_reply_id: 9920
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22809770020
+ server_dur: 20538
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 20538
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8315
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 17220
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 32317
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 10091
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 22834902012
+ client_dur: 93361
+ binder_reply_id: 10092
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22834959559
+ server_dur: 21369
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 21369
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7188
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 13187
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 72986
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 10267
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 22860898758
+ client_dur: 82717
+ binder_reply_id: 10268
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22860942436
+ server_dur: 21910
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 21910
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9754
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14077
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 58886
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 10786
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 22886110503
+ client_dur: 99316
+ binder_reply_id: 10793
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22886176653
+ server_dur: 20849
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 20849
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5259
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9751
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 84306
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 10993
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 22911318220
+ client_dur: 66992
+ binder_reply_id: 10994
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22911345648
+ server_dur: 22362
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 22362
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9951
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16399
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 40642
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 11133
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 22936549304
+ client_dur: 58969
+ binder_reply_id: 11134
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22936570719
+ server_dur: 21297
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 21297
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8912
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 15559
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 34498
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 11312
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 22961701152
+ client_dur: 676548
+ binder_reply_id: 11317
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22962339912
+ server_dur: 22166
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 22166
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8225
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 13487
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 654836
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 11876
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 22987512708
+ client_dur: 79649
+ binder_reply_id: 11880
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22987551432
+ server_dur: 24288
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 24288
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8989
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 4929
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16919
+ thread_state_count: 3
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 48812
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 12114
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 23013143578
+ client_dur: 61635
+ binder_reply_id: 12115
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23013168634
+ server_dur: 20531
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 20531
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8959
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16647
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 36029
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 12206
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 23038642421
+ client_dur: 137175
+ binder_reply_id: 12207
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23038736570
+ server_dur: 20651
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 20651
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 15907
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 10104
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 111164
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 12351
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 23063886880
+ client_dur: 55663
+ binder_reply_id: 12352
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23063908358
+ server_dur: 16544
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 16544
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 10316
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 20800
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 24547
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 12865
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 23089198686
+ client_dur: 68926
+ binder_reply_id: 12868
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23089221371
+ server_dur: 23561
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 23561
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 15559
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 4839
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 18925
+ thread_state_count: 3
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 29603
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 13030
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 23114443451
+ client_dur: 64468
+ binder_reply_id: 13031
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23114469373
+ server_dur: 23341
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 23341
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8842
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16621
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 39005
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 13199
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 23139601722
+ client_dur: 78228
+ binder_reply_id: 13200
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23139640251
+ server_dur: 21320
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 21320
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 11718
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 13289
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 53221
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 13321
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 23164771069
+ client_dur: 91260
+ binder_reply_id: 13323
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23164821900
+ server_dur: 21423
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 21423
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 12675
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12113
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 66472
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 13863
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 23189996807
+ client_dur: 214050
+ binder_reply_id: 13881
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23190162200
+ server_dur: 20825
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 20825
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 15173
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 5003
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 17377
+ thread_state_count: 4
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 176497
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 14138
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 23215317200
+ client_dur: 57982
+ binder_reply_id: 14139
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23215338281
+ server_dur: 21069
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 21069
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8920
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 15546
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 33516
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 14283
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 23240472994
+ client_dur: 61104
+ binder_reply_id: 14284
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23240494382
+ server_dur: 22737
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 22737
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9723
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16372
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 35009
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 14457
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 23265633084
+ client_dur: 257686
+ binder_reply_id: 14459
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23265855074
+ server_dur: 21119
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 21119
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7423
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 20395
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 229868
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 14910
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 23294001031
+ client_dur: 68360
+ binder_reply_id: 14911
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23294024310
+ server_dur: 25000
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 25000
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 13225
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16261
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 38874
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 15096
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 23319166709
+ client_dur: 255922
+ binder_reply_id: 15099
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23319381423
+ server_dur: 24946
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 24946
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8881
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 13040
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 234001
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 15275
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 23344525034
+ client_dur: 66275
+ binder_reply_id: 15276
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23344548135
+ server_dur: 25737
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 25737
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9780
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16796
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 39699
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 15488
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 23369688943
+ client_dur: 61329
+ binder_reply_id: 15489
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23369711803
+ server_dur: 22061
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 22061
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8625
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 17286
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 35418
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 15935
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 23394850079
+ client_dur: 540888
+ binder_reply_id: 15938
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23395351729
+ server_dur: 22192
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 22192
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9023
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12585
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 519280
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 16118
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 23420492464
+ client_dur: 65743
+ binder_reply_id: 16119
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23420518127
+ server_dur: 22480
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 22480
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9719
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 17259
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 38765
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 16308
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 23451713078
+ client_dur: 68421
+ binder_reply_id: 16309
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23451738606
+ server_dur: 24478
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 24478
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 10971
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 17526
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 39924
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 16505
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 23476881893
+ client_dur: 64782
+ binder_reply_id: 16506
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23476905553
+ server_dur: 24602
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 24602
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9518
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 15734
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 39530
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 17180
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 23502042821
+ client_dur: 820095
+ binder_reply_id: 17187
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23502825079
+ server_dur: 23414
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 23414
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6727
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12388
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 800980
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 17329
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 23527974198
+ client_dur: 845116
+ binder_reply_id: 17338
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23528782089
+ server_dur: 23126
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 23126
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6348
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 18058
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 820710
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 17455
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 23553917567
+ client_dur: 59738
+ binder_reply_id: 17456
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23553940355
+ server_dur: 21362
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 21362
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8102
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 15817
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 35819
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 17570
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 23579071838
+ client_dur: 411519
+ binder_reply_id: 17573
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23579443790
+ server_dur: 25365
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 25365
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6992
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12937
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 391590
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 18208
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 23604582593
+ client_dur: 210023
+ binder_reply_id: 18211
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23604751577
+ server_dur: 24165
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 24165
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9225
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 13882
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 186916
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 18316
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 23629892322
+ client_dur: 194538
+ binder_reply_id: 18318
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23630049856
+ server_dur: 21631
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 21631
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8691
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12138
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 173709
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 18414
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 23655179880
+ client_dur: 142025
+ binder_reply_id: 18416
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23655273690
+ server_dur: 30591
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 30591
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 10169
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14396
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 117460
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 18496
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 23680421874
+ client_dur: 72852
+ binder_reply_id: 18497
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23680450743
+ server_dur: 26736
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 26736
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 10066
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 15850
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 46936
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 19127
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 23705597440
+ client_dur: 470856
+ binder_reply_id: 19130
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23706033599
+ server_dur: 21348
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 21348
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6561
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12626
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 451669
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 19266
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 23731172177
+ client_dur: 184006
+ binder_reply_id: 19268
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23731318438
+ server_dur: 21088
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 21088
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9165
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16769
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 158072
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 19360
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 23757576836
+ client_dur: 69175
+ binder_reply_id: 19361
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23757598859
+ server_dur: 22748
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 22748
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8592
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 25079
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 35504
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 19429
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 23782737996
+ client_dur: 59451
+ binder_reply_id: 19430
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23782758417
+ server_dur: 25123
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 25123
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7644
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14757
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 37050
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 20019
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 23807891211
+ client_dur: 62509
+ binder_reply_id: 20020
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23807914516
+ server_dur: 23582
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 23582
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9525
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14853
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 38131
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 20089
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 23833055418
+ client_dur: 163286
+ binder_reply_id: 20091
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23833182220
+ server_dur: 22315
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 22315
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7294
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12073
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 143919
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 20157
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 23858313038
+ client_dur: 57714
+ binder_reply_id: 20158
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23858335729
+ server_dur: 20454
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 20454
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8354
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 15536
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 33824
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 20178
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 23883462809
+ client_dur: 59212
+ binder_reply_id: 20179
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23883487934
+ server_dur: 19666
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 19666
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8403
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16308
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 34501
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 20563
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 23908617410
+ client_dur: 67454
+ binder_reply_id: 20564
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23908643220
+ server_dur: 25095
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 25095
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9772
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16210
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 41472
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 20574
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 23933826058
+ client_dur: 54993
+ binder_reply_id: 20575
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23933846583
+ server_dur: 19834
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 19834
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8695
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14947
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 31351
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 20583
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 23958974344
+ client_dur: 56757
+ binder_reply_id: 20584
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23958997349
+ server_dur: 19668
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 19668
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8495
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 15900
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 32362
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 20605
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 23984212731
+ client_dur: 65425
+ binder_reply_id: 20606
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23984244337
+ server_dur: 18760
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 18760
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9563
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9977
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 45885
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 21028
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 24009326493
+ client_dur: 55937
+ binder_reply_id: 21029
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24009348026
+ server_dur: 20878
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 20878
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7497
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 15501
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 32939
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 21134
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 24034474905
+ client_dur: 323973
+ binder_reply_id: 21139
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24034762131
+ server_dur: 21724
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 21724
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8553
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12191
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 303229
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 21225
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 24059888481
+ client_dur: 269355
+ binder_reply_id: 21226
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24060121507
+ server_dur: 21099
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 21099
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8385
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12535
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 248435
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 21344
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 24085507070
+ client_dur: 65864
+ binder_reply_id: 21345
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24085532155
+ server_dur: 24607
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 24607
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9483
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16276
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 40105
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 21890
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 24110668836
+ client_dur: 62135
+ binder_reply_id: 21891
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24110692176
+ server_dur: 23546
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 23546
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8945
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 15014
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 38176
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 21953
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 24135822325
+ client_dur: 55790
+ binder_reply_id: 21954
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24135843301
+ server_dur: 20745
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 20745
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8082
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14930
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 32778
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 22007
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 24160973601
+ client_dur: 64296
+ binder_reply_id: 22008
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24160998105
+ server_dur: 24373
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 24373
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8916
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16157
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 39223
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 22109
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 24186129350
+ client_dur: 61214
+ binder_reply_id: 22110
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24186153807
+ server_dur: 21100
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 21100
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9046
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 15505
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 36663
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 22493
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 24211335205
+ client_dur: 99239
+ binder_reply_id: 22494
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24211379278
+ server_dur: 25032
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 25032
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 16225
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 44023
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 38991
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 22570
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 24236559912
+ client_dur: 85757
+ binder_reply_id: 22571
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24236597491
+ server_dur: 27319
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 27319
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 12613
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 20260
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 52884
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 22681
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 24261743662
+ client_dur: 72120
+ binder_reply_id: 22682
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24261771646
+ server_dur: 25209
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 25209
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 10989
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 18505
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 42626
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 22850
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 24286913419
+ client_dur: 330217
+ binder_reply_id: 22852
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24287198196
+ server_dur: 22848
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 22848
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 13147
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16123
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 300947
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 23523
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 24312358034
+ client_dur: 69020
+ binder_reply_id: 23525
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24312388724
+ server_dur: 21476
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 21476
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9169
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 3934
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 22232
+ thread_state_count: 3
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 33685
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 23776
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 24337574519
+ client_dur: 104255
+ binder_reply_id: 23777
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24337613079
+ server_dur: 33967
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 33967
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 18488
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 46482
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 39285
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 23976
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 24362804629
+ client_dur: 58822
+ binder_reply_id: 23977
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24362826557
+ server_dur: 20783
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 20783
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8866
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 18502
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 31454
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 24148
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 24387968494
+ client_dur: 63171
+ binder_reply_id: 24149
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24387991414
+ server_dur: 24460
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 24460
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9482
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 23183
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 30506
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 24737
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 24414399633
+ client_dur: 3357310
+ binder_reply_id: 24738
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24414422286
+ server_dur: 20459
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 20459
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 3308782
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 13321
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 35207
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 24941
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 24443111092
+ client_dur: 63218
+ binder_reply_id: 24942
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24443132289
+ server_dur: 23717
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 23717
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 13455
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11913
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 37850
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 25032
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 24468268772
+ client_dur: 63940
+ binder_reply_id: 25033
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24468295057
+ server_dur: 21634
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 21634
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9468
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 15478
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 38994
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 25049
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 24493507908
+ client_dur: 75072
+ binder_reply_id: 25050
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24493536500
+ server_dur: 22590
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 22590
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 18655
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 27922
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 28495
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 25570
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 24518715570
+ client_dur: 83147
+ binder_reply_id: 25571
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24518746589
+ server_dur: 20133
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 20133
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 25817
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 30564
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 26766
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 25577
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 24544028919
+ client_dur: 105487
+ binder_reply_id: 25578
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24544069334
+ server_dur: 24026
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 24026
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 34411
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 45393
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 25683
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 25612
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 24569328112
+ client_dur: 106610
+ binder_reply_id: 25613
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24569369501
+ server_dur: 41826
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 41826
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 16549
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 28261
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 61800
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 25695
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 24594543032
+ client_dur: 45871
+ binder_reply_id: 25696
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24594558488
+ server_dur: 20382
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 20382
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 35829
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 10042
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 26250
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 24619690623
+ client_dur: 58336
+ binder_reply_id: 26251
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24619710131
+ server_dur: 25779
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 25779
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 46077
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12259
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 26280
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 24644930551
+ client_dur: 105892
+ binder_reply_id: 26281
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24644975052
+ server_dur: 34388
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 34388
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 19919
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 36362
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 49611
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 26427
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 24670207638
+ client_dur: 54225
+ binder_reply_id: 26428
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24670224041
+ server_dur: 26208
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 26208
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 44872
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9353
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 26627
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 24695363832
+ client_dur: 47347
+ binder_reply_id: 26628
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24695380382
+ server_dur: 19885
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 19885
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 36449
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 10898
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 27303
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 24720504163
+ client_dur: 41635
+ binder_reply_id: 27304
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24720517121
+ server_dur: 18951
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 18951
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 32352
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9283
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 27397
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 24745651155
+ client_dur: 50201
+ binder_reply_id: 27398
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24745667169
+ server_dur: 21953
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 21953
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 39920
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 10281
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 27564
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 24770795510
+ client_dur: 45248
+ binder_reply_id: 27565
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24770810644
+ server_dur: 19730
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 19730
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 35397
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9851
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 27717
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 24795949562
+ client_dur: 44458
+ binder_reply_id: 27718
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24795964339
+ server_dur: 19474
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 19474
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 34869
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9589
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 28119
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 24821098319
+ client_dur: 45736
+ binder_reply_id: 28120
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24821113887
+ server_dur: 19916
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 19916
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 35672
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 10064
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 28309
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 24846533416
+ client_dur: 52565
+ binder_reply_id: 28310
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24846550147
+ server_dur: 20978
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 20978
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 41767
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 10798
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 28508
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 24871959612
+ client_dur: 33762
+ binder_reply_id: 28509
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24871969021
+ server_dur: 15109
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 15109
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 26946
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 6816
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 28695
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 24897089502
+ client_dur: 36235
+ binder_reply_id: 28696
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24897101194
+ server_dur: 15306
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 15306
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 27063
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9172
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 29392
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 24922327702
+ client_dur: 47487
+ binder_reply_id: 29393
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24922343062
+ server_dur: 20895
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 20895
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 37169
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 10318
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 29708
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 24947478390
+ client_dur: 50011
+ binder_reply_id: 29709
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24947495490
+ server_dur: 21244
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 21244
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 38490
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11521
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 29826
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 24972625739
+ client_dur: 46864
+ binder_reply_id: 29827
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24972642054
+ server_dur: 20460
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 20460
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 35943
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 10921
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 29925
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 24997766928
+ client_dur: 105830
+ binder_reply_id: 29926
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24997800832
+ server_dur: 45031
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 45031
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 16322
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 15284
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 74224
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 30443
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 25023405381
+ client_dur: 86423
+ binder_reply_id: 30444
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25023438732
+ server_dur: 29757
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 29757
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 16596
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 17720
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 52107
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 30598
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 25048609139
+ client_dur: 56222
+ binder_reply_id: 30599
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25048631235
+ server_dur: 16655
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 16655
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 12493
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 20090
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 23639
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 30745
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 25073875780
+ client_dur: 84120
+ binder_reply_id: 30746
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25073898205
+ server_dur: 15854
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 15854
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 38036
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 24143
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 21941
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 30907
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 25099064916
+ client_dur: 204188
+ binder_reply_id: 30908
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25099198462
+ server_dur: 49025
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 49025
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 13087
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 10305
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 180796
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 31465
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 25124642124
+ client_dur: 68889
+ binder_reply_id: 31466
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25124666670
+ server_dur: 29243
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 29243
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 52869
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16020
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 31607
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 25149891522
+ client_dur: 60500
+ binder_reply_id: 31608
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25149912505
+ server_dur: 27000
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 27000
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 47837
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12663
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 31797
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 25175121734
+ client_dur: 65293
+ binder_reply_id: 31798
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25175141892
+ server_dur: 23570
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 23570
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 16586
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12587
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 36120
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 31960
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 25200283959
+ client_dur: 44045
+ binder_reply_id: 31961
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25200298152
+ server_dur: 19339
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 19339
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 34937
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9108
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 32621
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 25225419452
+ client_dur: 43144
+ binder_reply_id: 32622
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25225434070
+ server_dur: 18615
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 18615
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 33553
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9591
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 32735
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 25250561510
+ client_dur: 82814
+ binder_reply_id: 32736
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25250589325
+ server_dur: 36944
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 36944
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 11495
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11883
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 59436
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 32757
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 25275837002
+ client_dur: 111602
+ binder_reply_id: 32758
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25275893327
+ server_dur: 33040
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 33040
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 15712
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 20492
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 75398
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 32900
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 25301779154
+ client_dur: 81058
+ binder_reply_id: 32901
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25301805031
+ server_dur: 24119
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 24119
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 23577
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 17334
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 40147
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 33247
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 25327028096
+ client_dur: 144639
+ binder_reply_id: 33248
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25327077936
+ server_dur: 53753
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 53753
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 22462
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 46910
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 75267
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 33290
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 25352301178
+ client_dur: 837973
+ binder_reply_id: 33292
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25353047151
+ server_dur: 48734
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 48734
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 29697
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 22013
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 786263
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 33320
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 25378250275
+ client_dur: 77754
+ binder_reply_id: 33321
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25378276198
+ server_dur: 28616
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 28616
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 16079
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 17879
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 43796
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 33425
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 25403423456
+ client_dur: 65101
+ binder_reply_id: 33426
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25403445450
+ server_dur: 23191
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 23191
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9148
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14483
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 41470
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::java::IActivityManager::registerUidObserver::server"
+ binder_txn_id: 33427
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 25403532822
+ client_dur: 243238
+ binder_reply_id: 33428
+ server_process: "system_server"
+ server_thread: "binder:641_4"
+ server_ts: 25403547799
+ server_dur: 210707
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "R+"
+ thread_state_dur: 62120
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 148587
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 11931
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16554
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 214753
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 33431
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 25403800150
+ client_dur: 77678
+ binder_reply_id: 33432
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25403821750
+ server_dur: 43829
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 43829
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8383
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 15372
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 53923
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 34122
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 25429003446
+ client_dur: 55342
+ binder_reply_id: 34123
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25429021995
+ server_dur: 20582
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 20582
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 11420
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11916
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 32006
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 34277
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 25454157095
+ client_dur: 68221
+ binder_reply_id: 34278
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25454182918
+ server_dur: 20352
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 20352
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 16203
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16059
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 35959
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 34330
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 25479325945
+ client_dur: 157863
+ binder_reply_id: 34331
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25479422370
+ server_dur: 35765
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 35765
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 16634
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16400
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 124829
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 34378
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 25504631134
+ client_dur: 1082750
+ binder_reply_id: 34379
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25505253998
+ server_dur: 109396
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 109396
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 332679
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 31846
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 718225
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::java::ISensorPrivacyManager::isSensorPrivacyEnabled::server"
+ binder_txn_id: 34382
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 25505818197
+ client_dur: 3125407
+ binder_reply_id: 34383
+ server_process: "system_server"
+ server_thread: "binder:641_4"
+ server_ts: 25505891588
+ server_dur: 3000749
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "D"
+ thread_state_dur: 864664
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "R"
+ thread_state_dur: 1592392
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "R+"
+ thread_state_dur: 10030
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 533663
+ thread_state_count: 3
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 38947
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 26597
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 3059863
+ thread_state_count: 1
+ }
+ blocked_functions {
+ thread_state_type: "binder_reply"
+ blocked_function: "filemap_fault"
+ blocked_function_dur: 864664
+ blocked_function_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::java::ISensorPrivacyManager::addSensorPrivacyListener::server"
+ binder_txn_id: 34400
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 25508998675
+ client_dur: 379026
+ binder_reply_id: 34401
+ server_process: "system_server"
+ server_thread: "binder:641_4"
+ server_ts: 25509052778
+ server_dur: 272193
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 272193
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 43617
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 36041
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 299368
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 34431
+ client_process: "/system/bin/audioserver"
+ client_thread: "audioserver"
+ is_main_thread: true
+ client_ts: 25512878756
+ client_dur: 151351
+ binder_reply_id: 34432
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25512939518
+ server_dur: 62943
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 62943
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 19646
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 46833
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 84872
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 51
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 21612276580
+ client_dur: 39977
+ binder_reply_id: 52
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 21612292301
+ server_dur: 14064
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 14064
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5557
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14565
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 19855
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 119
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 21637405403
+ client_dur: 60035
+ binder_reply_id: 120
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 21637427285
+ server_dur: 24550
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 24550
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8089
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 13004
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 38942
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 422
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 21662560974
+ client_dur: 372941
+ binder_reply_id: 457
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 21662897046
+ server_dur: 22907
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 22907
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8607
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 10909
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 353425
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 784
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 21688024281
+ client_dur: 59297
+ binder_reply_id: 785
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 21688047484
+ server_dur: 21173
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 21173
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9993
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11115
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 38189
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 813
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 21713127573
+ client_dur: 63596
+ binder_reply_id: 814
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 21713152373
+ server_dur: 21155
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 21155
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 12575
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 13519
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 37502
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 874
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 21738283156
+ client_dur: 60407
+ binder_reply_id: 875
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 21738305184
+ server_dur: 24886
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 24886
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8769
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14319
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 37319
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 963
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 21763445363
+ client_dur: 70801
+ binder_reply_id: 967
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 21763467940
+ server_dur: 30748
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 30748
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 10609
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 15145
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 45047
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 1452
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 21788612931
+ client_dur: 57076
+ binder_reply_id: 1453
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 21788635008
+ server_dur: 21359
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 21359
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7813
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 15147
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 34116
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 1464
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 21813762065
+ client_dur: 61236
+ binder_reply_id: 1465
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 21813783295
+ server_dur: 25042
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 25042
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8506
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 15555
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 37175
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 1488
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 21838919344
+ client_dur: 59886
+ binder_reply_id: 1489
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 21838943470
+ server_dur: 20686
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 20686
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8768
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16027
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 35091
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 1502
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 21864144722
+ client_dur: 71604
+ binder_reply_id: 1503
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 21864171886
+ server_dur: 25966
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 25966
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 11339
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 28839
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 31426
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 2036
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 21889317261
+ client_dur: 517889
+ binder_reply_id: 2038
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 21889524828
+ server_dur: 21638
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 21638
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 282329
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11971
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 223589
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 2102
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 21914927560
+ client_dur: 59832
+ binder_reply_id: 2103
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 21914949348
+ server_dur: 23104
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 23104
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8331
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14266
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 37235
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 2170
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 21940080190
+ client_dur: 63873
+ binder_reply_id: 2171
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 21940103851
+ server_dur: 24784
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 24784
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9061
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 15765
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 39047
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 2221
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 21965236304
+ client_dur: 87480
+ binder_reply_id: 2222
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 21965262841
+ server_dur: 47604
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "R+"
+ thread_state_dur: 5393
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 42211
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6996
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16680
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 63804
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 2662
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 21990454958
+ client_dur: 89222
+ binder_reply_id: 2663
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 21990491103
+ server_dur: 25934
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 25934
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 15158
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 40183
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 33881
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 2702
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 22015656850
+ client_dur: 62246
+ binder_reply_id: 2703
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22015682089
+ server_dur: 21161
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 21161
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9579
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 15452
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 37215
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 2737
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 22040814163
+ client_dur: 64221
+ binder_reply_id: 2738
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22040838835
+ server_dur: 24377
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 24377
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8553
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16839
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 38829
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 2799
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 22066737714
+ client_dur: 128820
+ binder_reply_id: 2801
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22066831151
+ server_dur: 19563
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 19563
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9331
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11643
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 107846
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 3302
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 22091960087
+ client_dur: 58325
+ binder_reply_id: 3303
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22091982875
+ server_dur: 21344
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 21344
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8051
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 15091
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 35183
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 3322
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 22117113923
+ client_dur: 63410
+ binder_reply_id: 3323
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22117137718
+ server_dur: 23868
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 23868
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9413
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16313
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 37684
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 3342
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 22142267357
+ client_dur: 59986
+ binder_reply_id: 3343
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22142291376
+ server_dur: 21134
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 21134
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8675
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 15993
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 35318
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 3398
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 22167423522
+ client_dur: 59967
+ binder_reply_id: 3399
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22167445520
+ server_dur: 22511
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 22511
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8810
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 15006
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 36151
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 3944
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 22192579344
+ client_dur: 60820
+ binder_reply_id: 3945
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22192603786
+ server_dur: 21006
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 21006
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9037
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16131
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 35652
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 3957
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 22217730341
+ client_dur: 55283
+ binder_reply_id: 3958
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22217750903
+ server_dur: 20680
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 20680
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8129
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14320
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 32834
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 3990
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 22242880300
+ client_dur: 71100
+ binder_reply_id: 3991
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22242905309
+ server_dur: 26682
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 26682
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 14397
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 13624
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 43079
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 4043
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 22268043393
+ client_dur: 409558
+ binder_reply_id: 4045
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22268414904
+ server_dur: 21405
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 21405
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9953
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12953
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 386652
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 4633
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 22293548146
+ client_dur: 63871
+ binder_reply_id: 4634
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22293572042
+ server_dur: 22980
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 22980
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 10126
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 15356
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 38389
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 4744
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 22318716098
+ client_dur: 339826
+ binder_reply_id: 4746
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22318736854
+ server_dur: 23010
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 23010
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 291156
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12880
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 35790
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 4851
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 22344146679
+ client_dur: 110188
+ binder_reply_id: 4852
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22344218394
+ server_dur: 24011
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 24011
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7484
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12715
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 89989
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 4983
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 22369334226
+ client_dur: 94388
+ binder_reply_id: 4985
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22369355609
+ server_dur: 48856
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 48856
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 16893
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16704
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 60791
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 5432
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 22394536230
+ client_dur: 62982
+ binder_reply_id: 5433
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22394561551
+ server_dur: 22059
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 22059
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9958
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16665
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 36359
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 5563
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 22419697576
+ client_dur: 61323
+ binder_reply_id: 5564
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22419722756
+ server_dur: 21994
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 21994
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7691
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 15191
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 38441
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 5695
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 22445031509
+ client_dur: 50515
+ binder_reply_id: 5696
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22445050820
+ server_dur: 17128
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 17128
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7892
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 17049
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 25574
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 5813
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 22470174653
+ client_dur: 55822
+ binder_reply_id: 5814
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22470196239
+ server_dur: 21286
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 21286
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6971
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14509
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 34342
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 6375
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 22495325972
+ client_dur: 68180
+ binder_reply_id: 6376
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22495350975
+ server_dur: 26711
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 26711
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9856
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 17949
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 40375
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 6561
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 22521360985
+ client_dur: 234231
+ binder_reply_id: 6563
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22521382730
+ server_dur: 21186
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 21186
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 186574
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14023
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 33634
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 6719
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 22546697891
+ client_dur: 98444
+ binder_reply_id: 6720
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22546761058
+ server_dur: 19881
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 19881
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8290
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12860
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 77294
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 6903
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 22571892907
+ client_dur: 66101
+ binder_reply_id: 6904
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22571916881
+ server_dur: 25795
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 25795
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9466
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16260
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 40375
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 7574
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 22597062070
+ client_dur: 259462
+ binder_reply_id: 7575
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22597272531
+ server_dur: 34173
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 34173
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7034
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14842
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 237586
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 7723
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 22622418577
+ client_dur: 59816
+ binder_reply_id: 7724
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22622443274
+ server_dur: 21430
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 21430
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7031
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16096
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 36689
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 7910
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 22650180912
+ client_dur: 473997
+ binder_reply_id: 7912
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22650255041
+ server_dur: 19254
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 19254
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 375676
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9818
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 88503
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 8060
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 22675764005
+ client_dur: 70615
+ binder_reply_id: 8064
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22675789713
+ server_dur: 25069
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 25069
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 14282
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 18926
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 37407
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 8696
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 22701432879
+ client_dur: 450491
+ binder_reply_id: 8703
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22701762194
+ server_dur: 23978
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 23978
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 91965
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11943
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 346583
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 8871
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 22726978606
+ client_dur: 401005
+ binder_reply_id: 8874
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22727339544
+ server_dur: 23475
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 23475
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9364
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 13170
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 378471
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 9057
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 22752478293
+ client_dur: 586574
+ binder_reply_id: 9062
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22753025360
+ server_dur: 21422
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 21422
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 10672
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 13025
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 562877
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 9212
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 22778161650
+ client_dur: 349397
+ binder_reply_id: 9215
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22778472830
+ server_dur: 22980
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 22980
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8067
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 13219
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 328111
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 9880
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 22803612048
+ client_dur: 67634
+ binder_reply_id: 9882
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22803636072
+ server_dur: 23917
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 23917
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 12736
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16701
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 38197
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 10057
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 22828777874
+ client_dur: 318230
+ binder_reply_id: 10059
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22828822556
+ server_dur: 26877
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 26877
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 239363
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14416
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 64451
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 10228
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 22854196228
+ client_dur: 561632
+ binder_reply_id: 10232
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22854720488
+ server_dur: 21460
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 21460
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9001
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12707
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 539924
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 10376
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 22879856680
+ client_dur: 63364
+ binder_reply_id: 10377
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22879882339
+ server_dur: 22238
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 22238
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8305
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16548
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 38511
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 10937
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 22905018627
+ client_dur: 66122
+ binder_reply_id: 10938
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22905041577
+ server_dur: 26326
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 26326
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9506
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 15718
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 40898
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 11104
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 22930183511
+ client_dur: 67161
+ binder_reply_id: 11105
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22930213119
+ server_dur: 23605
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 23605
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8499
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 13836
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 44826
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 11258
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 22955349414
+ client_dur: 156341
+ binder_reply_id: 11261
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22955463649
+ server_dur: 24599
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 24599
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9328
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14352
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 132661
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 11429
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 22980607439
+ client_dur: 65794
+ binder_reply_id: 11430
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22980629549
+ server_dur: 26192
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 26192
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9826
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16908
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 39060
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 12057
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 23005774838
+ client_dur: 62936
+ binder_reply_id: 12058
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23005798704
+ server_dur: 23801
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 23801
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7899
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16084
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 38953
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 12168
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 23030941978
+ client_dur: 89285
+ binder_reply_id: 12169
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23030973182
+ server_dur: 37855
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 37855
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 11326
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 18246
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 59713
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 12300
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 23056174448
+ client_dur: 200618
+ binder_reply_id: 12301
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23056329883
+ server_dur: 23980
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 23980
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 15488
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12093
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 173037
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 12443
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 23081467052
+ client_dur: 59125
+ binder_reply_id: 12444
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23081486828
+ server_dur: 24680
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 24680
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8329
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14922
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 35874
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 12986
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 23106620846
+ client_dur: 61616
+ binder_reply_id: 12987
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23106642188
+ server_dur: 24012
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 24012
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9323
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 15968
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 36325
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 13145
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 23131777328
+ client_dur: 123447
+ binder_reply_id: 13146
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23131861232
+ server_dur: 22637
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 22637
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9840
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12638
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 100969
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 13280
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 23157002672
+ client_dur: 79156
+ binder_reply_id: 13283
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23157030248
+ server_dur: 27226
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 27226
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 19423
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 15188
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 44545
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 13431
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 23182173903
+ client_dur: 376646
+ binder_reply_id: 13434
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23182500065
+ server_dur: 21132
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 21132
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 10957
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 24276
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 341413
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 14086
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 23207650439
+ client_dur: 67278
+ binder_reply_id: 14087
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23207680535
+ server_dur: 23155
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 23155
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6990
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 17164
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 43124
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 14230
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 23233851428
+ client_dur: 892848
+ binder_reply_id: 14231
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23233871293
+ server_dur: 23312
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 23312
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 844258
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 13087
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 35503
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 14429
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 23259841421
+ client_dur: 63174
+ binder_reply_id: 14430
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23259863994
+ server_dur: 23889
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 23889
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9006
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16013
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 38155
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 14599
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 23284999517
+ client_dur: 56437
+ binder_reply_id: 14600
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23285019554
+ server_dur: 21307
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 21307
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8195
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14722
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 33520
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 15034
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 23310151865
+ client_dur: 642229
+ binder_reply_id: 15040
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23310751409
+ server_dur: 26103
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 26103
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8826
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 13505
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 619898
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 15212
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 23335905400
+ client_dur: 357982
+ binder_reply_id: 15215
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23336222503
+ server_dur: 25821
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 25821
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8217
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11836
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 337929
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 15414
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 23361328882
+ client_dur: 63784
+ binder_reply_id: 15415
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23361351852
+ server_dur: 24700
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 24700
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8647
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 17108
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 38029
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 15619
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 23386869959
+ client_dur: 66376
+ binder_reply_id: 15620
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23386894766
+ server_dur: 25613
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 25613
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8350
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 17460
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 40566
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 16049
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 23412468379
+ client_dur: 144242
+ binder_reply_id: 16050
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23412492591
+ server_dur: 28309
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 28309
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 86170
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 15983
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 42089
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 16251
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 23437712307
+ client_dur: 61646
+ binder_reply_id: 16252
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23437733692
+ server_dur: 21877
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 21877
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 12024
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 13942
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 35680
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 16396
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 23462870779
+ client_dur: 64694
+ binder_reply_id: 16398
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23462898239
+ server_dur: 21829
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 21829
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8391
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16659
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 39644
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 16595
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 23488042638
+ client_dur: 69970
+ binder_reply_id: 16596
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23488068942
+ server_dur: 26303
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 26303
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9774
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 17490
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 42706
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 17254
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 23513211192
+ client_dur: 57998
+ binder_reply_id: 17255
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23513232838
+ server_dur: 22355
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 22355
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8638
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14380
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 34980
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 17394
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 23538364057
+ client_dur: 90805
+ binder_reply_id: 17396
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23538417034
+ server_dur: 21543
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 21543
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9281
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12396
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 69128
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 17505
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 23563555747
+ client_dur: 62301
+ binder_reply_id: 17506
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23563577896
+ server_dur: 23477
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 23477
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 10106
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 17027
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 35168
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 17632
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 23588716088
+ client_dur: 122069
+ binder_reply_id: 17634
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23588796199
+ server_dur: 21803
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 21803
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 13101
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 13448
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 95520
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 18260
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 23613942195
+ client_dur: 406560
+ binder_reply_id: 18262
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23614311041
+ server_dur: 21665
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 21665
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8991
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11695
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 385874
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 18372
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 23639449764
+ client_dur: 297834
+ binder_reply_id: 18375
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23639707345
+ server_dur: 24585
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 24585
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8229
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 13424
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 276181
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 18447
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 23664840926
+ client_dur: 64026
+ binder_reply_id: 18448
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23664863549
+ server_dur: 25828
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 25828
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9120
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 15951
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 38955
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 18539
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 23689999571
+ client_dur: 60667
+ binder_reply_id: 18540
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23690020989
+ server_dur: 24039
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 24039
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8754
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 15791
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 36122
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 19166
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 23715668567
+ client_dur: 55651
+ binder_reply_id: 19167
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23715687865
+ server_dur: 20534
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 20534
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9561
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 15563
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 30527
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 19303
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 23740820398
+ client_dur: 69779
+ binder_reply_id: 19304
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23740846289
+ server_dur: 26005
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 26005
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 10777
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16279
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 42723
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 19382
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 23765983216
+ client_dur: 63111
+ binder_reply_id: 19383
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23766008333
+ server_dur: 22489
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 22489
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8790
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 17083
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 37238
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 19458
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 23791142714
+ client_dur: 62184
+ binder_reply_id: 19459
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23791165515
+ server_dur: 24176
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 24176
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9231
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 15606
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 37347
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 20037
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 23816748979
+ client_dur: 97527
+ binder_reply_id: 20038
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23816810994
+ server_dur: 19216
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 19216
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9955
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11348
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 76224
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 20114
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 23841937008
+ client_dur: 265351
+ binder_reply_id: 20116
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23842045870
+ server_dur: 21030
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 21030
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 129029
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12524
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 123798
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 20167
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 23867298197
+ client_dur: 65269
+ binder_reply_id: 20168
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23867323342
+ server_dur: 24762
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 24762
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9144
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16186
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 39939
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 20181
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 23892458661
+ client_dur: 61895
+ binder_reply_id: 20182
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23892481485
+ server_dur: 23511
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 23511
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9424
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 15805
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 36666
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 20570
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 23917612205
+ client_dur: 60756
+ binder_reply_id: 20571
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23917632161
+ server_dur: 27790
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 27790
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7172
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 15193
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 38391
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 20580
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 23942767445
+ client_dur: 56639
+ binder_reply_id: 20581
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23942789248
+ server_dur: 20150
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 20150
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8851
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16225
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 31563
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 20586
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 23967917345
+ client_dur: 61714
+ binder_reply_id: 20587
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23967941212
+ server_dur: 23677
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 23677
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8639
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 15525
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 37550
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 20609
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 23993073217
+ client_dur: 61426
+ binder_reply_id: 20610
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23993098746
+ server_dur: 21011
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 21011
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9162
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16343
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 35921
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 21074
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 24018227157
+ client_dur: 154788
+ binder_reply_id: 21077
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24018346321
+ server_dur: 21354
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 21354
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8072
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12163
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 134553
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 21173
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 24043472861
+ client_dur: 56072
+ binder_reply_id: 21174
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24043492721
+ server_dur: 20952
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 20952
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8817
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14727
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 32528
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 21282
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 24068623147
+ client_dur: 61422
+ binder_reply_id: 21283
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24068647003
+ server_dur: 23307
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 23307
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7892
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14931
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 38599
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 21381
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 24094174551
+ client_dur: 60440
+ binder_reply_id: 21382
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24094198265
+ server_dur: 20963
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 20963
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9741
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16421
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 34278
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 21895
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 24119330336
+ client_dur: 62796
+ binder_reply_id: 21896
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24119353765
+ server_dur: 24014
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 24014
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9261
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 15581
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 37954
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 21968
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 24144486541
+ client_dur: 57521
+ binder_reply_id: 21969
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24144507336
+ server_dur: 20651
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 20651
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9760
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 15741
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 32020
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 22044
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 24169644272
+ client_dur: 59318
+ binder_reply_id: 22045
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24169667507
+ server_dur: 21848
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 21848
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8155
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14106
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 37057
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 22132
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 24194796993
+ client_dur: 61133
+ binder_reply_id: 22134
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24194818919
+ server_dur: 24981
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 24981
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9553
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 13816
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 37764
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 22535
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 24219976971
+ client_dur: 80874
+ binder_reply_id: 22536
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24220009018
+ server_dur: 24029
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 24029
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 15353
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 30282
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 35239
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 22605
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 24245182141
+ client_dur: 75715
+ binder_reply_id: 22606
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24245212188
+ server_dur: 24869
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 24869
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 12976
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 18093
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 44646
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 22736
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 24270354623
+ client_dur: 72978
+ binder_reply_id: 22737
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24270381508
+ server_dur: 24460
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 24460
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 13754
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 18622
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 40602
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 22954
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 24296497808
+ client_dur: 74119
+ binder_reply_id: 22955
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24296524147
+ server_dur: 25619
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 25619
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 13970
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 20071
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 40078
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 23605
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 24321677437
+ client_dur: 1068351
+ binder_reply_id: 23619
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24322701227
+ server_dur: 22458
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 22458
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 13373
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 15664
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 1039314
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 23875
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 24349464998
+ client_dur: 600120
+ binder_reply_id: 23876
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24349498235
+ server_dur: 21721
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 21721
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 538437
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 28871
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 32812
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 24063
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 24375203138
+ client_dur: 200814
+ binder_reply_id: 24069
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24375371665
+ server_dur: 20774
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 20774
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6689
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11685
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 182440
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 24195
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 24400499298
+ client_dur: 1655381
+ binder_reply_id: 24196
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24400525814
+ server_dur: 20740
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 20740
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 1601604
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16472
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 37305
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 24805
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 24427255856
+ client_dur: 74073
+ binder_reply_id: 24806
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24427281368
+ server_dur: 33400
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 33400
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 10045
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 13148
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 50880
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 24991
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 24452425092
+ client_dur: 66019
+ binder_reply_id: 24992
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24452453488
+ server_dur: 22713
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 22713
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8009
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 15972
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 42038
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 25036
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 24477584081
+ client_dur: 77570
+ binder_reply_id: 25037
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24477603311
+ server_dur: 20359
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 20359
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 32090
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14927
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 30553
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 25062
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 24502766882
+ client_dur: 85030
+ binder_reply_id: 25063
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24502792394
+ server_dur: 34540
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 34540
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 19555
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 22566
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 42909
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 25574
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 24528063792
+ client_dur: 88744
+ binder_reply_id: 25575
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24528100762
+ server_dur: 19035
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 19035
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 26645
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 42946
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 19153
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 25580
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 24553269933
+ client_dur: 102641
+ binder_reply_id: 25581
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24553320732
+ server_dur: 19753
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 19753
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 25759
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 61089
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 15793
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 25637
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 24578496582
+ client_dur: 75733
+ binder_reply_id: 25638
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24578522139
+ server_dur: 31879
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 31879
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 12741
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16238
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 46754
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 25722
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 24603666160
+ client_dur: 32902
+ binder_reply_id: 25723
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24603676548
+ server_dur: 13734
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 13734
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5562
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 7859
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 19481
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 26255
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 24628827055
+ client_dur: 77433
+ binder_reply_id: 26256
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24628855199
+ server_dur: 31376
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 31376
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 12475
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 17814
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 47144
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 26303
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 24654016554
+ client_dur: 82862
+ binder_reply_id: 26304
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24654047419
+ server_dur: 27392
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 27392
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 13718
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 27480
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 41664
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 26498
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 24679300128
+ client_dur: 51067
+ binder_reply_id: 26499
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24679317330
+ server_dur: 23251
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 23251
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7018
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9865
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 34184
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 26703
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 24704445330
+ client_dur: 53313
+ binder_reply_id: 26704
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24704463794
+ server_dur: 20543
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 20543
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7424
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14915
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 30974
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 27351
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 24729604221
+ client_dur: 73960
+ binder_reply_id: 27353
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24729643378
+ server_dur: 19819
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 19819
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 10152
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 10183
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 53625
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 27453
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 24754787089
+ client_dur: 79191
+ binder_reply_id: 27454
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24754812563
+ server_dur: 21216
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 21216
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 22836
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 23483
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 32872
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 27639
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 24779973546
+ client_dur: 61655
+ binder_reply_id: 27640
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24779997866
+ server_dur: 21840
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 21840
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9255
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14596
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 37804
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 27743
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 24805151631
+ client_dur: 65179
+ binder_reply_id: 27744
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24805176625
+ server_dur: 24502
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 24502
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8737
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16281
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 40161
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 28208
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 24830317956
+ client_dur: 66289
+ binder_reply_id: 28209
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24830344368
+ server_dur: 21990
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 21990
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 12267
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 13259
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 40763
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 28391
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 24855481377
+ client_dur: 65228
+ binder_reply_id: 28392
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24855502595
+ server_dur: 27360
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 27360
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8884
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16266
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 40078
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 28574
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 24880648226
+ client_dur: 55511
+ binder_reply_id: 28575
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24880667129
+ server_dur: 21590
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 21590
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7654
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14520
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 33337
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 28819
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 24909335836
+ client_dur: 55761
+ binder_reply_id: 28821
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24909354477
+ server_dur: 24104
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 24104
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7405
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12906
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 35450
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 29543
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 24934490094
+ client_dur: 58244
+ binder_reply_id: 29544
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24934509872
+ server_dur: 22084
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 22084
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8716
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 15386
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 34142
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 29763
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 24959652634
+ client_dur: 81523
+ binder_reply_id: 29764
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24959684793
+ server_dur: 28526
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 28526
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 12630
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 17355
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 51538
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 29885
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 24984851591
+ client_dur: 68470
+ binder_reply_id: 29886
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24984877747
+ server_dur: 26966
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 26966
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9994
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 18086
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 40390
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 29943
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 25010040890
+ client_dur: 90947
+ binder_reply_id: 29944
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25010071568
+ server_dur: 37280
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 37280
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 14634
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 19657
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 56656
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 30532
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 25035275877
+ client_dur: 59761
+ binder_reply_id: 30533
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25035296221
+ server_dur: 25210
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 25210
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9456
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12850
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 37455
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 30668
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 25060426543
+ client_dur: 81204
+ binder_reply_id: 30669
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25060443769
+ server_dur: 22941
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 22941
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 36151
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11288
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 33765
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 30818
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 25085672790
+ client_dur: 95011
+ binder_reply_id: 30821
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25085716849
+ server_dur: 37413
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 37413
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7210
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12739
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 75062
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 30934
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 25110861456
+ client_dur: 53363
+ binder_reply_id: 30935
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25110879022
+ server_dur: 22707
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 22707
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8544
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 10892
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 33927
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 31541
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 25136012642
+ client_dur: 51978
+ binder_reply_id: 31542
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25136030960
+ server_dur: 22166
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 22166
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7961
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11485
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 32532
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 31702
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 25161156360
+ client_dur: 68046
+ binder_reply_id: 31703
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25161174689
+ server_dur: 37221
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 37221
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8762
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11214
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 48070
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 31878
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 25186325904
+ client_dur: 37128
+ binder_reply_id: 31879
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25186338341
+ server_dur: 14526
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 14526
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6646
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 8595
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 21887
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 32070
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 25211748648
+ client_dur: 44699
+ binder_reply_id: 32071
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25211763861
+ server_dur: 18676
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 18676
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7108
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 10060
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 27531
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 32684
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 25236887649
+ client_dur: 51265
+ binder_reply_id: 32685
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25236905107
+ server_dur: 21519
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 21519
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8405
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11439
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 31421
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 32745
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 25262053873
+ client_dur: 82396
+ binder_reply_id: 32746
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25262085792
+ server_dur: 26917
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 26917
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 17532
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 25561
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 39303
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 32860
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 25287387704
+ client_dur: 103899
+ binder_reply_id: 32862
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25287423221
+ server_dur: 43908
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 43908
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 17246
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14487
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 72166
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 32910
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 25312712971
+ client_dur: 248879
+ binder_reply_id: 32911
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25312865501
+ server_dur: 53943
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 53943
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 30345
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 40122
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 178412
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 33264
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 25338145653
+ client_dur: 118734
+ binder_reply_id: 33265
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25338183347
+ server_dur: 50843
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 50843
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 20241
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 23812
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 74681
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 33305
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 25363427959
+ client_dur: 127185
+ binder_reply_id: 33306
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25363473345
+ server_dur: 52393
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 52393
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 20652
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 28294
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 78239
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 33374
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 25388666272
+ client_dur: 311561
+ binder_reply_id: 33376
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25388926887
+ server_dur: 27556
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 27556
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9320
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 20653
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 281588
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 33377
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 25389019468
+ client_dur: 2257654
+ binder_reply_id: 33378
+ server_process: "system_server"
+ server_thread: "binder:641_2"
+ server_ts: 25389272037
+ server_dur: 1993270
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "D"
+ thread_state_dur: 932507
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "R"
+ thread_state_dur: 251637
+ thread_state_count: 3
+ }
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "R+"
+ thread_state_dur: 387534
+ thread_state_count: 3
+ }
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 421592
+ thread_state_count: 7
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 3762
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12347
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 2241545
+ thread_state_count: 1
+ }
+ blocked_functions {
+ thread_state_type: "binder_reply"
+ blocked_function: "filemap_fault"
+ blocked_function_dur: 932507
+ blocked_function_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::java::IActivityManager::registerUidObserver::server"
+ binder_txn_id: 33393
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 25391362853
+ client_dur: 2138663
+ binder_reply_id: 33394
+ server_process: "system_server"
+ server_thread: "binder:641_1"
+ server_ts: 25391432268
+ server_dur: 2057673
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "D"
+ thread_state_dur: 426529
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "R"
+ thread_state_dur: 861373
+ thread_state_count: 3
+ }
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "R+"
+ thread_state_dur: 112712
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 657059
+ thread_state_count: 6
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 4668
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 18399
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 2115596
+ thread_state_count: 1
+ }
+ blocked_functions {
+ thread_state_type: "binder_reply"
+ blocked_function: "filemap_fault"
+ blocked_function_dur: 426529
+ blocked_function_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 33404
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 25393529331
+ client_dur: 72907
+ binder_reply_id: 33405
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25393544112
+ server_dur: 48279
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 48279
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7139
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 8607
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 57161
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 33530
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 25418715954
+ client_dur: 46115
+ binder_reply_id: 33533
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25418731360
+ server_dur: 20385
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 20385
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7069
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9081
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 29965
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 34206
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 25443850387
+ client_dur: 44974
+ binder_reply_id: 34207
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25443866014
+ server_dur: 19042
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 19042
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6807
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9340
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 28827
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 34325
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 25469057379
+ client_dur: 66877
+ binder_reply_id: 34326
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25469081511
+ server_dur: 26836
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 26836
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 10913
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 15075
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 40889
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 34343
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 25494306485
+ client_dur: 127198
+ binder_reply_id: 34344
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25494352512
+ server_dur: 49015
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 49015
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 22704
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 29539
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 74955
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 34481
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 25519756306
+ client_dur: 101379
+ binder_reply_id: 34482
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25519800487
+ server_dur: 31778
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 31778
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 13503
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16564
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 71312
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::java::ISensorPrivacyManager::supportsSensorToggle::server"
+ binder_txn_id: 34486
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 25519893501
+ client_dur: 154940
+ binder_reply_id: 34487
+ server_process: "system_server"
+ server_thread: "binder:641_4"
+ server_ts: 25519915012
+ server_dur: 115492
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 115492
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8657
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16881
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 129402
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::java::ISensorPrivacyManager::addSensorPrivacyListener::server"
+ binder_txn_id: 34490
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 25520078379
+ client_dur: 176159
+ binder_reply_id: 34491
+ server_process: "system_server"
+ server_thread: "binder:641_1"
+ server_ts: 25520102430
+ server_dur: 134309
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 134309
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7962
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 24992
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 143205
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::java::ISensorPrivacyManager::isSensorPrivacyEnabled::server"
+ binder_txn_id: 34496
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 25520281012
+ client_dur: 123400
+ binder_reply_id: 34497
+ server_process: "system_server"
+ server_thread: "binder:641_2"
+ server_ts: 25520299524
+ server_dur: 88243
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 88243
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7860
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 18347
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 97193
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 34499
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 25520423828
+ client_dur: 343243
+ binder_reply_id: 34500
+ server_process: "system_server"
+ server_thread: "binder:641_3"
+ server_ts: 25520612948
+ server_dur: 123445
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 123445
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 20080
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 18075
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 305088
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 34505
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 25520890215
+ client_dur: 293220
+ binder_reply_id: 34507
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25521075472
+ server_dur: 82900
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 82900
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 14542
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 15450
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 263228
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::java::IAppOpsService::setCameraAudioRestriction::server"
+ binder_txn_id: 34508
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 25521216286
+ client_dur: 489554
+ binder_reply_id: 34509
+ server_process: "system_server"
+ server_thread: "binder:641_3"
+ server_ts: 25521243526
+ server_dur: 435659
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "R"
+ thread_state_dur: 46465
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 389194
+ thread_state_count: 3
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 15197
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 18545
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 455812
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 34563
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 25523480228
+ client_dur: 2277042
+ binder_reply_id: 34581
+ server_process: "/system/bin/hwservicemanager"
+ server_thread: "hwservicemanage"
+ server_ts: 25523653053
+ server_dur: 2085804
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "R"
+ thread_state_dur: 399859
+ thread_state_count: 23
+ }
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "R+"
+ thread_state_dur: 816967
+ thread_state_count: 39
+ }
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 868978
+ thread_state_count: 63
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 4802
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 27907
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 2244333
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 34776
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 25525828575
+ client_dur: 674113
+ binder_reply_id: 34797
+ server_process: "/system/bin/hwservicemanager"
+ server_thread: "hwservicemanage"
+ server_ts: 25526007038
+ server_dur: 466892
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "R"
+ thread_state_dur: 131308
+ thread_state_count: 16
+ }
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "R+"
+ thread_state_dur: 56775
+ thread_state_count: 7
+ }
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 278809
+ thread_state_count: 24
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 3766
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 26104
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 644243
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 35034
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 25529470300
+ client_dur: 103937
+ binder_reply_id: 35035
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25529493228
+ server_dur: 62956
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 62956
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 12711
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 13493
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 77733
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 35037
+ client_process: "/system/bin/cameraserver"
+ client_thread: "cameraserver"
+ is_main_thread: true
+ client_ts: 25529642910
+ client_dur: 106592
+ binder_reply_id: 35038
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25529669348
+ server_dur: 64544
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 64544
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 10767
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 20950
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 74875
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 48
+ client_process: "/system/bin/storaged"
+ client_thread: "storaged"
+ is_main_thread: false
+ client_ts: 21610888219
+ client_dur: 1404460
+ binder_reply_id: 49
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 21610912981
+ server_dur: 24345
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 24345
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 1348770
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 23698
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 31992
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 816
+ client_process: "/system/bin/storaged"
+ client_thread: "storaged"
+ is_main_thread: false
+ client_ts: 21713165109
+ client_dur: 1236372
+ binder_reply_id: 819
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 21713185409
+ server_dur: 12103
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 12103
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 1197658
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 8231
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 30483
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 1475
+ client_process: "/system/bin/storaged"
+ client_thread: "storaged"
+ is_main_thread: false
+ client_ts: 21817588572
+ client_dur: 329198
+ binder_reply_id: 1478
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 21817646283
+ server_dur: 29874
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 29874
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 235645
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 10533
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 83020
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 2123
+ client_process: "/system/bin/storaged"
+ client_thread: "storaged"
+ is_main_thread: false
+ client_ts: 21918044833
+ client_dur: 54295
+ binder_reply_id: 2124
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 21918066018
+ server_dur: 22515
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 22515
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 4956
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 15264
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 34075
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 2708
+ client_process: "/system/bin/storaged"
+ client_thread: "storaged"
+ is_main_thread: false
+ client_ts: 22018230040
+ client_dur: 4199277
+ binder_reply_id: 2709
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22018253018
+ server_dur: 20817
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 20817
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 4147506
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16606
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 35165
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 3328
+ client_process: "/system/bin/storaged"
+ client_thread: "storaged"
+ is_main_thread: false
+ client_ts: 22128615818
+ client_dur: 66352
+ binder_reply_id: 3329
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22128641106
+ server_dur: 21332
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 21332
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 14367
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 15683
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 36302
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 3971
+ client_process: "/system/bin/storaged"
+ client_thread: "storaged"
+ is_main_thread: false
+ client_ts: 22231107021
+ client_dur: 6202865
+ binder_reply_id: 3972
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22231126269
+ server_dur: 21216
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 21216
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6153299
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16139
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 33427
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 4827
+ client_process: "/system/bin/storaged"
+ client_thread: "storaged"
+ is_main_thread: false
+ client_ts: 22338230784
+ client_dur: 5927748
+ binder_reply_id: 4828
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22338257085
+ server_dur: 22271
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 22271
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5872081
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 18271
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 37396
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 5686
+ client_process: "/system/bin/storaged"
+ client_thread: "storaged"
+ is_main_thread: false
+ client_ts: 22444315008
+ client_dur: 360477
+ binder_reply_id: 5687
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22444338001
+ server_dur: 22884
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 22884
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 307361
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 17297
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 35819
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 6708
+ client_process: "/system/bin/storaged"
+ client_thread: "storaged"
+ is_main_thread: false
+ client_ts: 22545342573
+ client_dur: 1367091
+ binder_reply_id: 6709
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22545364958
+ server_dur: 22936
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 22936
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 1314882
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14826
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 37383
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 7884
+ client_process: "/system/bin/storaged"
+ client_thread: "storaged"
+ is_main_thread: false
+ client_ts: 22646870376
+ client_dur: 61414
+ binder_reply_id: 7885
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22646893001
+ server_dur: 24570
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 24570
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7898
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14066
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 39450
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 9014
+ client_process: "/system/bin/storaged"
+ client_thread: "storaged"
+ is_main_thread: false
+ client_ts: 22747766863
+ client_dur: 1605566
+ binder_reply_id: 9026
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22749199929
+ server_dur: 25123
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 25123
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 140583
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 10423
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 1454560
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 10202
+ client_process: "/system/bin/storaged"
+ client_thread: "storaged"
+ is_main_thread: false
+ client_ts: 22849527732
+ client_dur: 3775048
+ binder_reply_id: 10204
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22849787260
+ server_dur: 22559
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 22559
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 3484172
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14879
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 275997
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 11260
+ client_process: "/system/bin/storaged"
+ client_thread: "storaged"
+ is_main_thread: false
+ client_ts: 22955387074
+ client_dur: 5918097
+ binder_reply_id: 11262
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 22955504595
+ server_dur: 12187
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 12187
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5780094
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 10408
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 127595
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 12346
+ client_process: "/system/bin/storaged"
+ client_thread: "storaged"
+ is_main_thread: false
+ client_ts: 23063243768
+ client_dur: 1153069
+ binder_reply_id: 12349
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23063268117
+ server_dur: 21864
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 21864
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 1099308
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 15760
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 38001
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 13368
+ client_process: "/system/bin/storaged"
+ client_thread: "storaged"
+ is_main_thread: false
+ client_ts: 23171834613
+ client_dur: 468230
+ binder_reply_id: 13371
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23171888187
+ server_dur: 23659
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 23659
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 385080
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11869
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 71281
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 14513
+ client_process: "/system/bin/storaged"
+ client_thread: "storaged"
+ is_main_thread: false
+ client_ts: 23274482309
+ client_dur: 56450
+ binder_reply_id: 14514
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23274502428
+ server_dur: 22204
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 22204
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8238
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 13622
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 34590
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 15526
+ client_process: "/system/bin/storaged"
+ client_thread: "storaged"
+ is_main_thread: false
+ client_ts: 23375517889
+ client_dur: 2282317
+ binder_reply_id: 15550
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23377319838
+ server_dur: 23748
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 23748
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 447880
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 13360
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 1821077
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 16517
+ client_process: "/system/bin/storaged"
+ client_thread: "storaged"
+ is_main_thread: false
+ client_ts: 23479410599
+ client_dur: 60331
+ binder_reply_id: 16518
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23479434099
+ server_dur: 24056
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 24056
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7016
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 15827
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 37488
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 17587
+ client_process: "/system/bin/storaged"
+ client_thread: "storaged"
+ is_main_thread: false
+ client_ts: 23581096165
+ client_dur: 380036
+ binder_reply_id: 17589
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23581329034
+ server_dur: 23039
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 23039
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 118310
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9835
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 251891
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 18504
+ client_process: "/system/bin/storaged"
+ client_thread: "storaged"
+ is_main_thread: false
+ client_ts: 23683521915
+ client_dur: 66608
+ binder_reply_id: 18505
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23683548740
+ server_dur: 23628
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 23628
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8628
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 18506
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 39474
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 19454
+ client_process: "/system/bin/storaged"
+ client_thread: "storaged"
+ is_main_thread: false
+ client_ts: 23788017588
+ client_dur: 110886
+ binder_reply_id: 19455
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23788091294
+ server_dur: 22793
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 22793
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8896
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11517
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 90473
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 20184
+ client_process: "/system/bin/storaged"
+ client_thread: "storaged"
+ is_main_thread: false
+ client_ts: 23892497829
+ client_dur: 5298146
+ binder_reply_id: 20185
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23892520529
+ server_dur: 12354
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 12354
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5251837
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 13660
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 32649
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 20623
+ client_process: "/system/bin/storaged"
+ client_thread: "storaged"
+ is_main_thread: false
+ client_ts: 23997916363
+ client_dur: 128256
+ binder_reply_id: 20624
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 23997934258
+ server_dur: 22034
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 22034
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 81419
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 13387
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 33450
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 21388
+ client_process: "/system/bin/storaged"
+ client_thread: "storaged"
+ is_main_thread: false
+ client_ts: 24100588444
+ client_dur: 79761
+ binder_reply_id: 21393
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24100613596
+ server_dur: 21941
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 21941
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 25886
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14101
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 39774
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 22159
+ client_process: "/system/bin/storaged"
+ client_thread: "storaged"
+ is_main_thread: false
+ client_ts: 24203608109
+ client_dur: 1476962
+ binder_reply_id: 22160
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24203662175
+ server_dur: 25824
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 25824
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 1380274
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 63248
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 33440
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 23177
+ client_process: "/system/bin/storaged"
+ client_thread: "storaged"
+ is_main_thread: false
+ client_ts: 24305487641
+ client_dur: 69000
+ binder_reply_id: 23181
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24305515718
+ server_dur: 25348
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 25348
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6963
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 19864
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 42173
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 24224
+ client_process: "/system/bin/storaged"
+ client_thread: "storaged"
+ is_main_thread: false
+ client_ts: 24405940362
+ client_dur: 114844
+ binder_reply_id: 24228
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24405962114
+ server_dur: 22212
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 22212
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 65750
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12359
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 36735
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 25067
+ client_process: "/system/bin/storaged"
+ client_thread: "storaged"
+ is_main_thread: false
+ client_ts: 24506183075
+ client_dur: 76130
+ binder_reply_id: 25068
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24506212466
+ server_dur: 21817
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 21817
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 18373
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 28422
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 29335
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 25734
+ client_process: "/system/bin/storaged"
+ client_thread: "storaged"
+ is_main_thread: false
+ client_ts: 24606672569
+ client_dur: 71411
+ binder_reply_id: 25735
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24606692709
+ server_dur: 37402
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 37402
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8565
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 13236
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 49610
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 26722
+ client_process: "/system/bin/storaged"
+ client_thread: "storaged"
+ is_main_thread: false
+ client_ts: 24706847915
+ client_dur: 77826
+ binder_reply_id: 26723
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24706871511
+ server_dur: 21505
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 21505
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 25448
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 15515
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 36863
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 27754
+ client_process: "/system/bin/storaged"
+ client_thread: "storaged"
+ is_main_thread: false
+ client_ts: 24807614065
+ client_dur: 142762
+ binder_reply_id: 27755
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24807635682
+ server_dur: 20956
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 20956
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 95308
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12621
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 34833
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 28823
+ client_process: "/system/bin/storaged"
+ client_thread: "storaged"
+ is_main_thread: false
+ client_ts: 24909374599
+ client_dur: 3171973
+ binder_reply_id: 28824
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24909393940
+ server_dur: 10997
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 10997
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 3135191
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 8500
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 28282
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 29971
+ client_process: "/system/bin/storaged"
+ client_thread: "storaged"
+ is_main_thread: false
+ client_ts: 25012679868
+ client_dur: 112287
+ binder_reply_id: 29972
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25012708944
+ server_dur: 35550
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 35550
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 40560
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 18629
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 53098
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 30937
+ client_process: "/system/bin/storaged"
+ client_thread: "storaged"
+ is_main_thread: false
+ client_ts: 25112924292
+ client_dur: 43230
+ binder_reply_id: 30938
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25112938063
+ server_dur: 18263
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 18263
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7101
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 8959
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 27170
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 32075
+ client_process: "/system/bin/storaged"
+ client_thread: "storaged"
+ is_main_thread: false
+ client_ts: 25213072326
+ client_dur: 33395
+ binder_reply_id: 32076
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25213083753
+ server_dur: 13289
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 13289
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5039
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 8733
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 19623
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 32913
+ client_process: "/system/bin/storaged"
+ client_thread: "storaged"
+ is_main_thread: false
+ client_ts: 25313259127
+ client_dur: 150680
+ binder_reply_id: 32914
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25313317394
+ server_dur: 52236
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 52236
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 29452
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 34428
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 86800
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 33473
+ client_process: "/system/bin/storaged"
+ client_thread: "storaged"
+ is_main_thread: false
+ client_ts: 25415404685
+ client_dur: 1470768
+ binder_reply_id: 33482
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25416823355
+ server_dur: 22986
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 22986
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 17713
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11378
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 1441677
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 33492
+ client_process: "/system/bin/storaged"
+ client_thread: "storaged"
+ is_main_thread: false
+ client_ts: 25417416478
+ client_dur: 321332
+ binder_reply_id: 33493
+ server_process: "system_server"
+ server_thread: "binder:641_4"
+ server_ts: 25417428728
+ server_dur: 140719
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 140719
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 163195
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11351
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 146786
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37690
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "binder:496_2"
+ is_main_thread: false
+ client_ts: 25867907972
+ client_dur: 68305
+ binder_reply_id: 37691
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25867933710
+ server_dur: 25394
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 25394
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5734
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11935
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 50636
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 167
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 21648847518
+ client_dur: 138863
+ binder_reply_id: 168
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 21648864955
+ server_dur: 110424
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 110424
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7185
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14617
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 117061
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 169
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 21649020222
+ client_dur: 1298536
+ binder_reply_id: 170
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 21649025816
+ server_dur: 1271373
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 1271373
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8539
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 6844
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 1283153
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 173
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 21650405554
+ client_dur: 21176
+ binder_reply_id: 174
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 21650412827
+ server_dur: 7662
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 7662
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 4190
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 6770
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 10216
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 858
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 21732179696
+ client_dur: 66330
+ binder_reply_id: 859
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 21732194327
+ server_dur: 42279
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 42279
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5992
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 13738
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 46600
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 860
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 21732276479
+ client_dur: 998493
+ binder_reply_id: 861
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 21732281653
+ server_dur: 980816
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 980816
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8083
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 6003
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 984407
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 882
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 21747805001
+ client_dur: 32253
+ binder_reply_id: 883
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 21747815991
+ server_dur: 13234
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 13234
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5585
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9883
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 16785
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 1466
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 21815501160
+ client_dur: 67864
+ binder_reply_id: 1467
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 21815515197
+ server_dur: 44624
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 44624
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6209
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11975
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 49680
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 1468
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 21815599518
+ client_dur: 1843570
+ binder_reply_id: 1469
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 21815604505
+ server_dur: 1825932
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 1825932
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7950
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 6112
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 1829508
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 1470
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 21817527536
+ client_dur: 20911
+ binder_reply_id: 1471
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 21817534229
+ server_dur: 6822
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 6822
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 4959
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 5810
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 10142
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 2067
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 21898832978
+ client_dur: 61578
+ binder_reply_id: 2068
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 21898846685
+ server_dur: 38670
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 38670
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6251
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11722
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 43605
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 2069
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 21898923783
+ client_dur: 1096630
+ binder_reply_id: 2070
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 21898928634
+ server_dur: 1080195
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 1080195
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7346
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 5512
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 1083772
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 2099
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 21914447745
+ client_dur: 30172
+ binder_reply_id: 2100
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 21914458873
+ server_dur: 11417
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 11417
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5439
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9684
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 15049
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 2649
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 21982278493
+ client_dur: 137675
+ binder_reply_id: 2650
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 21982310594
+ server_dur: 80114
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 80114
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 17314
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 28178
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 92183
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 2651
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 21982477699
+ client_dur: 1235182
+ binder_reply_id: 2652
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 21982492293
+ server_dur: 1187140
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 1187140
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 21998
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16391
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 1196793
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 2654
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 21983894427
+ client_dur: 56732
+ binder_reply_id: 2656
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 21983913100
+ server_dur: 18080
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 18080
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 14092
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16645
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 25995
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 2791
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 22065483496
+ client_dur: 63685
+ binder_reply_id: 2792
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 22065497670
+ server_dur: 40803
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 40803
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5926
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12354
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 45405
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 2793
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 22065575735
+ client_dur: 1062604
+ binder_reply_id: 2794
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 22065580382
+ server_dur: 1045862
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 1045862
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7467
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 5577
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 1049560
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 3278
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 22081125903
+ client_dur: 31676
+ binder_reply_id: 3279
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 22081137566
+ server_dur: 12008
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 12008
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5563
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 10309
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 15804
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 3360
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 22148826292
+ client_dur: 66432
+ binder_reply_id: 3361
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 22148840763
+ server_dur: 42889
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 42889
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6043
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12344
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 48045
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 3363
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 22148922210
+ client_dur: 1055199
+ binder_reply_id: 3364
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 22148927117
+ server_dur: 1037009
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 1037009
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8500
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 5913
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 1040786
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 3370
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 22150072810
+ client_dur: 21373
+ binder_reply_id: 3371
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 22150080025
+ server_dur: 7715
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 7715
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 4405
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 6851
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 10117
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 3975
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 22232166904
+ client_dur: 64562
+ binder_reply_id: 3976
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 22232181958
+ server_dur: 40112
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 40112
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6284
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 13110
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 45168
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 3977
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 22232260319
+ client_dur: 1084947
+ binder_reply_id: 3978
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 22232265525
+ server_dur: 1065811
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 1065811
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8286
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 6870
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 1069791
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 3997
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 22247787616
+ client_dur: 29515
+ binder_reply_id: 3998
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 22247797746
+ server_dur: 12125
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 12125
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 4884
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9595
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 15036
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 4716
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 22315503408
+ client_dur: 75460
+ binder_reply_id: 4717
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 22315519682
+ server_dur: 49022
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 49022
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7091
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 13812
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 54557
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 4718
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 22315610938
+ client_dur: 1046448
+ binder_reply_id: 4719
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 22315616049
+ server_dur: 1029776
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 1029776
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7418
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 5735
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 1033295
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 4720
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 22316735903
+ client_dur: 21152
+ binder_reply_id: 4721
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 22316742808
+ server_dur: 7783
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 7783
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 4149
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 6309
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 10694
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 5453
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 22398839076
+ client_dur: 65963
+ binder_reply_id: 5454
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 22398854027
+ server_dur: 42248
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 42248
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5958
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12898
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 47107
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 5455
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 22398960806
+ client_dur: 1018998
+ binder_reply_id: 5456
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 22398966568
+ server_dur: 1000410
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 1000410
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8068
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 6157
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 1004773
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 5534
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 22414462930
+ client_dur: 32955
+ binder_reply_id: 5535
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 22414474372
+ server_dur: 13302
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 13302
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5810
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 10071
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 17074
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 6310
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 22482179365
+ client_dur: 71661
+ binder_reply_id: 6311
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 22482194253
+ server_dur: 47932
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 47932
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6091
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12523
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 53047
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 6312
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 22482282793
+ client_dur: 955159
+ binder_reply_id: 6313
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 22482287911
+ server_dur: 938324
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 938324
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7229
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 5986
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 941944
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 6390
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 22497465809
+ client_dur: 39624
+ binder_reply_id: 6392
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 22497477915
+ server_dur: 17691
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 17691
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6115
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12004
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 21505
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 6854
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 22565521231
+ client_dur: 66993
+ binder_reply_id: 6855
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 22565536155
+ server_dur: 42982
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 42982
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6171
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12902
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 47920
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 6856
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 22565618391
+ client_dur: 1026658
+ binder_reply_id: 6857
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 22565623264
+ server_dur: 1009748
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 1009748
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7593
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 5686
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 1013379
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 7389
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 22581241130
+ client_dur: 37185
+ binder_reply_id: 7390
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 22581254325
+ server_dur: 15879
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 15879
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5578
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11958
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 19649
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 7900
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 22648855410
+ client_dur: 78080
+ binder_reply_id: 7901
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 22648872617
+ server_dur: 51463
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 51463
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6163
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14952
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 56965
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 7902
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 22648965876
+ client_dur: 1080456
+ binder_reply_id: 7903
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 22648971095
+ server_dur: 1061465
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 1061465
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8635
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 6276
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 1065545
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 7904
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 22650134321
+ client_dur: 21145
+ binder_reply_id: 7905
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 22650140974
+ server_dur: 7869
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 7869
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 4614
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 6279
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 10252
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 8909
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 22732183976
+ client_dur: 84922
+ binder_reply_id: 8910
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 22732199541
+ server_dur: 59268
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 59268
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6957
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 13605
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 64360
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 8911
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 22732300442
+ client_dur: 1084256
+ binder_reply_id: 8912
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 22732305487
+ server_dur: 1066498
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 1066498
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7813
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 5904
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 1070539
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 9029
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 22749316211
+ client_dur: 37389
+ binder_reply_id: 9030
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 22749329367
+ server_dur: 15449
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 15449
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6084
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11642
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 19663
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 9959
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 22815554390
+ client_dur: 80259
+ binder_reply_id: 9960
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 22815571850
+ server_dur: 52908
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 52908
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6490
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14972
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 58797
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 9962
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 22815665677
+ client_dur: 1846724
+ binder_reply_id: 9963
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 22815670690
+ server_dur: 1827939
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 1827939
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8500
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 6274
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 1831950
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 9974
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 22817599826
+ client_dur: 21169
+ binder_reply_id: 9975
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 22817606552
+ server_dur: 8080
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 8080
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 4076
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 6272
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 10821
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 10907
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 22898837991
+ client_dur: 66016
+ binder_reply_id: 10908
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 22898853740
+ server_dur: 41111
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 41111
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6341
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 13664
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 46011
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 10909
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 22898932620
+ client_dur: 1881472
+ binder_reply_id: 10910
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 22898937509
+ server_dur: 1862476
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 1862476
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8257
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 5821
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 1867394
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 11008
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 22914460532
+ client_dur: 34598
+ binder_reply_id: 11009
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 22914472324
+ server_dur: 14518
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 14518
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5964
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 10634
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 18000
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 11436
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 22982182870
+ client_dur: 80394
+ binder_reply_id: 11437
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 22982200371
+ server_dur: 52999
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 52999
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6848
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14593
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 58953
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 11438
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 22982296391
+ client_dur: 1052212
+ binder_reply_id: 11439
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 22982301600
+ server_dur: 1033314
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 1033314
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7784
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 5911
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 1038517
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 11447
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 22983445756
+ client_dur: 23169
+ binder_reply_id: 11448
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 22983452175
+ server_dur: 10357
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 10357
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 4431
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 5952
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 12786
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 12360
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 23065513683
+ client_dur: 74423
+ binder_reply_id: 12361
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 23065529019
+ server_dur: 49067
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 49067
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6975
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 13401
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 54047
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 12362
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 23065619219
+ client_dur: 1146958
+ binder_reply_id: 12363
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 23065624303
+ server_dur: 1129990
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 1129990
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7580
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 5807
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 1133571
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 12440
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 23081285291
+ client_dur: 45213
+ binder_reply_id: 12441
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 23081307603
+ server_dur: 14325
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 14325
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6077
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 20970
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 18166
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 13248
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 23148835709
+ client_dur: 76791
+ binder_reply_id: 13249
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 23148852272
+ server_dur: 50863
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 50863
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6457
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 13953
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 56381
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 13252
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 23148944247
+ client_dur: 1986947
+ binder_reply_id: 13253
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 23148949481
+ server_dur: 1965225
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 1965225
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 10379
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 6992
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 1969576
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 13258
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 23151027818
+ client_dur: 25087
+ binder_reply_id: 13259
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 23151036483
+ server_dur: 9385
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 9385
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 4914
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 7478
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 12695
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 14213
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 23232183799
+ client_dur: 75511
+ binder_reply_id: 14214
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 23232201226
+ server_dur: 48102
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 48102
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6958
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 13968
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 54585
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 14215
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 23232290686
+ client_dur: 1140969
+ binder_reply_id: 14216
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 23232295646
+ server_dur: 1123404
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 1123404
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8095
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 5736
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 1127138
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 14359
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 23249891699
+ client_dur: 37797
+ binder_reply_id: 14360
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 23249904526
+ server_dur: 16397
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 16397
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5928
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11244
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 20625
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 15072
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 23315566931
+ client_dur: 110557
+ binder_reply_id: 15073
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 23315592450
+ server_dur: 69421
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 69421
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 10955
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 20258
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 79344
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 15075
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 23315722066
+ client_dur: 2606042
+ binder_reply_id: 15076
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 23315729839
+ server_dur: 2583671
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 2583671
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8916
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 8663
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 2588463
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 15084
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 23318420005
+ client_dur: 21345
+ binder_reply_id: 15085
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 23318427118
+ server_dur: 7958
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 7958
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 4439
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 6512
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 10394
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 15959
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 23398873863
+ client_dur: 68770
+ binder_reply_id: 15960
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 23398889934
+ server_dur: 41798
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 41798
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7126
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14149
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 47495
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 15962
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 23398973230
+ client_dur: 1176570
+ binder_reply_id: 15963
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 23398978271
+ server_dur: 1158688
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 1158688
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7858
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 6328
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 1162384
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 16091
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 23416727246
+ client_dur: 33867
+ binder_reply_id: 16092
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 23416739503
+ server_dur: 14319
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 14319
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5019
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11356
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 17492
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 16540
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 23482185608
+ client_dur: 80279
+ binder_reply_id: 16541
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 23482202317
+ server_dur: 53655
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 53655
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6776
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14182
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 59321
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 16544
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 23482297909
+ client_dur: 1040841
+ binder_reply_id: 16545
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 23482303086
+ server_dur: 1022859
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 1022859
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8389
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 6083
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 1026369
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 16553
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 23483420403
+ client_dur: 20295
+ binder_reply_id: 16554
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 23483427104
+ server_dur: 6793
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 6793
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 4616
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 5929
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 9750
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 17517
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 23566095373
+ client_dur: 80168
+ binder_reply_id: 17518
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 23566112317
+ server_dur: 53405
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 53405
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6919
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14100
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 59149
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 17520
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 23566207004
+ client_dur: 1080032
+ binder_reply_id: 17521
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 23566212869
+ server_dur: 1062341
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 1062341
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7395
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 6118
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 1066519
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 17591
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 23581426699
+ client_dur: 33178
+ binder_reply_id: 17592
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 23581438242
+ server_dur: 13572
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 13572
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5567
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 10146
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 17465
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 18402
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 23648877211
+ client_dur: 74827
+ binder_reply_id: 18403
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 23648892093
+ server_dur: 50840
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 50840
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6204
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12449
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 56174
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 18404
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 23648984124
+ client_dur: 1869563
+ binder_reply_id: 18405
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 23648989106
+ server_dur: 1850394
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 1850394
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8926
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 6218
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 1854419
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 18406
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 23650943350
+ client_dur: 22389
+ binder_reply_id: 18407
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 23650950419
+ server_dur: 8699
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 8699
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 4717
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 6663
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 11009
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 19274
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 23732162997
+ client_dur: 66948
+ binder_reply_id: 19275
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 23732178223
+ server_dur: 42065
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 42065
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6714
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 13243
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 46991
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 19276
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 23732260275
+ client_dur: 1099825
+ binder_reply_id: 19277
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 23732265173
+ server_dur: 1083011
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 1083011
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7523
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 5579
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 1086723
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 19318
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 23747796852
+ client_dur: 29683
+ binder_reply_id: 19319
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 23747806637
+ server_dur: 12580
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 12580
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5173
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 8954
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 15556
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 20026
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 23815516337
+ client_dur: 68846
+ binder_reply_id: 20027
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 23815530730
+ server_dur: 44894
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 44894
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6499
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12498
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 49849
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 20028
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 23815619259
+ client_dur: 986718
+ binder_reply_id: 20029
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 23815623956
+ server_dur: 969888
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 969888
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7448
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 6000
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 973270
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 20030
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 23816691292
+ client_dur: 20206
+ binder_reply_id: 20031
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 23816697719
+ server_dur: 7427
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 7427
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 4378
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 6112
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 9716
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 20286
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 23898849538
+ client_dur: 73093
+ binder_reply_id: 20287
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 23898865505
+ server_dur: 44882
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 44882
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9037
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14074
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 49982
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 20288
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 23898957000
+ client_dur: 1065096
+ binder_reply_id: 20289
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 23898962241
+ server_dur: 1045751
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 1045751
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9330
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 6316
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 1049450
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 20567
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 23914455173
+ client_dur: 29880
+ binder_reply_id: 20568
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 23914466130
+ server_dur: 11108
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 11108
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5363
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 10025
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 14492
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 20594
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 23982180549
+ client_dur: 85583
+ binder_reply_id: 20595
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 23982199040
+ server_dur: 52914
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 52914
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9668
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16422
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 59493
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 20596
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 23982305851
+ client_dur: 1744711
+ binder_reply_id: 20597
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 23982314504
+ server_dur: 1722762
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 1722762
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7953
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9228
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 1727530
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 20598
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 23984133705
+ client_dur: 20045
+ binder_reply_id: 20599
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 23984139858
+ server_dur: 7402
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 7402
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 4308
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 5775
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 9962
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 21253
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 24065542758
+ client_dur: 68668
+ binder_reply_id: 21254
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 24065557894
+ server_dur: 43859
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 43859
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6566
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 13043
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 49059
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 21255
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 24065652205
+ client_dur: 1049759
+ binder_reply_id: 21256
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 24065657696
+ server_dur: 1032583
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 1032583
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7445
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 6150
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 1036164
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 21338
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 24081125997
+ client_dur: 31826
+ binder_reply_id: 21339
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 24081137112
+ server_dur: 13041
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 13041
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5392
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9278
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 17156
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 21988
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 24148820113
+ client_dur: 68214
+ binder_reply_id: 21989
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 24148833979
+ server_dur: 44630
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 44630
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6408
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12309
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 49497
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 21990
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 24148918715
+ client_dur: 1009266
+ binder_reply_id: 21991
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 24148923375
+ server_dur: 991906
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 991906
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8193
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 5615
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 995458
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 21997
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 24150011467
+ client_dur: 21064
+ binder_reply_id: 21998
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 24150018449
+ server_dur: 7359
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 7359
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 4752
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 6031
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 10281
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 22609
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 24247778973
+ client_dur: 34911
+ binder_reply_id: 22610
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 24247791507
+ server_dur: 14684
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 14684
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5470
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11104
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 18337
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 22611
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 24248842389
+ client_dur: 66174
+ binder_reply_id: 22612
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 24248855559
+ server_dur: 43223
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 43223
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6788
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 10728
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 48658
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 22613
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 24248937934
+ client_dur: 1130965
+ binder_reply_id: 22614
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 24248943066
+ server_dur: 1111247
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 1111247
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9078
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 6429
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 1115458
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 22634
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 24250153754
+ client_dur: 21489
+ binder_reply_id: 22635
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 24250161172
+ server_dur: 7362
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 7362
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 4627
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 6860
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 10002
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 23732
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 24332164030
+ client_dur: 78622
+ binder_reply_id: 23733
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 24332193334
+ server_dur: 39186
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 39186
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7017
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 13704
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 57901
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 23735
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 24332271286
+ client_dur: 1233475
+ binder_reply_id: 23736
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 24332276288
+ server_dur: 1215090
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 1215090
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8366
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 5970
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 1219139
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 23886
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 24350341616
+ client_dur: 97785
+ binder_reply_id: 23887
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 24350364644
+ server_dur: 50768
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 50768
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 17006
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 19906
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 60873
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 24745
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 24415506341
+ client_dur: 73094
+ binder_reply_id: 24746
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 24415521413
+ server_dur: 48860
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 48860
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6117
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 13047
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 53930
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 24747
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 24415610395
+ client_dur: 1963175
+ binder_reply_id: 24748
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 24415614985
+ server_dur: 1944970
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 1944970
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8173
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 5820
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 1949182
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 24756
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 24417688619
+ client_dur: 22666
+ binder_reply_id: 24757
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 24417696179
+ server_dur: 8868
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 8868
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 4234
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 6917
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 11515
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 25053
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 24498858408
+ client_dur: 72316
+ binder_reply_id: 25054
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 24498874905
+ server_dur: 44364
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 44364
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8081
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14445
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 49790
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 25055
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 24498965251
+ client_dur: 2212172
+ binder_reply_id: 25056
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 24498971364
+ server_dur: 2189623
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 2189623
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 10583
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 7144
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 2194445
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 25567
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 24514530326
+ client_dur: 46445
+ binder_reply_id: 25568
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 24514545922
+ server_dur: 16967
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 16967
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9604
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14181
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 22660
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 25643
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 24582239101
+ client_dur: 102168
+ binder_reply_id: 25644
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 24582262241
+ server_dur: 62646
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 62646
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 11468
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 19845
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 70855
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 25645
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 24582383933
+ client_dur: 1125278
+ binder_reply_id: 25646
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 24582393122
+ server_dur: 1094530
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 1094530
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 13729
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 10592
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 1100957
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 25647
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 24583627699
+ client_dur: 36229
+ binder_reply_id: 25648
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 24583638897
+ server_dur: 12637
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 12637
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8637
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 10880
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 16712
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 26385
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 24665516749
+ client_dur: 77492
+ binder_reply_id: 26386
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 24665535013
+ server_dur: 46956
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 46956
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8435
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 15547
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 53510
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 26387
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 24665629297
+ client_dur: 1056190
+ binder_reply_id: 26388
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 24665650779
+ server_dur: 1018462
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 1018462
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 10419
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 22389
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 1023382
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 26518
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 24681436859
+ client_dur: 36053
+ binder_reply_id: 26519
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 24681447493
+ server_dur: 17169
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 17169
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5620
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9202
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 21231
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 27407
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 24748868138
+ client_dur: 84885
+ binder_reply_id: 27408
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 24748886644
+ server_dur: 54090
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 54090
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8216
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 15824
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 60845
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 27409
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 24748988510
+ client_dur: 1030023
+ binder_reply_id: 27410
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 24748994792
+ server_dur: 1007690
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 1007690
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 10320
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 7443
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 1012260
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 27413
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 24750114696
+ client_dur: 25844
+ binder_reply_id: 27414
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 24750122620
+ server_dur: 9559
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 9559
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5840
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 7465
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 12539
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 28222
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 24832172264
+ client_dur: 71964
+ binder_reply_id: 28224
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 24832186234
+ server_dur: 48177
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 48177
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6424
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12387
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 53153
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 28225
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 24832278767
+ client_dur: 2319199
+ binder_reply_id: 28226
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 24832284387
+ server_dur: 2299722
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 2299722
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8849
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 6891
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 2303459
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 28327
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 24848194066
+ client_dur: 38990
+ binder_reply_id: 28328
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 24848207084
+ server_dur: 16882
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 16882
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6284
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11173
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 21533
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 29072
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 24915569035
+ client_dur: 92319
+ binder_reply_id: 29073
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 24915587307
+ server_dur: 61522
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 61522
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8366
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 15715
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 68238
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 29076
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 24915703770
+ client_dur: 1154960
+ binder_reply_id: 29077
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 24915710935
+ server_dur: 1133005
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 1133005
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8423
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9153
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 1137384
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 29091
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 24916964211
+ client_dur: 24607
+ binder_reply_id: 29092
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 24916971111
+ server_dur: 10684
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 10684
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 4900
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 5967
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 13740
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 29927
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 24998945706
+ client_dur: 111229
+ binder_reply_id: 29928
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 24998970836
+ server_dur: 66036
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 66036
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 13838
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 21668
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 75723
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 29929
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 24999109626
+ client_dur: 1079778
+ binder_reply_id: 29930
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 24999121401
+ server_dur: 1042002
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 1042002
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 16987
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 13081
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 1049710
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 29988
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 25014488039
+ client_dur: 70943
+ binder_reply_id: 29989
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 25014504840
+ server_dur: 24296
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 24296
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 24698
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 15242
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 31003
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 30799
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 25082202078
+ client_dur: 73854
+ binder_reply_id: 30800
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 25082217860
+ server_dur: 47920
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 47920
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6842
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 13731
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 53281
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 30801
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 25082306875
+ client_dur: 1782258
+ binder_reply_id: 30802
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 25082312116
+ server_dur: 1764384
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 1764384
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7856
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 5932
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 1768470
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 30803
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 25084166020
+ client_dur: 20222
+ binder_reply_id: 30804
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 25084172595
+ server_dur: 7394
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 7394
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 4419
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 5929
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 9874
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 31747
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 25165504670
+ client_dur: 81307
+ binder_reply_id: 31748
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 25165518960
+ server_dur: 55941
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 55941
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7811
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12328
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 61168
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 31750
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 25165619958
+ client_dur: 997114
+ binder_reply_id: 31751
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 25165625294
+ server_dur: 978831
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 978831
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8147
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 5942
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 983025
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 31831
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 25181108704
+ client_dur: 38312
+ binder_reply_id: 31832
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 25181120018
+ server_dur: 17603
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 17603
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6306
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9963
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 22043
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 32724
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 25248839993
+ client_dur: 71834
+ binder_reply_id: 32725
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 25248855062
+ server_dur: 47208
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 47208
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6386
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 13069
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 52379
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 32726
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 25248942032
+ client_dur: 1065822
+ binder_reply_id: 32727
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 25248946700
+ server_dur: 1047977
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 1047977
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8512
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 5782
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 1051528
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 32728
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 25250092465
+ client_dur: 21121
+ binder_reply_id: 32729
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 25250099244
+ server_dur: 7872
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 7872
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 4475
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 6335
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 10311
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 33253
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 25332433123
+ client_dur: 129185
+ binder_reply_id: 33254
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 25332463293
+ server_dur: 75363
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 75363
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 16194
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 27446
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 85545
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 33255
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 25332622145
+ client_dur: 3970213
+ binder_reply_id: 33256
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 25332636462
+ server_dur: 3919134
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 3919134
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 23585
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16980
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 3929648
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 33282
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 25347937130
+ client_dur: 63143
+ binder_reply_id: 33283
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 25347956107
+ server_dur: 23630
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 23630
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 14609
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 17296
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 31238
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 33474
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 25415532955
+ client_dur: 74958
+ binder_reply_id: 33475
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 25415548486
+ server_dur: 48910
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 48910
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6930
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 13469
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 54559
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 33476
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 25415639063
+ client_dur: 1045725
+ binder_reply_id: 33477
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 25415643854
+ server_dur: 1028657
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 1028657
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7893
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 5559
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 1032273
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 33478
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 25416779828
+ client_dur: 22459
+ binder_reply_id: 33479
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 25416786530
+ server_dur: 8393
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 8393
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 4916
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 6179
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 11364
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 34358
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 25499090883
+ client_dur: 135524
+ binder_reply_id: 34359
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 25499122517
+ server_dur: 77879
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 77879
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 17689
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 28182
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 89653
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 34360
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 25499287661
+ client_dur: 1179689
+ binder_reply_id: 34361
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 25499301640
+ server_dur: 1130895
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 1130895
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 21282
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 17823
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 1140584
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 34438
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 25514592061
+ client_dur: 62604
+ binder_reply_id: 34439
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 25514612449
+ server_dur: 22109
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 22109
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 14020
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 19238
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 29346
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 35133
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 25582338627
+ client_dur: 162705
+ binder_reply_id: 35134
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 25582368275
+ server_dur: 92253
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 92253
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 33673
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 26483
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 102549
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 35135
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 25582559609
+ client_dur: 1051443
+ binder_reply_id: 35136
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 25582572935
+ server_dur: 992794
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 992794
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 22295
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 15761
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 1013387
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 35137
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 25583792668
+ client_dur: 57270
+ binder_reply_id: 35138
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 25583811204
+ server_dur: 18520
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 18520
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 14321
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16357
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 26592
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 35788
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 25665575887
+ client_dur: 98551
+ binder_reply_id: 35789
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 25665594994
+ server_dur: 67512
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 67512
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7988
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16922
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 73641
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 35790
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 25665714191
+ client_dur: 2056246
+ binder_reply_id: 35791
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 25665719790
+ server_dur: 2036405
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 2036405
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9097
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 6577
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 2040572
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 35828
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 25681400816
+ client_dur: 89610
+ binder_reply_id: 35829
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 25681427461
+ server_dur: 37612
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 37612
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 17669
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 23561
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 48380
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 36400
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 25748935127
+ client_dur: 126067
+ binder_reply_id: 36401
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 25748964935
+ server_dur: 75428
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 75428
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 14504
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 25325
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 86238
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 36403
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 25749129537
+ client_dur: 1130001
+ binder_reply_id: 36404
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 25749140148
+ server_dur: 1092654
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 1092654
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 17304
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12502
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 1100195
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 36405
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 25750403211
+ client_dur: 43991
+ binder_reply_id: 36406
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 25750417428
+ server_dur: 15659
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 15659
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9809
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 13575
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 20607
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37341
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 25832201262
+ client_dur: 76032
+ binder_reply_id: 37342
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 25832217990
+ server_dur: 49551
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 49551
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6906
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14816
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 54310
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37343
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 25832312368
+ client_dur: 1052337
+ binder_reply_id: 37344
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 25832317105
+ server_dur: 1035144
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 1035144
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8239
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 5578
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 1038520
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37487
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 25847799175
+ client_dur: 40678
+ binder_reply_id: 37488
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 25847812958
+ server_dur: 17906
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 17906
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6168
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11828
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 22682
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37553
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 25855749248
+ client_dur: 31727
+ binder_reply_id: 37554
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 25855758456
+ server_dur: 14151
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 14151
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5859
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 7968
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 17900
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37647
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 25865415841
+ client_dur: 46578
+ binder_reply_id: 37648
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 25865424168
+ server_dur: 29991
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 29991
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5933
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 7031
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 33614
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37649
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 25865488539
+ client_dur: 1091161
+ binder_reply_id: 37650
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 25865493112
+ server_dur: 1074785
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 1074785
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7603
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 5410
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 1078148
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37765
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 25882229417
+ client_dur: 49798
+ binder_reply_id: 37766
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 25882240791
+ server_dur: 29545
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 29545
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6031
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 10125
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 33642
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37767
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 25882302427
+ client_dur: 976002
+ binder_reply_id: 37768
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 25882306957
+ server_dur: 960192
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 960192
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7146
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 5451
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 963405
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37915
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 25915516257
+ client_dur: 67861
+ binder_reply_id: 37916
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 25915531128
+ server_dur: 43477
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 43477
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6486
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12964
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 48411
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37917
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 25915614740
+ client_dur: 879798
+ binder_reply_id: 37918
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 25915619820
+ server_dur: 861862
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 861862
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8285
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 6099
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 865414
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 38527
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 25947791827
+ client_dur: 36462
+ binder_reply_id: 38528
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 25947803365
+ server_dur: 16366
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 16366
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5818
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 10213
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 20431
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 38610
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 25965634137
+ client_dur: 62809
+ binder_reply_id: 38611
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 25965647687
+ server_dur: 39248
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 39248
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6918
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11814
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 44077
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 38612
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 25965727363
+ client_dur: 1082911
+ binder_reply_id: 38613
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 25965732380
+ server_dur: 1065715
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 1065715
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7319
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 6217
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 1069375
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 38614
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 25966880090
+ client_dur: 18647
+ binder_reply_id: 38615
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 25966885882
+ server_dur: 6742
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 6742
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 4248
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 5363
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 9036
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 38709
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 25998857609
+ client_dur: 68802
+ binder_reply_id: 38710
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 25998873383
+ server_dur: 43179
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 43179
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6644
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 13433
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 48725
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 38711
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 25998956453
+ client_dur: 896029
+ binder_reply_id: 38712
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 25998961673
+ server_dur: 878692
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 878692
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7393
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 6467
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 882169
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 39533
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 26064480113
+ client_dur: 41059
+ binder_reply_id: 39534
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 26064494262
+ server_dur: 17230
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 17230
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6332
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12955
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 21772
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 39601
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 26082167007
+ client_dur: 68814
+ binder_reply_id: 39602
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 26082181896
+ server_dur: 44307
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 44307
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6523
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12985
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 49306
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 39603
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 26082265345
+ client_dur: 984160
+ binder_reply_id: 39604
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 26082270124
+ server_dur: 967726
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 967726
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7545
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 5363
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 971252
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 39605
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 26083328041
+ client_dur: 20356
+ binder_reply_id: 39606
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 26083334137
+ server_dur: 7873
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 7873
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 4423
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 5760
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 10173
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 40489
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 26165543672
+ client_dur: 76748
+ binder_reply_id: 40490
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 26165564279
+ server_dur: 46139
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 46139
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6914
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 18549
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 51285
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 40491
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 26165664730
+ client_dur: 952016
+ binder_reply_id: 40492
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 26165670566
+ server_dur: 934833
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 934833
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7438
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 6338
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 938240
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 40608
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 26181134030
+ client_dur: 39663
+ binder_reply_id: 40609
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 26181147708
+ server_dur: 17312
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 17312
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5937
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12083
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 21643
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 41435
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 26265553005
+ client_dur: 106037
+ binder_reply_id: 41436
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 26265570929
+ server_dur: 76133
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 76133
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7963
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 15290
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 82784
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 41437
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 26265695797
+ client_dur: 1070288
+ binder_reply_id: 41438
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 26265701257
+ server_dur: 1051768
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 1051768
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7786
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 6863
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 1055639
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 41439
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 26266851930
+ client_dur: 21080
+ binder_reply_id: 41440
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 26266858935
+ server_dur: 7493
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 7493
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 4365
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 6552
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 10163
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 42168
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 26348993760
+ client_dur: 74635
+ binder_reply_id: 42169
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 26349012914
+ server_dur: 45210
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 45210
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6893
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16680
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 51062
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 42170
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 26349100408
+ client_dur: 985507
+ binder_reply_id: 42171
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 26349105368
+ server_dur: 967525
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 967525
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8367
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 5894
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 971246
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 42243
+ client_process: "/system/bin/surfaceflinger"
+ client_thread: "surfaceflinger"
+ is_main_thread: true
+ client_ts: 26364884926
+ client_dur: 48465
+ binder_reply_id: 42244
+ server_process: "/vendor/bin/hw/android.hardware.graphics.composer3-service.ranchu"
+ server_thread: "binder:446_1"
+ server_ts: 26364907480
+ server_dur: 16844
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 16844
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6065
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11985
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 30415
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 34944
+ client_process: "/vendor/bin/hw/android.hardware.health-service.cuttlefish"
+ client_thread: "android.hardwar"
+ is_main_thread: true
+ client_ts: 25527594973
+ client_dur: 961513
+ binder_reply_id: 35015
+ server_process: "system_server"
+ server_thread: "system_server"
+ server_ts: 25528486848
+ server_dur: 41164
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 41164
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 16500
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 22374
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 922639
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 34473
+ client_process: "/vendor/bin/hw/android.hardware.sensors-service.example"
+ client_thread: "android.hardwar"
+ is_main_thread: true
+ client_ts: 25519230900
+ client_dur: 67687
+ binder_reply_id: 34474
+ server_process: "system_server"
+ server_thread: "system-server-i"
+ server_ts: 25519257217
+ server_dur: 19303
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 19303
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 10440
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 18453
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 38794
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37811
+ client_process: "system_server"
+ client_thread: "InputClassifier"
+ is_main_thread: false
+ client_ts: 25887934200
+ client_dur: 73511
+ binder_reply_id: 37812
+ server_process: "/vendor/bin/hw/android.hardware.input.processor-service.example"
+ server_thread: "android.hardwar"
+ server_ts: 25887963950
+ server_dur: 31341
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 31341
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8085
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12229
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 53197
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37961
+ client_process: "system_server"
+ client_thread: "InputClassifier"
+ is_main_thread: false
+ client_ts: 25924014206
+ client_dur: 48397
+ binder_reply_id: 37962
+ server_process: "/vendor/bin/hw/android.hardware.input.processor-service.example"
+ server_thread: "android.hardwar"
+ server_ts: 25924032607
+ server_dur: 19471
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 19471
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5527
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 15282
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 27588
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37966
+ client_process: "system_server"
+ client_thread: "InputClassifier"
+ is_main_thread: false
+ client_ts: 25924552433
+ client_dur: 51388
+ binder_reply_id: 37967
+ server_process: "/vendor/bin/hw/android.hardware.input.processor-service.example"
+ server_thread: "android.hardwar"
+ server_ts: 25924572649
+ server_dur: 16951
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 16951
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9856
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 13550
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 27982
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37973
+ client_process: "system_server"
+ client_thread: "InputClassifier"
+ is_main_thread: false
+ client_ts: 25925236390
+ client_dur: 40800
+ binder_reply_id: 37974
+ server_process: "/vendor/bin/hw/android.hardware.input.processor-service.example"
+ server_thread: "android.hardwar"
+ server_ts: 25925252802
+ server_dur: 11692
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 11692
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7826
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14902
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 18072
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37976
+ client_process: "system_server"
+ client_thread: "InputClassifier"
+ is_main_thread: false
+ client_ts: 25925312006
+ client_dur: 22098
+ binder_reply_id: 37977
+ server_process: "/vendor/bin/hw/android.hardware.input.processor-service.example"
+ server_thread: "android.hardwar"
+ server_ts: 25925321018
+ server_dur: 4977
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 4977
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5466
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 8602
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 8030
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37978
+ client_process: "system_server"
+ client_thread: "InputClassifier"
+ is_main_thread: false
+ client_ts: 25925340685
+ client_dur: 18485
+ binder_reply_id: 37979
+ server_process: "/vendor/bin/hw/android.hardware.input.processor-service.example"
+ server_thread: "android.hardwar"
+ server_ts: 25925348223
+ server_dur: 3660
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 3660
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 4947
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 7586
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 5952
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37980
+ client_process: "system_server"
+ client_thread: "InputClassifier"
+ is_main_thread: false
+ client_ts: 25925364763
+ client_dur: 18634
+ binder_reply_id: 37981
+ server_process: "/vendor/bin/hw/android.hardware.input.processor-service.example"
+ server_thread: "android.hardwar"
+ server_ts: 25925372247
+ server_dur: 3490
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 3490
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5003
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 7609
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 6022
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 39377
+ client_process: "system_server"
+ client_thread: "InputClassifier"
+ is_main_thread: false
+ client_ts: 26046721012
+ client_dur: 137219
+ binder_reply_id: 39378
+ server_process: "/vendor/bin/hw/android.hardware.input.processor-service.example"
+ server_thread: "android.hardwar"
+ server_ts: 26046826730
+ server_dur: 20407
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 20407
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6532
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 13018
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 117669
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37492
+ client_process: "system_server"
+ client_thread: "android.anim"
+ is_main_thread: false
+ client_ts: 25848902022
+ client_dur: 109438
+ binder_reply_id: 37493
+ server_process: "/system/bin/surfaceflinger"
+ server_thread: "binder:496_2"
+ server_ts: 25848918031
+ server_dur: 71184
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 71184
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 11944
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 17219
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 80275
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IDisplayEventConnection::stealReceiveChannel::cppServer"
+ binder_txn_id: 37495
+ client_process: "system_server"
+ client_thread: "android.anim"
+ is_main_thread: false
+ client_ts: 25849035817
+ client_dur: 85138
+ binder_reply_id: 37496
+ server_process: "/system/bin/surfaceflinger"
+ server_thread: "binder:496_2"
+ server_ts: 25849046771
+ server_dur: 23591
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 23591
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7084
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12484
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 65570
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 38606
+ client_process: "system_server"
+ client_thread: "android.anim"
+ is_main_thread: false
+ client_ts: 25965522657
+ client_dur: 87636
+ binder_reply_id: 38607
+ server_process: "/system/bin/surfaceflinger"
+ server_thread: "binder:496_2"
+ server_ts: 25965536704
+ server_dur: 31166
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "R+"
+ thread_state_dur: 8700
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 22466
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 73724
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 13912
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 39373
+ client_process: "system_server"
+ client_thread: "android.anim"
+ is_main_thread: false
+ client_ts: 26046475353
+ client_dur: 139999
+ binder_reply_id: 39374
+ server_process: "/system/bin/surfaceflinger"
+ server_thread: "binder:496_2"
+ server_ts: 26046494430
+ server_dur: 36023
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 36023
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 122602
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 17397
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 39394
+ client_process: "system_server"
+ client_thread: "android.anim"
+ is_main_thread: false
+ client_ts: 26049659202
+ client_dur: 66793
+ binder_reply_id: 39395
+ server_process: "/system/bin/surfaceflinger"
+ server_thread: "binder:496_2"
+ server_ts: 26049676304
+ server_dur: 21699
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 21699
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 50178
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16615
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37520
+ client_process: "system_server"
+ client_thread: "android.anim.lf"
+ is_main_thread: false
+ client_ts: 25852597933
+ client_dur: 72360
+ binder_reply_id: 37521
+ server_process: "/system/bin/surfaceflinger"
+ server_thread: "binder:496_2"
+ server_ts: 25852614647
+ server_dur: 40436
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 40436
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7219
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 18898
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 46243
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IDisplayEventConnection::stealReceiveChannel::cppServer"
+ binder_txn_id: 37523
+ client_process: "system_server"
+ client_thread: "android.anim.lf"
+ is_main_thread: false
+ client_ts: 25852691734
+ client_dur: 40316
+ binder_reply_id: 37524
+ server_process: "/system/bin/surfaceflinger"
+ server_thread: "binder:496_2"
+ server_ts: 25852702316
+ server_dur: 18235
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 18235
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7152
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12109
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 21055
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37514
+ client_process: "system_server"
+ client_thread: "android.display"
+ is_main_thread: false
+ client_ts: 25851140935
+ client_dur: 82845
+ binder_reply_id: 37515
+ server_process: "/system/bin/surfaceflinger"
+ server_thread: "binder:496_2"
+ server_ts: 25851157134
+ server_dur: 45749
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 45749
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 11075
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 15703
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 56067
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IDisplayEventConnection::stealReceiveChannel::cppServer"
+ binder_txn_id: 37517
+ client_process: "system_server"
+ client_thread: "android.display"
+ is_main_thread: false
+ client_ts: 25851245190
+ client_dur: 40441
+ binder_reply_id: 37518
+ server_process: "/system/bin/surfaceflinger"
+ server_thread: "binder:496_2"
+ server_ts: 25851255329
+ server_dur: 18715
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 18715
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7120
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11685
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 21636
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::ITunnelModeEnabledListener::onTunnelModeEnabledChanged::cppClient"
+ binder_txn_id: 37532
+ client_process: "system_server"
+ client_thread: "android.display"
+ is_main_thread: false
+ client_ts: 25854136251
+ client_dur: 140850
+ binder_reply_id: 37533
+ server_process: "/system/bin/surfaceflinger"
+ server_thread: "binder:496_2"
+ server_ts: 25854153001
+ server_dur: 42359
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 42359
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 78554
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16641
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 45655
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 38658
+ client_process: "system_server"
+ client_thread: "android.io"
+ is_main_thread: false
+ client_ts: 25982476503
+ client_dur: 71952
+ binder_reply_id: 38659
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25982503060
+ server_dur: 29743
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 29743
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6598
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 20959
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 44395
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37714
+ client_process: "system_server"
+ client_thread: "android.ui"
+ is_main_thread: false
+ client_ts: 25873131715
+ client_dur: 117082
+ binder_reply_id: 37715
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25873153628
+ server_dur: 22969
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 22969
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 105865
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11217
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37775
+ client_process: "system_server"
+ client_thread: "android.ui"
+ is_main_thread: false
+ client_ts: 25883734665
+ client_dur: 152980
+ binder_reply_id: 37776
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25883839992
+ server_dur: 25887
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 25887
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 12161
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11974
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 128845
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 35061
+ client_process: "system_server"
+ client_thread: "binder:641_5"
+ is_main_thread: false
+ client_ts: 25537922715
+ client_dur: 260041
+ binder_reply_id: 35062
+ server_process: "/vendor/bin/hw/android.hardware.lights-service.example"
+ server_thread: "android.hardwar"
+ server_ts: 25537947459
+ server_dur: 137623
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 137623
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 238582
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 21459
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::fixupAppData::cppServer"
+ binder_txn_id: 32835
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25285800698
+ client_dur: 1963972
+ binder_reply_id: 32836
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_2"
+ server_ts: 25285972364
+ server_dur: 1764197
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "D"
+ thread_state_dur: 284726
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "R"
+ thread_state_dur: 110633
+ thread_state_count: 4
+ }
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "R+"
+ thread_state_dur: 42080
+ thread_state_count: 4
+ }
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 1326758
+ thread_state_count: 9
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 14967
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 33562
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 1915443
+ thread_state_count: 1
+ }
+ blocked_functions {
+ thread_state_type: "binder_reply"
+ blocked_function: "__get_node_page"
+ blocked_function_dur: 284726
+ blocked_function_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::createAppDataBatched::cppServer"
+ binder_txn_id: 33301
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25359359930
+ client_dur: 58056845
+ binder_reply_id: 33302
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_2"
+ server_ts: 25359406757
+ server_dur: 57997245
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "R"
+ thread_state_dur: 1327838
+ thread_state_count: 27
+ }
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "R+"
+ thread_state_dur: 3079729
+ thread_state_count: 15
+ }
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 53589678
+ thread_state_count: 43
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 4434
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 9923013
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 51802
+ thread_state_count: 3
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 48077596
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 33494
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25417583831
+ client_dur: 159127
+ binder_reply_id: 33495
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_3"
+ server_ts: 25417600127
+ server_dur: 117766
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 117766
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 18342
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 18832
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 121953
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 33498
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25417795254
+ client_dur: 84143
+ binder_reply_id: 33499
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_3"
+ server_ts: 25417807548
+ server_dur: 52980
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 52980
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 15788
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 15710
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 52645
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 33501
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25417900256
+ client_dur: 72685
+ binder_reply_id: 33502
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_3"
+ server_ts: 25417909455
+ server_dur: 47502
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 47502
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 13072
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9700
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 49913
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 33504
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25417989778
+ client_dur: 70644
+ binder_reply_id: 33505
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_3"
+ server_ts: 25418000174
+ server_dur: 44675
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 44675
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 12725
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 8711
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 49208
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 33507
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25418084967
+ client_dur: 63335
+ binder_reply_id: 33508
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_3"
+ server_ts: 25418094122
+ server_dur: 43952
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 43952
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7803
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 8330
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 47202
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 33510
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25418162868
+ client_dur: 73089
+ binder_reply_id: 33511
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_3"
+ server_ts: 25418174366
+ server_dur: 51193
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 51193
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7756
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 8486
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 56847
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 33513
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25418257945
+ client_dur: 71217
+ binder_reply_id: 33514
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_3"
+ server_ts: 25418268205
+ server_dur: 50582
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 50582
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7766
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 8070
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 55381
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 33516
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25418344237
+ client_dur: 68933
+ binder_reply_id: 33517
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_3"
+ server_ts: 25418354448
+ server_dur: 48033
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 48033
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7990
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 8085
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 52858
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 33519
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25418434003
+ client_dur: 70051
+ binder_reply_id: 33520
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_3"
+ server_ts: 25418444322
+ server_dur: 49218
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 49218
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7844
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 8346
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 53861
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 33522
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25418523244
+ client_dur: 71860
+ binder_reply_id: 33523
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_3"
+ server_ts: 25418533528
+ server_dur: 51097
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 51097
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7808
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 8342
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 55710
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 33525
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25418613235
+ client_dur: 80217
+ binder_reply_id: 33526
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_3"
+ server_ts: 25418623429
+ server_dur: 59922
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 59922
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7367
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 8921
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 63929
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 33529
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25418707467
+ client_dur: 100848
+ binder_reply_id: 33531
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_2"
+ server_ts: 25418716983
+ server_dur: 80176
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 80176
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5595
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9165
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 86088
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 33534
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25418859801
+ client_dur: 96287
+ binder_reply_id: 33535
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_3"
+ server_ts: 25418874922
+ server_dur: 66129
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 66129
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 10134
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 15427
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 70726
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 33537
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25418990456
+ client_dur: 73140
+ binder_reply_id: 33538
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_3"
+ server_ts: 25419002227
+ server_dur: 50140
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 50140
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8499
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 10864
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 53777
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 33540
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25419082851
+ client_dur: 69691
+ binder_reply_id: 33541
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_3"
+ server_ts: 25419093189
+ server_dur: 48614
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 48614
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7874
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 8725
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 53092
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 33543
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25419197218
+ client_dur: 97019
+ binder_reply_id: 33544
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_3"
+ server_ts: 25419208385
+ server_dur: 75308
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 75308
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7886
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9213
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 79920
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 33547
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25419309331
+ client_dur: 68503
+ binder_reply_id: 33548
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_3"
+ server_ts: 25419319559
+ server_dur: 48070
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 48070
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7747
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 8191
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 52565
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 33550
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25419402979
+ client_dur: 68957
+ binder_reply_id: 33551
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_3"
+ server_ts: 25419413041
+ server_dur: 48592
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 48592
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7741
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 8200
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 53016
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 33553
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25419490548
+ client_dur: 70455
+ binder_reply_id: 33554
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_3"
+ server_ts: 25419500948
+ server_dur: 49673
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 49673
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7765
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 8581
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 54109
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 33556
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25419576883
+ client_dur: 68126
+ binder_reply_id: 33557
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_3"
+ server_ts: 25419587154
+ server_dur: 47213
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 47213
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8151
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 8194
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 51781
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 33559
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25419662926
+ client_dur: 68985
+ binder_reply_id: 33560
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_3"
+ server_ts: 25419673103
+ server_dur: 48313
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 48313
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7673
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 8910
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 52402
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 33562
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25419747914
+ client_dur: 70204
+ binder_reply_id: 33563
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_3"
+ server_ts: 25419758511
+ server_dur: 49425
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 49425
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7622
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 8342
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 54240
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 33565
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25419838530
+ client_dur: 74294
+ binder_reply_id: 33566
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_3"
+ server_ts: 25419851530
+ server_dur: 50943
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 50943
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7628
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 10028
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 56638
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 33568
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25419930878
+ client_dur: 71254
+ binder_reply_id: 33569
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_3"
+ server_ts: 25419941349
+ server_dur: 50447
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 50447
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7791
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 8386
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 55077
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 33571
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25420022065
+ client_dur: 70064
+ binder_reply_id: 33572
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_3"
+ server_ts: 25420034446
+ server_dur: 47514
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 47514
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7675
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 8509
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 53880
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 33574
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25420107549
+ client_dur: 67997
+ binder_reply_id: 33575
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_3"
+ server_ts: 25420117365
+ server_dur: 47959
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 47959
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7678
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 8179
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 52140
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 33577
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25420191395
+ client_dur: 67798
+ binder_reply_id: 33578
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_3"
+ server_ts: 25420201429
+ server_dur: 47599
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 47599
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7599
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 8116
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 52083
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 33580
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25420275173
+ client_dur: 68378
+ binder_reply_id: 33581
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_3"
+ server_ts: 25420285912
+ server_dur: 47561
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 47561
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7527
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 8398
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 52453
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 33583
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25420359212
+ client_dur: 68447
+ binder_reply_id: 33584
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_3"
+ server_ts: 25420369692
+ server_dur: 47721
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 47721
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7488
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 8244
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 52715
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 33586
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25420458125
+ client_dur: 69217
+ binder_reply_id: 33587
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_3"
+ server_ts: 25420468424
+ server_dur: 48683
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 48683
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7776
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 8280
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 53161
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 33589
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25420542827
+ client_dur: 68982
+ binder_reply_id: 33590
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_3"
+ server_ts: 25420553053
+ server_dur: 48593
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 48593
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7608
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 8252
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 53122
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 33592
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25420642092
+ client_dur: 75336
+ binder_reply_id: 33593
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_3"
+ server_ts: 25420652418
+ server_dur: 54692
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 54692
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7665
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 8497
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 59174
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 33595
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25420732600
+ client_dur: 66989
+ binder_reply_id: 33596
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_3"
+ server_ts: 25420742486
+ server_dur: 46762
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 46762
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7475
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 8901
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 50613
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 33598
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25420814670
+ client_dur: 66733
+ binder_reply_id: 33599
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_3"
+ server_ts: 25420824622
+ server_dur: 46663
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 46663
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7574
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 8227
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 50932
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 33601
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25420898454
+ client_dur: 67283
+ binder_reply_id: 33602
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_3"
+ server_ts: 25420908490
+ server_dur: 47258
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 47258
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7567
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 8118
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 51598
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 33604
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25420980515
+ client_dur: 68119
+ binder_reply_id: 33605
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_3"
+ server_ts: 25420990555
+ server_dur: 47881
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 47881
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7644
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 8028
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 52447
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 33607
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25421062960
+ client_dur: 67691
+ binder_reply_id: 33608
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_3"
+ server_ts: 25421073099
+ server_dur: 47279
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 47279
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7541
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 8146
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 52004
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 33610
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25421149398
+ client_dur: 67456
+ binder_reply_id: 33611
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_3"
+ server_ts: 25421159582
+ server_dur: 46812
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 46812
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7795
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 8391
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 51270
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 33613
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25421234249
+ client_dur: 102474
+ binder_reply_id: 33614
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_3"
+ server_ts: 25421244402
+ server_dur: 81689
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 81689
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7840
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 8330
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 86304
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 33616
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25421351001
+ client_dur: 68629
+ binder_reply_id: 33617
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_3"
+ server_ts: 25421361736
+ server_dur: 50268
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 50268
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5126
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 8635
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 54868
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 33619
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25421437438
+ client_dur: 78505
+ binder_reply_id: 33620
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_3"
+ server_ts: 25421447770
+ server_dur: 60705
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 60705
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 4951
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 8088
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 65466
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 33624
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25421529017
+ client_dur: 90619
+ binder_reply_id: 33627
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_2"
+ server_ts: 25421536869
+ server_dur: 70139
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 70139
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7356
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 8106
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 75157
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 33641
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25421667924
+ client_dur: 93173
+ binder_reply_id: 33642
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_3"
+ server_ts: 25421681338
+ server_dur: 67854
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 67854
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7051
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 13081
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 73041
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 33652
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25421792054
+ client_dur: 79868
+ binder_reply_id: 33653
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_3"
+ server_ts: 25421807359
+ server_dur: 55975
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 55975
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5930
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11072
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 62866
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 33661
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25421889199
+ client_dur: 85495
+ binder_reply_id: 33662
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_2"
+ server_ts: 25421897198
+ server_dur: 65834
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 65834
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6544
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 8301
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 70650
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 33676
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25422008441
+ client_dur: 90387
+ binder_reply_id: 33677
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_3"
+ server_ts: 25422024828
+ server_dur: 62034
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 62034
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7260
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14510
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 68617
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 33687
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25422133767
+ client_dur: 75807
+ binder_reply_id: 33688
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_3"
+ server_ts: 25422147676
+ server_dur: 51244
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 51244
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5734
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 10426
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 59647
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 33695
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25422225432
+ client_dur: 98464
+ binder_reply_id: 33697
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_2"
+ server_ts: 25422233734
+ server_dur: 79168
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 79168
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6329
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 8507
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 83628
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 33709
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25422355100
+ client_dur: 93353
+ binder_reply_id: 33712
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_3"
+ server_ts: 25422370044
+ server_dur: 64908
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 64908
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7310
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 10931
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 75112
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 33722
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25422488580
+ client_dur: 81077
+ binder_reply_id: 33723
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_3"
+ server_ts: 25422503734
+ server_dur: 56902
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 56902
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6131
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 10845
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 64101
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 33730
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25422585669
+ client_dur: 81637
+ binder_reply_id: 33732
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_2"
+ server_ts: 25422593474
+ server_dur: 62945
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 62945
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6138
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 7890
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 67609
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 33741
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25422698364
+ client_dur: 307058
+ binder_reply_id: 33756
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_3"
+ server_ts: 25422912325
+ server_dur: 72852
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 72852
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 14212
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11310
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 281536
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 33766
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25423038416
+ client_dur: 85760
+ binder_reply_id: 33769
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_3"
+ server_ts: 25423050636
+ server_dur: 59617
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 59617
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 11286
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 10133
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 64341
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 33777
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25423141970
+ client_dur: 65309
+ binder_reply_id: 33779
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_3"
+ server_ts: 25423147589
+ server_dur: 46373
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 46373
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9496
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 6407
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 49406
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 33786
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25423222741
+ client_dur: 83982
+ binder_reply_id: 33788
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_3"
+ server_ts: 25423241349
+ server_dur: 52179
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 52179
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 10593
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12636
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 60753
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 33796
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25423321767
+ client_dur: 84883
+ binder_reply_id: 33797
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_2"
+ server_ts: 25423330170
+ server_dur: 64541
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 64541
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6336
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9106
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 69441
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 33811
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25423444205
+ client_dur: 97794
+ binder_reply_id: 33812
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_3"
+ server_ts: 25423460614
+ server_dur: 64145
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 64145
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 12573
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14996
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 70225
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 33822
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25423571069
+ client_dur: 79325
+ binder_reply_id: 33823
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_3"
+ server_ts: 25423585310
+ server_dur: 56042
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 56042
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6198
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 10292
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 62835
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 33831
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25423667089
+ client_dur: 80196
+ binder_reply_id: 33832
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_2"
+ server_ts: 25423674807
+ server_dur: 61267
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 61267
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6315
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 8138
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 65743
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 33844
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25423778912
+ client_dur: 85732
+ binder_reply_id: 33847
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_3"
+ server_ts: 25423789294
+ server_dur: 63712
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 63712
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7159
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 10013
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 68560
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 33855
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25423899033
+ client_dur: 83874
+ binder_reply_id: 33858
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_3"
+ server_ts: 25423913207
+ server_dur: 61126
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 61126
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5881
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12678
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 65315
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 33865
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25423999018
+ client_dur: 80807
+ binder_reply_id: 33867
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_2"
+ server_ts: 25424006723
+ server_dur: 62351
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 62351
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6141
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 7616
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 67050
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 33875
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25424119494
+ client_dur: 90723
+ binder_reply_id: 33876
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_3"
+ server_ts: 25424133267
+ server_dur: 65314
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 65314
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6964
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 13942
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 69817
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 33885
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25424244832
+ client_dur: 75424
+ binder_reply_id: 33888
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_3"
+ server_ts: 25424257485
+ server_dur: 54108
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 54108
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6028
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9842
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 59554
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 33895
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25424340551
+ client_dur: 68134
+ binder_reply_id: 33896
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_3"
+ server_ts: 25424352371
+ server_dur: 47952
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 47952
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5893
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9306
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 52935
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 33902
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25424423268
+ client_dur: 79235
+ binder_reply_id: 33905
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_2"
+ server_ts: 25424430889
+ server_dur: 60700
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 60700
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6277
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 7873
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 65085
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 33917
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25424532071
+ client_dur: 132824
+ binder_reply_id: 33918
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_3"
+ server_ts: 25424548055
+ server_dur: 63569
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 63569
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 12324
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14037
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 106463
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 33932
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25424695404
+ client_dur: 78895
+ binder_reply_id: 33933
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_3"
+ server_ts: 25424709439
+ server_dur: 55753
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 55753
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6175
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 10552
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 62168
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 33940
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25424790712
+ client_dur: 84106
+ binder_reply_id: 33942
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_2"
+ server_ts: 25424798759
+ server_dur: 65429
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 65429
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6177
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 8137
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 69792
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 33954
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25424904112
+ client_dur: 86631
+ binder_reply_id: 33957
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_3"
+ server_ts: 25424916724
+ server_dur: 62466
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 62466
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7806
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 10689
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 68136
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 33965
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25425012627
+ client_dur: 82418
+ binder_reply_id: 33966
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_1"
+ server_ts: 25425020923
+ server_dur: 61511
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 61511
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6924
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9920
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 65574
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 33975
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25425134890
+ client_dur: 80492
+ binder_reply_id: 33977
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_1"
+ server_ts: 25425151484
+ server_dur: 55304
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 55304
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5880
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12175
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 62437
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 33984
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25425231522
+ client_dur: 103387
+ binder_reply_id: 33986
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_2"
+ server_ts: 25425239219
+ server_dur: 85661
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "R+"
+ thread_state_dur: 5104
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 80557
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 4865
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 8201
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 90321
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 34002
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25425372618
+ client_dur: 91185
+ binder_reply_id: 34003
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_1"
+ server_ts: 25425384448
+ server_dur: 68305
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 68305
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6147
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14029
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 71009
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 34012
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25425498321
+ client_dur: 82574
+ binder_reply_id: 34014
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_1"
+ server_ts: 25425511999
+ server_dur: 60168
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 60168
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5857
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11452
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 65265
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 34021
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25425597030
+ client_dur: 96570
+ binder_reply_id: 34023
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_2"
+ server_ts: 25425604832
+ server_dur: 77508
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 77508
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6303
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 7901
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 82366
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 34037
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25425734906
+ client_dur: 90504
+ binder_reply_id: 34038
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_1"
+ server_ts: 25425748243
+ server_dur: 65377
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 65377
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6971
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 13693
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 69840
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 34047
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25425853178
+ client_dur: 75664
+ binder_reply_id: 34048
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_1"
+ server_ts: 25425868250
+ server_dur: 50805
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 50805
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5844
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 10194
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 59626
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 34056
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25425949096
+ client_dur: 75914
+ binder_reply_id: 34057
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_1"
+ server_ts: 25425967109
+ server_dur: 49564
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 49564
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5912
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11709
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 58293
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 34390
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25507770941
+ client_dur: 659345
+ binder_reply_id: 34391
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25507817302
+ server_dur: 493959
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 493959
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 631337
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 28008
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 34394
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25508483480
+ client_dur: 113431
+ binder_reply_id: 34395
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25508520735
+ server_dur: 37596
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 37596
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 88500
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 24931
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 34422
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25512346526
+ client_dur: 247626
+ binder_reply_id: 34423
+ server_process: "/vendor/bin/hw/android.hardware.sensors-service.example"
+ server_thread: "android.hardwar"
+ server_ts: 25512379433
+ server_dur: 68665
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 68665
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 133962
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 30666
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 82998
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 34483
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25519832521
+ client_dur: 244039
+ binder_reply_id: 34484
+ server_process: "/vendor/bin/hw/android.hardware.sensors-service.example"
+ server_thread: "android.hardwar"
+ server_ts: 25519857925
+ server_dur: 186450
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 186450
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 217892
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 26147
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 34493
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25520140841
+ client_dur: 73832
+ binder_reply_id: 34494
+ server_process: "/vendor/bin/hw/android.hardware.sensors-service.example"
+ server_thread: "android.hardwar"
+ server_ts: 25520164682
+ server_dur: 18571
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 18571
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 48555
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 25277
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 34538
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25523026906
+ client_dur: 340409
+ binder_reply_id: 34541
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25523191948
+ server_dur: 40297
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 40297
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 118919
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 23930
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 197560
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 34637
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25524188687
+ client_dur: 89696
+ binder_reply_id: 34638
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25524226273
+ server_dur: 31748
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 31748
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 12651
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 31715
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 45330
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 34680
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25524630643
+ client_dur: 80450
+ binder_reply_id: 34681
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25524666614
+ server_dur: 25632
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 25632
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 11406
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 29996
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 39048
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 34700
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25524881306
+ client_dur: 64099
+ binder_reply_id: 34704
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25524906781
+ server_dur: 18982
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 18982
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 13336
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 17503
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 33260
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 34734
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25525155622
+ client_dur: 182063
+ binder_reply_id: 34738
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25525206343
+ server_dur: 111535
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 111535
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 13377
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 43125
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 125561
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37794
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25886972081
+ client_dur: 392512
+ binder_reply_id: 37796
+ server_process: "/system/bin/hwservicemanager"
+ server_thread: "hwservicemanage"
+ server_ts: 25887243579
+ server_dur: 100309
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 100309
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 13590
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 19459
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 359463
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37801
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25887384160
+ client_dur: 146196
+ binder_reply_id: 37806
+ server_process: "/system/bin/hwservicemanager"
+ server_thread: "hwservicemanage"
+ server_ts: 25887501006
+ server_dur: 15631
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 15631
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9775
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11440
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 124981
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37807
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25887600584
+ client_dur: 263828
+ binder_reply_id: 37810
+ server_process: "/system/bin/hwservicemanager"
+ server_thread: "hwservicemanage"
+ server_ts: 25887779478
+ server_dur: 69332
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 69332
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9515
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 15240
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 239073
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37814
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25888119355
+ client_dur: 387727
+ binder_reply_id: 37815
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25888158284
+ server_dur: 330571
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 330571
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 356717
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 31010
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37816
+ client_process: "system_server"
+ client_thread: "system-server-i"
+ is_main_thread: false
+ client_ts: 25888835343
+ client_dur: 324156
+ binder_reply_id: 37820
+ server_process: "/system/bin/hwservicemanager"
+ server_thread: "hwservicemanage"
+ server_ts: 25888991319
+ server_dur: 112375
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 112375
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 48234
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 15111
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 260811
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 25594
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24562258099
+ client_dur: 95711
+ binder_reply_id: 25595
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24562294551
+ server_dur: 25989
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 25989
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8237
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 35896
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 51578
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 25630
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24576142302
+ client_dur: 100932
+ binder_reply_id: 25631
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24576178251
+ server_dur: 35440
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 35440
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 80555
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 20377
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 25633
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24577928034
+ client_dur: 98898
+ binder_reply_id: 25634
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24577965065
+ server_dur: 33433
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 33433
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 76763
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 22135
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 25639
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24579825258
+ client_dur: 91999
+ binder_reply_id: 25640
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24579857006
+ server_dur: 32771
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 32771
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 74033
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 17966
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 25667
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24586203617
+ client_dur: 160861
+ binder_reply_id: 25668
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24586241455
+ server_dur: 29609
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 29609
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 84783
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 21505
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 54573
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 25677
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24588923637
+ client_dur: 381582
+ binder_reply_id: 25678
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24588962975
+ server_dur: 29095
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 29095
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 284802
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 43271
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 53509
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 25687
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24592040006
+ client_dur: 240562
+ binder_reply_id: 25688
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24592076186
+ server_dur: 28582
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 28582
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 166882
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 23567
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 50113
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 25692
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24594213703
+ client_dur: 673648
+ binder_reply_id: 25693
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24594243436
+ server_dur: 22881
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 22881
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 613645
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 18416
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 41587
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 25697
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24595958354
+ client_dur: 77980
+ binder_reply_id: 25698
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24595993807
+ server_dur: 22950
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 22950
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 13233
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 17501
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 47246
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 25701
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24597520537
+ client_dur: 49553
+ binder_reply_id: 25702
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24597542932
+ server_dur: 16294
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 16294
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6052
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 17497
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 26004
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 25708
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24598897106
+ client_dur: 68689
+ binder_reply_id: 25709
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24598922372
+ server_dur: 18191
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 18191
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 19869
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 17496
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 31324
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 25712
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24600413274
+ client_dur: 57521
+ binder_reply_id: 25713
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24600434769
+ server_dur: 13168
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 13168
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 18935
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 17305
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 21281
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 25717
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24602399966
+ client_dur: 80715
+ binder_reply_id: 25718
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24602431540
+ server_dur: 23433
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 23433
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 19401
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16976
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 44338
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 25724
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24603839586
+ client_dur: 50942
+ binder_reply_id: 25725
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24603864064
+ server_dur: 11482
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 11482
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 10826
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 17489
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 22627
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 25728
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24605137324
+ client_dur: 53391
+ binder_reply_id: 25729
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24605161847
+ server_dur: 16108
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 16108
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8718
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 13789
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 30884
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 25737
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24607833798
+ client_dur: 79225
+ binder_reply_id: 25738
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24607864767
+ server_dur: 25864
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 25864
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 15705
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 13824
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 49696
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 25795
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24609098413
+ client_dur: 86504
+ binder_reply_id: 25796
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24609132077
+ server_dur: 29462
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 29462
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 16706
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12753
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 57045
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 26282
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24646418600
+ client_dur: 104600
+ binder_reply_id: 26283
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24646446859
+ server_dur: 25546
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 25546
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 88156
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16444
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 26436
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24671385803
+ client_dur: 170289
+ binder_reply_id: 26437
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24671409853
+ server_dur: 37825
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 37825
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 159649
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 10640
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 26515
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24681379300
+ client_dur: 57187
+ binder_reply_id: 26517
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24681399705
+ server_dur: 21305
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 21305
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 45894
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11293
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 26526
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24682251210
+ client_dur: 182307
+ binder_reply_id: 26527
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24682273023
+ server_dur: 20664
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 20664
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 170421
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11886
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 26533
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24683246275
+ client_dur: 207024
+ binder_reply_id: 26535
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24683267459
+ server_dur: 20968
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 20968
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 195402
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11622
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 26545
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24685075466
+ client_dur: 189680
+ binder_reply_id: 26546
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24685097014
+ server_dur: 20394
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 20394
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 178063
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11617
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 26562
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24687047835
+ client_dur: 52825
+ binder_reply_id: 26563
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24687065149
+ server_dur: 20404
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 20404
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 43783
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9042
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 26588
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24690752961
+ client_dur: 1138197
+ binder_reply_id: 26589
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24690773594
+ server_dur: 20275
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 20275
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 1126872
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11325
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 26606
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24692956765
+ client_dur: 967152
+ binder_reply_id: 26607
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24692973830
+ server_dur: 19601
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 19601
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 958676
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 8476
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 26661
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24699086985
+ client_dur: 2761757
+ binder_reply_id: 26662
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24699105127
+ server_dur: 19717
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 19717
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 1527554
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 34654
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 13787
+ thread_state_count: 3
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 1185762
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 26695
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24704026795
+ client_dur: 151503
+ binder_reply_id: 26697
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24704048621
+ server_dur: 19875
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 19875
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 140149
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11354
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 26730
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24707823403
+ client_dur: 418749
+ binder_reply_id: 26731
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24707844258
+ server_dur: 19420
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 19420
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 406990
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11759
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 27263
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24715413797
+ client_dur: 55453
+ binder_reply_id: 27264
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24715432924
+ server_dur: 20515
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 20515
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 45345
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 10108
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 27291
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24718094584
+ client_dur: 396933
+ binder_reply_id: 27292
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24718112985
+ server_dur: 20123
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 20123
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 388214
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 8719
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 27300
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24720389105
+ client_dur: 56955
+ binder_reply_id: 27301
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24720410588
+ server_dur: 19497
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 19497
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 44293
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12662
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 27311
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24722237372
+ client_dur: 57988
+ binder_reply_id: 27312
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24722254479
+ server_dur: 19636
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 19636
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 49260
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 8728
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 27324
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24724223102
+ client_dur: 52789
+ binder_reply_id: 27325
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24724240486
+ server_dur: 19628
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 19628
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 43517
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9272
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 27343
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24727963525
+ client_dur: 54516
+ binder_reply_id: 27344
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24727983399
+ server_dur: 19277
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 19277
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 42947
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11569
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 27347
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24729275294
+ client_dur: 69527
+ binder_reply_id: 27348
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24729308987
+ server_dur: 19817
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 19817
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 53717
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 15810
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 27354
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24730464621
+ client_dur: 56830
+ binder_reply_id: 27355
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24730486611
+ server_dur: 19083
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 19083
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 43291
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 13539
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 27356
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24731541792
+ client_dur: 59775
+ binder_reply_id: 27357
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24731563743
+ server_dur: 19533
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 19533
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 46204
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 13571
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 27358
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24732635124
+ client_dur: 62661
+ binder_reply_id: 27359
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24732657580
+ server_dur: 22874
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 22874
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 48666
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 13995
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 27361
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24733694931
+ client_dur: 58749
+ binder_reply_id: 27362
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24733718525
+ server_dur: 19626
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 19626
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 43933
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14816
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 27368
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24734519268
+ client_dur: 56933
+ binder_reply_id: 27369
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24734541289
+ server_dur: 19505
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 19505
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 43275
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 13658
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 27370
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24735621739
+ client_dur: 59911
+ binder_reply_id: 27371
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24735644076
+ server_dur: 19698
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 19698
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 43712
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16199
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 27376
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24737578050
+ client_dur: 70375
+ binder_reply_id: 27377
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24737599805
+ server_dur: 19338
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 19338
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 56971
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 13404
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 27378
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24738379435
+ client_dur: 59307
+ binder_reply_id: 27379
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24738401334
+ server_dur: 19247
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 19247
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 43396
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 15911
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 27380
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24739381820
+ client_dur: 59860
+ binder_reply_id: 27381
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24739404070
+ server_dur: 19274
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 19274
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 46066
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 13794
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 27382
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24740296188
+ client_dur: 60137
+ binder_reply_id: 27383
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24740318642
+ server_dur: 19217
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 19217
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 46020
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14117
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 27384
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24741062753
+ client_dur: 60144
+ binder_reply_id: 27385
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24741084854
+ server_dur: 19235
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 19235
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 46606
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 13538
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 27386
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24742188157
+ client_dur: 62717
+ binder_reply_id: 27387
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24742210951
+ server_dur: 22644
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 22644
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 48544
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14173
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 27388
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24743215720
+ client_dur: 57215
+ binder_reply_id: 27389
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24743238157
+ server_dur: 19299
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 19299
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 43415
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 13800
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 27392
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24744310059
+ client_dur: 62304
+ binder_reply_id: 27393
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24744332347
+ server_dur: 22570
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 22570
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 46924
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 15380
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 27399
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24745726015
+ client_dur: 42535
+ binder_reply_id: 27400
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24745741462
+ server_dur: 13274
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 13274
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 33141
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9394
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 27401
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24746812940
+ client_dur: 62487
+ binder_reply_id: 27402
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24746836091
+ server_dur: 21679
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 21679
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 46393
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16094
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 27403
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24747614390
+ client_dur: 60851
+ binder_reply_id: 27404
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24747636567
+ server_dur: 21322
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 21322
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 45378
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 15473
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 27405
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24748641464
+ client_dur: 98796
+ binder_reply_id: 27406
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24748705431
+ server_dur: 19737
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 19737
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 78847
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 19949
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 27411
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24749789307
+ client_dur: 58174
+ binder_reply_id: 27412
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24749812809
+ server_dur: 19265
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 19265
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 43211
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14963
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 27443
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24753793235
+ client_dur: 285781
+ binder_reply_id: 27446
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24753872138
+ server_dur: 21667
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 21667
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 274761
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11020
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 27501
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24760573761
+ client_dur: 55871
+ binder_reply_id: 27502
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24760593814
+ server_dur: 19818
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 19818
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 44199
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11672
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 27506
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24761811419
+ client_dur: 104650
+ binder_reply_id: 27507
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24761830688
+ server_dur: 19717
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 19717
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 95005
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9645
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 27515
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24763891343
+ client_dur: 52306
+ binder_reply_id: 27516
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24763908905
+ server_dur: 19517
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 19517
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 43118
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9188
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 27522
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24764906537
+ client_dur: 55552
+ binder_reply_id: 27523
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24764927197
+ server_dur: 19435
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 19435
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 43753
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11799
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 27526
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24766255714
+ client_dur: 69186
+ binder_reply_id: 27527
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24766285051
+ server_dur: 22399
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 22399
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 56215
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12971
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 27530
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24767227873
+ client_dur: 55587
+ binder_reply_id: 27531
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24767248556
+ server_dur: 19425
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 19425
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 43433
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12154
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 27555
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24770081943
+ client_dur: 54467
+ binder_reply_id: 27556
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24770101200
+ server_dur: 19938
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 19938
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 43918
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 10549
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 27580
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24773596028
+ client_dur: 197569
+ binder_reply_id: 27581
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24773614039
+ server_dur: 28282
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 28282
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 189146
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 8423
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 27672
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24785387433
+ client_dur: 2028794
+ binder_reply_id: 27673
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24785409117
+ server_dur: 20078
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 20078
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 2016399
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12395
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 27684
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24788209976
+ client_dur: 153903
+ binder_reply_id: 27685
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24788233234
+ server_dur: 20622
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 20622
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 142686
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11217
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 27686
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24789221986
+ client_dur: 57706
+ binder_reply_id: 27687
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24789245188
+ server_dur: 19214
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 19214
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 43060
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14646
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 27690
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24790705709
+ client_dur: 65167
+ binder_reply_id: 27691
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24790730301
+ server_dur: 25107
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 25107
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 50439
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14728
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 27692
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24791500958
+ client_dur: 57742
+ binder_reply_id: 27693
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24791523460
+ server_dur: 19471
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 19471
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 43368
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14374
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 27694
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24792307538
+ client_dur: 58314
+ binder_reply_id: 27695
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24792330556
+ server_dur: 19368
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 19368
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 43637
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14677
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 27697
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24793372795
+ client_dur: 57390
+ binder_reply_id: 27698
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24793395000
+ server_dur: 19464
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 19464
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 43604
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 13786
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 27703
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24794492101
+ client_dur: 54114
+ binder_reply_id: 27704
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24794511315
+ server_dur: 19523
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 19523
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 43100
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11014
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 27707
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24795410099
+ client_dur: 54987
+ binder_reply_id: 27708
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24795430573
+ server_dur: 19258
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 19258
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 42787
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12200
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 27726
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24796677839
+ client_dur: 55067
+ binder_reply_id: 27727
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24796698242
+ server_dur: 19086
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 19086
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 42908
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12159
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 27731
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24797815386
+ client_dur: 53079
+ binder_reply_id: 27732
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24797833699
+ server_dur: 19213
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 19213
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 42587
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 10492
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 27737
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24799449503
+ client_dur: 56617
+ binder_reply_id: 27738
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24799470930
+ server_dur: 19513
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 19513
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 43903
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12714
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 27746
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24805536696
+ client_dur: 49858
+ binder_reply_id: 27747
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24805554922
+ server_dur: 16943
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 16943
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 39369
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 10489
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 27758
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24808769073
+ client_dur: 53981
+ binder_reply_id: 27759
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24808788665
+ server_dur: 19040
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 19040
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 42554
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11427
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 28122
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24821382491
+ client_dur: 48977
+ binder_reply_id: 28123
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24821399252
+ server_dur: 17308
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 17308
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 39776
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9201
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 28173
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24825799132
+ client_dur: 58481
+ binder_reply_id: 28174
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24825818665
+ server_dur: 20241
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 20241
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 48121
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 10360
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 28239
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24836015985
+ client_dur: 60190
+ binder_reply_id: 28240
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24836036269
+ server_dur: 24240
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 24240
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 49503
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 10687
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 28249
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24838902949
+ client_dur: 155997
+ binder_reply_id: 28250
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24838939369
+ server_dur: 21040
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 21040
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 90782
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16709
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 48506
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 28276
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24842361861
+ client_dur: 70409
+ binder_reply_id: 28277
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24842390226
+ server_dur: 21512
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 21512
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 14632
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 10449
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 45328
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 28339
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24849556375
+ client_dur: 183165
+ binder_reply_id: 28342
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24849690991
+ server_dur: 24294
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 24294
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 17710
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 10471
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 154984
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 28501
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24871639354
+ client_dur: 68462
+ binder_reply_id: 28502
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24871671014
+ server_dur: 22834
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 22834
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6884
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12476
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 49102
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 28526
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24873845755
+ client_dur: 1096098
+ binder_reply_id: 28527
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24873871989
+ server_dur: 21071
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 21071
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 1085223
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 10875
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 28553
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24877992364
+ client_dur: 187259
+ binder_reply_id: 28554
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24878014368
+ server_dur: 20564
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 20564
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 138319
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 10947
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 37993
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 28581
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24881598747
+ client_dur: 82762
+ binder_reply_id: 28583
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24881620007
+ server_dur: 37794
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 37794
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 17039
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9107
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 56616
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 28589
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24882762008
+ client_dur: 343179
+ binder_reply_id: 28592
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24883063470
+ server_dur: 18976
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 18976
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 17525
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 8311
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 317343
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 28602
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24884363797
+ client_dur: 138909
+ binder_reply_id: 28603
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24884469472
+ server_dur: 19017
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 19017
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9081
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9363
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 120465
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 28623
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24886610735
+ client_dur: 64238
+ binder_reply_id: 28624
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24886632996
+ server_dur: 20186
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 20186
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 16029
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9961
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 38248
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 28636
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24888078440
+ client_dur: 422798
+ binder_reply_id: 28639
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24888463594
+ server_dur: 19313
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 19313
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 12602
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 8831
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 401365
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 28664
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24891297979
+ client_dur: 58221
+ binder_reply_id: 28666
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24891321099
+ server_dur: 19916
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 19916
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9426
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11601
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 37194
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 28676
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24893930550
+ client_dur: 54133
+ binder_reply_id: 28678
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24893950723
+ server_dur: 20568
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 20568
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7372
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 10119
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 36642
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 28690
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24896595580
+ client_dur: 67589
+ binder_reply_id: 28691
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24896624063
+ server_dur: 20320
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 20320
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 12645
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 13179
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 41765
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 28766
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24903024474
+ client_dur: 206934
+ binder_reply_id: 28768
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24903154456
+ server_dur: 20235
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 20235
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 50369
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9406
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 147159
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 29049
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24915150978
+ client_dur: 62178
+ binder_reply_id: 29052
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24915179748
+ server_dur: 21871
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 21871
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5189
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11884
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 45105
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 29379
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24921237169
+ client_dur: 1189989
+ binder_reply_id: 29383
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24921585066
+ server_dur: 22945
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 22945
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 812617
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 10170
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 367202
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 29419
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24924342216
+ client_dur: 260104
+ binder_reply_id: 29422
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24924548644
+ server_dur: 20604
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 20604
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 26881
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9071
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 224152
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 29524
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24932907687
+ client_dur: 61496
+ binder_reply_id: 29525
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24932929991
+ server_dur: 21719
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 21719
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 11341
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11237
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 38918
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 29563
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24936245311
+ client_dur: 89729
+ binder_reply_id: 29564
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24936266250
+ server_dur: 20798
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 20798
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 79321
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 10408
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 29656
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24943311799
+ client_dur: 214359
+ binder_reply_id: 29657
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24943331082
+ server_dur: 20072
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 20072
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 205214
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9145
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 29804
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 24967426046
+ client_dur: 238772
+ binder_reply_id: 29805
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 24967447878
+ server_dur: 21398
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 21398
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 228059
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 10713
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 29937
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25003883218
+ client_dur: 324891
+ binder_reply_id: 29938
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25003925054
+ server_dur: 43609
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 43609
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 300570
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 24321
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 30445
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25025076994
+ client_dur: 190930
+ binder_reply_id: 30446
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25025118986
+ server_dur: 30435
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 30435
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 106325
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16199
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 68406
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 30521
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25034377812
+ client_dur: 271653
+ binder_reply_id: 30522
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25034403338
+ server_dur: 27240
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 27240
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 256441
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 15212
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 30534
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25036622369
+ client_dur: 268217
+ binder_reply_id: 30535
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25036650886
+ server_dur: 26015
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 26015
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 250099
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 18118
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 30595
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25048460597
+ client_dur: 56503
+ binder_reply_id: 30596
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25048480970
+ server_dur: 20752
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 20752
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 45112
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11391
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 30649
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25056764479
+ client_dur: 56793
+ binder_reply_id: 30650
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25056784331
+ server_dur: 20103
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 20103
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 45727
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11066
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 30742
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25073721612
+ client_dur: 55061
+ binder_reply_id: 30743
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25073740814
+ server_dur: 20447
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 20447
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 45196
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9865
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 30927
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25110161805
+ client_dur: 81154
+ binder_reply_id: 30928
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25110196375
+ server_dur: 24505
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 24505
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 13381
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 22501
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 45272
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 31106
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25118254173
+ client_dur: 89345
+ binder_reply_id: 31107
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25118275515
+ server_dur: 30281
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 30281
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 78565
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 10780
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 31472
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25126211905
+ client_dur: 156793
+ binder_reply_id: 31473
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25126252664
+ server_dur: 31152
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 31152
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 49871
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 21948
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 84974
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 31474
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25128591519
+ client_dur: 86261
+ binder_reply_id: 31475
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25128613762
+ server_dur: 22079
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 22079
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 73390
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12871
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 31547
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25137455943
+ client_dur: 138560
+ binder_reply_id: 31548
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25137492801
+ server_dur: 24108
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 24108
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 64400
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 28867
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 45293
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 31767
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25171098007
+ client_dur: 86786
+ binder_reply_id: 31768
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25171119721
+ server_dur: 24637
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 24637
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 74733
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12053
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 31809
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25176666011
+ client_dur: 68313
+ binder_reply_id: 31810
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25176690933
+ server_dur: 22908
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 22908
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 13750
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 18237
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16312
+ thread_state_count: 3
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 20014
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 31827
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25180015030
+ client_dur: 119578
+ binder_reply_id: 31828
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25180094139
+ server_dur: 21082
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 21082
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 13656
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 21087
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 19525
+ thread_state_count: 3
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 65310
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 31875
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25185495297
+ client_dur: 90240
+ binder_reply_id: 31876
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25185546375
+ server_dur: 20903
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 20903
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 12345
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 21267
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 21368
+ thread_state_count: 3
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 35260
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 31907
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25190169442
+ client_dur: 56523
+ binder_reply_id: 31908
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25190190035
+ server_dur: 19360
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 19360
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 10218
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11870
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 34435
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 31913
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25192159947
+ client_dur: 67609
+ binder_reply_id: 31914
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25192191721
+ server_dur: 19584
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 19584
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9508
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12439
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 45662
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 31922
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25194833721
+ client_dur: 54386
+ binder_reply_id: 31923
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25194853231
+ server_dur: 19541
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 19541
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 43205
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11181
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 31934
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25197865886
+ client_dur: 55290
+ binder_reply_id: 31935
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25197885904
+ server_dur: 19555
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 19555
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 43794
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11496
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 31997
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25205510080
+ client_dur: 53971
+ binder_reply_id: 31998
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25205529822
+ server_dur: 19108
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 19108
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 42556
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11415
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 32049
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25210682525
+ client_dur: 54427
+ binder_reply_id: 32050
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25210701854
+ server_dur: 19875
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 19875
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 43499
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 10928
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 32072
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25212773102
+ client_dur: 143598
+ binder_reply_id: 32073
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25212807375
+ server_dur: 20140
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 20140
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 80962
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14033
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 48603
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 32176
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25219095678
+ client_dur: 62570
+ binder_reply_id: 32179
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25219117631
+ server_dur: 20590
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 20590
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 12485
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 5223
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16081
+ thread_state_count: 3
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 28781
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::rmdex::cppServer"
+ binder_txn_id: 32636
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25230101202
+ client_dur: 295436
+ binder_reply_id: 32637
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_1"
+ server_ts: 25230125660
+ server_dur: 202423
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 202423
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 61399
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 21763
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 212274
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::cleanupInvalidPackageDirs::cppServer"
+ binder_txn_id: 32689
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25243511980
+ client_dur: 489650
+ binder_reply_id: 32690
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_1"
+ server_ts: 25243544499
+ server_dur: 438512
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "D"
+ thread_state_dur: 222140
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "R"
+ thread_state_dur: 16168
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "R+"
+ thread_state_dur: 22359
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 177845
+ thread_state_count: 5
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9815
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16493
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 463342
+ thread_state_count: 1
+ }
+ blocked_functions {
+ thread_state_type: "binder_reply"
+ blocked_function: "__get_node_page"
+ blocked_function_dur: 222140
+ blocked_function_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::createAppDataBatched::cppServer"
+ binder_txn_id: 32700
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25244949065
+ client_dur: 33302645
+ binder_reply_id: 32701
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_1"
+ server_ts: 25244971300
+ server_dur: 33241468
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "D"
+ thread_state_dur: 2128236
+ thread_state_count: 14
+ }
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "R"
+ thread_state_dur: 319299
+ thread_state_count: 18
+ }
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "R+"
+ thread_state_dur: 1032291
+ thread_state_count: 12
+ }
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 29761642
+ thread_state_count: 31
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 27159
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 27652
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 33247834
+ thread_state_count: 1
+ }
+ blocked_functions {
+ thread_state_type: "binder_reply"
+ blocked_function: "__get_node_page"
+ blocked_function_dur: 643796
+ blocked_function_count: 4
+ }
+ blocked_functions {
+ thread_state_type: "binder_reply"
+ blocked_function: "do_read_cache_page"
+ blocked_function_dur: 593861
+ blocked_function_count: 5
+ }
+ blocked_functions {
+ thread_state_type: "binder_reply"
+ blocked_function: "f2fs_write_begin"
+ blocked_function_dur: 99976
+ blocked_function_count: 1
+ }
+ blocked_functions {
+ thread_state_type: "binder_reply"
+ blocked_function: "filemap_fault"
+ blocked_function_dur: 534192
+ blocked_function_count: 2
+ }
+ blocked_functions {
+ thread_state_type: "binder_reply"
+ blocked_function: "filemap_read"
+ blocked_function_dur: 256411
+ blocked_function_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 32761
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25279371214
+ client_dur: 141670
+ binder_reply_id: 32762
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_1"
+ server_ts: 25279387389
+ server_dur: 110471
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 110471
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7053
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 15170
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 119447
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 32764
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25279567724
+ client_dur: 1117204
+ binder_reply_id: 32765
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_2"
+ server_ts: 25279592927
+ server_dur: 1062729
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "D"
+ thread_state_dur: 520488
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "R"
+ thread_state_dur: 20467
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 521774
+ thread_state_count: 3
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 17104
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 23282
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 1076818
+ thread_state_count: 1
+ }
+ blocked_functions {
+ thread_state_type: "binder_reply"
+ blocked_function: "do_read_cache_page"
+ blocked_function_dur: 310660
+ blocked_function_count: 1
+ }
+ blocked_functions {
+ thread_state_type: "binder_reply"
+ blocked_function: "filemap_fault"
+ blocked_function_dur: 209828
+ blocked_function_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 32779
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25280736368
+ client_dur: 173449
+ binder_reply_id: 32780
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_2"
+ server_ts: 25280756522
+ server_dur: 131586
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 131586
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 16023
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 15605
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 141821
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 32782
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25280932813
+ client_dur: 166964
+ binder_reply_id: 32783
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_2"
+ server_ts: 25280946041
+ server_dur: 122533
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 122533
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 24163
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12138
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 130663
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 32787
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25281131360
+ client_dur: 127300
+ binder_reply_id: 32788
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_2"
+ server_ts: 25281145719
+ server_dur: 98609
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 98609
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9607
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 13226
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 104467
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 32790
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25281273755
+ client_dur: 152610
+ binder_reply_id: 32791
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_2"
+ server_ts: 25281315273
+ server_dur: 97815
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 97815
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7370
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 10996
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 134244
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 32793
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25281454812
+ client_dur: 120876
+ binder_reply_id: 32794
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_2"
+ server_ts: 25281470206
+ server_dur: 94381
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 94381
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6959
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 10729
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 103188
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 32796
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25281590129
+ client_dur: 151723
+ binder_reply_id: 32797
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_2"
+ server_ts: 25281611020
+ server_dur: 119089
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 119089
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7527
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9454
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 134742
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 32799
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25281756115
+ client_dur: 115379
+ binder_reply_id: 32800
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_2"
+ server_ts: 25281769371
+ server_dur: 91666
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 91666
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6557
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9417
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 99405
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 32802
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25281884499
+ client_dur: 116250
+ binder_reply_id: 32803
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_2"
+ server_ts: 25281896268
+ server_dur: 93727
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 93727
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6592
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9027
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 100631
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 32805
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25282021405
+ client_dur: 113709
+ binder_reply_id: 32806
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_2"
+ server_ts: 25282032972
+ server_dur: 91541
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 91541
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6527
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 8701
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 98481
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 32808
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25282147043
+ client_dur: 114363
+ binder_reply_id: 32809
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_2"
+ server_ts: 25282159024
+ server_dur: 91525
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 91525
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6581
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9326
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 98456
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 32811
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25282273296
+ client_dur: 113496
+ binder_reply_id: 32812
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_2"
+ server_ts: 25282285050
+ server_dur: 91191
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 91191
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6445
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9132
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 97919
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 32814
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25282398433
+ client_dur: 133314
+ binder_reply_id: 32815
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_2"
+ server_ts: 25282413336
+ server_dur: 107722
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 107722
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6770
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11563
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 114981
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 32817
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25282543082
+ client_dur: 113069
+ binder_reply_id: 32818
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_2"
+ server_ts: 25282556151
+ server_dur: 89003
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 89003
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6861
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 10001
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 96207
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 32820
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25282667987
+ client_dur: 110166
+ binder_reply_id: 32821
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_2"
+ server_ts: 25282679437
+ server_dur: 87774
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 87774
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6506
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 8742
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 94918
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 32823
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25282789771
+ client_dur: 113837
+ binder_reply_id: 32824
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_2"
+ server_ts: 25282802242
+ server_dur: 90943
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 90943
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6450
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9632
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 97755
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 32826
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25282914877
+ client_dur: 111627
+ binder_reply_id: 32827
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_2"
+ server_ts: 25282927602
+ server_dur: 88554
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 88554
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6430
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 10001
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 95196
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::prepareAppProfile::cppServer"
+ binder_txn_id: 32829
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25283038152
+ client_dur: 1992379
+ binder_reply_id: 32831
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_2"
+ server_ts: 25284866843
+ server_dur: 141149
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 141149
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 16220
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 7575
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 1968584
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 33307
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25374394471
+ client_dur: 2049689
+ binder_reply_id: 33308
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25374452290
+ server_dur: 56976
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 56976
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 2006880
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 42809
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 33309
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25376513735
+ client_dur: 1298945
+ binder_reply_id: 33310
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25376552511
+ server_dur: 1229818
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "D"
+ thread_state_dur: 693114
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "R"
+ thread_state_dur: 175675
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 361029
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 19686
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 364778
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 37358
+ thread_state_count: 3
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 877123
+ thread_state_count: 1
+ }
+ blocked_functions {
+ thread_state_type: "binder_reply"
+ blocked_function: "filemap_fault"
+ blocked_function_dur: 693114
+ blocked_function_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 33328
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25380873939
+ client_dur: 94827
+ binder_reply_id: 33329
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25380918552
+ server_dur: 29189
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 29189
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 62515
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 32312
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 33338
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25382555538
+ client_dur: 499495
+ binder_reply_id: 33339
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25382942898
+ server_dur: 73464
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 73464
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 31193
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 25646
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 442656
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 33341
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25383224119
+ client_dur: 475348
+ binder_reply_id: 33342
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25383318022
+ server_dur: 71453
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 71453
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 302290
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 23519
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 149539
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 33348
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25384246889
+ client_dur: 2183818
+ binder_reply_id: 33351
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25386357038
+ server_dur: 45022
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 45022
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 20508
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 23223
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 2140087
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 33354
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25386462748
+ client_dur: 100360
+ binder_reply_id: 33355
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25386487821
+ server_dur: 60382
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 60382
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 80502
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 19858
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 33356
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25386597595
+ client_dur: 98608
+ binder_reply_id: 33357
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25386619074
+ server_dur: 61591
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 61591
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 82369
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16239
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 33358
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25386719729
+ client_dur: 86786
+ binder_reply_id: 33359
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25386741757
+ server_dur: 49965
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 49965
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 69901
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16885
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 33360
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25386829528
+ client_dur: 89755
+ binder_reply_id: 33361
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25386849083
+ server_dur: 55739
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 55739
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 75429
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14326
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 33362
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25386948016
+ client_dur: 83210
+ binder_reply_id: 33363
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25386968208
+ server_dur: 48426
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 48426
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 68298
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14912
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 33364
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25387051427
+ client_dur: 82153
+ binder_reply_id: 33365
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25387070661
+ server_dur: 48379
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 48379
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 67945
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14208
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 33366
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25387162195
+ client_dur: 82295
+ binder_reply_id: 33367
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25387182559
+ server_dur: 47439
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 47439
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 67236
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 15059
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 33368
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25387268275
+ client_dur: 86930
+ binder_reply_id: 33369
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25387287442
+ server_dur: 52733
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 52733
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 72663
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14267
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 33413
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25400532103
+ client_dur: 58804
+ binder_reply_id: 33414
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25400550889
+ server_dur: 23976
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 23976
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 49660
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9144
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 33415
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25400815946
+ client_dur: 53189
+ binder_reply_id: 33416
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25400833837
+ server_dur: 20666
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 20666
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 43041
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 10148
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 34110
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25426768392
+ client_dur: 59432
+ binder_reply_id: 34111
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25426787956
+ server_dur: 24158
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 24158
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 49644
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9788
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 34114
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25428341210
+ client_dur: 87943
+ binder_reply_id: 34115
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25428360065
+ server_dur: 51321
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 51321
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 78007
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9936
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IIdmap2::verifyIdmap::cppServer"
+ binder_txn_id: 34116
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25428597840
+ client_dur: 1897216
+ binder_reply_id: 34117
+ server_process: "/system/bin/idmap2d"
+ server_thread: "binder:541_1"
+ server_ts: 25428614184
+ server_dur: 1721051
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "D"
+ thread_state_dur: 1002138
+ thread_state_count: 4
+ }
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "R"
+ thread_state_dur: 210685
+ thread_state_count: 4
+ }
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "R+"
+ thread_state_dur: 7633
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 500595
+ thread_state_count: 6
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 153757
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 230749
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 20959
+ thread_state_count: 3
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 1491751
+ thread_state_count: 1
+ }
+ blocked_functions {
+ thread_state_type: "binder_reply"
+ blocked_function: "__get_node_page"
+ blocked_function_dur: 94971
+ blocked_function_count: 1
+ }
+ blocked_functions {
+ thread_state_type: "binder_reply"
+ blocked_function: "do_read_cache_page"
+ blocked_function_dur: 305537
+ blocked_function_count: 1
+ }
+ blocked_functions {
+ thread_state_type: "binder_reply"
+ blocked_function: "filemap_fault"
+ blocked_function_dur: 601630
+ blocked_function_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IIdmap2::createIdmap::cppServer"
+ binder_txn_id: 34136
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25430545529
+ client_dur: 5604165
+ binder_reply_id: 34137
+ server_process: "/system/bin/idmap2d"
+ server_thread: "binder:541_1"
+ server_ts: 25430555701
+ server_dur: 5580114
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "D"
+ thread_state_dur: 574136
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "R"
+ thread_state_dur: 8066
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "R+"
+ thread_state_dur: 77105
+ thread_state_count: 3
+ }
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 4920807
+ thread_state_count: 6
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8480
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 2748525
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16863
+ thread_state_count: 3
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 2830297
+ thread_state_count: 1
+ }
+ blocked_functions {
+ thread_state_type: "binder_reply"
+ blocked_function: "filemap_fault"
+ blocked_function_dur: 574136
+ blocked_function_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IIdmap2::getIdmapPath::cppServer"
+ binder_txn_id: 34145
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25436197115
+ client_dur: 165295
+ binder_reply_id: 34146
+ server_process: "/system/bin/idmap2d"
+ server_thread: "binder:541_2"
+ server_ts: 25436268304
+ server_dur: 84720
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 84720
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6160
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 15453
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 143682
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IIdmap2::verifyIdmap::cppServer"
+ binder_txn_id: 34148
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25436454693
+ client_dur: 101710
+ binder_reply_id: 34149
+ server_process: "/system/bin/idmap2d"
+ server_thread: "binder:541_1"
+ server_ts: 25436467750
+ server_dur: 68620
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "R+"
+ thread_state_dur: 24291
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 44329
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 14279
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14304
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 73127
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IIdmap2::createIdmap::cppServer"
+ binder_txn_id: 34151
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25436579821
+ client_dur: 1131075
+ binder_reply_id: 34152
+ server_process: "/system/bin/idmap2d"
+ server_thread: "binder:541_2"
+ server_ts: 25436605605
+ server_dur: 1092472
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 1092472
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7917
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12468
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 1110690
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IIdmap2::getIdmapPath::cppServer"
+ binder_txn_id: 34155
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25437807385
+ client_dur: 35309
+ binder_reply_id: 34156
+ server_process: "/system/bin/idmap2d"
+ server_thread: "binder:541_2"
+ server_ts: 25437821151
+ server_dur: 13284
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 13284
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5439
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12930
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 16940
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IIdmap2::verifyIdmap::cppServer"
+ binder_txn_id: 34158
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25437906939
+ client_dur: 108314
+ binder_reply_id: 34160
+ server_process: "/system/bin/idmap2d"
+ server_thread: "binder:541_1"
+ server_ts: 25437930754
+ server_dur: 65111
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "R+"
+ thread_state_dur: 20584
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 44527
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 13790
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 22725
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16739
+ thread_state_count: 3
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 55060
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IIdmap2::createIdmap::cppServer"
+ binder_txn_id: 34162
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25438037598
+ client_dur: 1231074
+ binder_reply_id: 34163
+ server_process: "/system/bin/idmap2d"
+ server_thread: "binder:541_1"
+ server_ts: 25438067211
+ server_dur: 1188167
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "R+"
+ thread_state_dur: 29526
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 1158641
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8533
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9483
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 1213058
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IIdmap2::getIdmapPath::cppServer"
+ binder_txn_id: 34165
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25439303208
+ client_dur: 56463
+ binder_reply_id: 34166
+ server_process: "/system/bin/idmap2d"
+ server_thread: "binder:541_1"
+ server_ts: 25439340083
+ server_dur: 11933
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 11933
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5152
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 8671
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 42640
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IIdmap2::getIdmapPath::cppServer"
+ binder_txn_id: 34168
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25439404915
+ client_dur: 28249
+ binder_reply_id: 34169
+ server_process: "/system/bin/idmap2d"
+ server_thread: "binder:541_1"
+ server_ts: 25439417069
+ server_dur: 8812
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 8812
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 4744
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11155
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 12350
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IIdmap2::verifyIdmap::cppServer"
+ binder_txn_id: 34171
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25439834153
+ client_dur: 149238
+ binder_reply_id: 34172
+ server_process: "/system/bin/idmap2d"
+ server_thread: "binder:541_1"
+ server_ts: 25439854310
+ server_dur: 63659
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "R+"
+ thread_state_dur: 23193
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 40466
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 58701
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 20935
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 69602
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IIdmap2::createIdmap::cppServer"
+ binder_txn_id: 34174
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25440007897
+ client_dur: 617701
+ binder_reply_id: 34175
+ server_process: "/system/bin/idmap2d"
+ server_thread: "binder:541_3"
+ server_ts: 25440026034
+ server_dur: 581007
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 581007
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 12958
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14404
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 590339
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IIdmap2::getIdmapPath::cppServer"
+ binder_txn_id: 34177
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25440650480
+ client_dur: 37954
+ binder_reply_id: 34178
+ server_process: "/system/bin/idmap2d"
+ server_thread: "binder:541_3"
+ server_ts: 25440669130
+ server_dur: 11644
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 11644
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5290
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 10424
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 22240
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IIdmap2::verifyIdmap::cppServer"
+ binder_txn_id: 34180
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25440744629
+ client_dur: 130786
+ binder_reply_id: 34181
+ server_process: "/system/bin/idmap2d"
+ server_thread: "binder:541_3"
+ server_ts: 25440759041
+ server_dur: 97590
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "R+"
+ thread_state_dur: 54655
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 42935
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 13513
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12765
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 104508
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IIdmap2::createIdmap::cppServer"
+ binder_txn_id: 34183
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25440898977
+ client_dur: 1131318
+ binder_reply_id: 34184
+ server_process: "/system/bin/idmap2d"
+ server_thread: "binder:541_1"
+ server_ts: 25440930592
+ server_dur: 1086590
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "R"
+ thread_state_dur: 29060
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "R+"
+ thread_state_dur: 54132
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 1003398
+ thread_state_count: 4
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7617
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 13003
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 1110698
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IIdmap2::getIdmapPath::cppServer"
+ binder_txn_id: 34187
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25442065948
+ client_dur: 37271
+ binder_reply_id: 34188
+ server_process: "/system/bin/idmap2d"
+ server_thread: "binder:541_1"
+ server_ts: 25442083599
+ server_dur: 12197
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 12197
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 4950
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12465
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 19856
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IIdmap2::verifyIdmap::cppServer"
+ binder_txn_id: 34190
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25442154751
+ client_dur: 91298
+ binder_reply_id: 34191
+ server_process: "/system/bin/idmap2d"
+ server_thread: "binder:541_3"
+ server_ts: 25442164438
+ server_dur: 64020
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "R+"
+ thread_state_dur: 22493
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 41527
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 12675
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11489
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 67134
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IIdmap2::createIdmap::cppServer"
+ binder_txn_id: 34193
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25442267983
+ client_dur: 969844
+ binder_reply_id: 34194
+ server_process: "/system/bin/idmap2d"
+ server_thread: "binder:541_3"
+ server_ts: 25442291581
+ server_dur: 932552
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "R+"
+ thread_state_dur: 28607
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 903945
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8493
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11817
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 949534
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IIdmap2::getIdmapPath::cppServer"
+ binder_txn_id: 34196
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25443270028
+ client_dur: 50947
+ binder_reply_id: 34197
+ server_process: "/system/bin/idmap2d"
+ server_thread: "binder:541_3"
+ server_ts: 25443301118
+ server_dur: 11975
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 11975
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 4859
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 8381
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 37707
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IIdmap2::verifyIdmap::cppServer"
+ binder_txn_id: 34199
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25443369306
+ client_dur: 97383
+ binder_reply_id: 34200
+ server_process: "/system/bin/idmap2d"
+ server_thread: "binder:541_3"
+ server_ts: 25443387190
+ server_dur: 61382
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "R+"
+ thread_state_dur: 22749
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 38633
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 13143
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14048
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 70192
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IIdmap2::createIdmap::cppServer"
+ binder_txn_id: 34202
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25443488838
+ client_dur: 710384
+ binder_reply_id: 34203
+ server_process: "/system/bin/idmap2d"
+ server_thread: "binder:541_3"
+ server_ts: 25443518308
+ server_dur: 668611
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "R"
+ thread_state_dur: 76421
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "R+"
+ thread_state_dur: 27544
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 564646
+ thread_state_count: 3
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7928
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9007
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 693449
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IIdmap2::getIdmapPath::cppServer"
+ binder_txn_id: 34208
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25444231572
+ client_dur: 52027
+ binder_reply_id: 34209
+ server_process: "/system/bin/idmap2d"
+ server_thread: "binder:541_3"
+ server_ts: 25444264016
+ server_dur: 12085
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 12085
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5028
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 7958
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 39041
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IIdmap2::verifyIdmap::cppServer"
+ binder_txn_id: 34211
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25444518761
+ client_dur: 104456
+ binder_reply_id: 34212
+ server_process: "/system/bin/idmap2d"
+ server_thread: "binder:541_3"
+ server_ts: 25444539803
+ server_dur: 63755
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "R+"
+ thread_state_dur: 22850
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 40905
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 14443
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 18636
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 71377
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IIdmap2::createIdmap::cppServer"
+ binder_txn_id: 34214
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25444646123
+ client_dur: 413789
+ binder_reply_id: 34215
+ server_process: "/system/bin/idmap2d"
+ server_thread: "binder:541_3"
+ server_ts: 25444674530
+ server_dur: 371297
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 371297
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 10281
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 8381
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 395127
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IIdmap2::getIdmapPath::cppServer"
+ binder_txn_id: 34217
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25445078459
+ client_dur: 37933
+ binder_reply_id: 34218
+ server_process: "/system/bin/idmap2d"
+ server_thread: "binder:541_3"
+ server_ts: 25445097539
+ server_dur: 11521
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 11521
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5091
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11823
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 21019
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IIdmap2::verifyIdmap::cppServer"
+ binder_txn_id: 34220
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25445162965
+ client_dur: 98821
+ binder_reply_id: 34221
+ server_process: "/system/bin/idmap2d"
+ server_thread: "binder:541_3"
+ server_ts: 25445176700
+ server_dur: 65755
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "R+"
+ thread_state_dur: 25074
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 40681
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 14361
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11620
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 72840
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IIdmap2::createIdmap::cppServer"
+ binder_txn_id: 34223
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25445283998
+ client_dur: 1223250
+ binder_reply_id: 34224
+ server_process: "/system/bin/idmap2d"
+ server_thread: "binder:541_3"
+ server_ts: 25445325570
+ server_dur: 1169074
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "R+"
+ thread_state_dur: 29873
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 1139201
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8011
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 10229
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 24497
+ thread_state_count: 3
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 1180513
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IIdmap2::getIdmapPath::cppServer"
+ binder_txn_id: 34226
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25446539928
+ client_dur: 55845
+ binder_reply_id: 34227
+ server_process: "/system/bin/idmap2d"
+ server_thread: "binder:541_3"
+ server_ts: 25446574718
+ server_dur: 12523
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 12523
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5817
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 8492
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 41536
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IIdmap2::verifyIdmap::cppServer"
+ binder_txn_id: 34229
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25446655842
+ client_dur: 102770
+ binder_reply_id: 34230
+ server_process: "/system/bin/idmap2d"
+ server_thread: "binder:541_3"
+ server_ts: 25446673983
+ server_dur: 64748
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "R+"
+ thread_state_dur: 24412
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 40336
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 14772
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14461
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 73537
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IIdmap2::createIdmap::cppServer"
+ binder_txn_id: 34232
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25446780771
+ client_dur: 484620
+ binder_reply_id: 34233
+ server_process: "/system/bin/idmap2d"
+ server_thread: "binder:541_3"
+ server_ts: 25446802921
+ server_dur: 383705
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "R+"
+ thread_state_dur: 25324
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 358381
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7063
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11297
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 466260
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IIdmap2::getIdmapPath::cppServer"
+ binder_txn_id: 34235
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25447296204
+ client_dur: 32106
+ binder_reply_id: 34236
+ server_process: "/system/bin/idmap2d"
+ server_thread: "binder:541_3"
+ server_ts: 25447307403
+ server_dur: 12025
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 12025
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6266
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 10289
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 15551
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IIdmap2::verifyIdmap::cppServer"
+ binder_txn_id: 34238
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25447383428
+ client_dur: 99654
+ binder_reply_id: 34239
+ server_process: "/system/bin/idmap2d"
+ server_thread: "binder:541_3"
+ server_ts: 25447399103
+ server_dur: 64249
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "R+"
+ thread_state_dur: 23497
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 40752
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 14820
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11840
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 72994
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IIdmap2::createIdmap::cppServer"
+ binder_txn_id: 34241
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25447504358
+ client_dur: 1088603
+ binder_reply_id: 34242
+ server_process: "/system/bin/idmap2d"
+ server_thread: "binder:541_3"
+ server_ts: 25447527457
+ server_dur: 1052788
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "R"
+ thread_state_dur: 53185
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "R+"
+ thread_state_dur: 28077
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 971526
+ thread_state_count: 3
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8242
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14508
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 1065853
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IIdmap2::getIdmapPath::cppServer"
+ binder_txn_id: 34246
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25448618882
+ client_dur: 65160
+ binder_reply_id: 34247
+ server_process: "/system/bin/idmap2d"
+ server_thread: "binder:541_3"
+ server_ts: 25448662606
+ server_dur: 12297
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 12297
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6078
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 7830
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 51252
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IIdmap2::verifyIdmap::cppServer"
+ binder_txn_id: 34249
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25448732540
+ client_dur: 90622
+ binder_reply_id: 34250
+ server_process: "/system/bin/idmap2d"
+ server_thread: "binder:541_3"
+ server_ts: 25448745055
+ server_dur: 61605
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "R+"
+ thread_state_dur: 23323
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 38282
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 11458
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12606
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 66558
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IIdmap2::createIdmap::cppServer"
+ binder_txn_id: 34252
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25448844089
+ client_dur: 1341222
+ binder_reply_id: 34253
+ server_process: "/system/bin/idmap2d"
+ server_thread: "binder:541_3"
+ server_ts: 25448878397
+ server_dur: 1294973
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "R+"
+ thread_state_dur: 26296
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 1268677
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7361
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 8820
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 1325041
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IIdmap2::getIdmapPath::cppServer"
+ binder_txn_id: 34255
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25450214696
+ client_dur: 132324
+ binder_reply_id: 34256
+ server_process: "/system/bin/idmap2d"
+ server_thread: "binder:541_3"
+ server_ts: 25450325232
+ server_dur: 12314
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 12314
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6646
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 8145
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 117533
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IIdmap2::getIdmapPath::cppServer"
+ binder_txn_id: 34258
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25450401044
+ client_dur: 34066
+ binder_reply_id: 34259
+ server_process: "/system/bin/idmap2d"
+ server_thread: "binder:541_3"
+ server_ts: 25450413421
+ server_dur: 8832
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 8832
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5501
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11370
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 17195
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IIdmap2::verifyIdmap::cppServer"
+ binder_txn_id: 34261
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25450477847
+ client_dur: 108090
+ binder_reply_id: 34262
+ server_process: "/system/bin/idmap2d"
+ server_thread: "binder:541_3"
+ server_ts: 25450488460
+ server_dur: 82190
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "R+"
+ thread_state_dur: 36332
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 45858
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 10184
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11682
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 86224
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IIdmap2::createIdmap::cppServer"
+ binder_txn_id: 34264
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25450607703
+ client_dur: 1259215
+ binder_reply_id: 34265
+ server_process: "/system/bin/idmap2d"
+ server_thread: "binder:541_3"
+ server_ts: 25450647353
+ server_dur: 1203353
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "R+"
+ thread_state_dur: 31348
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 1172005
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 11388
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 8943
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 1238884
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IIdmap2::getIdmapPath::cppServer"
+ binder_txn_id: 34267
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25451902370
+ client_dur: 111453
+ binder_reply_id: 34268
+ server_process: "/system/bin/idmap2d"
+ server_thread: "binder:541_3"
+ server_ts: 25451993380
+ server_dur: 11814
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 11814
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6192
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 7999
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 97262
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IIdmap2::verifyIdmap::cppServer"
+ binder_txn_id: 34270
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25452994340
+ client_dur: 109726
+ binder_reply_id: 34271
+ server_process: "/system/bin/idmap2d"
+ server_thread: "binder:541_3"
+ server_ts: 25453017159
+ server_dur: 64867
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "R+"
+ thread_state_dur: 24431
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 40436
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 16858
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 18364
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 74504
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IIdmap2::createIdmap::cppServer"
+ binder_txn_id: 34273
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25453126725
+ client_dur: 1046699
+ binder_reply_id: 34274
+ server_process: "/system/bin/idmap2d"
+ server_thread: "binder:541_3"
+ server_ts: 25453215693
+ server_dur: 328275
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 328275
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 623584
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14066
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 409049
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IIdmap2::getIdmapPath::cppServer"
+ binder_txn_id: 34279
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25454206920
+ client_dur: 37100
+ binder_reply_id: 34280
+ server_process: "/system/bin/idmap2d"
+ server_thread: "binder:541_3"
+ server_ts: 25454216327
+ server_dur: 14099
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 14099
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8459
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11405
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 17236
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IIdmap2::verifyIdmap::cppServer"
+ binder_txn_id: 34282
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25454305892
+ client_dur: 105614
+ binder_reply_id: 34283
+ server_process: "/system/bin/idmap2d"
+ server_thread: "binder:541_3"
+ server_ts: 25454321058
+ server_dur: 71322
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "R+"
+ thread_state_dur: 25902
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 45420
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 14111
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 13951
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 77552
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IIdmap2::createIdmap::cppServer"
+ binder_txn_id: 34285
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25454433615
+ client_dur: 1182599
+ binder_reply_id: 34286
+ server_process: "/system/bin/idmap2d"
+ server_thread: "binder:541_3"
+ server_ts: 25454454326
+ server_dur: 1148464
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "R+"
+ thread_state_dur: 30279
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 1118185
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8574
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12854
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 1161171
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IIdmap2::getIdmapPath::cppServer"
+ binder_txn_id: 34288
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25455648152
+ client_dur: 89055
+ binder_reply_id: 34289
+ server_process: "/system/bin/idmap2d"
+ server_thread: "binder:541_3"
+ server_ts: 25455717688
+ server_dur: 10552
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 10552
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6002
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14032
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 69021
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IIdmap2::acquireFabricatedOverlayIterator::cppServer"
+ binder_txn_id: 34291
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25455783097
+ client_dur: 77504
+ binder_reply_id: 34292
+ server_process: "/system/bin/idmap2d"
+ server_thread: "binder:541_3"
+ server_ts: 25455796471
+ server_dur: 53966
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 53966
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6786
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 10942
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 59776
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IIdmap2::nextFabricatedOverlayInfos::cppServer"
+ binder_txn_id: 34294
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25455870323
+ client_dur: 183133
+ binder_reply_id: 34295
+ server_process: "/system/bin/idmap2d"
+ server_thread: "binder:541_3"
+ server_ts: 25455880236
+ server_dur: 164382
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 164382
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5929
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9250
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 167954
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IIdmap2::releaseFabricatedOverlayIterator::cppServer"
+ binder_txn_id: 34299
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25456454160
+ client_dur: 31893
+ binder_reply_id: 34300
+ server_process: "/system/bin/idmap2d"
+ server_thread: "binder:541_3"
+ server_ts: 25456468473
+ server_dur: 7849
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 7849
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6814
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12066
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 13013
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IIdmap2::acquireFabricatedOverlayIterator::cppServer"
+ binder_txn_id: 34302
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25456548523
+ client_dur: 98167
+ binder_reply_id: 34303
+ server_process: "/system/bin/idmap2d"
+ server_thread: "binder:541_3"
+ server_ts: 25456560742
+ server_dur: 75793
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "R+"
+ thread_state_dur: 25312
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 50481
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6766
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 10449
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 80952
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IIdmap2::nextFabricatedOverlayInfos::cppServer"
+ binder_txn_id: 34305
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25456659359
+ client_dur: 202533
+ binder_reply_id: 34306
+ server_process: "/system/bin/idmap2d"
+ server_thread: "binder:541_3"
+ server_ts: 25456689304
+ server_dur: 163129
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 163129
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6358
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11947
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 184228
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IIdmap2::releaseFabricatedOverlayIterator::cppServer"
+ binder_txn_id: 34308
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25456872988
+ client_dur: 29135
+ binder_reply_id: 34309
+ server_process: "/system/bin/idmap2d"
+ server_thread: "binder:541_3"
+ server_ts: 25456888657
+ server_dur: 6402
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 6402
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 4895
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9632
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 14608
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 34345
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25494548191
+ client_dur: 258095
+ binder_reply_id: 34346
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25494622231
+ server_dur: 150527
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 150527
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 17890
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 54323
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 185882
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 34347
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25495244473
+ client_dur: 325048
+ binder_reply_id: 34348
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25495400405
+ server_dur: 128258
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 128258
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 24364
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 45540
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 255144
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 34371
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25504141418
+ client_dur: 297361
+ binder_reply_id: 34372
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25504207270
+ server_dur: 133515
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 133515
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 250872
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 46489
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 34409
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25511329109
+ client_dur: 678596
+ binder_reply_id: 34414
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25511805543
+ server_dur: 136659
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 136659
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 53941
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 58308
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 566347
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 34457
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25517948532
+ client_dur: 163240
+ binder_reply_id: 34461
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25518009843
+ server_dur: 44297
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 44297
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 45510
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 29611
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 88119
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 34466
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25518739183
+ client_dur: 3265864
+ binder_reply_id: 34467
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25518779467
+ server_dur: 374561
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 374561
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 2842707
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 30774
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 392383
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 34540
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25523067296
+ client_dur: 1153803
+ binder_reply_id: 34555
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25523345752
+ server_dur: 24699
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 24699
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 840798
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11969
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 301036
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 35031
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25529407157
+ client_dur: 1243348
+ binder_reply_id: 35039
+ server_process: "/vendor/bin/hw/android.hardware.health-service.cuttlefish"
+ server_thread: "android.hardwar"
+ server_ts: 25529886580
+ server_dur: 502254
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "R"
+ thread_state_dur: 166649
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 335605
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 255692
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 18208
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 969448
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 35051
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25530820205
+ client_dur: 1517480
+ binder_reply_id: 35052
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25530877699
+ server_dur: 79639
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 79639
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 1374024
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 38520
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 104936
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 35063
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25538312793
+ client_dur: 177283
+ binder_reply_id: 35065
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25538360355
+ server_dur: 73011
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 73011
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 49848
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 31977
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 95458
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 35066
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25538521832
+ client_dur: 115418
+ binder_reply_id: 35067
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25538557132
+ server_dur: 51687
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 51687
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 23408
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 26304
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 65706
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 35086
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25555649759
+ client_dur: 401986
+ binder_reply_id: 35087
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25555822535
+ server_dur: 166864
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 166864
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 49376
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 67759
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 284851
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 35099
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25562439114
+ client_dur: 360669
+ binder_reply_id: 35100
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25562601598
+ server_dur: 147343
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 147343
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 38501
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 55078
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 267090
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 35101
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25564138751
+ client_dur: 227016
+ binder_reply_id: 35102
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25564207677
+ server_dur: 112964
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 112964
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 35570
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 54512
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 136934
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 35103
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25564950504
+ client_dur: 216354
+ binder_reply_id: 35104
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25565018623
+ server_dur: 104733
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 104733
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 33671
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 52864
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 129819
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 35105
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25565861693
+ client_dur: 154693
+ binder_reply_id: 35106
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25565923809
+ server_dur: 44929
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 44929
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 33472
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 37909
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 83312
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::invalidateMounts::cppServer"
+ binder_txn_id: 35107
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25566098278
+ client_dur: 3268381
+ binder_reply_id: 35108
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_1"
+ server_ts: 25566134660
+ server_dur: 2297021
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 2297021
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 917014
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 38253
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 2313114
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 35123
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25578643057
+ client_dur: 230121
+ binder_reply_id: 35124
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25578709142
+ server_dur: 126093
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 126093
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 185005
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 45116
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 35125
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25579716604
+ client_dur: 216367
+ binder_reply_id: 35126
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25579776806
+ server_dur: 121078
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 121078
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 175341
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 41026
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 35144
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25584224256
+ client_dur: 249444
+ binder_reply_id: 35145
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25584297755
+ server_dur: 135137
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 135137
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 198325
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 51119
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 35146
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25585086651
+ client_dur: 284206
+ binder_reply_id: 35147
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25585152822
+ server_dur: 129855
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 129855
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 236531
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 47675
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 35156
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25587741520
+ client_dur: 249445
+ binder_reply_id: 35157
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25587810843
+ server_dur: 138515
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 138515
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 200350
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 49095
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 35158
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25588452300
+ client_dur: 243841
+ binder_reply_id: 35159
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25588512250
+ server_dur: 145542
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 145542
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 203180
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 40661
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 35240
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25607046968
+ client_dur: 141541
+ binder_reply_id: 35241
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25607085845
+ server_dur: 83802
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 83802
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 116190
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 25351
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 35300
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25626771532
+ client_dur: 407539
+ binder_reply_id: 35335
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25627067466
+ server_dur: 61702
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 61702
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 29697
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 48333
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 329509
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 35356
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25627247935
+ client_dur: 118074
+ binder_reply_id: 35362
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25627290693
+ server_dur: 38186
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 38186
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 89917
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 28157
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 35384
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25627461473
+ client_dur: 244900
+ binder_reply_id: 35391
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25627519338
+ server_dur: 149891
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 149891
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 199584
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 45316
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 35542
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25632313567
+ client_dur: 258248
+ binder_reply_id: 35543
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25632388552
+ server_dur: 141000
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 141000
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 205277
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 52971
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 35547
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25637260298
+ client_dur: 196517
+ binder_reply_id: 35548
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25637328529
+ server_dur: 88341
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 88341
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 173264
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 23253
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 35680
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25656975183
+ client_dur: 72577
+ binder_reply_id: 35681
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25656999460
+ server_dur: 31187
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 31187
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 60193
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12384
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 35682
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25657158859
+ client_dur: 49143
+ binder_reply_id: 35683
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25657175302
+ server_dur: 18337
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 18337
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 38161
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 10982
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 35690
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25659444951
+ client_dur: 67480
+ binder_reply_id: 35691
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25659467572
+ server_dur: 27682
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 27682
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 55614
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11866
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 35863
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25710903029
+ client_dur: 196994
+ binder_reply_id: 35865
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25710975935
+ server_dur: 69286
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 69286
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 37976
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 47773
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 111245
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 36497
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25779384485
+ client_dur: 6404465
+ binder_reply_id: 36498
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25779465833
+ server_dur: 115210
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 115210
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6195719
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 72810
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 135936
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 36527
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25785903212
+ client_dur: 173175
+ binder_reply_id: 36528
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25785969981
+ server_dur: 74609
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 74609
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 17557
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 61497
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 94121
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 36529
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25786187023
+ client_dur: 71969
+ binder_reply_id: 36530
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25786216656
+ server_dur: 16443
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 16443
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 13449
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 35247
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 23273
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 36537
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25788338381
+ client_dur: 66978
+ binder_reply_id: 36538
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25788365130
+ server_dur: 26182
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 26182
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6597
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 15917
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 44464
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 36539
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25788426430
+ client_dur: 44938
+ binder_reply_id: 36540
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25788444575
+ server_dur: 12371
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 12371
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9093
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 8089
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 27756
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 36553
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25794664939
+ client_dur: 125489
+ binder_reply_id: 36554
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25794702859
+ server_dur: 70821
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 70821
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 97866
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 27623
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 36573
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25803399428
+ client_dur: 125121
+ binder_reply_id: 36575
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25803446233
+ server_dur: 61602
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 61602
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 11467
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 33027
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 80627
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 36621
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25805561097
+ client_dur: 258904
+ binder_reply_id: 36622
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25805581639
+ server_dur: 24195
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 24195
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 247357
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11547
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 36634
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25806638177
+ client_dur: 383567
+ binder_reply_id: 36635
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25806656214
+ server_dur: 348438
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 348438
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 373938
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9629
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 36643
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25807042562
+ client_dur: 45260
+ binder_reply_id: 36644
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25807056567
+ server_dur: 14991
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 14991
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 35762
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9498
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 36648
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25807129635
+ client_dur: 626529
+ binder_reply_id: 36649
+ server_process: "/apex/com.android.hardware.vibrator/bin/hw/android.hardware.vibrator-service.example"
+ server_thread: "android.hardwar"
+ server_ts: 25807318058
+ server_dur: 335442
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "D"
+ thread_state_dur: 23125
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "R"
+ thread_state_dur: 3615
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 308702
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 94234
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 28188
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 504107
+ thread_state_count: 1
+ }
+ blocked_functions {
+ thread_state_type: "binder_reply"
+ blocked_function: "filemap_fault"
+ blocked_function_dur: 23125
+ blocked_function_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 36654
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25807794682
+ client_dur: 197460
+ binder_reply_id: 36655
+ server_process: "/apex/com.android.hardware.vibrator/bin/hw/android.hardware.vibrator-service.example"
+ server_thread: "android.hardwar"
+ server_ts: 25807808849
+ server_dur: 31598
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 31598
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 144139
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 19188
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 34133
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 36657
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25808041191
+ client_dur: 152874
+ binder_reply_id: 36659
+ server_process: "/apex/com.android.hardware.vibrator/bin/hw/android.hardware.vibrator-service.example"
+ server_thread: "android.hardwar"
+ server_ts: 25808112547
+ server_dur: 38477
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 38477
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 20705
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 19875
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 112294
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 36662
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25808300543
+ client_dur: 216110
+ binder_reply_id: 36663
+ server_process: "/apex/com.android.hardware.vibrator/bin/hw/android.hardware.vibrator-service.example"
+ server_thread: "android.hardwar"
+ server_ts: 25808488934
+ server_dur: 5816
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 5816
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 16152
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 15469
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 184489
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 36665
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25808536171
+ client_dur: 29720
+ binder_reply_id: 36666
+ server_process: "/apex/com.android.hardware.vibrator/bin/hw/android.hardware.vibrator-service.example"
+ server_thread: "android.hardwar"
+ server_ts: 25808549475
+ server_dur: 6142
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 6142
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7593
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14892
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 7235
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 36668
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25808580143
+ client_dur: 23193
+ binder_reply_id: 36669
+ server_process: "/apex/com.android.hardware.vibrator/bin/hw/android.hardware.vibrator-service.example"
+ server_thread: "android.hardwar"
+ server_ts: 25808589636
+ server_dur: 4653
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 4653
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6533
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 10607
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 6053
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 36671
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25808614611
+ client_dur: 24483
+ binder_reply_id: 36673
+ server_process: "/apex/com.android.hardware.vibrator/bin/hw/android.hardware.vibrator-service.example"
+ server_thread: "android.hardwar"
+ server_ts: 25808626104
+ server_dur: 4244
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 4244
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6304
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11629
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 6550
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 36676
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25808649459
+ client_dur: 19535
+ binder_reply_id: 36677
+ server_process: "/apex/com.android.hardware.vibrator/bin/hw/android.hardware.vibrator-service.example"
+ server_thread: "android.hardwar"
+ server_ts: 25808656163
+ server_dur: 4039
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 4039
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6439
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 7574
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 5522
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 36679
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25808679113
+ client_dur: 22778
+ binder_reply_id: 36680
+ server_process: "/apex/com.android.hardware.vibrator/bin/hw/android.hardware.vibrator-service.example"
+ server_thread: "android.hardwar"
+ server_ts: 25808688986
+ server_dur: 3889
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 3889
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6334
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9279
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 7165
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 36682
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25808712146
+ client_dur: 21102
+ binder_reply_id: 36683
+ server_process: "/apex/com.android.hardware.vibrator/bin/hw/android.hardware.vibrator-service.example"
+ server_thread: "android.hardwar"
+ server_ts: 25808720606
+ server_dur: 3664
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 3664
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6281
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9497
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 5324
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 36685
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25808743343
+ client_dur: 49190
+ binder_reply_id: 36687
+ server_process: "/apex/com.android.hardware.vibrator/bin/hw/android.hardware.vibrator-service.example"
+ server_thread: "android.hardwar"
+ server_ts: 25808773138
+ server_dur: 4014
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 4014
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 12797
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9671
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 26722
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 36690
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25808803408
+ client_dur: 47244
+ binder_reply_id: 36691
+ server_process: "/apex/com.android.hardware.vibrator/bin/hw/android.hardware.vibrator-service.example"
+ server_thread: "android.hardwar"
+ server_ts: 25808832840
+ server_dur: 3744
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 3744
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 11526
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 7776
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 27942
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 36693
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25808861280
+ client_dur: 23141
+ binder_reply_id: 36694
+ server_process: "/apex/com.android.hardware.vibrator/bin/hw/android.hardware.vibrator-service.example"
+ server_thread: "android.hardwar"
+ server_ts: 25808871693
+ server_dur: 4083
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 4083
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6137
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 10381
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 6623
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 36698
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25808894304
+ client_dur: 22212
+ binder_reply_id: 36699
+ server_process: "/apex/com.android.hardware.vibrator/bin/hw/android.hardware.vibrator-service.example"
+ server_thread: "android.hardwar"
+ server_ts: 25808903846
+ server_dur: 4193
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 4193
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5996
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 7203
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 9013
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 36701
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25808927915
+ client_dur: 23489
+ binder_reply_id: 36702
+ server_process: "/apex/com.android.hardware.vibrator/bin/hw/android.hardware.vibrator-service.example"
+ server_thread: "android.hardwar"
+ server_ts: 25808938201
+ server_dur: 4441
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 4441
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6348
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9948
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 7193
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 36704
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25808963769
+ client_dur: 21106
+ binder_reply_id: 36705
+ server_process: "/apex/com.android.hardware.vibrator/bin/hw/android.hardware.vibrator-service.example"
+ server_thread: "android.hardwar"
+ server_ts: 25808972274
+ server_dur: 4301
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 4301
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5901
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9722
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 5483
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 36708
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25808996827
+ client_dur: 22150
+ binder_reply_id: 36709
+ server_process: "/apex/com.android.hardware.vibrator/bin/hw/android.hardware.vibrator-service.example"
+ server_thread: "android.hardwar"
+ server_ts: 25809006677
+ server_dur: 3852
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 3852
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5979
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 10074
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 6097
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 36712
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25809029487
+ client_dur: 30653
+ binder_reply_id: 36713
+ server_process: "/apex/com.android.hardware.vibrator/bin/hw/android.hardware.vibrator-service.example"
+ server_thread: "android.hardwar"
+ server_ts: 25809048418
+ server_dur: 3146
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 3146
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6278
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 5148
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 19227
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 36717
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25809070927
+ client_dur: 105314
+ binder_reply_id: 36718
+ server_process: "/apex/com.android.hardware.vibrator/bin/hw/android.hardware.vibrator-service.example"
+ server_thread: "android.hardwar"
+ server_ts: 25809156958
+ server_dur: 4090
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 4090
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 12383
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 7524
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 85407
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 36720
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25809187458
+ client_dur: 21199
+ binder_reply_id: 36721
+ server_process: "/apex/com.android.hardware.vibrator/bin/hw/android.hardware.vibrator-service.example"
+ server_thread: "android.hardwar"
+ server_ts: 25809196575
+ server_dur: 3729
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 3729
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5978
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9424
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 5797
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 36723
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25809219112
+ client_dur: 20851
+ binder_reply_id: 36724
+ server_process: "/apex/com.android.hardware.vibrator/bin/hw/android.hardware.vibrator-service.example"
+ server_thread: "android.hardwar"
+ server_ts: 25809227683
+ server_dur: 3856
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 3856
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6053
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9138
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 5660
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 36726
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25809250949
+ client_dur: 271118
+ binder_reply_id: 36730
+ server_process: "/apex/com.android.hardware.vibrator/bin/hw/android.hardware.vibrator-service.example"
+ server_thread: "android.hardwar"
+ server_ts: 25809502291
+ server_dur: 4522
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 4522
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8980
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12713
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 249425
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 36732
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25809543172
+ client_dur: 29191
+ binder_reply_id: 36733
+ server_process: "/apex/com.android.hardware.vibrator/bin/hw/android.hardware.vibrator-service.example"
+ server_thread: "android.hardwar"
+ server_ts: 25809555589
+ server_dur: 4714
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 4714
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9215
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14975
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 5001
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 36735
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25809583743
+ client_dur: 23569
+ binder_reply_id: 36736
+ server_process: "/apex/com.android.hardware.vibrator/bin/hw/android.hardware.vibrator-service.example"
+ server_thread: "android.hardwar"
+ server_ts: 25809592470
+ server_dur: 3948
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 3948
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8210
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9955
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 5404
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 36739
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25809618388
+ client_dur: 38876
+ binder_reply_id: 36740
+ server_process: "/apex/com.android.hardware.vibrator/bin/hw/android.hardware.vibrator-service.example"
+ server_thread: "android.hardwar"
+ server_ts: 25809637992
+ server_dur: 8798
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 8798
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7919
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 19943
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 11014
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 36743
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25809757746
+ client_dur: 171172
+ binder_reply_id: 36744
+ server_process: "/apex/com.android.hardware.vibrator/bin/hw/android.hardware.vibrator-service.example"
+ server_thread: "android.hardwar"
+ server_ts: 25809770125
+ server_dur: 89637
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "R+"
+ thread_state_dur: 60078
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 29559
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 63122
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14112
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 93938
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 36750
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25809948987
+ client_dur: 120274
+ binder_reply_id: 36753
+ server_process: "/apex/com.android.hardware.vibrator/bin/hw/android.hardware.vibrator-service.example"
+ server_thread: "android.hardwar"
+ server_ts: 25809967298
+ server_dur: 27536
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 27536
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 66961
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14846
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 38467
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 36757
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25810106019
+ client_dur: 110073
+ binder_reply_id: 36758
+ server_process: "/apex/com.android.hardware.vibrator/bin/hw/android.hardware.vibrator-service.example"
+ server_thread: "android.hardwar"
+ server_ts: 25810132739
+ server_dur: 5193
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 5193
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 72660
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14424
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 22989
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 36762
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25810239347
+ client_dur: 148792
+ binder_reply_id: 36763
+ server_process: "/apex/com.android.hardware.vibrator/bin/hw/android.hardware.vibrator-service.example"
+ server_thread: "android.hardwar"
+ server_ts: 25810364813
+ server_dur: 3865
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 3865
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 16853
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 10168
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 121771
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 36766
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25810497904
+ client_dur: 126359
+ binder_reply_id: 36767
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25810531969
+ server_dur: 73542
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 73542
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 103440
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 22919
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 36768
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25810646589
+ client_dur: 91503
+ binder_reply_id: 36769
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25810669576
+ server_dur: 52662
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 52662
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 74180
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 17323
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 36772
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25810948647
+ client_dur: 113503
+ binder_reply_id: 36773
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25810980358
+ server_dur: 64314
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 64314
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 91463
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 22040
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 36774
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25811246975
+ client_dur: 366342
+ binder_reply_id: 36775
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25811269261
+ server_dur: 324989
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 324989
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 352962
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 13380
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 36781
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25811641918
+ client_dur: 83600
+ binder_reply_id: 36782
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25811659549
+ server_dur: 47010
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "R"
+ thread_state_dur: 22597
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 24413
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 71864
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11736
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 36787
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25811827364
+ client_dur: 105911
+ binder_reply_id: 36788
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25811855742
+ server_dur: 60946
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 60946
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 84666
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 21245
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 36819
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25814468030
+ client_dur: 128573
+ binder_reply_id: 36820
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25814502303
+ server_dur: 75807
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 75807
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 104805
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 23768
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 36901
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25824457100
+ client_dur: 243653
+ binder_reply_id: 36902
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25824484172
+ server_dur: 202360
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "R"
+ thread_state_dur: 134238
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 68122
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 225215
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 18438
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 36923
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: false
+ client_ts: 25826929585
+ client_dur: 134380
+ binder_reply_id: 36925
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25826953314
+ server_dur: 57893
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 57893
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 45352
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16255
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 72773
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 36926
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: false
+ client_ts: 25827095345
+ client_dur: 59551
+ binder_reply_id: 36927
+ server_process: "/apex/com.android.os.statsd/bin/statsd"
+ server_thread: "binder:415_3"
+ server_ts: 25827112546
+ server_dur: 28045
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 28045
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8837
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14851
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 35863
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 36967
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25828178041
+ client_dur: 75912
+ binder_reply_id: 36970
+ server_process: "/system/bin/surfaceflinger"
+ server_thread: "binder:496_2"
+ server_ts: 25828192051
+ server_dur: 26713
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 26713
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7033
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12542
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 56337
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 36978
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25828289955
+ client_dur: 48095
+ binder_reply_id: 36979
+ server_process: "/system/bin/surfaceflinger"
+ server_thread: "binder:496_2"
+ server_ts: 25828303964
+ server_dur: 23818
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 23818
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6875
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14471
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 26749
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37348
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25833585425
+ client_dur: 213739
+ binder_reply_id: 37369
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25833674904
+ server_dur: 59579
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 59579
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 59967
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 19554
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 134218
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37420
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25834911169
+ client_dur: 66864
+ binder_reply_id: 37421
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25834940005
+ server_dur: 22905
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 22905
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7389
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 20322
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 39153
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37423
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25835009103
+ client_dur: 41035
+ binder_reply_id: 37424
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25835029405
+ server_dur: 9917
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 9917
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5967
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14595
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 20473
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37426
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25835084036
+ client_dur: 39828
+ binder_reply_id: 37427
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25835102285
+ server_dur: 11104
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 11104
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5720
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12715
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 21393
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37430
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25835225817
+ client_dur: 39668
+ binder_reply_id: 37431
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25835244300
+ server_dur: 10401
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 10401
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5850
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14714
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 19104
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37433
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25835491757
+ client_dur: 94706
+ binder_reply_id: 37434
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25835523199
+ server_dur: 50044
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 50044
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7933
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 25822
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 60951
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37446
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25838116144
+ client_dur: 101371
+ binder_reply_id: 37447
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25838145038
+ server_dur: 57786
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 57786
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 81362
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 20009
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37542
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25854689410
+ client_dur: 72379
+ binder_reply_id: 37543
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25854716713
+ server_dur: 29735
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 29735
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 10289
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 17875
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 44215
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37544
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25854776152
+ client_dur: 84994
+ binder_reply_id: 37545
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25854792697
+ server_dur: 55053
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 55053
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8903
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12343
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 63748
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37556
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25856165265
+ client_dur: 41372
+ binder_reply_id: 37557
+ server_process: "/system/bin/surfaceflinger"
+ server_thread: "binder:496_2"
+ server_ts: 25856179451
+ server_dur: 11065
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 11065
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8795
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14679
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 17898
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37570
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25859386674
+ client_dur: 62804
+ binder_reply_id: 37571
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25859406671
+ server_dur: 23198
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 23198
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 51940
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 10864
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37576
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25860119896
+ client_dur: 89982
+ binder_reply_id: 37577
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25860140536
+ server_dur: 54911
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 54911
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 77846
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12136
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37588
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25861940989
+ client_dur: 112198
+ binder_reply_id: 37589
+ server_process: "/system/bin/surfaceflinger"
+ server_thread: "binder:496_2"
+ server_ts: 25861960190
+ server_dur: 69698
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 69698
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 15017
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 20097
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 77084
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37592
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25862411224
+ client_dur: 72918
+ binder_reply_id: 37593
+ server_process: "/system/bin/surfaceflinger"
+ server_thread: "binder:496_2"
+ server_ts: 25862426577
+ server_dur: 43364
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 43364
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6596
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 13545
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 52777
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37594
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25862572364
+ client_dur: 43335
+ binder_reply_id: 37595
+ server_process: "/system/bin/surfaceflinger"
+ server_thread: "binder:496_2"
+ server_ts: 25862583679
+ server_dur: 21214
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 21214
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6177
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12578
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 24580
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37596
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25862644016
+ client_dur: 35084
+ binder_reply_id: 37597
+ server_process: "/system/bin/surfaceflinger"
+ server_thread: "binder:496_2"
+ server_ts: 25862653442
+ server_dur: 16522
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 16522
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5655
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9856
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 19573
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37598
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25862703240
+ client_dur: 43193
+ binder_reply_id: 37599
+ server_process: "/system/bin/surfaceflinger"
+ server_thread: "binder:496_2"
+ server_ts: 25862712076
+ server_dur: 25328
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 25328
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5439
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9478
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 28276
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37602
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25863309305
+ client_dur: 56073
+ binder_reply_id: 37603
+ server_process: "/system/bin/surfaceflinger"
+ server_thread: "binder:496_2"
+ server_ts: 25863321886
+ server_dur: 30965
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 30965
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5850
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11988
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 38235
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37604
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25863414967
+ client_dur: 48999
+ binder_reply_id: 37605
+ server_process: "/system/bin/surfaceflinger"
+ server_thread: "binder:496_2"
+ server_ts: 25863426312
+ server_dur: 27403
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 27403
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5751
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11356
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 31892
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37608
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25864046858
+ client_dur: 61808
+ binder_reply_id: 37609
+ server_process: "/system/bin/surfaceflinger"
+ server_thread: "binder:496_2"
+ server_ts: 25864062070
+ server_dur: 32956
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 32956
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6619
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12417
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 42772
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37610
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25864143436
+ client_dur: 51337
+ binder_reply_id: 37611
+ server_process: "/system/bin/surfaceflinger"
+ server_thread: "binder:496_2"
+ server_ts: 25864153386
+ server_dur: 30980
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 30980
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5670
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 10009
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 35658
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37612
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25864216828
+ client_dur: 37990
+ binder_reply_id: 37613
+ server_process: "/system/bin/surfaceflinger"
+ server_thread: "binder:496_2"
+ server_ts: 25864226073
+ server_dur: 19004
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 19004
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5464
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9381
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 23145
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37614
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25864279759
+ client_dur: 37961
+ binder_reply_id: 37615
+ server_process: "/system/bin/surfaceflinger"
+ server_thread: "binder:496_2"
+ server_ts: 25864288819
+ server_dur: 19366
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 19366
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5566
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9365
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 23030
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37616
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25864345023
+ client_dur: 59115
+ binder_reply_id: 37617
+ server_process: "/system/bin/surfaceflinger"
+ server_thread: "binder:496_2"
+ server_ts: 25864354391
+ server_dur: 17778
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 17778
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 25671
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11232
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 22212
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37620
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25864449726
+ client_dur: 51629
+ binder_reply_id: 37621
+ server_process: "/system/bin/surfaceflinger"
+ server_thread: "binder:496_2"
+ server_ts: 25864460717
+ server_dur: 26406
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 26406
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7677
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12120
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 31832
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37622
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25864530175
+ client_dur: 40230
+ binder_reply_id: 37623
+ server_process: "/system/bin/surfaceflinger"
+ server_thread: "binder:496_2"
+ server_ts: 25864539824
+ server_dur: 19580
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 19580
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6735
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9617
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 23878
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37624
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25864603443
+ client_dur: 64958
+ binder_reply_id: 37625
+ server_process: "/system/bin/surfaceflinger"
+ server_thread: "binder:496_2"
+ server_ts: 25864612742
+ server_dur: 44603
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 44603
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6862
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9401
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 48695
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37626
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25864687472
+ client_dur: 38679
+ binder_reply_id: 37627
+ server_process: "/system/bin/surfaceflinger"
+ server_thread: "binder:496_2"
+ server_ts: 25864696221
+ server_dur: 19520
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 19520
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6562
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9099
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 23018
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37628
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25864748376
+ client_dur: 41144
+ binder_reply_id: 37629
+ server_process: "/system/bin/surfaceflinger"
+ server_thread: "binder:496_2"
+ server_ts: 25864757238
+ server_dur: 21548
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 21548
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6678
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9163
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 25303
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37630
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25864814870
+ client_dur: 37926
+ binder_reply_id: 37631
+ server_process: "/system/bin/surfaceflinger"
+ server_thread: "binder:496_2"
+ server_ts: 25864824299
+ server_dur: 17299
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 17299
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6540
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9601
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 21785
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37632
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25864878443
+ client_dur: 41432
+ binder_reply_id: 37633
+ server_process: "/system/bin/surfaceflinger"
+ server_thread: "binder:496_2"
+ server_ts: 25864887850
+ server_dur: 21263
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 21263
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6613
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9283
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 25536
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37634
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25864943354
+ client_dur: 46446
+ binder_reply_id: 37635
+ server_process: "/system/bin/surfaceflinger"
+ server_thread: "binder:496_2"
+ server_ts: 25864953070
+ server_dur: 26259
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 26259
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6778
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9713
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 29955
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37636
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25865010220
+ client_dur: 42768
+ binder_reply_id: 37637
+ server_process: "/system/bin/surfaceflinger"
+ server_thread: "binder:496_2"
+ server_ts: 25865018943
+ server_dur: 22857
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 22857
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7070
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 8891
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 26807
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37638
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25865078882
+ client_dur: 42845
+ binder_reply_id: 37639
+ server_process: "/system/bin/surfaceflinger"
+ server_thread: "binder:496_2"
+ server_ts: 25865088374
+ server_dur: 22790
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 22790
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6604
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9486
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 26755
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37640
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25865143746
+ client_dur: 43541
+ binder_reply_id: 37641
+ server_process: "/system/bin/surfaceflinger"
+ server_thread: "binder:496_2"
+ server_ts: 25865152587
+ server_dur: 24329
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 24329
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6671
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9137
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 27733
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37642
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25865208871
+ client_dur: 37989
+ binder_reply_id: 37643
+ server_process: "/system/bin/surfaceflinger"
+ server_thread: "binder:496_2"
+ server_ts: 25865217954
+ server_dur: 18361
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 18361
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6634
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9153
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 22202
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37644
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25865269510
+ client_dur: 180816
+ binder_reply_id: 37645
+ server_process: "/system/bin/surfaceflinger"
+ server_thread: "binder:496_2"
+ server_ts: 25865278803
+ server_dur: 44675
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "R+"
+ thread_state_dur: 7227
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 37448
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 122102
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 10045
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 48669
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37651
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25865509380
+ client_dur: 1204393
+ binder_reply_id: 37654
+ server_process: "/system/bin/surfaceflinger"
+ server_thread: "binder:496_2"
+ server_ts: 25866655580
+ server_dur: 37015
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 37015
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 11126
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11843
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 1181424
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37655
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25866765533
+ client_dur: 52077
+ binder_reply_id: 37656
+ server_process: "/system/bin/surfaceflinger"
+ server_thread: "binder:496_2"
+ server_ts: 25866778140
+ server_dur: 25314
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 25314
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 10210
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12873
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 28994
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37657
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25866847306
+ client_dur: 36125
+ binder_reply_id: 37658
+ server_process: "/system/bin/surfaceflinger"
+ server_thread: "binder:496_2"
+ server_ts: 25866856611
+ server_dur: 17873
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 17873
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5223
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 10223
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 20679
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37659
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25866907704
+ client_dur: 31809
+ binder_reply_id: 37660
+ server_process: "/system/bin/surfaceflinger"
+ server_thread: "binder:496_2"
+ server_ts: 25866916674
+ server_dur: 14121
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 14121
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5068
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9616
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 17125
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37661
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25866963934
+ client_dur: 42576
+ binder_reply_id: 37662
+ server_process: "/system/bin/surfaceflinger"
+ server_thread: "binder:496_2"
+ server_ts: 25866972903
+ server_dur: 18950
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 18950
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 10778
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9686
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 22112
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37663
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25867031282
+ client_dur: 35871
+ binder_reply_id: 37664
+ server_process: "/system/bin/surfaceflinger"
+ server_thread: "binder:496_2"
+ server_ts: 25867040421
+ server_dur: 17984
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 17984
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5100
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9503
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 21268
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37665
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25867092641
+ client_dur: 34611
+ binder_reply_id: 37666
+ server_process: "/system/bin/surfaceflinger"
+ server_thread: "binder:496_2"
+ server_ts: 25867101335
+ server_dur: 17329
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 17329
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 4977
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9293
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 20341
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37667
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25867155069
+ client_dur: 43809
+ binder_reply_id: 37668
+ server_process: "/system/bin/surfaceflinger"
+ server_thread: "binder:496_2"
+ server_ts: 25867163773
+ server_dur: 26243
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 26243
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5052
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9697
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 29060
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37669
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25867229729
+ client_dur: 32631
+ binder_reply_id: 37670
+ server_process: "/system/bin/surfaceflinger"
+ server_thread: "binder:496_2"
+ server_ts: 25867238857
+ server_dur: 14033
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 14033
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5515
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9623
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 17493
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37671
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25867283252
+ client_dur: 40731
+ binder_reply_id: 37672
+ server_process: "/system/bin/surfaceflinger"
+ server_thread: "binder:496_2"
+ server_ts: 25867292366
+ server_dur: 21993
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 21993
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5123
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9226
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 26382
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37673
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25867343753
+ client_dur: 34724
+ binder_reply_id: 37674
+ server_process: "/system/bin/surfaceflinger"
+ server_thread: "binder:496_2"
+ server_ts: 25867353084
+ server_dur: 16650
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 16650
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5108
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9092
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 20524
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37675
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25867401523
+ client_dur: 50745
+ binder_reply_id: 37676
+ server_process: "/system/bin/surfaceflinger"
+ server_thread: "binder:496_2"
+ server_ts: 25867410223
+ server_dur: 32741
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 32741
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5176
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9034
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 36535
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37677
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25867475251
+ client_dur: 46815
+ binder_reply_id: 37678
+ server_process: "/system/bin/surfaceflinger"
+ server_thread: "binder:496_2"
+ server_ts: 25867485001
+ server_dur: 26611
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 26611
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5439
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9800
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 31576
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37679
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25867547843
+ client_dur: 36696
+ binder_reply_id: 37680
+ server_process: "/system/bin/surfaceflinger"
+ server_thread: "binder:496_2"
+ server_ts: 25867557467
+ server_dur: 18125
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 18125
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5127
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9403
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 22166
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37681
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25867605981
+ client_dur: 37415
+ binder_reply_id: 37682
+ server_process: "/system/bin/surfaceflinger"
+ server_thread: "binder:496_2"
+ server_ts: 25867614819
+ server_dur: 19663
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 19663
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5033
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9092
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 23290
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37683
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25867663292
+ client_dur: 35879
+ binder_reply_id: 37684
+ server_process: "/system/bin/surfaceflinger"
+ server_thread: "binder:496_2"
+ server_ts: 25867672122
+ server_dur: 17373
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 17373
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5633
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 8969
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 21277
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37685
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25867751966
+ client_dur: 40848
+ binder_reply_id: 37686
+ server_process: "/system/bin/surfaceflinger"
+ server_thread: "binder:496_2"
+ server_ts: 25867761875
+ server_dur: 19072
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 19072
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5233
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 10135
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 25480
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IServiceManager::getService::cppClient"
+ binder_txn_id: 37687
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25867845030
+ client_dur: 180504
+ binder_reply_id: 37688
+ server_process: "/system/bin/surfaceflinger"
+ server_thread: "binder:496_2"
+ server_ts: 25867860282
+ server_dur: 154468
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "R"
+ thread_state_dur: 5734
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 98098
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "S"
+ thread_state_dur: 50636
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 5977
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 17272
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 157255
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37712
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25872260669
+ client_dur: 83399
+ binder_reply_id: 37713
+ server_process: "/system/bin/surfaceflinger"
+ server_thread: "binder:496_2"
+ server_ts: 25872278450
+ server_dur: 47096
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 47096
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8716
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 19044
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 55639
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37779
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25885439966
+ client_dur: 1549817
+ binder_reply_id: 37792
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25886054638
+ server_dur: 24145
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 24145
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 897552
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11727
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 640538
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37782
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: false
+ client_ts: 25885831452
+ client_dur: 1452935
+ binder_reply_id: 37793
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25886206332
+ server_dur: 305512
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 305512
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 768636
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9756
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 674543
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37798
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: false
+ client_ts: 25887309449
+ client_dur: 115655
+ binder_reply_id: 37799
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25887326271
+ server_dur: 18512
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 18512
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 108848
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 6807
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37804
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: false
+ client_ts: 25887452954
+ client_dur: 283867
+ binder_reply_id: 37805
+ server_process: "/vendor/bin/hw/android.hardware.input.processor-service.example"
+ server_thread: "android.hardwar"
+ server_ts: 25887467255
+ server_dur: 38055
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 38055
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 273281
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 10586
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37850
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25892252212
+ client_dur: 2274293
+ binder_reply_id: 37853
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25894481596
+ server_dur: 27702
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 27702
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7429
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 18445
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 2248419
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37936
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25921269728
+ client_dur: 400263
+ binder_reply_id: 37938
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25921599983
+ server_dur: 52448
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 52448
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7353
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 16174
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 376736
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37944
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25921747025
+ client_dur: 209278
+ binder_reply_id: 37946
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25921878602
+ server_dur: 66173
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 66173
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7013
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 28814
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 173451
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37950
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25922308759
+ client_dur: 230930
+ binder_reply_id: 37951
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25922366800
+ server_dur: 58914
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 58914
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 107010
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 25655
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 98265
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 37983
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25926152660
+ client_dur: 106426
+ binder_reply_id: 37984
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25926184604
+ server_dur: 59798
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 59798
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 10091
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 24379
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 71956
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 38489
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25935520343
+ client_dur: 106898
+ binder_reply_id: 38490
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25935553945
+ server_dur: 59988
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 59988
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 8207
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 26350
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 72341
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 38491
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25936096478
+ client_dur: 38431
+ binder_reply_id: 38492
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25936114070
+ server_dur: 13878
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 13878
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 2529
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14455
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 21447
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 38493
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25936154115
+ client_dur: 304852
+ binder_reply_id: 38494
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25936427202
+ server_dur: 13388
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 13388
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 14741
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 4401
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 285710
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 38498
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25939273894
+ client_dur: 44659
+ binder_reply_id: 38499
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25939290557
+ server_dur: 19990
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 19990
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 4062
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 13441
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 27156
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 38501
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25939575552
+ client_dur: 81712
+ binder_reply_id: 38502
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25939602201
+ server_dur: 44933
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 44933
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6940
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 27117
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 47655
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 38516
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25944988176
+ client_dur: 71994
+ binder_reply_id: 38517
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25945018540
+ server_dur: 25217
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 25217
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 9524
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 15032
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 47438
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 38532
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25948938076
+ client_dur: 82091
+ binder_reply_id: 38533
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25948980882
+ server_dur: 27091
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 27091
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 7533
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 26705
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 47853
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 38539
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25951851055
+ client_dur: 445134
+ binder_reply_id: 38540
+ server_process: "/system/bin/surfaceflinger"
+ server_thread: "binder:496_3"
+ server_ts: 25951902501
+ server_dur: 183967
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 183967
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 203186
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 54958
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 186990
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 38544
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25952609949
+ client_dur: 44997
+ binder_reply_id: 38545
+ server_process: "/system/bin/surfaceflinger"
+ server_thread: "binder:496_2"
+ server_ts: 25952623297
+ server_dur: 18258
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 18258
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 31995
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 13002
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 38552
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25954386897
+ client_dur: 107947
+ binder_reply_id: 38553
+ server_process: "/system/bin/surfaceflinger"
+ server_thread: "binder:496_3"
+ server_ts: 25954404617
+ server_dur: 18018
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 18018
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 66259
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 18434
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 23254
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 38555
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25955417145
+ client_dur: 248980
+ binder_reply_id: 38556
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25955442657
+ server_dur: 23870
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 23870
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 192348
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 14646
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 41986
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::invalidateMounts::cppServer"
+ binder_txn_id: 38558
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25955702503
+ client_dur: 1028567
+ binder_reply_id: 38559
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_1"
+ server_ts: 25955716400
+ server_dur: 923564
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 923564
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 1015084
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 13483
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 38561
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25957071212
+ client_dur: 244964
+ binder_reply_id: 38562
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25957109467
+ server_dur: 68828
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 68828
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 131523
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 29434
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 84007
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 38563
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25957345364
+ client_dur: 86035
+ binder_reply_id: 38564
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25957361868
+ server_dur: 39522
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 39522
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 15894
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12719
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 57422
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 38565
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25957477722
+ client_dur: 38342
+ binder_reply_id: 38566
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25957490997
+ server_dur: 14607
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 14607
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6413
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 9866
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 22063
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 38567
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25957561902
+ client_dur: 115285
+ binder_reply_id: 38568
+ server_process: "/system/bin/vold"
+ server_thread: "binder:255_2"
+ server_ts: 25957584457
+ server_dur: 69879
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 69879
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 17174
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 22753
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 75358
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 38569
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25957701552
+ client_dur: 31673
+ binder_reply_id: 38570
+ server_process: "/system/bin/vold"
+ server_thread: "binder:255_2"
+ server_ts: 25957712540
+ server_dur: 11337
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 11337
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6047
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 12420
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 13206
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 38571
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25957917714
+ client_dur: 81359
+ binder_reply_id: 38572
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25957965656
+ server_dur: 19953
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 19953
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6744
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11448
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 63167
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 38573
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25958179475
+ client_dur: 57952
+ binder_reply_id: 38574
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25958197817
+ server_dur: 12909
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 12909
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 21164
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 15682
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 21106
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 38575
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25958259037
+ client_dur: 37816
+ binder_reply_id: 38576
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25958272198
+ server_dur: 12201
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 12201
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6791
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11850
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 19175
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::invalidateMounts::cppServer"
+ binder_txn_id: 38577
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25958323889
+ client_dur: 934386
+ binder_reply_id: 38578
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_1"
+ server_ts: 25958335597
+ server_dur: 816593
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 816593
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 922565
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11821
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ aidl_name: "AIDL::cpp::IInstalld::invalidateMounts::cppServer"
+ binder_txn_id: 38582
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25959279820
+ client_dur: 780373
+ binder_reply_id: 38583
+ server_process: "/system/bin/installd"
+ server_thread: "binder:548_1"
+ server_ts: 25959289960
+ server_dur: 697719
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "R+"
+ thread_state_dur: 7963
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 689756
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R+"
+ thread_state_dur: 768919
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 11454
+ thread_state_count: 2
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 38586
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25960212392
+ client_dur: 138312
+ binder_reply_id: 38587
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25960246748
+ server_dur: 59922
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 59922
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 37362
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 26343
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 74607
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 38589
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25960703658
+ client_dur: 185272
+ binder_reply_id: 38590
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25960733334
+ server_dur: 55452
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 55452
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 95673
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 23394
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 66205
+ thread_state_count: 1
+ }
+ }
+ unaggregated_txn_breakdown {
+ binder_txn_id: 38602
+ client_process: "system_server"
+ client_thread: "system_server"
+ is_main_thread: true
+ client_ts: 25964272455
+ client_dur: 108953
+ binder_reply_id: 38603
+ server_process: "/system/bin/servicemanager"
+ server_thread: "servicemanager"
+ server_ts: 25964304630
+ server_dur: 66130
+ thread_states {
+ thread_state_type: "binder_reply"
+ thread_state: "Running"
+ thread_state_dur: 66130
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "R"
+ thread_state_dur: 6080
+ thread_state_count: 1
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "Running"
+ thread_state_dur: 23787
+ thread_state_count: 2
+ }
+ thread_states {
+ thread_state_type: "binder_txn"
+ thread_state: "S"
+ thread_state_dur: 79086
+ thread_state_count: 1
+ }
+ }
+}
diff --git a/test/trace_processor/android/android_bugreport_dumpstate_test.out b/test/trace_processor/diff_tests/android/android_bugreport_dumpstate_test.out
similarity index 100%
rename from test/trace_processor/android/android_bugreport_dumpstate_test.out
rename to test/trace_processor/diff_tests/android/android_bugreport_dumpstate_test.out
diff --git a/test/trace_processor/android/android_bugreport_dumpsys_test.out b/test/trace_processor/diff_tests/android/android_bugreport_dumpsys_test.out
similarity index 100%
rename from test/trace_processor/android/android_bugreport_dumpsys_test.out
rename to test/trace_processor/diff_tests/android/android_bugreport_dumpsys_test.out
diff --git a/test/trace_processor/android/android_bugreport_logs_test.out b/test/trace_processor/diff_tests/android/android_bugreport_logs_test.out
similarity index 100%
rename from test/trace_processor/android/android_bugreport_logs_test.out
rename to test/trace_processor/diff_tests/android/android_bugreport_logs_test.out
diff --git a/test/trace_processor/android/android_system_property_slice.out b/test/trace_processor/diff_tests/android/android_system_property_slice.out
similarity index 100%
rename from test/trace_processor/android/android_system_property_slice.out
rename to test/trace_processor/diff_tests/android/android_system_property_slice.out
diff --git a/test/trace_processor/android/game_intervention_list_test.out b/test/trace_processor/diff_tests/android/game_intervention_list_test.out
similarity index 100%
rename from test/trace_processor/android/game_intervention_list_test.out
rename to test/trace_processor/diff_tests/android/game_intervention_list_test.out
diff --git a/test/trace_processor/diff_tests/android/tests.py b/test/trace_processor/diff_tests/android/tests.py
new file mode 100644
index 0000000..4127021
--- /dev/null
+++ b/test/trace_processor/diff_tests/android/tests.py
@@ -0,0 +1,198 @@
+#!/usr/bin/env python3
+# Copyright (C) 2023 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 a
+#
+# 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.
+
+from python.generators.diff_tests.testing import Path, DataPath, Metric
+from python.generators.diff_tests.testing import Csv, Json, TextProto
+from python.generators.diff_tests.testing import DiffTestBlueprint
+from python.generators.diff_tests.testing import TestSuite
+
+
+class Android(TestSuite):
+
+ def test_android_system_property_counter(self):
+ return DiffTestBlueprint(
+ trace=TextProto(r"""
+ packet {
+ timestamp: 1000
+ android_system_property {
+ values {
+ name: "debug.tracing.screen_state"
+ value: "2"
+ }
+ values {
+ name: "debug.tracing.device_state"
+ value: "some_state_from_sysprops"
+ }
+ }
+ }
+ packet {
+ ftrace_events {
+ cpu: 1
+ event {
+ timestamp: 2000
+ pid: 1
+ print {
+ buf: "C|1000|ScreenState|1\n"
+ }
+ }
+ event {
+ timestamp: 3000
+ pid: 1
+ print {
+ buf: "N|1000|DeviceStateChanged|some_state_from_atrace\n"
+ }
+ }
+ }
+ }
+ """),
+ query="""
+ SELECT t.id, t.type, t.name, c.id, c.ts, c.type, c.value
+ FROM counter_track t JOIN counter c ON t.id = c.track_id
+ WHERE name = 'ScreenState';
+ """,
+ out=Csv("""
+ "id","type","name","id","ts","type","value"
+ 0,"counter_track","ScreenState",0,1000,"counter",2.000000
+ 0,"counter_track","ScreenState",1,2000,"counter",1.000000
+ """))
+
+ def test_android_system_property_slice(self):
+ return DiffTestBlueprint(
+ trace=TextProto(r"""
+ packet {
+ timestamp: 1000
+ android_system_property {
+ values {
+ name: "debug.tracing.screen_state"
+ value: "2"
+ }
+ values {
+ name: "debug.tracing.device_state"
+ value: "some_state_from_sysprops"
+ }
+ }
+ }
+ packet {
+ ftrace_events {
+ cpu: 1
+ event {
+ timestamp: 2000
+ pid: 1
+ print {
+ buf: "C|1000|ScreenState|1\n"
+ }
+ }
+ event {
+ timestamp: 3000
+ pid: 1
+ print {
+ buf: "N|1000|DeviceStateChanged|some_state_from_atrace\n"
+ }
+ }
+ }
+ }
+ """),
+ query="""
+ SELECT t.id, t.type, t.name, s.id, s.ts, s.dur, s.type, s.name
+ FROM track t JOIN slice s ON s.track_id = t.id
+ WHERE t.name = 'DeviceStateChanged';
+ """,
+ out=Path('android_system_property_slice.out'))
+
+ def test_binder_sync_binder_metrics(self):
+ return DiffTestBlueprint(
+ trace=DataPath('android_binder_metric_trace.atr'),
+ query="""
+ SELECT IMPORT('android.binder');
+ SELECT
+ aidl_name,
+ binder_txn_id,
+ client_process,
+ client_thread,
+ client_upid,
+ client_utid,
+ is_main_thread,
+ client_ts,
+ client_dur,
+ binder_reply_id,
+ server_process,
+ server_thread,
+ server_upid,
+ server_utid,
+ server_ts,
+ server_dur
+ FROM android_sync_binder_metrics_by_txn
+ WHERE binder_txn_id = 34382
+ ORDER BY client_ts
+ LIMIT 1;
+ """,
+ out=Csv("""
+ "aidl_name","binder_txn_id","client_process","client_thread","client_upid","client_utid","is_main_thread","client_ts","client_dur","binder_reply_id","server_process","server_thread","server_upid","server_utid","server_ts","server_dur"
+ "AIDL::java::ISensorPrivacyManager::isSensorPrivacyEnabled::server",34382,"/system/bin/audioserver","audioserver",281,281,1,25505818197,3125407,34383,"system_server","binder:641_4",311,539,25505891588,3000749
+ """))
+
+ def test_binder_sync_binder_thread_state(self):
+ return DiffTestBlueprint(
+ trace=DataPath('android_binder_metric_trace.atr'),
+ query="""
+ SELECT IMPORT('android.binder');
+ SELECT
+ binder_txn_id,
+ binder_reply_id,
+ thread_state_type,
+ thread_state,
+ thread_state_dur,
+ thread_state_count
+ FROM android_sync_binder_thread_state_by_txn
+ WHERE binder_txn_id = 34382
+ ORDER BY thread_state_dur;
+ """,
+ out=Csv("""
+ "binder_txn_id","binder_reply_id","thread_state_type","thread_state","thread_state_dur","thread_state_count"
+ 34382,34383,"binder_reply","R+",10030,1
+ 34382,34383,"binder_txn","Running",26597,2
+ 34382,34383,"binder_txn","R",38947,1
+ 34382,34383,"binder_reply","Running",533663,3
+ 34382,34383,"binder_reply","D",864664,1
+ 34382,34383,"binder_reply","R",1592392,1
+ 34382,34383,"binder_txn","S",3059863,1
+ """))
+
+ def test_binder_sync_binder_blocked_function(self):
+ return DiffTestBlueprint(
+ trace=DataPath('android_binder_metric_trace.atr'),
+ query="""
+ SELECT IMPORT('android.binder');
+ SELECT
+ binder_txn_id,
+ binder_reply_id,
+ thread_state_type,
+ blocked_function,
+ blocked_function_dur,
+ blocked_function_count
+ FROM android_sync_binder_blocked_functions_by_txn
+ WHERE binder_txn_id = 34382
+ ORDER BY blocked_function_dur;
+ """,
+ out=Csv("""
+ "binder_txn_id","binder_reply_id","thread_state_type","blocked_function","blocked_function_dur","blocked_function_count"
+ 34382,34383,"binder_reply","filemap_fault",864664,1
+ """))
+
+ def test_binder_metric(self):
+ return DiffTestBlueprint(
+ trace=DataPath('android_binder_metric_trace.atr'),
+ query=Metric('android_binder'),
+ out=Path('android_binder_metric.out'))
diff --git a/test/trace_processor/android/tests_bugreport.py b/test/trace_processor/diff_tests/android/tests_bugreport.py
similarity index 88%
rename from test/trace_processor/android/tests_bugreport.py
rename to test/trace_processor/diff_tests/android/tests_bugreport.py
index 777a950..790b529 100644
--- a/test/trace_processor/android/tests_bugreport.py
+++ b/test/trace_processor/diff_tests/android/tests_bugreport.py
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-from python.generators.diff_tests.testing import Path, Metric
+from python.generators.diff_tests.testing import Path, DataPath, Metric
from python.generators.diff_tests.testing import Csv, Json, TextProto
from python.generators.diff_tests.testing import DiffTestBlueprint
from python.generators.diff_tests.testing import TestSuite
@@ -23,7 +23,7 @@
def test_android_bugreport_logs(self):
return DiffTestBlueprint(
- trace=Path('../../data/bugreport-crosshatch-SPB5.zip'),
+ trace=DataPath('bugreport-crosshatch-SPB5.zip'),
query="""
WITH
initial AS (SELECT
@@ -44,7 +44,7 @@
def test_android_bugreport_dumpstate(self):
return DiffTestBlueprint(
- trace=Path('../../data/bugreport-crosshatch-SPB5.zip'),
+ trace=DataPath('bugreport-crosshatch-SPB5.zip'),
query="""
SELECT section, service, count(line) AS linecount FROM android_dumpstate
GROUP BY section, service;
@@ -53,7 +53,7 @@
def test_android_bugreport_dumpsys(self):
return DiffTestBlueprint(
- trace=Path('../../data/bugreport-crosshatch-SPB5.zip'),
+ trace=DataPath('bugreport-crosshatch-SPB5.zip'),
query="""
SELECT section, service, line FROM android_dumpstate
WHERE service = 'color_display';
diff --git a/test/trace_processor/android/tests_games.py b/test/trace_processor/diff_tests/android/tests_games.py
similarity index 97%
rename from test/trace_processor/android/tests_games.py
rename to test/trace_processor/diff_tests/android/tests_games.py
index 9b674aa..daa9a8d 100644
--- a/test/trace_processor/android/tests_games.py
+++ b/test/trace_processor/diff_tests/android/tests_games.py
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-from python.generators.diff_tests.testing import Path, Metric
+from python.generators.diff_tests.testing import Path, DataPath, Metric
from python.generators.diff_tests.testing import Csv, Json, TextProto
from python.generators.diff_tests.testing import DiffTestBlueprint
from python.generators.diff_tests.testing import TestSuite
diff --git a/test/trace_processor/android/tests_general.py b/test/trace_processor/diff_tests/android/tests_general.py
similarity index 96%
rename from test/trace_processor/android/tests_general.py
rename to test/trace_processor/diff_tests/android/tests_general.py
index 0c95ccc..fd555a5 100644
--- a/test/trace_processor/android/tests_general.py
+++ b/test/trace_processor/diff_tests/android/tests_general.py
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-from python.generators.diff_tests.testing import Path, Metric
+from python.generators.diff_tests.testing import Path, DataPath, Metric
from python.generators.diff_tests.testing import Csv, Json, TextProto
from python.generators.diff_tests.testing import DiffTestBlueprint
from python.generators.diff_tests.testing import DiffTestModule
diff --git a/test/trace_processor/atrace/android_b2b_async_begin.textproto b/test/trace_processor/diff_tests/atrace/android_b2b_async_begin.textproto
similarity index 100%
rename from test/trace_processor/atrace/android_b2b_async_begin.textproto
rename to test/trace_processor/diff_tests/atrace/android_b2b_async_begin.textproto
diff --git a/test/trace_processor/atrace/async_track_atrace.py b/test/trace_processor/diff_tests/atrace/async_track_atrace.py
similarity index 100%
rename from test/trace_processor/atrace/async_track_atrace.py
rename to test/trace_processor/diff_tests/atrace/async_track_atrace.py
diff --git a/test/trace_processor/atrace/bad_print.systrace b/test/trace_processor/diff_tests/atrace/bad_print.systrace
similarity index 100%
rename from test/trace_processor/atrace/bad_print.systrace
rename to test/trace_processor/diff_tests/atrace/bad_print.systrace
diff --git a/test/trace_processor/atrace/bad_print.textproto b/test/trace_processor/diff_tests/atrace/bad_print.textproto
similarity index 100%
rename from test/trace_processor/atrace/bad_print.textproto
rename to test/trace_processor/diff_tests/atrace/bad_print.textproto
diff --git a/test/trace_processor/atrace/instant_async_atrace.py b/test/trace_processor/diff_tests/atrace/instant_async_atrace.py
similarity index 100%
rename from test/trace_processor/atrace/instant_async_atrace.py
rename to test/trace_processor/diff_tests/atrace/instant_async_atrace.py
diff --git a/test/trace_processor/atrace/instant_atrace.py b/test/trace_processor/diff_tests/atrace/instant_atrace.py
similarity index 100%
rename from test/trace_processor/atrace/instant_atrace.py
rename to test/trace_processor/diff_tests/atrace/instant_atrace.py
diff --git a/test/trace_processor/atrace/process_track_slices_android_async_slice.out b/test/trace_processor/diff_tests/atrace/process_track_slices_android_async_slice.out
similarity index 100%
rename from test/trace_processor/atrace/process_track_slices_android_async_slice.out
rename to test/trace_processor/diff_tests/atrace/process_track_slices_android_async_slice.out
diff --git a/test/trace_processor/atrace/sys_write_and_atrace.py b/test/trace_processor/diff_tests/atrace/sys_write_and_atrace.py
similarity index 100%
rename from test/trace_processor/atrace/sys_write_and_atrace.py
rename to test/trace_processor/diff_tests/atrace/sys_write_and_atrace.py
diff --git a/test/trace_processor/atrace/tests.py b/test/trace_processor/diff_tests/atrace/tests.py
similarity index 97%
rename from test/trace_processor/atrace/tests.py
rename to test/trace_processor/diff_tests/atrace/tests.py
index 80bc378..0f892c8 100644
--- a/test/trace_processor/atrace/tests.py
+++ b/test/trace_processor/diff_tests/atrace/tests.py
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-from python.generators.diff_tests.testing import Path, Metric
+from python.generators.diff_tests.testing import Path, DataPath, Metric
from python.generators.diff_tests.testing import Csv, Json, TextProto
from python.generators.diff_tests.testing import DiffTestBlueprint
from python.generators.diff_tests.testing import TestSuite
diff --git a/test/trace_processor/atrace/tests_error_handling.py b/test/trace_processor/diff_tests/atrace/tests_error_handling.py
similarity index 97%
rename from test/trace_processor/atrace/tests_error_handling.py
rename to test/trace_processor/diff_tests/atrace/tests_error_handling.py
index 41f3dca..3b215bf 100644
--- a/test/trace_processor/atrace/tests_error_handling.py
+++ b/test/trace_processor/diff_tests/atrace/tests_error_handling.py
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-from python.generators.diff_tests.testing import Path, Metric
+from python.generators.diff_tests.testing import Path, DataPath, Metric
from python.generators.diff_tests.testing import Csv, Json, TextProto
from python.generators.diff_tests.testing import DiffTestBlueprint
from python.generators.diff_tests.testing import TestSuite
diff --git a/test/trace_processor/atrace/tests_general.py b/test/trace_processor/diff_tests/atrace/tests_general.py
similarity index 96%
rename from test/trace_processor/atrace/tests_general.py
rename to test/trace_processor/diff_tests/atrace/tests_general.py
index c99f050..59417c0 100644
--- a/test/trace_processor/atrace/tests_general.py
+++ b/test/trace_processor/diff_tests/atrace/tests_general.py
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-from python.generators.diff_tests.testing import Path, Metric
+from python.generators.diff_tests.testing import Path, DataPath, Metric
from python.generators.diff_tests.testing import Csv, Json, TextProto
from python.generators.diff_tests.testing import DiffTestBlueprint
from python.generators.diff_tests.testing import DiffTestModule
diff --git a/test/trace_processor/camera/camera-ion-mem-trace_android_camera_unagg.out b/test/trace_processor/diff_tests/camera/camera-ion-mem-trace_android_camera_unagg.out
similarity index 100%
rename from test/trace_processor/camera/camera-ion-mem-trace_android_camera_unagg.out
rename to test/trace_processor/diff_tests/camera/camera-ion-mem-trace_android_camera_unagg.out
diff --git a/test/trace_processor/camera/tests.py b/test/trace_processor/diff_tests/camera/tests.py
similarity index 88%
rename from test/trace_processor/camera/tests.py
rename to test/trace_processor/diff_tests/camera/tests.py
index c9fd353..f08e10a 100644
--- a/test/trace_processor/camera/tests.py
+++ b/test/trace_processor/diff_tests/camera/tests.py
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-from python.generators.diff_tests.testing import Path, Metric
+from python.generators.diff_tests.testing import Path, DataPath, Metric
from python.generators.diff_tests.testing import Csv, Json, TextProto
from python.generators.diff_tests.testing import DiffTestBlueprint
from python.generators.diff_tests.testing import TestSuite
@@ -23,7 +23,7 @@
def test_camera_ion_mem_trace_android_camera(self):
return DiffTestBlueprint(
- trace=Path('../../data/camera-ion-mem-trace'),
+ trace=DataPath('camera-ion-mem-trace'),
query=Metric('android_camera'),
out=TextProto(r"""
android_camera {
@@ -37,6 +37,6 @@
def test_camera_ion_mem_trace_android_camera_unagg(self):
return DiffTestBlueprint(
- trace=Path('../../data/camera-ion-mem-trace'),
+ trace=DataPath('camera-ion-mem-trace'),
query=Metric('android_camera_unagg'),
out=Path('camera-ion-mem-trace_android_camera_unagg.out'))
diff --git a/test/trace_processor/camera/tests_general.py b/test/trace_processor/diff_tests/camera/tests_general.py
similarity index 88%
rename from test/trace_processor/camera/tests_general.py
rename to test/trace_processor/diff_tests/camera/tests_general.py
index 57180cb..7277796 100644
--- a/test/trace_processor/camera/tests_general.py
+++ b/test/trace_processor/diff_tests/camera/tests_general.py
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-from python.generators.diff_tests.testing import Path, Metric
+from python.generators.diff_tests.testing import Path, DataPath, Metric
from python.generators.diff_tests.testing import Csv, Json, TextProto
from python.generators.diff_tests.testing import DiffTestBlueprint
from python.generators.diff_tests.testing import DiffTestModule
@@ -23,7 +23,7 @@
def test_camera_ion_mem_trace_android_camera(self):
return DiffTestBlueprint(
- trace=Path('../../data/camera-ion-mem-trace'),
+ trace=DataPath('camera-ion-mem-trace'),
query=Metric('android_camera'),
out=TextProto(r"""
android_camera {
@@ -37,6 +37,6 @@
def test_camera_ion_mem_trace_android_camera_unagg(self):
return DiffTestBlueprint(
- trace=Path('../../data/camera-ion-mem-trace'),
+ trace=DataPath('camera-ion-mem-trace'),
query=Metric('android_camera_unagg'),
out=Path('camera-ion-mem-trace_android_camera_unagg.out'))
diff --git a/test/trace_processor/chrome/actual_power_by_combined_rail_mode.py b/test/trace_processor/diff_tests/chrome/actual_power_by_combined_rail_mode.py
similarity index 100%
rename from test/trace_processor/chrome/actual_power_by_combined_rail_mode.py
rename to test/trace_processor/diff_tests/chrome/actual_power_by_combined_rail_mode.py
diff --git a/test/trace_processor/chrome/chrome_dropped_frames_metric_test.sql b/test/trace_processor/diff_tests/chrome/chrome_dropped_frames_metric_test.sql
similarity index 100%
rename from test/trace_processor/chrome/chrome_dropped_frames_metric_test.sql
rename to test/trace_processor/diff_tests/chrome/chrome_dropped_frames_metric_test.sql
diff --git a/test/trace_processor/chrome/chrome_input_to_browser_intervals.out b/test/trace_processor/diff_tests/chrome/chrome_input_to_browser_intervals.out
similarity index 100%
rename from test/trace_processor/chrome/chrome_input_to_browser_intervals.out
rename to test/trace_processor/diff_tests/chrome/chrome_input_to_browser_intervals.out
diff --git a/test/trace_processor/chrome/chrome_log_message_args_test.sql b/test/trace_processor/diff_tests/chrome/chrome_log_message_args_test.sql
similarity index 100%
rename from test/trace_processor/chrome/chrome_log_message_args_test.sql
rename to test/trace_processor/diff_tests/chrome/chrome_log_message_args_test.sql
diff --git a/test/trace_processor/chrome/chrome_long_tasks_delaying_input_processing_compare_default_test.sql b/test/trace_processor/diff_tests/chrome/chrome_long_tasks_delaying_input_processing_compare_default_test.sql
similarity index 100%
rename from test/trace_processor/chrome/chrome_long_tasks_delaying_input_processing_compare_default_test.sql
rename to test/trace_processor/diff_tests/chrome/chrome_long_tasks_delaying_input_processing_compare_default_test.sql
diff --git a/test/trace_processor/chrome/chrome_processes_android_systrace.out b/test/trace_processor/diff_tests/chrome/chrome_processes_android_systrace.out
similarity index 100%
rename from test/trace_processor/chrome/chrome_processes_android_systrace.out
rename to test/trace_processor/diff_tests/chrome/chrome_processes_android_systrace.out
diff --git a/test/trace_processor/chrome/chrome_processes_type_android_systrace.out b/test/trace_processor/diff_tests/chrome/chrome_processes_type_android_systrace.out
similarity index 100%
rename from test/trace_processor/chrome/chrome_processes_type_android_systrace.out
rename to test/trace_processor/diff_tests/chrome/chrome_processes_type_android_systrace.out
diff --git a/test/trace_processor/chrome/chrome_reliable_range.textproto b/test/trace_processor/diff_tests/chrome/chrome_reliable_range.textproto
similarity index 100%
rename from test/trace_processor/chrome/chrome_reliable_range.textproto
rename to test/trace_processor/diff_tests/chrome/chrome_reliable_range.textproto
diff --git a/test/trace_processor/chrome/chrome_reliable_range_cropping.textproto b/test/trace_processor/diff_tests/chrome/chrome_reliable_range_cropping.textproto
similarity index 100%
rename from test/trace_processor/chrome/chrome_reliable_range_cropping.textproto
rename to test/trace_processor/diff_tests/chrome/chrome_reliable_range_cropping.textproto
diff --git a/test/trace_processor/chrome/chrome_reliable_range_missing_browser_main.out b/test/trace_processor/diff_tests/chrome/chrome_reliable_range_missing_browser_main.out
similarity index 100%
rename from test/trace_processor/chrome/chrome_reliable_range_missing_browser_main.out
rename to test/trace_processor/diff_tests/chrome/chrome_reliable_range_missing_browser_main.out
diff --git a/test/trace_processor/chrome/chrome_reliable_range_missing_browser_main.textproto b/test/trace_processor/diff_tests/chrome/chrome_reliable_range_missing_browser_main.textproto
similarity index 100%
rename from test/trace_processor/chrome/chrome_reliable_range_missing_browser_main.textproto
rename to test/trace_processor/diff_tests/chrome/chrome_reliable_range_missing_browser_main.textproto
diff --git a/test/trace_processor/diff_tests/chrome/chrome_reliable_range_missing_gpu_main.textproto b/test/trace_processor/diff_tests/chrome/chrome_reliable_range_missing_gpu_main.textproto
new file mode 100644
index 0000000..4465a30
--- /dev/null
+++ b/test/trace_processor/diff_tests/chrome/chrome_reliable_range_missing_gpu_main.textproto
@@ -0,0 +1,50 @@
+# There is a Gpu process, but there's no Gpu main thread.
+# The entire trace is unreliable.
+
+packet {
+ timestamp: 1
+ incremental_state_cleared: true
+ trusted_packet_sequence_id: 1
+ track_descriptor {
+ uuid: 1
+ thread {
+ pid: 1
+ tid: 1
+ }
+ parent_uuid: 0
+ }
+}
+packet {
+ timestamp: 2
+ track_descriptor {
+ uuid: 2
+ process {
+ pid: 1
+ }
+ chrome_process {
+ process_type: PROCESS_GPU
+ }
+ }
+}
+
+# Slice begin event
+packet {
+ trusted_packet_sequence_id: 2
+ timestamp: 11
+ track_event {
+ track_uuid: 1
+ categories: "cat"
+ type: 1
+ name: "slice1"
+ }
+}
+# Slice end event
+packet {
+ trusted_packet_sequence_id: 2
+ timestamp: 1011
+ track_event {
+ track_uuid: 1
+ categories: "cat"
+ type: 2
+ }
+}
diff --git a/test/trace_processor/chrome/chrome_reliable_range_missing_processes.textproto b/test/trace_processor/diff_tests/chrome/chrome_reliable_range_missing_processes.textproto
similarity index 100%
rename from test/trace_processor/chrome/chrome_reliable_range_missing_processes.textproto
rename to test/trace_processor/diff_tests/chrome/chrome_reliable_range_missing_processes.textproto
diff --git a/test/trace_processor/chrome/chrome_reliable_range_missing_renderer_main.out b/test/trace_processor/diff_tests/chrome/chrome_reliable_range_missing_renderer_main.out
similarity index 100%
rename from test/trace_processor/chrome/chrome_reliable_range_missing_renderer_main.out
rename to test/trace_processor/diff_tests/chrome/chrome_reliable_range_missing_renderer_main.out
diff --git a/test/trace_processor/chrome/chrome_reliable_range_missing_renderer_main.textproto b/test/trace_processor/diff_tests/chrome/chrome_reliable_range_missing_renderer_main.textproto
similarity index 100%
rename from test/trace_processor/chrome/chrome_reliable_range_missing_renderer_main.textproto
rename to test/trace_processor/diff_tests/chrome/chrome_reliable_range_missing_renderer_main.textproto
diff --git a/test/trace_processor/chrome/chrome_reliable_range_non_chrome_process.out b/test/trace_processor/diff_tests/chrome/chrome_reliable_range_non_chrome_process.out
similarity index 100%
rename from test/trace_processor/chrome/chrome_reliable_range_non_chrome_process.out
rename to test/trace_processor/diff_tests/chrome/chrome_reliable_range_non_chrome_process.out
diff --git a/test/trace_processor/chrome/chrome_reliable_range_test.sql b/test/trace_processor/diff_tests/chrome/chrome_reliable_range_test.sql
similarity index 100%
rename from test/trace_processor/chrome/chrome_reliable_range_test.sql
rename to test/trace_processor/diff_tests/chrome/chrome_reliable_range_test.sql
diff --git a/test/trace_processor/chrome/chrome_scroll_jank_caused_by_scheduling_test.out b/test/trace_processor/diff_tests/chrome/chrome_scroll_jank_caused_by_scheduling_test.out
similarity index 100%
rename from test/trace_processor/chrome/chrome_scroll_jank_caused_by_scheduling_test.out
rename to test/trace_processor/diff_tests/chrome/chrome_scroll_jank_caused_by_scheduling_test.out
diff --git a/test/trace_processor/chrome/chrome_stack_samples_for_task_test.out b/test/trace_processor/diff_tests/chrome/chrome_stack_samples_for_task_test.out
similarity index 100%
rename from test/trace_processor/chrome/chrome_stack_samples_for_task_test.out
rename to test/trace_processor/diff_tests/chrome/chrome_stack_samples_for_task_test.out
diff --git a/test/trace_processor/chrome/chrome_tasks.out b/test/trace_processor/diff_tests/chrome/chrome_tasks.out
similarity index 100%
rename from test/trace_processor/chrome/chrome_tasks.out
rename to test/trace_processor/diff_tests/chrome/chrome_tasks.out
diff --git a/test/trace_processor/chrome/chrome_tasks_delaying_input_processing_test.out b/test/trace_processor/diff_tests/chrome/chrome_tasks_delaying_input_processing_test.out
similarity index 100%
rename from test/trace_processor/chrome/chrome_tasks_delaying_input_processing_test.out
rename to test/trace_processor/diff_tests/chrome/chrome_tasks_delaying_input_processing_test.out
diff --git a/test/trace_processor/chrome/chrome_threads.out b/test/trace_processor/diff_tests/chrome/chrome_threads.out
similarity index 100%
rename from test/trace_processor/chrome/chrome_threads.out
rename to test/trace_processor/diff_tests/chrome/chrome_threads.out
diff --git a/test/trace_processor/chrome/chrome_threads_android_systrace.out b/test/trace_processor/diff_tests/chrome/chrome_threads_android_systrace.out
similarity index 100%
rename from test/trace_processor/chrome/chrome_threads_android_systrace.out
rename to test/trace_processor/diff_tests/chrome/chrome_threads_android_systrace.out
diff --git a/test/trace_processor/chrome/combined_rail_modes.py b/test/trace_processor/diff_tests/chrome/combined_rail_modes.py
similarity index 100%
rename from test/trace_processor/chrome/combined_rail_modes.py
rename to test/trace_processor/diff_tests/chrome/combined_rail_modes.py
diff --git a/test/trace_processor/chrome/cpu_time_by_combined_rail_mode.py b/test/trace_processor/diff_tests/chrome/cpu_time_by_combined_rail_mode.py
similarity index 100%
rename from test/trace_processor/chrome/cpu_time_by_combined_rail_mode.py
rename to test/trace_processor/diff_tests/chrome/cpu_time_by_combined_rail_mode.py
diff --git a/test/trace_processor/chrome/estimated_power_by_combined_rail_mode.py b/test/trace_processor/diff_tests/chrome/estimated_power_by_combined_rail_mode.py
similarity index 100%
rename from test/trace_processor/chrome/estimated_power_by_combined_rail_mode.py
rename to test/trace_processor/diff_tests/chrome/estimated_power_by_combined_rail_mode.py
diff --git a/test/trace_processor/chrome/event_latency_scroll_jank.out b/test/trace_processor/diff_tests/chrome/event_latency_scroll_jank.out
similarity index 100%
rename from test/trace_processor/chrome/event_latency_scroll_jank.out
rename to test/trace_processor/diff_tests/chrome/event_latency_scroll_jank.out
diff --git a/test/trace_processor/chrome/event_latency_scroll_jank_cause.out b/test/trace_processor/diff_tests/chrome/event_latency_scroll_jank_cause.out
similarity index 100%
rename from test/trace_processor/chrome/event_latency_scroll_jank_cause.out
rename to test/trace_processor/diff_tests/chrome/event_latency_scroll_jank_cause.out
diff --git a/test/trace_processor/chrome/event_latency_to_breakdowns.out b/test/trace_processor/diff_tests/chrome/event_latency_to_breakdowns.out
similarity index 100%
rename from test/trace_processor/chrome/event_latency_to_breakdowns.out
rename to test/trace_processor/diff_tests/chrome/event_latency_to_breakdowns.out
diff --git a/test/trace_processor/chrome/experimental_reliable_chrome_tasks_delaying_input_processing_test.out b/test/trace_processor/diff_tests/chrome/experimental_reliable_chrome_tasks_delaying_input_processing_test.out
similarity index 100%
rename from test/trace_processor/chrome/experimental_reliable_chrome_tasks_delaying_input_processing_test.out
rename to test/trace_processor/diff_tests/chrome/experimental_reliable_chrome_tasks_delaying_input_processing_test.out
diff --git a/test/trace_processor/chrome/frame_times_metric.out b/test/trace_processor/diff_tests/chrome/frame_times_metric.out
similarity index 100%
rename from test/trace_processor/chrome/frame_times_metric.out
rename to test/trace_processor/diff_tests/chrome/frame_times_metric.out
diff --git a/test/trace_processor/chrome/frame_times_metric_test.sql b/test/trace_processor/diff_tests/chrome/frame_times_metric_test.sql
similarity index 100%
rename from test/trace_processor/chrome/frame_times_metric_test.sql
rename to test/trace_processor/diff_tests/chrome/frame_times_metric_test.sql
diff --git a/test/trace_processor/chrome/index.py b/test/trace_processor/diff_tests/chrome/index.py
similarity index 100%
rename from test/trace_processor/chrome/index.py
rename to test/trace_processor/diff_tests/chrome/index.py
diff --git a/test/trace_processor/chrome/long_event_latency.textproto b/test/trace_processor/diff_tests/chrome/long_event_latency.textproto
similarity index 100%
rename from test/trace_processor/chrome/long_event_latency.textproto
rename to test/trace_processor/diff_tests/chrome/long_event_latency.textproto
diff --git a/test/trace_processor/chrome/long_task_tracking_trace_chrome_long_tasks_delaying_input_processing_compare_default_test.out b/test/trace_processor/diff_tests/chrome/long_task_tracking_trace_chrome_long_tasks_delaying_input_processing_compare_default_test.out
similarity index 100%
rename from test/trace_processor/chrome/long_task_tracking_trace_chrome_long_tasks_delaying_input_processing_compare_default_test.out
rename to test/trace_processor/diff_tests/chrome/long_task_tracking_trace_chrome_long_tasks_delaying_input_processing_compare_default_test.out
diff --git a/test/trace_processor/chrome/long_task_tracking_trace_chrome_long_tasks_delaying_input_processing_test.out b/test/trace_processor/diff_tests/chrome/long_task_tracking_trace_chrome_long_tasks_delaying_input_processing_test.out
similarity index 100%
rename from test/trace_processor/chrome/long_task_tracking_trace_chrome_long_tasks_delaying_input_processing_test.out
rename to test/trace_processor/diff_tests/chrome/long_task_tracking_trace_chrome_long_tasks_delaying_input_processing_test.out
diff --git a/test/trace_processor/chrome/memory_snapshot_chrome_dump_events.out b/test/trace_processor/diff_tests/chrome/memory_snapshot_chrome_dump_events.out
similarity index 100%
rename from test/trace_processor/chrome/memory_snapshot_chrome_dump_events.out
rename to test/trace_processor/diff_tests/chrome/memory_snapshot_chrome_dump_events.out
diff --git a/test/trace_processor/chrome/memory_snapshot_edges.out b/test/trace_processor/diff_tests/chrome/memory_snapshot_edges.out
similarity index 100%
rename from test/trace_processor/chrome/memory_snapshot_edges.out
rename to test/trace_processor/diff_tests/chrome/memory_snapshot_edges.out
diff --git a/test/trace_processor/chrome/memory_snapshot_general_validation.out b/test/trace_processor/diff_tests/chrome/memory_snapshot_general_validation.out
similarity index 100%
rename from test/trace_processor/chrome/memory_snapshot_general_validation.out
rename to test/trace_processor/diff_tests/chrome/memory_snapshot_general_validation.out
diff --git a/test/trace_processor/chrome/memory_snapshot_node_args.out b/test/trace_processor/diff_tests/chrome/memory_snapshot_node_args.out
similarity index 100%
rename from test/trace_processor/chrome/memory_snapshot_node_args.out
rename to test/trace_processor/diff_tests/chrome/memory_snapshot_node_args.out
diff --git a/test/trace_processor/chrome/memory_snapshot_nodes.out b/test/trace_processor/diff_tests/chrome/memory_snapshot_nodes.out
similarity index 100%
rename from test/trace_processor/chrome/memory_snapshot_nodes.out
rename to test/trace_processor/diff_tests/chrome/memory_snapshot_nodes.out
diff --git a/test/trace_processor/chrome/memory_snapshot_os_dump_events.out b/test/trace_processor/diff_tests/chrome/memory_snapshot_os_dump_events.out
similarity index 100%
rename from test/trace_processor/chrome/memory_snapshot_os_dump_events.out
rename to test/trace_processor/diff_tests/chrome/memory_snapshot_os_dump_events.out
diff --git a/test/trace_processor/chrome/memory_snapshot_os_dump_events_test.sql b/test/trace_processor/diff_tests/chrome/memory_snapshot_os_dump_events_test.sql
similarity index 100%
rename from test/trace_processor/chrome/memory_snapshot_os_dump_events_test.sql
rename to test/trace_processor/diff_tests/chrome/memory_snapshot_os_dump_events_test.sql
diff --git a/test/trace_processor/chrome/memory_snapshot_smaps.out b/test/trace_processor/diff_tests/chrome/memory_snapshot_smaps.out
similarity index 100%
rename from test/trace_processor/chrome/memory_snapshot_smaps.out
rename to test/trace_processor/diff_tests/chrome/memory_snapshot_smaps.out
diff --git a/test/trace_processor/chrome/modified_rail_modes.py b/test/trace_processor/diff_tests/chrome/modified_rail_modes.py
similarity index 100%
rename from test/trace_processor/chrome/modified_rail_modes.py
rename to test/trace_processor/diff_tests/chrome/modified_rail_modes.py
diff --git a/test/trace_processor/chrome/modified_rail_modes_extra_long.py b/test/trace_processor/diff_tests/chrome/modified_rail_modes_extra_long.py
similarity index 100%
rename from test/trace_processor/chrome/modified_rail_modes_extra_long.py
rename to test/trace_processor/diff_tests/chrome/modified_rail_modes_extra_long.py
diff --git a/test/trace_processor/chrome/modified_rail_modes_long.py b/test/trace_processor/diff_tests/chrome/modified_rail_modes_long.py
similarity index 100%
rename from test/trace_processor/chrome/modified_rail_modes_long.py
rename to test/trace_processor/diff_tests/chrome/modified_rail_modes_long.py
diff --git a/test/trace_processor/chrome/modified_rail_modes_no_vsyncs.py b/test/trace_processor/diff_tests/chrome/modified_rail_modes_no_vsyncs.py
similarity index 100%
rename from test/trace_processor/chrome/modified_rail_modes_no_vsyncs.py
rename to test/trace_processor/diff_tests/chrome/modified_rail_modes_no_vsyncs.py
diff --git a/test/trace_processor/chrome/modified_rail_modes_with_input.py b/test/trace_processor/diff_tests/chrome/modified_rail_modes_with_input.py
similarity index 100%
rename from test/trace_processor/chrome/modified_rail_modes_with_input.py
rename to test/trace_processor/diff_tests/chrome/modified_rail_modes_with_input.py
diff --git a/test/trace_processor/chrome/proto_content.out b/test/trace_processor/diff_tests/chrome/proto_content.out
similarity index 100%
rename from test/trace_processor/chrome/proto_content.out
rename to test/trace_processor/diff_tests/chrome/proto_content.out
diff --git a/test/trace_processor/chrome/proto_content_path_test.sql b/test/trace_processor/diff_tests/chrome/proto_content_path_test.sql
similarity index 100%
rename from test/trace_processor/chrome/proto_content_path_test.sql
rename to test/trace_processor/diff_tests/chrome/proto_content_path_test.sql
diff --git a/test/trace_processor/chrome/proto_content_test.sql b/test/trace_processor/diff_tests/chrome/proto_content_test.sql
similarity index 100%
rename from test/trace_processor/chrome/proto_content_test.sql
rename to test/trace_processor/diff_tests/chrome/proto_content_test.sql
diff --git a/test/trace_processor/chrome/scroll_flow_event.out b/test/trace_processor/diff_tests/chrome/scroll_flow_event.out
similarity index 100%
rename from test/trace_processor/chrome/scroll_flow_event.out
rename to test/trace_processor/diff_tests/chrome/scroll_flow_event.out
diff --git a/test/trace_processor/chrome/scroll_flow_event_general_validation.out b/test/trace_processor/diff_tests/chrome/scroll_flow_event_general_validation.out
similarity index 100%
rename from test/trace_processor/chrome/scroll_flow_event_general_validation.out
rename to test/trace_processor/diff_tests/chrome/scroll_flow_event_general_validation.out
diff --git a/test/trace_processor/chrome/scroll_flow_event_queuing_delay.out b/test/trace_processor/diff_tests/chrome/scroll_flow_event_queuing_delay.out
similarity index 100%
rename from test/trace_processor/chrome/scroll_flow_event_queuing_delay.out
rename to test/trace_processor/diff_tests/chrome/scroll_flow_event_queuing_delay.out
diff --git a/test/trace_processor/chrome/scroll_flow_event_queuing_delay_general_validation_test.sql b/test/trace_processor/diff_tests/chrome/scroll_flow_event_queuing_delay_general_validation_test.sql
similarity index 100%
rename from test/trace_processor/chrome/scroll_flow_event_queuing_delay_general_validation_test.sql
rename to test/trace_processor/diff_tests/chrome/scroll_flow_event_queuing_delay_general_validation_test.sql
diff --git a/test/trace_processor/chrome/scroll_jank.out b/test/trace_processor/diff_tests/chrome/scroll_jank.out
similarity index 100%
rename from test/trace_processor/chrome/scroll_jank.out
rename to test/trace_processor/diff_tests/chrome/scroll_jank.out
diff --git a/test/trace_processor/chrome/scroll_jank_cause_queuing_delay.out b/test/trace_processor/diff_tests/chrome/scroll_jank_cause_queuing_delay.out
similarity index 100%
rename from test/trace_processor/chrome/scroll_jank_cause_queuing_delay.out
rename to test/trace_processor/diff_tests/chrome/scroll_jank_cause_queuing_delay.out
diff --git a/test/trace_processor/chrome/scroll_jank_cause_queuing_delay_general_validation.out b/test/trace_processor/diff_tests/chrome/scroll_jank_cause_queuing_delay_general_validation.out
similarity index 100%
rename from test/trace_processor/chrome/scroll_jank_cause_queuing_delay_general_validation.out
rename to test/trace_processor/diff_tests/chrome/scroll_jank_cause_queuing_delay_general_validation.out
diff --git a/test/trace_processor/chrome/scroll_jank_cause_queuing_delay_restricted.out b/test/trace_processor/diff_tests/chrome/scroll_jank_cause_queuing_delay_restricted.out
similarity index 100%
rename from test/trace_processor/chrome/scroll_jank_cause_queuing_delay_restricted.out
rename to test/trace_processor/diff_tests/chrome/scroll_jank_cause_queuing_delay_restricted.out
diff --git a/test/trace_processor/chrome/scroll_jank_general_validation.out b/test/trace_processor/diff_tests/chrome/scroll_jank_general_validation.out
similarity index 100%
rename from test/trace_processor/chrome/scroll_jank_general_validation.out
rename to test/trace_processor/diff_tests/chrome/scroll_jank_general_validation.out
diff --git a/test/trace_processor/chrome/scroll_jank_general_validation_test.sql b/test/trace_processor/diff_tests/chrome/scroll_jank_general_validation_test.sql
similarity index 100%
rename from test/trace_processor/chrome/scroll_jank_general_validation_test.sql
rename to test/trace_processor/diff_tests/chrome/scroll_jank_general_validation_test.sql
diff --git a/test/trace_processor/chrome/scroll_jank_gpu_check.py b/test/trace_processor/diff_tests/chrome/scroll_jank_gpu_check.py
similarity index 100%
rename from test/trace_processor/chrome/scroll_jank_gpu_check.py
rename to test/trace_processor/diff_tests/chrome/scroll_jank_gpu_check.py
diff --git a/test/trace_processor/chrome/scroll_jank_mojo_simple_watcher.out b/test/trace_processor/diff_tests/chrome/scroll_jank_mojo_simple_watcher.out
similarity index 100%
rename from test/trace_processor/chrome/scroll_jank_mojo_simple_watcher.out
rename to test/trace_processor/diff_tests/chrome/scroll_jank_mojo_simple_watcher.out
diff --git a/test/trace_processor/chrome/scroll_jank_mojo_simple_watcher.py b/test/trace_processor/diff_tests/chrome/scroll_jank_mojo_simple_watcher.py
similarity index 100%
rename from test/trace_processor/chrome/scroll_jank_mojo_simple_watcher.py
rename to test/trace_processor/diff_tests/chrome/scroll_jank_mojo_simple_watcher.py
diff --git a/test/trace_processor/chrome/tests.py b/test/trace_processor/diff_tests/chrome/tests.py
similarity index 93%
rename from test/trace_processor/chrome/tests.py
rename to test/trace_processor/diff_tests/chrome/tests.py
index b82a956..ec4181e 100644
--- a/test/trace_processor/chrome/tests.py
+++ b/test/trace_processor/diff_tests/chrome/tests.py
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-from python.generators.diff_tests.testing import Path, Metric
+from python.generators.diff_tests.testing import Path, DataPath, Metric
from python.generators.diff_tests.testing import Csv, Json, TextProto
from python.generators.diff_tests.testing import DiffTestBlueprint
from python.generators.diff_tests.testing import TestSuite
@@ -179,6 +179,15 @@
1011,"Missing main thread for upid=1",1,1
"""))
+ def test_chrome_reliable_range_missing_gpu_main(self):
+ return DiffTestBlueprint(
+ trace=Path('chrome_reliable_range_missing_gpu_main.textproto'),
+ query=Path('chrome_reliable_range_test.sql'),
+ out=Csv("""
+ "start","reason","debug_limiting_upid","debug_limiting_utid"
+ 1011,"Missing main thread for upid=1",1,1
+ """))
+
def test_chrome_reliable_range_missing_renderer_main(self):
return DiffTestBlueprint(
trace=Path('chrome_reliable_range_missing_renderer_main.textproto'),
@@ -192,7 +201,7 @@
return DiffTestBlueprint(
# We need a trace with a large number of non-chrome slices, so that the
# reliable range is affected by their filtering.
- trace=Path('../../data/example_android_trace_30s.pb'),
+ trace=DataPath('example_android_trace_30s.pb'),
query=Path('chrome_reliable_range_test.sql'),
out=Csv("""
"start","reason","debug_limiting_upid","debug_limiting_utid"
@@ -239,9 +248,8 @@
# Chrome tasks.
def test_chrome_tasks(self):
return DiffTestBlueprint(
- trace=Path(
- '../../data/chrome_page_load_all_categories_not_extended.pftrace.gz'
- ),
+ trace=DataPath(
+ 'chrome_page_load_all_categories_not_extended.pftrace.gz'),
query="""
SELECT RUN_METRIC('chrome/chrome_tasks.sql');
@@ -256,7 +264,7 @@
def test_top_level_java_choreographer_slices_top_level_java_chrome_tasks(
self):
return DiffTestBlueprint(
- trace=Path('../../data/top_level_java_choreographer_slices'),
+ trace=DataPath('top_level_java_choreographer_slices'),
query="""
SELECT RUN_METRIC(
'chrome/chrome_tasks_template.sql',
@@ -279,7 +287,7 @@
# Chrome stack samples.
def test_chrome_stack_samples_for_task(self):
return DiffTestBlueprint(
- trace=Path('../../data/chrome_stack_traces_symbolized_trace.pftrace'),
+ trace=DataPath('chrome_stack_traces_symbolized_trace.pftrace'),
query="""
SELECT RUN_METRIC('chrome/chrome_stack_samples_for_task.sql',
'target_duration_ms', '0.000001',
@@ -416,7 +424,7 @@
# Chrome custom navigation event names
def test_chrome_custom_navigation_tasks(self):
return DiffTestBlueprint(
- trace=Path('../../data/chrome_custom_navigation_trace.gz'),
+ trace=DataPath('chrome_custom_navigation_trace.gz'),
query="""
SELECT RUN_METRIC('chrome/chrome_tasks.sql');
@@ -441,14 +449,14 @@
# Trace proto content
def test_proto_content(self):
return DiffTestBlueprint(
- trace=Path('../../data/chrome_scroll_without_vsync.pftrace'),
+ trace=DataPath('chrome_scroll_without_vsync.pftrace'),
query=Path('proto_content_test.sql'),
out=Path('proto_content.out'))
# TODO(mayzner): Uncomment when it works
# def test_proto_content_path(self):
# return DiffTestBlueprint(
- # trace=Path('../../data/chrome_scroll_without_vsync.pftrace'),
+ # trace=DataPath('chrome_scroll_without_vsync.pftrace'),
# query=Path('proto_content_path_test.sql'),
# out=Csv("""
# "total_size","field_type","field_name","parent_id","event_category","event_name"
diff --git a/test/trace_processor/chrome/tests_args.py b/test/trace_processor/diff_tests/chrome/tests_args.py
similarity index 95%
rename from test/trace_processor/chrome/tests_args.py
rename to test/trace_processor/diff_tests/chrome/tests_args.py
index 1f8c874..9495525 100644
--- a/test/trace_processor/chrome/tests_args.py
+++ b/test/trace_processor/diff_tests/chrome/tests_args.py
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-from python.generators.diff_tests.testing import Path, Metric
+from python.generators.diff_tests.testing import Path, DataPath, Metric
from python.generators.diff_tests.testing import Csv, Json, TextProto
from python.generators.diff_tests.testing import DiffTestBlueprint
from python.generators.diff_tests.testing import TestSuite
@@ -44,7 +44,7 @@
def test_async_trace_1_count_slices(self):
return DiffTestBlueprint(
- trace=Path('../../data/async-trace-1.json'),
+ trace=DataPath('async-trace-1.json'),
query="""
SELECT COUNT(1) FROM slice;
""",
@@ -55,7 +55,7 @@
def test_async_trace_2_count_slices(self):
return DiffTestBlueprint(
- trace=Path('../../data/async-trace-2.json'),
+ trace=DataPath('async-trace-2.json'),
query="""
SELECT COUNT(1) FROM slice;
""",
diff --git a/test/trace_processor/chrome/tests_general.py b/test/trace_processor/diff_tests/chrome/tests_general.py
similarity index 92%
rename from test/trace_processor/chrome/tests_general.py
rename to test/trace_processor/diff_tests/chrome/tests_general.py
index 18945e3..99938b8 100644
--- a/test/trace_processor/chrome/tests_general.py
+++ b/test/trace_processor/diff_tests/chrome/tests_general.py
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-from python.generators.diff_tests.testing import Path, Metric
+from python.generators.diff_tests.testing import Path, DataPath, Metric
from python.generators.diff_tests.testing import Csv, Json, TextProto
from python.generators.diff_tests.testing import DiffTestBlueprint
from python.generators.diff_tests.testing import DiffTestModule
@@ -98,9 +98,8 @@
def test_chrome_tasks(self):
return DiffTestBlueprint(
- trace=Path(
- '../../data/chrome_page_load_all_categories_not_extended.pftrace.gz'
- ),
+ trace=DataPath(
+ 'chrome_page_load_all_categories_not_extended.pftrace.gz'),
query="""
SELECT RUN_METRIC('chrome/chrome_tasks.sql');
@@ -115,7 +114,7 @@
def test_top_level_java_choreographer_slices_top_level_java_chrome_tasks(
self):
return DiffTestBlueprint(
- trace=Path('../../data/top_level_java_choreographer_slices'),
+ trace=DataPath('top_level_java_choreographer_slices'),
query="""
SELECT RUN_METRIC(
'chrome/chrome_tasks_template.sql',
@@ -137,7 +136,7 @@
def test_chrome_stack_samples_for_task(self):
return DiffTestBlueprint(
- trace=Path('../../data/chrome_stack_traces_symbolized_trace.pftrace'),
+ trace=DataPath('chrome_stack_traces_symbolized_trace.pftrace'),
query="""
SELECT RUN_METRIC('chrome/chrome_stack_samples_for_task.sql',
'target_duration_ms', '0.000001',
@@ -184,7 +183,7 @@
def test_chrome_custom_navigation_tasks(self):
return DiffTestBlueprint(
- trace=Path('../../data/chrome_custom_navigation_trace.gz'),
+ trace=DataPath('chrome_custom_navigation_trace.gz'),
query="""
SELECT RUN_METRIC('chrome/chrome_tasks.sql');
@@ -208,6 +207,6 @@
def test_proto_content(self):
return DiffTestBlueprint(
- trace=Path('../../data/chrome_scroll_without_vsync.pftrace'),
+ trace=DataPath('chrome_scroll_without_vsync.pftrace'),
query=Path('proto_content_test.sql'),
out=Path('proto_content.out'))
diff --git a/test/trace_processor/chrome/tests_memory_snapshots.py b/test/trace_processor/diff_tests/chrome/tests_memory_snapshots.py
similarity index 89%
rename from test/trace_processor/chrome/tests_memory_snapshots.py
rename to test/trace_processor/diff_tests/chrome/tests_memory_snapshots.py
index 3c023eb..07e5341 100644
--- a/test/trace_processor/chrome/tests_memory_snapshots.py
+++ b/test/trace_processor/diff_tests/chrome/tests_memory_snapshots.py
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-from python.generators.diff_tests.testing import Path, Metric
+from python.generators.diff_tests.testing import Path, DataPath, Metric
from python.generators.diff_tests.testing import Csv, Json, TextProto
from python.generators.diff_tests.testing import DiffTestBlueprint
from python.generators.diff_tests.testing import TestSuite
@@ -23,7 +23,7 @@
def test_memory_snapshot_general_validation(self):
return DiffTestBlueprint(
- trace=Path('../../data/chrome_memory_snapshot.pftrace'),
+ trace=DataPath('chrome_memory_snapshot.pftrace'),
query="""
SELECT
(
@@ -56,13 +56,13 @@
def test_memory_snapshot_os_dump_events(self):
return DiffTestBlueprint(
- trace=Path('../../data/chrome_memory_snapshot.pftrace'),
+ trace=DataPath('chrome_memory_snapshot.pftrace'),
query=Path('memory_snapshot_os_dump_events_test.sql'),
out=Path('memory_snapshot_os_dump_events.out'))
def test_memory_snapshot_chrome_dump_events(self):
return DiffTestBlueprint(
- trace=Path('../../data/chrome_memory_snapshot.pftrace'),
+ trace=DataPath('chrome_memory_snapshot.pftrace'),
query="""
SELECT
pms.id AS process_snapshot_id,
@@ -78,7 +78,7 @@
def test_memory_snapshot_nodes(self):
return DiffTestBlueprint(
- trace=Path('../../data/chrome_memory_snapshot.pftrace'),
+ trace=DataPath('chrome_memory_snapshot.pftrace'),
query="""
SELECT
id,
@@ -94,7 +94,7 @@
def test_memory_snapshot_edges(self):
return DiffTestBlueprint(
- trace=Path('../../data/chrome_memory_snapshot.pftrace'),
+ trace=DataPath('chrome_memory_snapshot.pftrace'),
query="""
SELECT
id,
@@ -108,7 +108,7 @@
def test_memory_snapshot_node_args(self):
return DiffTestBlueprint(
- trace=Path('../../data/chrome_memory_snapshot.pftrace'),
+ trace=DataPath('chrome_memory_snapshot.pftrace'),
query="""
SELECT
node.id AS node_id,
@@ -124,7 +124,7 @@
def test_memory_snapshot_smaps(self):
return DiffTestBlueprint(
- trace=Path('../../data/chrome_memory_snapshot.pftrace'),
+ trace=DataPath('chrome_memory_snapshot.pftrace'),
query="""
SELECT
process.upid,
diff --git a/test/trace_processor/chrome/tests_processes.py b/test/trace_processor/diff_tests/chrome/tests_processes.py
similarity index 94%
rename from test/trace_processor/chrome/tests_processes.py
rename to test/trace_processor/diff_tests/chrome/tests_processes.py
index 64a1d66..1bb75c5 100644
--- a/test/trace_processor/chrome/tests_processes.py
+++ b/test/trace_processor/diff_tests/chrome/tests_processes.py
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-from python.generators.diff_tests.testing import Path, Metric
+from python.generators.diff_tests.testing import Path, DataPath, Metric
from python.generators.diff_tests.testing import Csv, Json, TextProto
from python.generators.diff_tests.testing import DiffTestBlueprint
from python.generators.diff_tests.testing import TestSuite
@@ -23,7 +23,7 @@
def test_chrome_processes(self):
return DiffTestBlueprint(
- trace=Path('../../data/chrome_scroll_without_vsync.pftrace'),
+ trace=DataPath('chrome_scroll_without_vsync.pftrace'),
query="""
SELECT RUN_METRIC('chrome/chrome_processes.sql');
SELECT pid, name, process_type FROM chrome_process;
@@ -38,7 +38,7 @@
def test_chrome_processes_android_systrace(self):
return DiffTestBlueprint(
- trace=Path('../../data/chrome_android_systrace.pftrace'),
+ trace=DataPath('chrome_android_systrace.pftrace'),
query="""
SELECT RUN_METRIC('chrome/chrome_processes.sql');
SELECT pid, name, process_type FROM chrome_process;
@@ -47,7 +47,7 @@
def test_chrome_threads(self):
return DiffTestBlueprint(
- trace=Path('../../data/chrome_scroll_without_vsync.pftrace'),
+ trace=DataPath('chrome_scroll_without_vsync.pftrace'),
query="""
SELECT RUN_METRIC('chrome/chrome_processes.sql');
SELECT tid, name, is_main_thread, canonical_name
@@ -58,7 +58,7 @@
def test_chrome_threads_android_systrace(self):
return DiffTestBlueprint(
- trace=Path('../../data/chrome_android_systrace.pftrace'),
+ trace=DataPath('chrome_android_systrace.pftrace'),
query="""
SELECT RUN_METRIC('chrome/chrome_processes.sql');
SELECT tid, name, is_main_thread, canonical_name
@@ -69,7 +69,7 @@
def test_chrome_processes_type(self):
return DiffTestBlueprint(
- trace=Path('../../data/chrome_scroll_without_vsync.pftrace'),
+ trace=DataPath('chrome_scroll_without_vsync.pftrace'),
query="""
SELECT pid, name, string_value AS chrome_process_type
FROM
@@ -90,7 +90,7 @@
def test_chrome_processes_type_android_systrace(self):
return DiffTestBlueprint(
- trace=Path('../../data/chrome_android_systrace.pftrace'),
+ trace=DataPath('chrome_android_systrace.pftrace'),
query="""
SELECT pid, name, string_value AS chrome_process_type
FROM
@@ -142,7 +142,7 @@
# Missing processes.
def test_chrome_missing_processes_default_trace(self):
return DiffTestBlueprint(
- trace=Path('../../data/chrome_scroll_without_vsync.pftrace'),
+ trace=DataPath('chrome_scroll_without_vsync.pftrace'),
query="""
SELECT upid, pid, reliable_from
FROM
diff --git a/test/trace_processor/chrome/tests_rail_modes.py b/test/trace_processor/diff_tests/chrome/tests_rail_modes.py
similarity index 98%
rename from test/trace_processor/chrome/tests_rail_modes.py
rename to test/trace_processor/diff_tests/chrome/tests_rail_modes.py
index 241cdf3..1e3df14 100644
--- a/test/trace_processor/chrome/tests_rail_modes.py
+++ b/test/trace_processor/diff_tests/chrome/tests_rail_modes.py
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-from python.generators.diff_tests.testing import Path, Metric
+from python.generators.diff_tests.testing import Path, DataPath, Metric
from python.generators.diff_tests.testing import Csv, Json, TextProto
from python.generators.diff_tests.testing import DiffTestBlueprint
from python.generators.diff_tests.testing import TestSuite
diff --git a/test/trace_processor/chrome/tests_scroll_jank.py b/test/trace_processor/diff_tests/chrome/tests_scroll_jank.py
similarity index 90%
rename from test/trace_processor/chrome/tests_scroll_jank.py
rename to test/trace_processor/diff_tests/chrome/tests_scroll_jank.py
index 6853c0f..c5fd3bc 100644
--- a/test/trace_processor/chrome/tests_scroll_jank.py
+++ b/test/trace_processor/diff_tests/chrome/tests_scroll_jank.py
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-from python.generators.diff_tests.testing import Path, Metric
+from python.generators.diff_tests.testing import Path, DataPath, Metric
from python.generators.diff_tests.testing import Csv, Json, TextProto
from python.generators.diff_tests.testing import DiffTestBlueprint
from python.generators.diff_tests.testing import TestSuite
@@ -23,13 +23,13 @@
# Scroll jank metrics
def test_scroll_jank_general_validation(self):
return DiffTestBlueprint(
- trace=Path('../../data/chrome_scroll_without_vsync.pftrace'),
+ trace=DataPath('chrome_scroll_without_vsync.pftrace'),
query=Path('scroll_jank_general_validation_test.sql'),
out=Path('scroll_jank_general_validation.out'))
def test_scroll_jank(self):
return DiffTestBlueprint(
- trace=Path('../../data/chrome_scroll_without_vsync.pftrace'),
+ trace=DataPath('chrome_scroll_without_vsync.pftrace'),
query="""
SELECT RUN_METRIC('chrome/scroll_jank.sql');
@@ -46,7 +46,7 @@
def test_event_latency_to_breakdowns(self):
return DiffTestBlueprint(
- trace=Path('../../data/event_latency_with_args.perfetto-trace'),
+ trace=DataPath('event_latency_with_args.perfetto-trace'),
query="""
SELECT RUN_METRIC('chrome/event_latency_to_breakdowns.sql');
@@ -67,7 +67,7 @@
def test_event_latency_scroll_jank(self):
return DiffTestBlueprint(
- trace=Path('../../data/event_latency_with_args.perfetto-trace'),
+ trace=DataPath('event_latency_with_args.perfetto-trace'),
query="""
SELECT RUN_METRIC('chrome/event_latency_scroll_jank.sql');
@@ -92,7 +92,7 @@
def test_event_latency_scroll_jank_cause(self):
return DiffTestBlueprint(
- trace=Path('../../data/event_latency_with_args.perfetto-trace'),
+ trace=DataPath('event_latency_with_args.perfetto-trace'),
query="""
SELECT RUN_METRIC('chrome/event_latency_scroll_jank_cause.sql');
@@ -114,7 +114,7 @@
def test_scroll_flow_event(self):
return DiffTestBlueprint(
- trace=Path('../../data/chrome_scroll_without_vsync.pftrace'),
+ trace=DataPath('chrome_scroll_without_vsync.pftrace'),
query="""
SELECT RUN_METRIC('chrome/scroll_flow_event.sql');
@@ -136,7 +136,7 @@
def test_scroll_flow_event_general_validation(self):
return DiffTestBlueprint(
- trace=Path('../../data/chrome_scroll_without_vsync.pftrace'),
+ trace=DataPath('chrome_scroll_without_vsync.pftrace'),
query="""
SELECT RUN_METRIC('chrome/scroll_flow_event.sql');
@@ -168,7 +168,7 @@
def test_scroll_jank_cause(self):
return DiffTestBlueprint(
- trace=Path('../../data/chrome_scroll_without_vsync.pftrace'),
+ trace=DataPath('chrome_scroll_without_vsync.pftrace'),
query="""
SELECT RUN_METRIC('chrome/scroll_jank_cause.sql');
@@ -196,7 +196,7 @@
def test_scroll_flow_event_queuing_delay(self):
return DiffTestBlueprint(
- trace=Path('../../data/chrome_scroll_without_vsync.pftrace'),
+ trace=DataPath('chrome_scroll_without_vsync.pftrace'),
query="""
SELECT RUN_METRIC('chrome/scroll_flow_event_queuing_delay.sql');
@@ -216,14 +216,14 @@
def test_scroll_flow_event_general_validation_2(self):
return DiffTestBlueprint(
- trace=Path('../../data/chrome_scroll_without_vsync.pftrace'),
+ trace=DataPath('chrome_scroll_without_vsync.pftrace'),
query=Path(
'scroll_flow_event_queuing_delay_general_validation_test.sql'),
out=Path('scroll_flow_event_general_validation.out'))
def test_scroll_jank_cause_queuing_delay(self):
return DiffTestBlueprint(
- trace=Path('../../data/chrome_scroll_without_vsync.pftrace'),
+ trace=DataPath('chrome_scroll_without_vsync.pftrace'),
query="""
SELECT RUN_METRIC('chrome/scroll_jank_cause_queuing_delay.sql');
@@ -242,7 +242,7 @@
def test_scroll_jank_cause_queuing_delay_restricted(self):
return DiffTestBlueprint(
- trace=Path('../../data/chrome_scroll_without_vsync.pftrace'),
+ trace=DataPath('chrome_scroll_without_vsync.pftrace'),
query="""
SELECT RUN_METRIC('chrome/scroll_jank_cause_queuing_delay.sql');
@@ -261,7 +261,7 @@
def test_scroll_jank_cause_queuing_delay_general_validation(self):
return DiffTestBlueprint(
- trace=Path('../../data/chrome_scroll_without_vsync.pftrace'),
+ trace=DataPath('chrome_scroll_without_vsync.pftrace'),
query="""
SELECT RUN_METRIC('chrome/scroll_jank_cause_queuing_delay.sql');
@@ -294,7 +294,7 @@
def test_chrome_thread_slice(self):
return DiffTestBlueprint(
- trace=Path('../../data/chrome_scroll_without_vsync.pftrace'),
+ trace=DataPath('chrome_scroll_without_vsync.pftrace'),
query="""
SELECT RUN_METRIC('chrome/chrome_thread_slice.sql');
@@ -318,8 +318,7 @@
def test_chrome_input_to_browser_intervals(self):
return DiffTestBlueprint(
- trace=Path(
- '../../data/scrolling_with_blocked_nonblocked_frames.pftrace'),
+ trace=DataPath('scrolling_with_blocked_nonblocked_frames.pftrace'),
query="""
SELECT RUN_METRIC('chrome/chrome_input_to_browser_intervals.sql');
@@ -333,7 +332,7 @@
def test_chrome_scroll_jank_caused_by_scheduling(self):
return DiffTestBlueprint(
- trace=Path('../../data/fling_with_input_delay.pftrace'),
+ trace=DataPath('fling_with_input_delay.pftrace'),
query="""
SELECT RUN_METRIC('chrome/chrome_scroll_jank_caused_by_scheduling.sql',
'dur_causes_jank_ms',
@@ -353,7 +352,7 @@
def test_chrome_tasks_delaying_input_processing(self):
return DiffTestBlueprint(
- trace=Path('../../data/fling_with_input_delay.pftrace'),
+ trace=DataPath('fling_with_input_delay.pftrace'),
query="""
SELECT RUN_METRIC('chrome/chrome_tasks_delaying_input_processing.sql',
'duration_causing_jank_ms',
@@ -370,7 +369,7 @@
def test_long_task_tracking_trace_chrome_long_tasks_delaying_input_processing(
self):
return DiffTestBlueprint(
- trace=Path('../../data/long_task_tracking_trace'),
+ trace=DataPath('long_task_tracking_trace'),
query="""
SELECT RUN_METRIC('chrome/chrome_long_tasks_delaying_input_processing.sql');
@@ -390,7 +389,7 @@
# long_task_tracking_trace_chrome_long_tasks_delaying_input_processing_compare_default_test.out
def test_experimental_reliable_chrome_tasks_delaying_input_processing(self):
return DiffTestBlueprint(
- trace=Path('../../data/fling_with_input_delay.pftrace'),
+ trace=DataPath('fling_with_input_delay.pftrace'),
query="""
SELECT RUN_METRIC(
'chrome/experimental_reliable_chrome_tasks_delaying_input_processing.sql',
@@ -408,8 +407,7 @@
def test_chrome_scroll_inputs_per_frame(self):
return DiffTestBlueprint(
- trace=Path(
- '../../data/scrolling_with_blocked_nonblocked_frames.pftrace'),
+ trace=DataPath('scrolling_with_blocked_nonblocked_frames.pftrace'),
query="""
SELECT RUN_METRIC('chrome/chrome_scroll_inputs_per_frame.sql');
@@ -450,13 +448,13 @@
def test_frame_times_metric(self):
return DiffTestBlueprint(
- trace=Path('../../data/chrome_rendering_desktop.pftrace'),
+ trace=DataPath('chrome_rendering_desktop.pftrace'),
query=Metric('frame_times'),
out=Path('frame_times_metric.out'))
def test_chrome_dropped_frames_metric(self):
return DiffTestBlueprint(
- trace=Path('../../data/chrome_rendering_desktop.pftrace'),
+ trace=DataPath('chrome_rendering_desktop.pftrace'),
query=Metric('chrome_dropped_frames'),
out=TextProto(r"""
[perfetto.protos.chrome_dropped_frames]: {
diff --git a/test/trace_processor/chrome/tests_touch_gesture.py b/test/trace_processor/diff_tests/chrome/tests_touch_gesture.py
similarity index 93%
rename from test/trace_processor/chrome/tests_touch_gesture.py
rename to test/trace_processor/diff_tests/chrome/tests_touch_gesture.py
index 5ea32a6..245cbff 100644
--- a/test/trace_processor/chrome/tests_touch_gesture.py
+++ b/test/trace_processor/diff_tests/chrome/tests_touch_gesture.py
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-from python.generators.diff_tests.testing import Path, Metric
+from python.generators.diff_tests.testing import Path, DataPath, Metric
from python.generators.diff_tests.testing import Csv, Json, TextProto
from python.generators.diff_tests.testing import DiffTestBlueprint
from python.generators.diff_tests.testing import TestSuite
@@ -23,7 +23,7 @@
def test_touch_jank(self):
return DiffTestBlueprint(
- trace=Path('../../data/chrome_touch_gesture_scroll.pftrace'),
+ trace=DataPath('chrome_touch_gesture_scroll.pftrace'),
query="""
SELECT RUN_METRIC('chrome/touch_jank.sql');
@@ -40,7 +40,7 @@
def test_touch_flow_event(self):
return DiffTestBlueprint(
- trace=Path('../../data/chrome_touch_gesture_scroll.pftrace'),
+ trace=DataPath('chrome_touch_gesture_scroll.pftrace'),
query="""
SELECT RUN_METRIC('chrome/touch_flow_event.sql');
@@ -62,7 +62,7 @@
def test_touch_flow_event_queuing_delay(self):
return DiffTestBlueprint(
- trace=Path('../../data/chrome_touch_gesture_scroll.pftrace'),
+ trace=DataPath('chrome_touch_gesture_scroll.pftrace'),
query="""
SELECT RUN_METRIC('chrome/touch_flow_event_queuing_delay.sql');
diff --git a/test/trace_processor/chrome/top_level_java_choreographer_slices_top_level_java_chrome_tasks_test.out b/test/trace_processor/diff_tests/chrome/top_level_java_choreographer_slices_top_level_java_chrome_tasks_test.out
similarity index 100%
rename from test/trace_processor/chrome/top_level_java_choreographer_slices_top_level_java_chrome_tasks_test.out
rename to test/trace_processor/diff_tests/chrome/top_level_java_choreographer_slices_top_level_java_chrome_tasks_test.out
diff --git a/test/trace_processor/chrome/touch_flow_event.out b/test/trace_processor/diff_tests/chrome/touch_flow_event.out
similarity index 100%
rename from test/trace_processor/chrome/touch_flow_event.out
rename to test/trace_processor/diff_tests/chrome/touch_flow_event.out
diff --git a/test/trace_processor/chrome/touch_flow_event_queuing_delay.out b/test/trace_processor/diff_tests/chrome/touch_flow_event_queuing_delay.out
similarity index 100%
rename from test/trace_processor/chrome/touch_flow_event_queuing_delay.out
rename to test/trace_processor/diff_tests/chrome/touch_flow_event_queuing_delay.out
diff --git a/test/trace_processor/chrome/touch_flow_event_queuing_delay_synth.out b/test/trace_processor/diff_tests/chrome/touch_flow_event_queuing_delay_synth.out
similarity index 100%
rename from test/trace_processor/chrome/touch_flow_event_queuing_delay_synth.out
rename to test/trace_processor/diff_tests/chrome/touch_flow_event_queuing_delay_synth.out
diff --git a/test/trace_processor/chrome/touch_flow_event_synth.out b/test/trace_processor/diff_tests/chrome/touch_flow_event_synth.out
similarity index 100%
rename from test/trace_processor/chrome/touch_flow_event_synth.out
rename to test/trace_processor/diff_tests/chrome/touch_flow_event_synth.out
diff --git a/test/trace_processor/chrome/touch_jank.out b/test/trace_processor/diff_tests/chrome/touch_jank.out
similarity index 100%
rename from test/trace_processor/chrome/touch_jank.out
rename to test/trace_processor/diff_tests/chrome/touch_jank.out
diff --git a/test/trace_processor/chrome/touch_jank.py b/test/trace_processor/diff_tests/chrome/touch_jank.py
similarity index 100%
rename from test/trace_processor/chrome/touch_jank.py
rename to test/trace_processor/diff_tests/chrome/touch_jank.py
diff --git a/test/trace_processor/chrome/unsymbolized_args.textproto b/test/trace_processor/diff_tests/chrome/unsymbolized_args.textproto
similarity index 100%
rename from test/trace_processor/chrome/unsymbolized_args.textproto
rename to test/trace_processor/diff_tests/chrome/unsymbolized_args.textproto
diff --git a/test/trace_processor/common/synth_1.py b/test/trace_processor/diff_tests/common/synth_1.py
similarity index 100%
rename from test/trace_processor/common/synth_1.py
rename to test/trace_processor/diff_tests/common/synth_1.py
diff --git a/test/trace_processor/cros/cros_ec_sensorhub_data.out b/test/trace_processor/diff_tests/cros/cros_ec_sensorhub_data.out
similarity index 100%
rename from test/trace_processor/cros/cros_ec_sensorhub_data.out
rename to test/trace_processor/diff_tests/cros/cros_ec_sensorhub_data.out
diff --git a/test/trace_processor/cros/tests.py b/test/trace_processor/diff_tests/cros/tests.py
similarity index 96%
rename from test/trace_processor/cros/tests.py
rename to test/trace_processor/diff_tests/cros/tests.py
index 6e62772..dc71bce 100644
--- a/test/trace_processor/cros/tests.py
+++ b/test/trace_processor/diff_tests/cros/tests.py
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-from python.generators.diff_tests.testing import Path, Metric
+from python.generators.diff_tests.testing import Path, DataPath, Metric
from python.generators.diff_tests.testing import Csv, Json, TextProto
from python.generators.diff_tests.testing import DiffTestBlueprint
from python.generators.diff_tests.testing import TestSuite
diff --git a/test/trace_processor/cros/tests_general.py b/test/trace_processor/diff_tests/cros/tests_general.py
similarity index 94%
rename from test/trace_processor/cros/tests_general.py
rename to test/trace_processor/diff_tests/cros/tests_general.py
index b535a88..5f012db 100644
--- a/test/trace_processor/cros/tests_general.py
+++ b/test/trace_processor/diff_tests/cros/tests_general.py
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-from python.generators.diff_tests.testing import Path, Metric
+from python.generators.diff_tests.testing import Path, DataPath, Metric
from python.generators.diff_tests.testing import Csv, Json, TextProto
from python.generators.diff_tests.testing import DiffTestBlueprint
from python.generators.diff_tests.testing import DiffTestModule
diff --git a/test/trace_processor/dynamic/ancestor_slice.out b/test/trace_processor/diff_tests/dynamic/ancestor_slice.out
similarity index 100%
rename from test/trace_processor/dynamic/ancestor_slice.out
rename to test/trace_processor/diff_tests/dynamic/ancestor_slice.out
diff --git a/test/trace_processor/dynamic/connected_flow.out b/test/trace_processor/diff_tests/dynamic/connected_flow.out
similarity index 100%
rename from test/trace_processor/dynamic/connected_flow.out
rename to test/trace_processor/diff_tests/dynamic/connected_flow.out
diff --git a/test/trace_processor/dynamic/connected_flow_data.json b/test/trace_processor/diff_tests/dynamic/connected_flow_data.json
similarity index 100%
rename from test/trace_processor/dynamic/connected_flow_data.json
rename to test/trace_processor/diff_tests/dynamic/connected_flow_data.json
diff --git a/test/trace_processor/dynamic/connected_flow_test.sql b/test/trace_processor/diff_tests/dynamic/connected_flow_test.sql
similarity index 100%
rename from test/trace_processor/dynamic/connected_flow_test.sql
rename to test/trace_processor/diff_tests/dynamic/connected_flow_test.sql
diff --git a/test/trace_processor/dynamic/descendant_slice.out b/test/trace_processor/diff_tests/dynamic/descendant_slice.out
similarity index 100%
rename from test/trace_processor/dynamic/descendant_slice.out
rename to test/trace_processor/diff_tests/dynamic/descendant_slice.out
diff --git a/test/trace_processor/dynamic/perf_sample_sc_annotated_callstack.out b/test/trace_processor/diff_tests/dynamic/perf_sample_sc_annotated_callstack.out
similarity index 100%
rename from test/trace_processor/dynamic/perf_sample_sc_annotated_callstack.out
rename to test/trace_processor/diff_tests/dynamic/perf_sample_sc_annotated_callstack.out
diff --git a/test/trace_processor/dynamic/relationship_tables.textproto b/test/trace_processor/diff_tests/dynamic/relationship_tables.textproto
similarity index 100%
rename from test/trace_processor/dynamic/relationship_tables.textproto
rename to test/trace_processor/diff_tests/dynamic/relationship_tables.textproto
diff --git a/test/trace_processor/dynamic/slice_stacks.textproto b/test/trace_processor/diff_tests/dynamic/slice_stacks.textproto
similarity index 100%
rename from test/trace_processor/dynamic/slice_stacks.textproto
rename to test/trace_processor/diff_tests/dynamic/slice_stacks.textproto
diff --git a/test/trace_processor/dynamic/tests.py b/test/trace_processor/diff_tests/dynamic/tests.py
similarity index 97%
rename from test/trace_processor/dynamic/tests.py
rename to test/trace_processor/diff_tests/dynamic/tests.py
index 4753dcc..24589ee 100644
--- a/test/trace_processor/dynamic/tests.py
+++ b/test/trace_processor/diff_tests/dynamic/tests.py
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-from python.generators.diff_tests.testing import Path, Metric
+from python.generators.diff_tests.testing import Path, DataPath, Metric
from python.generators.diff_tests.testing import Csv, Json, TextProto
from python.generators.diff_tests.testing import DiffTestBlueprint
from python.generators.diff_tests.testing import TestSuite
@@ -90,7 +90,7 @@
# Annotated callstacks.
def test_perf_sample_sc_annotated_callstack(self):
return DiffTestBlueprint(
- trace=Path('../../data/perf_sample_sc.pb'),
+ trace=DataPath('perf_sample_sc.pb'),
query="""
SELECT eac.id, eac.depth, eac.frame_id, eac.annotation,
spf.name
diff --git a/test/trace_processor/dynamic/various_clocks.textproto b/test/trace_processor/diff_tests/dynamic/various_clocks.textproto
similarity index 100%
rename from test/trace_processor/dynamic/various_clocks.textproto
rename to test/trace_processor/diff_tests/dynamic/various_clocks.textproto
diff --git a/test/trace_processor/dynamic/various_clocks_abs_time_str.out b/test/trace_processor/diff_tests/dynamic/various_clocks_abs_time_str.out
similarity index 100%
rename from test/trace_processor/dynamic/various_clocks_abs_time_str.out
rename to test/trace_processor/diff_tests/dynamic/various_clocks_abs_time_str.out
diff --git a/test/trace_processor/fs/f2fs_iostat.out b/test/trace_processor/diff_tests/fs/f2fs_iostat.out
similarity index 100%
rename from test/trace_processor/fs/f2fs_iostat.out
rename to test/trace_processor/diff_tests/fs/f2fs_iostat.out
diff --git a/test/trace_processor/fs/f2fs_iostat.textproto b/test/trace_processor/diff_tests/fs/f2fs_iostat.textproto
similarity index 100%
rename from test/trace_processor/fs/f2fs_iostat.textproto
rename to test/trace_processor/diff_tests/fs/f2fs_iostat.textproto
diff --git a/test/trace_processor/fs/f2fs_iostat_latency.out b/test/trace_processor/diff_tests/fs/f2fs_iostat_latency.out
similarity index 100%
rename from test/trace_processor/fs/f2fs_iostat_latency.out
rename to test/trace_processor/diff_tests/fs/f2fs_iostat_latency.out
diff --git a/test/trace_processor/fs/f2fs_iostat_latency.textproto b/test/trace_processor/diff_tests/fs/f2fs_iostat_latency.textproto
similarity index 100%
rename from test/trace_processor/fs/f2fs_iostat_latency.textproto
rename to test/trace_processor/diff_tests/fs/f2fs_iostat_latency.textproto
diff --git a/test/trace_processor/fs/tests.py b/test/trace_processor/diff_tests/fs/tests.py
similarity index 95%
rename from test/trace_processor/fs/tests.py
rename to test/trace_processor/diff_tests/fs/tests.py
index a1f0a85..3fb6b6a 100644
--- a/test/trace_processor/fs/tests.py
+++ b/test/trace_processor/diff_tests/fs/tests.py
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-from python.generators.diff_tests.testing import Path, Metric
+from python.generators.diff_tests.testing import Path, DataPath, Metric
from python.generators.diff_tests.testing import Csv, Json, TextProto
from python.generators.diff_tests.testing import DiffTestBlueprint
from python.generators.diff_tests.testing import TestSuite
diff --git a/test/trace_processor/fuchsia/fuchsia_workstation_smoke_slices.out b/test/trace_processor/diff_tests/fuchsia/fuchsia_workstation_smoke_slices.out
similarity index 100%
rename from test/trace_processor/fuchsia/fuchsia_workstation_smoke_slices.out
rename to test/trace_processor/diff_tests/fuchsia/fuchsia_workstation_smoke_slices.out
diff --git a/test/trace_processor/fuchsia/tests.py b/test/trace_processor/diff_tests/fuchsia/tests.py
similarity index 84%
rename from test/trace_processor/fuchsia/tests.py
rename to test/trace_processor/diff_tests/fuchsia/tests.py
index bcaccb4..86d08a7 100644
--- a/test/trace_processor/fuchsia/tests.py
+++ b/test/trace_processor/diff_tests/fuchsia/tests.py
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-from python.generators.diff_tests.testing import Path, Metric
+from python.generators.diff_tests.testing import Path, DataPath, Metric
from python.generators.diff_tests.testing import Csv, Json, TextProto
from python.generators.diff_tests.testing import DiffTestBlueprint
from python.generators.diff_tests.testing import TestSuite
@@ -24,7 +24,7 @@
# types.
def test_fuchsia_smoke(self):
return DiffTestBlueprint(
- trace=Path('../../data/fuchsia_trace.fxt'),
+ trace=DataPath('fuchsia_trace.fxt'),
query="""
SELECT
ts,
@@ -54,7 +54,7 @@
def test_fuchsia_smoke_slices(self):
return DiffTestBlueprint(
- trace=Path('../../data/fuchsia_trace.fxt'),
+ trace=DataPath('fuchsia_trace.fxt'),
query="""
SELECT track.type AS type, depth, count(*) AS count
FROM slice
@@ -70,7 +70,7 @@
def test_fuchsia_smoke_instants(self):
return DiffTestBlueprint(
- trace=Path('../../data/fuchsia_trace.fxt'),
+ trace=DataPath('fuchsia_trace.fxt'),
query="""
SELECT
ts,
@@ -96,7 +96,7 @@
def test_fuchsia_smoke_counters(self):
return DiffTestBlueprint(
- trace=Path('../../data/fuchsia_trace.fxt'),
+ trace=DataPath('fuchsia_trace.fxt'),
query="""
SELECT
ts,
@@ -107,16 +107,16 @@
""",
out=Csv("""
"ts","value","name"
- 20329439768,30.331177,"cpu_usage:average_cpu_percentage"
- 21331281870,7.829745,"cpu_usage:average_cpu_percentage"
- 22332302017,9.669818,"cpu_usage:average_cpu_percentage"
- 23332974162,6.421237,"cpu_usage:average_cpu_percentage"
- 24333405767,12.079849,"cpu_usage:average_cpu_percentage"
+ 20329439768,30.331177,"cpu_usage:average_cpu_percentage:0"
+ 21331281870,7.829745,"cpu_usage:average_cpu_percentage:0"
+ 22332302017,9.669818,"cpu_usage:average_cpu_percentage:0"
+ 23332974162,6.421237,"cpu_usage:average_cpu_percentage:0"
+ 24333405767,12.079849,"cpu_usage:average_cpu_percentage:0"
"""))
def test_fuchsia_smoke_flow(self):
return DiffTestBlueprint(
- trace=Path('../../data/fuchsia_trace.fxt'),
+ trace=DataPath('fuchsia_trace.fxt'),
query="""
SELECT
id,
@@ -141,7 +141,7 @@
def test_fuchsia_smoke_type(self):
return DiffTestBlueprint(
- trace=Path('../../data/fuchsia_trace.fxt'),
+ trace=DataPath('fuchsia_trace.fxt'),
query="""
SELECT
id,
@@ -157,7 +157,7 @@
2,"[NULL]","thread_track"
3,"[NULL]","thread_track"
4,"[NULL]","thread_track"
- 5,"cpu_usage:average_cpu_percentage","process_counter_track"
+ 5,"cpu_usage:average_cpu_percentage:0","process_counter_track"
6,"[NULL]","thread_track"
7,"[NULL]","thread_track"
8,"[NULL]","thread_track"
@@ -167,7 +167,7 @@
# Smoke test a high-CPU trace.
def test_fuchsia_workstation_smoke_slices(self):
return DiffTestBlueprint(
- trace=Path('../../data/fuchsia_workstation.fxt'),
+ trace=DataPath('fuchsia_workstation.fxt'),
query="""
SELECT track.type AS type, depth, count(*) AS count
FROM slice
@@ -179,7 +179,7 @@
def test_fuchsia_workstation_smoke_args(self):
return DiffTestBlueprint(
- trace=Path('../../data/fuchsia_workstation.fxt'),
+ trace=DataPath('fuchsia_workstation.fxt'),
query="""
SELECT
key,
diff --git a/test/trace_processor/diff_tests/functions/tests.py b/test/trace_processor/diff_tests/functions/tests.py
new file mode 100644
index 0000000..516fb81
--- /dev/null
+++ b/test/trace_processor/diff_tests/functions/tests.py
@@ -0,0 +1,222 @@
+#!/usr/bin/env python3
+# Copyright (C) 2023 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 a
+#
+# 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.
+
+from python.generators.diff_tests.testing import Path, DataPath, Metric
+from python.generators.diff_tests.testing import Csv, Json, TextProto
+from python.generators.diff_tests.testing import DiffTestBlueprint
+from python.generators.diff_tests.testing import TestSuite
+
+
+class Functions(TestSuite):
+
+ def test_first_non_null_frame(self):
+ return DiffTestBlueprint(
+ trace=TextProto(r"""
+
+ """),
+ query="""
+ CREATE TABLE TEST(id INTEGER, val INTEGER);
+
+ INSERT INTO TEST
+ VALUES (1, 1), (2, NULL), (3, 3), (4, 4), (5, NULL), (6, NULL), (7, NULL);
+
+ SELECT
+ id,
+ LAST_NON_NULL(val)
+ OVER (ORDER BY id ASC ROWS BETWEEN CURRENT ROW AND 2 FOLLOWING) AS val
+ FROM TEST
+ ORDER BY id ASC;
+ """,
+ out=Csv("""
+ "id","val"
+ 1,3
+ 2,4
+ 3,4
+ 4,4
+ 5,"[NULL]"
+ 6,"[NULL]"
+ 7,"[NULL]"
+ """))
+
+ def test_first_non_null_partition(self):
+ return DiffTestBlueprint(
+ trace=TextProto(r"""
+
+ """),
+ query="""
+ CREATE TABLE TEST(id INTEGER, part TEXT, val INTEGER);
+
+ INSERT INTO TEST
+ VALUES
+ (1, 'A', 1),
+ (2, 'A', NULL),
+ (3, 'A', 3),
+ (4, 'B', NULL),
+ (5, 'B', 5),
+ (6, 'B', NULL),
+ (7, 'B', 7);
+
+ SELECT id, LAST_NON_NULL(val) OVER (PARTITION BY part ORDER BY id ASC) AS val
+ FROM TEST
+ ORDER BY id ASC;
+ """,
+ out=Csv("""
+ "id","val"
+ 1,1
+ 2,1
+ 3,3
+ 4,"[NULL]"
+ 5,5
+ 6,5
+ 7,7
+ """))
+
+ def test_first_non_null(self):
+ return DiffTestBlueprint(
+ trace=TextProto(r"""
+
+ """),
+ query="""
+ CREATE TABLE TEST(id INTEGER, val INTEGER);
+
+ INSERT INTO TEST
+ VALUES (1, 1), (2, NULL), (3, 3), (4, 4), (5, NULL), (6, NULL), (7, NULL);
+
+ SELECT id, LAST_NON_NULL(val) OVER (ORDER BY id ASC) AS val
+ FROM TEST
+ ORDER BY id ASC;
+ """,
+ out=Csv("""
+ "id","val"
+ 1,1
+ 2,1
+ 3,3
+ 4,4
+ 5,4
+ 6,4
+ 7,4
+ """))
+
+ def test_spans_overlapping_dur_intersect_edge(self):
+ return DiffTestBlueprint(
+ trace=TextProto(r"""
+
+ """),
+ query="""
+ SELECT IMPORT('common.timestamps');
+ SELECT SPANS_OVERLAPPING_DUR(0, 2, 1, 2) AS dur
+ """,
+ out=Csv("""
+ "dur"
+ 1
+ """))
+
+ def test_spans_overlapping_dur_intersect_edge_reversed(self):
+ return DiffTestBlueprint(
+ trace=TextProto(r"""
+
+ """),
+ query="""
+ SELECT IMPORT('common.timestamps');
+ SELECT SPANS_OVERLAPPING_DUR(1, 2, 0, 2) AS dur
+ """,
+ out=Csv("""
+ "dur"
+ 1
+ """))
+
+ def test_spans_overlapping_dur_intersect_all(self):
+ return DiffTestBlueprint(
+ trace=TextProto(r"""
+
+ """),
+ query="""
+ SELECT IMPORT('common.timestamps');
+ SELECT SPANS_OVERLAPPING_DUR(0, 3, 1, 1) AS dur
+ """,
+ out=Csv("""
+ "dur"
+ 1
+ """))
+
+ def test_spans_overlapping_dur_intersect_all_reversed(self):
+ return DiffTestBlueprint(
+ trace=TextProto(r"""
+
+ """),
+ query="""
+ SELECT IMPORT('common.timestamps');
+ SELECT SPANS_OVERLAPPING_DUR(1, 1, 0, 3) AS dur
+ """,
+ out=Csv("""
+ "dur"
+ 1
+ """))
+
+ def test_spans_overlapping_dur_no_intersect(self):
+ return DiffTestBlueprint(
+ trace=TextProto(r"""
+
+ """),
+ query="""
+ SELECT IMPORT('common.timestamps');
+ SELECT SPANS_OVERLAPPING_DUR(0, 1, 2, 1) AS dur
+ """,
+ out=Csv("""
+ "dur"
+ 0
+ """))
+
+ def test_spans_overlapping_dur_no_intersect_reversed(self):
+ return DiffTestBlueprint(
+ trace=TextProto(r"""
+
+ """),
+ query="""
+ SELECT IMPORT('common.timestamps');
+ SELECT SPANS_OVERLAPPING_DUR(2, 1, 0, 1) AS dur
+ """,
+ out=Csv("""
+ "dur"
+ 0
+ """))
+
+ def test_spans_overlapping_dur_negative_dur(self):
+ return DiffTestBlueprint(
+ trace=TextProto(r"""
+
+ """),
+ query="""
+ SELECT IMPORT('common.timestamps');
+ SELECT SPANS_OVERLAPPING_DUR(0, -1, 0, 1) AS dur
+ """,
+ out=Csv("""
+ "dur"
+ 0
+ """))
+
+ def test_spans_overlapping_dur_negative_dur_reversed(self):
+ return DiffTestBlueprint(
+ trace=TextProto(r"""
+
+ """),
+ query="""
+ SELECT IMPORT('common.timestamps');
+ SELECT SPANS_OVERLAPPING_DUR(0, 1, 0, -1) AS dur
+ """,
+ out=Csv("""
+ "dur"
+ 0
+ """))
diff --git a/test/trace_processor/graphics/actual_frame_timeline_events.out b/test/trace_processor/diff_tests/graphics/actual_frame_timeline_events.out
similarity index 100%
rename from test/trace_processor/graphics/actual_frame_timeline_events.out
rename to test/trace_processor/diff_tests/graphics/actual_frame_timeline_events.out
diff --git a/test/trace_processor/graphics/actual_frame_timeline_events_test.sql b/test/trace_processor/diff_tests/graphics/actual_frame_timeline_events_test.sql
similarity index 100%
rename from test/trace_processor/graphics/actual_frame_timeline_events_test.sql
rename to test/trace_processor/diff_tests/graphics/actual_frame_timeline_events_test.sql
diff --git a/test/trace_processor/graphics/android_jank_cuj.out b/test/trace_processor/diff_tests/graphics/android_jank_cuj.out
similarity index 93%
rename from test/trace_processor/graphics/android_jank_cuj.out
rename to test/trace_processor/diff_tests/graphics/android_jank_cuj.out
index 063e02a..bdb6392 100644
--- a/test/trace_processor/graphics/android_jank_cuj.out
+++ b/test/trace_processor/diff_tests/graphics/android_jank_cuj.out
@@ -138,6 +138,10 @@
frame_dur_p90: 34000000
frame_dur_p95: 37000000
frame_dur_p99: 39400000
+ frame_dur_ms_p50: 24.0
+ frame_dur_ms_p90: 34.0
+ frame_dur_ms_p95: 37.0
+ frame_dur_ms_p99: 39.400000000000006
}
trace_metrics {
total_frames: 6
@@ -150,6 +154,10 @@
frame_dur_p90: 34000000
frame_dur_p95: 37000000
frame_dur_p99: 39400000
+ frame_dur_ms_p50: 24.0
+ frame_dur_ms_p90: 34.0
+ frame_dur_ms_p95: 37.0
+ frame_dur_ms_p99: 39.400000000000006
}
}
cuj {
@@ -354,6 +362,10 @@
frame_dur_p90: 58900000
frame_dur_p95: 61000000
frame_dur_p99: 61000000
+ frame_dur_ms_p50: 22.5
+ frame_dur_ms_p90: 58.900000000000006
+ frame_dur_ms_p95: 61.0
+ frame_dur_ms_p99: 61.0
}
trace_metrics {
total_frames: 12
@@ -366,6 +378,10 @@
frame_dur_p90: 60500000
frame_dur_p95: 61000000
frame_dur_p99: 61000000
+ frame_dur_ms_p50: 25.3
+ frame_dur_ms_p90: 60.5
+ frame_dur_ms_p95: 61.0
+ frame_dur_ms_p99: 61.0
}
}
}
diff --git a/test/trace_processor/graphics/android_jank_cuj.py b/test/trace_processor/diff_tests/graphics/android_jank_cuj.py
similarity index 100%
rename from test/trace_processor/graphics/android_jank_cuj.py
rename to test/trace_processor/diff_tests/graphics/android_jank_cuj.py
diff --git a/test/trace_processor/graphics/android_jank_cuj_query.out b/test/trace_processor/diff_tests/graphics/android_jank_cuj_query.out
similarity index 100%
rename from test/trace_processor/graphics/android_jank_cuj_query.out
rename to test/trace_processor/diff_tests/graphics/android_jank_cuj_query.out
diff --git a/test/trace_processor/graphics/android_jank_cuj_query_test.sql b/test/trace_processor/diff_tests/graphics/android_jank_cuj_query_test.sql
similarity index 100%
rename from test/trace_processor/graphics/android_jank_cuj_query_test.sql
rename to test/trace_processor/diff_tests/graphics/android_jank_cuj_query_test.sql
diff --git a/test/trace_processor/graphics/clock_sync.py b/test/trace_processor/diff_tests/graphics/clock_sync.py
similarity index 100%
rename from test/trace_processor/graphics/clock_sync.py
rename to test/trace_processor/diff_tests/graphics/clock_sync.py
diff --git a/test/trace_processor/graphics/composer_execution.py b/test/trace_processor/diff_tests/graphics/composer_execution.py
similarity index 100%
rename from test/trace_processor/graphics/composer_execution.py
rename to test/trace_processor/diff_tests/graphics/composer_execution.py
diff --git a/test/trace_processor/graphics/composition_layer.py b/test/trace_processor/diff_tests/graphics/composition_layer.py
similarity index 100%
rename from test/trace_processor/graphics/composition_layer.py
rename to test/trace_processor/diff_tests/graphics/composition_layer.py
diff --git a/test/trace_processor/graphics/display_metrics.py b/test/trace_processor/diff_tests/graphics/display_metrics.py
similarity index 100%
rename from test/trace_processor/graphics/display_metrics.py
rename to test/trace_processor/diff_tests/graphics/display_metrics.py
diff --git a/test/trace_processor/graphics/dpu_vote_clock_bw.textproto b/test/trace_processor/diff_tests/graphics/dpu_vote_clock_bw.textproto
similarity index 100%
rename from test/trace_processor/graphics/dpu_vote_clock_bw.textproto
rename to test/trace_processor/diff_tests/graphics/dpu_vote_clock_bw.textproto
diff --git a/test/trace_processor/graphics/drm_dma_fence.textproto b/test/trace_processor/diff_tests/graphics/drm_dma_fence.textproto
similarity index 100%
rename from test/trace_processor/graphics/drm_dma_fence.textproto
rename to test/trace_processor/diff_tests/graphics/drm_dma_fence.textproto
diff --git a/test/trace_processor/graphics/drm_sched.textproto b/test/trace_processor/diff_tests/graphics/drm_sched.textproto
similarity index 100%
rename from test/trace_processor/graphics/drm_sched.textproto
rename to test/trace_processor/diff_tests/graphics/drm_sched.textproto
diff --git a/test/trace_processor/graphics/expected_frame_timeline_events_test.sql b/test/trace_processor/diff_tests/graphics/expected_frame_timeline_events_test.sql
similarity index 100%
rename from test/trace_processor/graphics/expected_frame_timeline_events_test.sql
rename to test/trace_processor/diff_tests/graphics/expected_frame_timeline_events_test.sql
diff --git a/test/trace_processor/graphics/frame_missed.py b/test/trace_processor/diff_tests/graphics/frame_missed.py
similarity index 100%
rename from test/trace_processor/graphics/frame_missed.py
rename to test/trace_processor/diff_tests/graphics/frame_missed.py
diff --git a/test/trace_processor/graphics/frame_timeline_events.py b/test/trace_processor/diff_tests/graphics/frame_timeline_events.py
similarity index 100%
rename from test/trace_processor/graphics/frame_timeline_events.py
rename to test/trace_processor/diff_tests/graphics/frame_timeline_events.py
diff --git a/test/trace_processor/graphics/g2d_metrics.out b/test/trace_processor/diff_tests/graphics/g2d_metrics.out
similarity index 100%
rename from test/trace_processor/graphics/g2d_metrics.out
rename to test/trace_processor/diff_tests/graphics/g2d_metrics.out
diff --git a/test/trace_processor/graphics/g2d_metrics.textproto b/test/trace_processor/diff_tests/graphics/g2d_metrics.textproto
similarity index 100%
rename from test/trace_processor/graphics/g2d_metrics.textproto
rename to test/trace_processor/diff_tests/graphics/g2d_metrics.textproto
diff --git a/test/trace_processor/graphics/gpu_counter_specs.textproto b/test/trace_processor/diff_tests/graphics/gpu_counter_specs.textproto
similarity index 100%
rename from test/trace_processor/graphics/gpu_counter_specs.textproto
rename to test/trace_processor/diff_tests/graphics/gpu_counter_specs.textproto
diff --git a/test/trace_processor/graphics/gpu_counters.py b/test/trace_processor/diff_tests/graphics/gpu_counters.py
similarity index 100%
rename from test/trace_processor/graphics/gpu_counters.py
rename to test/trace_processor/diff_tests/graphics/gpu_counters.py
diff --git a/test/trace_processor/graphics/gpu_frequency_metric.out b/test/trace_processor/diff_tests/graphics/gpu_frequency_metric.out
similarity index 100%
rename from test/trace_processor/graphics/gpu_frequency_metric.out
rename to test/trace_processor/diff_tests/graphics/gpu_frequency_metric.out
diff --git a/test/trace_processor/graphics/gpu_frequency_metric.textproto b/test/trace_processor/diff_tests/graphics/gpu_frequency_metric.textproto
similarity index 100%
rename from test/trace_processor/graphics/gpu_frequency_metric.textproto
rename to test/trace_processor/diff_tests/graphics/gpu_frequency_metric.textproto
diff --git a/test/trace_processor/graphics/gpu_log.py b/test/trace_processor/diff_tests/graphics/gpu_log.py
similarity index 100%
rename from test/trace_processor/graphics/gpu_log.py
rename to test/trace_processor/diff_tests/graphics/gpu_log.py
diff --git a/test/trace_processor/graphics/gpu_mem_total.py b/test/trace_processor/diff_tests/graphics/gpu_mem_total.py
similarity index 100%
rename from test/trace_processor/graphics/gpu_mem_total.py
rename to test/trace_processor/diff_tests/graphics/gpu_mem_total.py
diff --git a/test/trace_processor/graphics/gpu_mem_total_after_free.py b/test/trace_processor/diff_tests/graphics/gpu_mem_total_after_free.py
similarity index 100%
rename from test/trace_processor/graphics/gpu_mem_total_after_free.py
rename to test/trace_processor/diff_tests/graphics/gpu_mem_total_after_free.py
diff --git a/test/trace_processor/graphics/gpu_mem_total_test.sql b/test/trace_processor/diff_tests/graphics/gpu_mem_total_test.sql
similarity index 100%
rename from test/trace_processor/graphics/gpu_mem_total_test.sql
rename to test/trace_processor/diff_tests/graphics/gpu_mem_total_test.sql
diff --git a/test/trace_processor/graphics/gpu_metric.py b/test/trace_processor/diff_tests/graphics/gpu_metric.py
similarity index 100%
rename from test/trace_processor/graphics/gpu_metric.py
rename to test/trace_processor/diff_tests/graphics/gpu_metric.py
diff --git a/test/trace_processor/graphics/gpu_render_stages.out b/test/trace_processor/diff_tests/graphics/gpu_render_stages.out
similarity index 100%
rename from test/trace_processor/graphics/gpu_render_stages.out
rename to test/trace_processor/diff_tests/graphics/gpu_render_stages.out
diff --git a/test/trace_processor/graphics/gpu_render_stages.py b/test/trace_processor/diff_tests/graphics/gpu_render_stages.py
similarity index 100%
rename from test/trace_processor/graphics/gpu_render_stages.py
rename to test/trace_processor/diff_tests/graphics/gpu_render_stages.py
diff --git a/test/trace_processor/graphics/gpu_render_stages_interned_spec.out b/test/trace_processor/diff_tests/graphics/gpu_render_stages_interned_spec.out
similarity index 100%
rename from test/trace_processor/graphics/gpu_render_stages_interned_spec.out
rename to test/trace_processor/diff_tests/graphics/gpu_render_stages_interned_spec.out
diff --git a/test/trace_processor/graphics/gpu_render_stages_interned_spec.textproto b/test/trace_processor/diff_tests/graphics/gpu_render_stages_interned_spec.textproto
similarity index 100%
rename from test/trace_processor/graphics/gpu_render_stages_interned_spec.textproto
rename to test/trace_processor/diff_tests/graphics/gpu_render_stages_interned_spec.textproto
diff --git a/test/trace_processor/graphics/gpu_render_stages_test.sql b/test/trace_processor/diff_tests/graphics/gpu_render_stages_test.sql
similarity index 100%
rename from test/trace_processor/graphics/gpu_render_stages_test.sql
rename to test/trace_processor/diff_tests/graphics/gpu_render_stages_test.sql
diff --git a/test/trace_processor/graphics/graphics_frame_events.out b/test/trace_processor/diff_tests/graphics/graphics_frame_events.out
similarity index 100%
rename from test/trace_processor/graphics/graphics_frame_events.out
rename to test/trace_processor/diff_tests/graphics/graphics_frame_events.out
diff --git a/test/trace_processor/graphics/graphics_frame_events.py b/test/trace_processor/diff_tests/graphics/graphics_frame_events.py
similarity index 100%
rename from test/trace_processor/graphics/graphics_frame_events.py
rename to test/trace_processor/diff_tests/graphics/graphics_frame_events.py
diff --git a/test/trace_processor/graphics/surfaceflinger_gpu_invocation.py b/test/trace_processor/diff_tests/graphics/surfaceflinger_gpu_invocation.py
similarity index 100%
rename from test/trace_processor/graphics/surfaceflinger_gpu_invocation.py
rename to test/trace_processor/diff_tests/graphics/surfaceflinger_gpu_invocation.py
diff --git a/test/trace_processor/graphics/tests.py b/test/trace_processor/diff_tests/graphics/tests.py
similarity index 99%
rename from test/trace_processor/graphics/tests.py
rename to test/trace_processor/diff_tests/graphics/tests.py
index 3e23aa6..b9b74c8 100644
--- a/test/trace_processor/graphics/tests.py
+++ b/test/trace_processor/diff_tests/graphics/tests.py
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-from python.generators.diff_tests.testing import Path, Metric
+from python.generators.diff_tests.testing import Path, DataPath, Metric
from python.generators.diff_tests.testing import Csv, Json, TextProto
from python.generators.diff_tests.testing import DiffTestBlueprint
from python.generators.diff_tests.testing import TestSuite
diff --git a/test/trace_processor/graphics/tests_drm_related_ftrace_events.py b/test/trace_processor/diff_tests/graphics/tests_drm_related_ftrace_events.py
similarity index 98%
rename from test/trace_processor/graphics/tests_drm_related_ftrace_events.py
rename to test/trace_processor/diff_tests/graphics/tests_drm_related_ftrace_events.py
index fa318d5..51bed18 100644
--- a/test/trace_processor/graphics/tests_drm_related_ftrace_events.py
+++ b/test/trace_processor/diff_tests/graphics/tests_drm_related_ftrace_events.py
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-from python.generators.diff_tests.testing import Path, Metric
+from python.generators.diff_tests.testing import Path, DataPath, Metric
from python.generators.diff_tests.testing import Csv, Json, TextProto
from python.generators.diff_tests.testing import DiffTestBlueprint
from python.generators.diff_tests.testing import TestSuite
diff --git a/test/trace_processor/graphics/tests_gpu_trace.py b/test/trace_processor/diff_tests/graphics/tests_gpu_trace.py
similarity index 98%
rename from test/trace_processor/graphics/tests_gpu_trace.py
rename to test/trace_processor/diff_tests/graphics/tests_gpu_trace.py
index 2dd3453..ead5000 100644
--- a/test/trace_processor/graphics/tests_gpu_trace.py
+++ b/test/trace_processor/diff_tests/graphics/tests_gpu_trace.py
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-from python.generators.diff_tests.testing import Path, Metric
+from python.generators.diff_tests.testing import Path, DataPath, Metric
from python.generators.diff_tests.testing import Csv, Json, TextProto
from python.generators.diff_tests.testing import DiffTestBlueprint
from python.generators.diff_tests.testing import TestSuite
diff --git a/test/trace_processor/graphics/v4l2_vidioc.textproto b/test/trace_processor/diff_tests/graphics/v4l2_vidioc.textproto
similarity index 100%
rename from test/trace_processor/graphics/v4l2_vidioc.textproto
rename to test/trace_processor/diff_tests/graphics/v4l2_vidioc.textproto
diff --git a/test/trace_processor/graphics/v4l2_vidioc_flow.out b/test/trace_processor/diff_tests/graphics/v4l2_vidioc_flow.out
similarity index 100%
rename from test/trace_processor/graphics/v4l2_vidioc_flow.out
rename to test/trace_processor/diff_tests/graphics/v4l2_vidioc_flow.out
diff --git a/test/trace_processor/graphics/virtio_gpu.textproto b/test/trace_processor/diff_tests/graphics/virtio_gpu.textproto
similarity index 100%
rename from test/trace_processor/graphics/virtio_gpu.textproto
rename to test/trace_processor/diff_tests/graphics/virtio_gpu.textproto
diff --git a/test/trace_processor/graphics/virtio_video.textproto b/test/trace_processor/diff_tests/graphics/virtio_video.textproto
similarity index 100%
rename from test/trace_processor/graphics/virtio_video.textproto
rename to test/trace_processor/diff_tests/graphics/virtio_video.textproto
diff --git a/test/trace_processor/graphics/vulkan_api_events.out b/test/trace_processor/diff_tests/graphics/vulkan_api_events.out
similarity index 100%
rename from test/trace_processor/graphics/vulkan_api_events.out
rename to test/trace_processor/diff_tests/graphics/vulkan_api_events.out
diff --git a/test/trace_processor/graphics/vulkan_api_events.py b/test/trace_processor/diff_tests/graphics/vulkan_api_events.py
similarity index 100%
rename from test/trace_processor/graphics/vulkan_api_events.py
rename to test/trace_processor/diff_tests/graphics/vulkan_api_events.py
diff --git a/test/trace_processor/diff_tests/include_index.py b/test/trace_processor/diff_tests/include_index.py
new file mode 100644
index 0000000..09e084e
--- /dev/null
+++ b/test/trace_processor/diff_tests/include_index.py
@@ -0,0 +1,160 @@
+#!/usr/bin/env python3
+# Copyright (C) 2023 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 a
+#
+# 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.
+import os
+import sys
+from typing import List
+
+from python.generators.diff_tests import testing
+
+# A hack to import using `diff_tests.` which prevents the risk name conflicts,
+# i.e importing a module when user has a different package of the same name
+# installed.
+TRACE_PROCESSOR_TEST_DIR = os.path.dirname(
+ os.path.dirname(os.path.abspath(__file__)))
+sys.path.append(TRACE_PROCESSOR_TEST_DIR)
+
+from diff_tests.android.tests import Android
+from diff_tests.android.tests_bugreport import AndroidBugreport
+from diff_tests.android.tests_games import AndroidGames
+from diff_tests.atrace.tests import Atrace
+from diff_tests.atrace.tests_error_handling import AtraceErrorHandling
+from diff_tests.camera.tests import Camera
+from diff_tests.chrome.tests import Chrome
+from diff_tests.chrome.tests_args import ChromeArgs
+from diff_tests.chrome.tests_memory_snapshots import ChromeMemorySnapshots
+from diff_tests.chrome.tests_processes import ChromeProcesses
+from diff_tests.chrome.tests_rail_modes import ChromeRailModes
+from diff_tests.chrome.tests_scroll_jank import ChromeScrollJank
+from diff_tests.chrome.tests_touch_gesture import ChromeTouchGesture
+from diff_tests.cros.tests import Cros
+from diff_tests.dynamic.tests import Dynamic
+from diff_tests.fs.tests import Fs
+from diff_tests.fuchsia.tests import Fuchsia
+from diff_tests.functions.tests import Functions
+from diff_tests.graphics.tests import Graphics
+from diff_tests.graphics.tests_drm_related_ftrace_events import \
+ GraphicsDrmRelatedFtraceEvents
+from diff_tests.graphics.tests_gpu_trace import GraphicsGpuTrace
+from diff_tests.memory.tests import Memory
+from diff_tests.memory.tests_metrics import MemoryMetrics
+from diff_tests.network.tests import Network
+from diff_tests.parsing.tests import Parsing
+from diff_tests.parsing.tests_memory_counters import ParsingMemoryCounters
+from diff_tests.parsing.tests_rss_stats import ParsingRssStats
+from diff_tests.performance.tests import Performance
+from diff_tests.power.tests import Power
+from diff_tests.power.tests_energy_breakdown import PowerEnergyBreakdown
+from diff_tests.power.tests_power_rails import PowerPowerRails
+from diff_tests.power.tests_voltage_and_scaling import PowerVoltageAndScaling
+from diff_tests.process_tracking.tests import ProcessTracking
+from diff_tests.profiling.tests import Profiling
+from diff_tests.profiling.tests_heap_graph import ProfilingHeapGraph
+from diff_tests.profiling.tests_heap_profiling import ProfilingHeapProfiling
+from diff_tests.profiling.tests_llvm_symbolizer import ProfilingLlvmSymbolizer
+from diff_tests.profiling.tests_metrics import ProfilingMetrics
+from diff_tests.scheduler.tests import Scheduler
+from diff_tests.smoke.tests import Smoke
+from diff_tests.smoke.tests_compute_metrics import SmokeComputeMetrics
+from diff_tests.smoke.tests_json import SmokeJson
+from diff_tests.smoke.tests_sched_events import SmokeSchedEvents
+from diff_tests.span_join.tests_left_join import SpanJoinLeftJoin
+from diff_tests.span_join.tests_outer_join import SpanJoinOuterJoin
+from diff_tests.span_join.tests_regression import SpanJoinRegression
+from diff_tests.span_join.tests_smoke import SpanJoinSmoke
+from diff_tests.startup.tests import Startup
+from diff_tests.startup.tests_broadcasts import StartupBroadcasts
+from diff_tests.startup.tests_lock_contention import StartupLockContention
+from diff_tests.startup.tests_metrics import StartupMetrics
+from diff_tests.tables.tests import Tables
+from diff_tests.tables.tests_counters import TablesCounters
+from diff_tests.tables.tests_sched import TablesSched
+from diff_tests.track_event.tests import TrackEvent
+from diff_tests.translation.tests import Translation
+from diff_tests.ufs.tests import Ufs
+
+sys.path.pop()
+
+
+def fetch_all_diff_tests(index_path: str) -> List['testing.TestCase']:
+ return [
+ *Android(index_path, 'android', 'Android').fetch(),
+ *AndroidBugreport(index_path, 'android', 'AndroidBugreport').fetch(),
+ *AndroidGames(index_path, 'android', 'AndroidGames').fetch(),
+ *Atrace(index_path, 'atrace', 'Atrace').fetch(),
+ *AtraceErrorHandling(index_path, 'atrace', 'AtraceErrorHandling').fetch(),
+ *Camera(index_path, 'camera', 'Camera').fetch(),
+ *ChromeScrollJank(index_path, 'chrome', 'ChromeScrollJank').fetch(),
+ *ChromeTouchGesture(index_path, 'chrome', 'ChromeTouchGesture').fetch(),
+ *ChromeMemorySnapshots(index_path, 'chrome',
+ 'ChromeMemorySnapshots').fetch(),
+ *ChromeRailModes(index_path, 'chrome', 'ChromeRailModes').fetch(),
+ *ChromeProcesses(index_path, 'chrome', 'ChromeProcesses').fetch(),
+ *ChromeArgs(index_path, 'chrome', 'ChromeArgs').fetch(),
+ *Chrome(index_path, 'chrome', 'Chrome').fetch(),
+ *Cros(index_path, 'cros', 'Cros').fetch(),
+ *Dynamic(index_path, 'dynamic', 'Dynamic').fetch(),
+ *Fs(index_path, 'fs', 'Fs').fetch(),
+ *Fuchsia(index_path, 'fuchsia', 'Fuchsia').fetch(),
+ *Functions(index_path, 'functions', 'Functions').fetch(),
+ *Graphics(index_path, 'graphics', 'Graphics').fetch(),
+ *GraphicsGpuTrace(index_path, 'graphics', 'GraphicsGpuTrace').fetch(),
+ *GraphicsDrmRelatedFtraceEvents(index_path, 'graphics',
+ 'GraphicsDrmRelatedFtraceEvents').fetch(),
+ *Ufs(index_path, 'ufs', 'Ufs').fetch(),
+ *Memory(index_path, 'memory', 'Memory').fetch(),
+ *MemoryMetrics(index_path, 'memory', 'MemoryMetrics').fetch(),
+ *Network(index_path, 'network', 'Network').fetch(),
+ *Parsing(index_path, 'parsing', 'Parsing').fetch(),
+ *ParsingRssStats(index_path, 'parsing', 'ParsingRssStats').fetch(),
+ *ParsingMemoryCounters(index_path, 'parsing',
+ 'ParsingMemoryCounters').fetch(),
+ *Performance(index_path, 'performance', 'Performance').fetch(),
+ *Power(index_path, 'power', 'Power').fetch(),
+ *PowerPowerRails(index_path, 'power', 'PowerPowerRails').fetch(),
+ *PowerVoltageAndScaling(index_path, 'power',
+ 'PowerVoltageAndScaling').fetch(),
+ *PowerEnergyBreakdown(index_path, 'power',
+ 'PowerEnergyBreakdown').fetch(),
+ *ProcessTracking(index_path, 'process_tracking',
+ 'ProcessTracking').fetch(),
+ *Profiling(index_path, 'profiling', 'Profiling').fetch(),
+ *ProfilingHeapProfiling(index_path, 'profiling',
+ 'ProfilingHeapProfiling').fetch(),
+ *ProfilingHeapGraph(index_path, 'profiling',
+ 'ProfilingHeapGraph').fetch(),
+ *ProfilingMetrics(index_path, 'profiling', 'ProfilingMetrics').fetch(),
+ *ProfilingLlvmSymbolizer(index_path, 'profiling',
+ 'ProfilingLlvmSymbolizer').fetch(),
+ *Scheduler(index_path, 'scheduler', 'Scheduler').fetch(),
+ *Smoke(index_path, 'smoke', 'Smoke').fetch(),
+ *SmokeJson(index_path, 'smoke', 'SmokeJson').fetch(),
+ *SmokeSchedEvents(index_path, 'smoke', 'SmokeSchedEvents').fetch(),
+ *SmokeComputeMetrics(index_path, 'smoke', 'SmokeComputeMetrics').fetch(),
+ *SpanJoinOuterJoin(index_path, 'span_join', 'SpanJoinOuterJoin').fetch(),
+ *SpanJoinLeftJoin(index_path, 'span_join', 'SpanJoinLeftJoin').fetch(),
+ *SpanJoinSmoke(index_path, 'span_join', 'SpanJoinSmoke').fetch(),
+ *SpanJoinRegression(index_path, 'span_join',
+ 'SpanJoinRegression').fetch(),
+ *Startup(index_path, 'startup', 'Startup').fetch(),
+ *StartupBroadcasts(index_path, 'startup', 'StartupBroadcasts').fetch(),
+ *StartupMetrics(index_path, 'startup', 'StartupMetrics').fetch(),
+ *StartupLockContention(index_path, 'startup',
+ 'StartupLockContention').fetch(),
+ *Tables(index_path, 'tables', 'Tables').fetch(),
+ *TablesCounters(index_path, 'tables', 'TablesCounters').fetch(),
+ *TablesSched(index_path, 'tables', 'TablesSched').fetch(),
+ *TrackEvent(index_path, 'track_event', 'TrackEvent').fetch(),
+ *Translation(index_path, 'translation', 'Translation').fetch(),
+ ]
diff --git a/test/trace_processor/memory/android_ion.py b/test/trace_processor/diff_tests/memory/android_ion.py
similarity index 100%
rename from test/trace_processor/memory/android_ion.py
rename to test/trace_processor/diff_tests/memory/android_ion.py
diff --git a/test/trace_processor/memory/android_lmk_reason.out b/test/trace_processor/diff_tests/memory/android_lmk_reason.out
similarity index 100%
rename from test/trace_processor/memory/android_lmk_reason.out
rename to test/trace_processor/diff_tests/memory/android_lmk_reason.out
diff --git a/test/trace_processor/memory/android_mem_by_priority.out b/test/trace_processor/diff_tests/memory/android_mem_by_priority.out
similarity index 100%
rename from test/trace_processor/memory/android_mem_by_priority.out
rename to test/trace_processor/diff_tests/memory/android_mem_by_priority.out
diff --git a/test/trace_processor/memory/android_mem_by_priority.py b/test/trace_processor/diff_tests/memory/android_mem_by_priority.py
similarity index 100%
rename from test/trace_processor/memory/android_mem_by_priority.py
rename to test/trace_processor/diff_tests/memory/android_mem_by_priority.py
diff --git a/test/trace_processor/memory/android_mem_counters.out b/test/trace_processor/diff_tests/memory/android_mem_counters.out
similarity index 100%
rename from test/trace_processor/memory/android_mem_counters.out
rename to test/trace_processor/diff_tests/memory/android_mem_counters.out
diff --git a/test/trace_processor/memory/android_mem_delta.py b/test/trace_processor/diff_tests/memory/android_mem_delta.py
similarity index 100%
rename from test/trace_processor/memory/android_mem_delta.py
rename to test/trace_processor/diff_tests/memory/android_mem_delta.py
diff --git a/test/trace_processor/memory/android_systrace_lmk.py b/test/trace_processor/diff_tests/memory/android_systrace_lmk.py
similarity index 100%
rename from test/trace_processor/memory/android_systrace_lmk.py
rename to test/trace_processor/diff_tests/memory/android_systrace_lmk.py
diff --git a/test/trace_processor/memory/tests.py b/test/trace_processor/diff_tests/memory/tests.py
similarity index 98%
rename from test/trace_processor/memory/tests.py
rename to test/trace_processor/diff_tests/memory/tests.py
index 076373c..aca4edf 100644
--- a/test/trace_processor/memory/tests.py
+++ b/test/trace_processor/diff_tests/memory/tests.py
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-from python.generators.diff_tests.testing import Path, Metric
+from python.generators.diff_tests.testing import Path, DataPath, Metric
from python.generators.diff_tests.testing import Csv, Json, TextProto
from python.generators.diff_tests.testing import DiffTestBlueprint
from python.generators.diff_tests.testing import TestSuite
diff --git a/test/trace_processor/memory/tests_metrics.py b/test/trace_processor/diff_tests/memory/tests_metrics.py
similarity index 94%
rename from test/trace_processor/memory/tests_metrics.py
rename to test/trace_processor/diff_tests/memory/tests_metrics.py
index 88c86b5..8a45185 100644
--- a/test/trace_processor/memory/tests_metrics.py
+++ b/test/trace_processor/diff_tests/memory/tests_metrics.py
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-from python.generators.diff_tests.testing import Path, Metric
+from python.generators.diff_tests.testing import Path, DataPath, Metric
from python.generators.diff_tests.testing import Csv, Json, TextProto
from python.generators.diff_tests.testing import DiffTestBlueprint
from python.generators.diff_tests.testing import TestSuite
@@ -23,13 +23,13 @@
def test_android_mem_counters(self):
return DiffTestBlueprint(
- trace=Path('../../data/memory_counters.pb'),
+ trace=DataPath('memory_counters.pb'),
query=Metric('android_mem'),
out=Path('android_mem_counters.out'))
def test_trace_metadata(self):
return DiffTestBlueprint(
- trace=Path('../../data/memory_counters.pb'),
+ trace=DataPath('memory_counters.pb'),
query=Metric('trace_metadata'),
out=Path('trace_metadata.out'))
diff --git a/test/trace_processor/memory/trace_metadata.out b/test/trace_processor/diff_tests/memory/trace_metadata.out
similarity index 100%
rename from test/trace_processor/memory/trace_metadata.out
rename to test/trace_processor/diff_tests/memory/trace_metadata.out
diff --git a/test/trace_processor/network/inet_sock_set_state.textproto b/test/trace_processor/diff_tests/network/inet_sock_set_state.textproto
similarity index 100%
rename from test/trace_processor/network/inet_sock_set_state.textproto
rename to test/trace_processor/diff_tests/network/inet_sock_set_state.textproto
diff --git a/test/trace_processor/network/napi_gro_receive.textproto b/test/trace_processor/diff_tests/network/napi_gro_receive.textproto
similarity index 100%
rename from test/trace_processor/network/napi_gro_receive.textproto
rename to test/trace_processor/diff_tests/network/napi_gro_receive.textproto
diff --git a/test/trace_processor/network/net_dev_xmit.textproto b/test/trace_processor/diff_tests/network/net_dev_xmit.textproto
similarity index 100%
rename from test/trace_processor/network/net_dev_xmit.textproto
rename to test/trace_processor/diff_tests/network/net_dev_xmit.textproto
diff --git a/test/trace_processor/network/netif_receive_skb.textproto b/test/trace_processor/diff_tests/network/netif_receive_skb.textproto
similarity index 100%
rename from test/trace_processor/network/netif_receive_skb.textproto
rename to test/trace_processor/diff_tests/network/netif_receive_skb.textproto
diff --git a/test/trace_processor/network/netperf_metric.out b/test/trace_processor/diff_tests/network/netperf_metric.out
similarity index 100%
rename from test/trace_processor/network/netperf_metric.out
rename to test/trace_processor/diff_tests/network/netperf_metric.out
diff --git a/test/trace_processor/network/netperf_metric.textproto b/test/trace_processor/diff_tests/network/netperf_metric.textproto
similarity index 100%
rename from test/trace_processor/network/netperf_metric.textproto
rename to test/trace_processor/diff_tests/network/netperf_metric.textproto
diff --git a/test/trace_processor/network/tests.py b/test/trace_processor/diff_tests/network/tests.py
similarity index 98%
rename from test/trace_processor/network/tests.py
rename to test/trace_processor/diff_tests/network/tests.py
index 7e71926..a8bdd72 100644
--- a/test/trace_processor/network/tests.py
+++ b/test/trace_processor/diff_tests/network/tests.py
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-from python.generators.diff_tests.testing import Path, Metric
+from python.generators.diff_tests.testing import Path, DataPath, Metric
from python.generators.diff_tests.testing import Csv, Json, TextProto
from python.generators.diff_tests.testing import DiffTestBlueprint
from python.generators.diff_tests.testing import TestSuite
diff --git a/test/trace_processor/parsing/all_atoms_test.sql b/test/trace_processor/diff_tests/parsing/all_atoms_test.sql
similarity index 100%
rename from test/trace_processor/parsing/all_atoms_test.sql
rename to test/trace_processor/diff_tests/parsing/all_atoms_test.sql
diff --git a/test/trace_processor/parsing/android_binder.py b/test/trace_processor/diff_tests/parsing/android_binder.py
similarity index 100%
rename from test/trace_processor/parsing/android_binder.py
rename to test/trace_processor/diff_tests/parsing/android_binder.py
diff --git a/test/trace_processor/parsing/android_log_counts_test.sql b/test/trace_processor/diff_tests/parsing/android_log_counts_test.sql
similarity index 100%
rename from test/trace_processor/parsing/android_log_counts_test.sql
rename to test/trace_processor/diff_tests/parsing/android_log_counts_test.sql
diff --git a/test/trace_processor/parsing/android_log_msgs.out b/test/trace_processor/diff_tests/parsing/android_log_msgs.out
similarity index 100%
rename from test/trace_processor/parsing/android_log_msgs.out
rename to test/trace_processor/diff_tests/parsing/android_log_msgs.out
diff --git a/test/trace_processor/parsing/android_log_msgs_test.sql b/test/trace_processor/diff_tests/parsing/android_log_msgs_test.sql
similarity index 100%
rename from test/trace_processor/parsing/android_log_msgs_test.sql
rename to test/trace_processor/diff_tests/parsing/android_log_msgs_test.sql
diff --git a/test/trace_processor/parsing/android_multiuser_switch.textproto b/test/trace_processor/diff_tests/parsing/android_multiuser_switch.textproto
similarity index 100%
rename from test/trace_processor/parsing/android_multiuser_switch.textproto
rename to test/trace_processor/diff_tests/parsing/android_multiuser_switch.textproto
diff --git a/test/trace_processor/parsing/android_package_list.py b/test/trace_processor/diff_tests/parsing/android_package_list.py
similarity index 100%
rename from test/trace_processor/parsing/android_package_list.py
rename to test/trace_processor/diff_tests/parsing/android_package_list.py
diff --git a/test/trace_processor/parsing/android_sched_and_ps_stats.out b/test/trace_processor/diff_tests/parsing/android_sched_and_ps_stats.out
similarity index 100%
rename from test/trace_processor/parsing/android_sched_and_ps_stats.out
rename to test/trace_processor/diff_tests/parsing/android_sched_and_ps_stats.out
diff --git a/test/trace_processor/parsing/args_string_filter_null_test.sql b/test/trace_processor/diff_tests/parsing/args_string_filter_null_test.sql
similarity index 100%
rename from test/trace_processor/parsing/args_string_filter_null_test.sql
rename to test/trace_processor/diff_tests/parsing/args_string_filter_null_test.sql
diff --git a/test/trace_processor/parsing/b120487929_test.sql b/test/trace_processor/diff_tests/parsing/b120487929_test.sql
similarity index 100%
rename from test/trace_processor/parsing/b120487929_test.sql
rename to test/trace_processor/diff_tests/parsing/b120487929_test.sql
diff --git a/test/trace_processor/parsing/cgroup_attach_task_post_s_print_systrace.out b/test/trace_processor/diff_tests/parsing/cgroup_attach_task_post_s_print_systrace.out
similarity index 100%
rename from test/trace_processor/parsing/cgroup_attach_task_post_s_print_systrace.out
rename to test/trace_processor/diff_tests/parsing/cgroup_attach_task_post_s_print_systrace.out
diff --git a/test/trace_processor/parsing/cgroup_attach_task_pre_s_print_systrace.out b/test/trace_processor/diff_tests/parsing/cgroup_attach_task_pre_s_print_systrace.out
similarity index 100%
rename from test/trace_processor/parsing/cgroup_attach_task_pre_s_print_systrace.out
rename to test/trace_processor/diff_tests/parsing/cgroup_attach_task_pre_s_print_systrace.out
diff --git a/test/trace_processor/parsing/chrome_metadata.out b/test/trace_processor/diff_tests/parsing/chrome_metadata.out
similarity index 100%
rename from test/trace_processor/parsing/chrome_metadata.out
rename to test/trace_processor/diff_tests/parsing/chrome_metadata.out
diff --git a/test/trace_processor/parsing/cpu_counters_b120487929.out b/test/trace_processor/diff_tests/parsing/cpu_counters_b120487929.out
similarity index 100%
rename from test/trace_processor/parsing/cpu_counters_b120487929.out
rename to test/trace_processor/diff_tests/parsing/cpu_counters_b120487929.out
diff --git a/test/trace_processor/parsing/cpu_freq.out b/test/trace_processor/diff_tests/parsing/cpu_freq.out
similarity index 100%
rename from test/trace_processor/parsing/cpu_freq.out
rename to test/trace_processor/diff_tests/parsing/cpu_freq.out
diff --git a/test/trace_processor/parsing/cpu_info.textproto b/test/trace_processor/diff_tests/parsing/cpu_info.textproto
similarity index 100%
rename from test/trace_processor/parsing/cpu_info.textproto
rename to test/trace_processor/diff_tests/parsing/cpu_info.textproto
diff --git a/test/trace_processor/parsing/flow_events_json_v1.json b/test/trace_processor/diff_tests/parsing/flow_events_json_v1.json
similarity index 100%
rename from test/trace_processor/parsing/flow_events_json_v1.json
rename to test/trace_processor/diff_tests/parsing/flow_events_json_v1.json
diff --git a/test/trace_processor/parsing/flow_events_json_v2.json b/test/trace_processor/diff_tests/parsing/flow_events_json_v2.json
similarity index 100%
rename from test/trace_processor/parsing/flow_events_json_v2.json
rename to test/trace_processor/diff_tests/parsing/flow_events_json_v2.json
diff --git a/test/trace_processor/parsing/ftrace_with_tracing_start.py b/test/trace_processor/diff_tests/parsing/ftrace_with_tracing_start.py
similarity index 100%
rename from test/trace_processor/parsing/ftrace_with_tracing_start.py
rename to test/trace_processor/diff_tests/parsing/ftrace_with_tracing_start.py
diff --git a/test/trace_processor/parsing/funcgraph_trace.textproto b/test/trace_processor/diff_tests/parsing/funcgraph_trace.textproto
similarity index 100%
rename from test/trace_processor/parsing/funcgraph_trace.textproto
rename to test/trace_processor/diff_tests/parsing/funcgraph_trace.textproto
diff --git a/test/trace_processor/parsing/kernel_dpu_tmw_counter_thread_counter_and_track.out b/test/trace_processor/diff_tests/parsing/kernel_dpu_tmw_counter_thread_counter_and_track.out
similarity index 100%
rename from test/trace_processor/parsing/kernel_dpu_tmw_counter_thread_counter_and_track.out
rename to test/trace_processor/diff_tests/parsing/kernel_dpu_tmw_counter_thread_counter_and_track.out
diff --git a/test/trace_processor/parsing/kernel_tmw_counter.textproto b/test/trace_processor/diff_tests/parsing/kernel_tmw_counter.textproto
similarity index 100%
rename from test/trace_processor/parsing/kernel_tmw_counter.textproto
rename to test/trace_processor/diff_tests/parsing/kernel_tmw_counter.textproto
diff --git a/test/trace_processor/parsing/kernel_tmw_counter_thread_counter_and_track.out b/test/trace_processor/diff_tests/parsing/kernel_tmw_counter_thread_counter_and_track.out
similarity index 100%
rename from test/trace_processor/parsing/kernel_tmw_counter_thread_counter_and_track.out
rename to test/trace_processor/diff_tests/parsing/kernel_tmw_counter_thread_counter_and_track.out
diff --git a/test/trace_processor/parsing/mm_event.out b/test/trace_processor/diff_tests/parsing/mm_event.out
similarity index 100%
rename from test/trace_processor/parsing/mm_event.out
rename to test/trace_processor/diff_tests/parsing/mm_event.out
diff --git a/test/trace_processor/parsing/oom_query_test.sql b/test/trace_processor/diff_tests/parsing/oom_query_test.sql
similarity index 100%
rename from test/trace_processor/parsing/oom_query_test.sql
rename to test/trace_processor/diff_tests/parsing/oom_query_test.sql
diff --git a/test/trace_processor/parsing/otheruuids.textproto b/test/trace_processor/diff_tests/parsing/otheruuids.textproto
similarity index 100%
rename from test/trace_processor/parsing/otheruuids.textproto
rename to test/trace_processor/diff_tests/parsing/otheruuids.textproto
diff --git a/test/trace_processor/parsing/print_systrace_lmk_userspace.out b/test/trace_processor/diff_tests/parsing/print_systrace_lmk_userspace.out
similarity index 100%
rename from test/trace_processor/parsing/print_systrace_lmk_userspace.out
rename to test/trace_processor/diff_tests/parsing/print_systrace_lmk_userspace.out
diff --git a/test/trace_processor/parsing/print_systrace_unsigned.out b/test/trace_processor/diff_tests/parsing/print_systrace_unsigned.out
similarity index 100%
rename from test/trace_processor/parsing/print_systrace_unsigned.out
rename to test/trace_processor/diff_tests/parsing/print_systrace_unsigned.out
diff --git a/test/trace_processor/parsing/print_systrace_unsigned.py b/test/trace_processor/diff_tests/parsing/print_systrace_unsigned.py
similarity index 100%
rename from test/trace_processor/parsing/print_systrace_unsigned.py
rename to test/trace_processor/diff_tests/parsing/print_systrace_unsigned.py
diff --git a/test/trace_processor/parsing/process_stats_poll_oom_score.out b/test/trace_processor/diff_tests/parsing/process_stats_poll_oom_score.out
similarity index 100%
rename from test/trace_processor/parsing/process_stats_poll_oom_score.out
rename to test/trace_processor/diff_tests/parsing/process_stats_poll_oom_score.out
diff --git a/test/trace_processor/parsing/rss_stat_after_free.py b/test/trace_processor/diff_tests/parsing/rss_stat_after_free.py
similarity index 100%
rename from test/trace_processor/parsing/rss_stat_after_free.py
rename to test/trace_processor/diff_tests/parsing/rss_stat_after_free.py
diff --git a/test/trace_processor/parsing/rss_stat_legacy.py b/test/trace_processor/diff_tests/parsing/rss_stat_legacy.py
similarity index 100%
rename from test/trace_processor/parsing/rss_stat_legacy.py
rename to test/trace_processor/diff_tests/parsing/rss_stat_legacy.py
diff --git a/test/trace_processor/parsing/rss_stat_mm_id.py b/test/trace_processor/diff_tests/parsing/rss_stat_mm_id.py
similarity index 100%
rename from test/trace_processor/parsing/rss_stat_mm_id.py
rename to test/trace_processor/diff_tests/parsing/rss_stat_mm_id.py
diff --git a/test/trace_processor/parsing/rss_stat_mm_id_clone.py b/test/trace_processor/diff_tests/parsing/rss_stat_mm_id_clone.py
similarity index 100%
rename from test/trace_processor/parsing/rss_stat_mm_id_clone.py
rename to test/trace_processor/diff_tests/parsing/rss_stat_mm_id_clone.py
diff --git a/test/trace_processor/parsing/rss_stat_mm_id_reuse.py b/test/trace_processor/diff_tests/parsing/rss_stat_mm_id_reuse.py
similarity index 100%
rename from test/trace_processor/parsing/rss_stat_mm_id_reuse.py
rename to test/trace_processor/diff_tests/parsing/rss_stat_mm_id_reuse.py
diff --git a/test/trace_processor/parsing/sched_blocked_proto.py b/test/trace_processor/diff_tests/parsing/sched_blocked_proto.py
similarity index 100%
rename from test/trace_processor/parsing/sched_blocked_proto.py
rename to test/trace_processor/diff_tests/parsing/sched_blocked_proto.py
diff --git a/test/trace_processor/parsing/sched_blocked_reason_symbolized.textproto b/test/trace_processor/diff_tests/parsing/sched_blocked_reason_symbolized.textproto
similarity index 100%
rename from test/trace_processor/parsing/sched_blocked_reason_symbolized.textproto
rename to test/trace_processor/diff_tests/parsing/sched_blocked_reason_symbolized.textproto
diff --git a/test/trace_processor/parsing/sched_blocked_reason_symbolized_to_systrace.out b/test/trace_processor/diff_tests/parsing/sched_blocked_reason_symbolized_to_systrace.out
similarity index 100%
rename from test/trace_processor/parsing/sched_blocked_reason_symbolized_to_systrace.out
rename to test/trace_processor/diff_tests/parsing/sched_blocked_reason_symbolized_to_systrace.out
diff --git a/test/trace_processor/parsing/sched_blocked_systrace.systrace b/test/trace_processor/diff_tests/parsing/sched_blocked_systrace.systrace
similarity index 100%
rename from test/trace_processor/parsing/sched_blocked_systrace.systrace
rename to test/trace_processor/diff_tests/parsing/sched_blocked_systrace.systrace
diff --git a/test/trace_processor/parsing/sched_slices_sched_switch_compact.out b/test/trace_processor/diff_tests/parsing/sched_slices_sched_switch_compact.out
similarity index 100%
rename from test/trace_processor/parsing/sched_slices_sched_switch_compact.out
rename to test/trace_processor/diff_tests/parsing/sched_slices_sched_switch_compact.out
diff --git a/test/trace_processor/parsing/sched_slices_sched_switch_original.out b/test/trace_processor/diff_tests/parsing/sched_slices_sched_switch_original.out
similarity index 100%
rename from test/trace_processor/parsing/sched_slices_sched_switch_original.out
rename to test/trace_processor/diff_tests/parsing/sched_slices_sched_switch_original.out
diff --git a/test/trace_processor/parsing/sched_waking_instants_compact_sched.out b/test/trace_processor/diff_tests/parsing/sched_waking_instants_compact_sched.out
similarity index 100%
rename from test/trace_processor/parsing/sched_waking_instants_compact_sched.out
rename to test/trace_processor/diff_tests/parsing/sched_waking_instants_compact_sched.out
diff --git a/test/trace_processor/parsing/sched_waking_raw_compact_sched.out b/test/trace_processor/diff_tests/parsing/sched_waking_raw_compact_sched.out
similarity index 100%
rename from test/trace_processor/parsing/sched_waking_raw_compact_sched.out
rename to test/trace_processor/diff_tests/parsing/sched_waking_raw_compact_sched.out
diff --git a/test/trace_processor/parsing/sched_waking_raw_test.sql b/test/trace_processor/diff_tests/parsing/sched_waking_raw_test.sql
similarity index 100%
rename from test/trace_processor/parsing/sched_waking_raw_test.sql
rename to test/trace_processor/diff_tests/parsing/sched_waking_raw_test.sql
diff --git a/test/trace_processor/parsing/statsd_atoms_all_atoms.out b/test/trace_processor/diff_tests/parsing/statsd_atoms_all_atoms.out
similarity index 100%
rename from test/trace_processor/parsing/statsd_atoms_all_atoms.out
rename to test/trace_processor/diff_tests/parsing/statsd_atoms_all_atoms.out
diff --git a/test/trace_processor/parsing/synth_oom.py b/test/trace_processor/diff_tests/parsing/synth_oom.py
similarity index 100%
rename from test/trace_processor/parsing/synth_oom.py
rename to test/trace_processor/diff_tests/parsing/synth_oom.py
diff --git a/test/trace_processor/parsing/synth_oom_oom_query.out b/test/trace_processor/diff_tests/parsing/synth_oom_oom_query.out
similarity index 100%
rename from test/trace_processor/parsing/synth_oom_oom_query.out
rename to test/trace_processor/diff_tests/parsing/synth_oom_oom_query.out
diff --git a/test/trace_processor/parsing/syscall.py b/test/trace_processor/diff_tests/parsing/syscall.py
similarity index 100%
rename from test/trace_processor/parsing/syscall.py
rename to test/trace_processor/diff_tests/parsing/syscall.py
diff --git a/test/trace_processor/parsing/systrace_html.out b/test/trace_processor/diff_tests/parsing/systrace_html.out
similarity index 100%
rename from test/trace_processor/parsing/systrace_html.out
rename to test/trace_processor/diff_tests/parsing/systrace_html.out
diff --git a/test/trace_processor/parsing/tests.py b/test/trace_processor/diff_tests/parsing/tests.py
similarity index 92%
rename from test/trace_processor/parsing/tests.py
rename to test/trace_processor/diff_tests/parsing/tests.py
index 8a2b17e..69a8d94 100644
--- a/test/trace_processor/parsing/tests.py
+++ b/test/trace_processor/diff_tests/parsing/tests.py
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-from python.generators.diff_tests.testing import Path, Metric
+from python.generators.diff_tests.testing import Path, DataPath, Metric
from python.generators.diff_tests.testing import Csv, Json, TextProto
from python.generators.diff_tests.testing import DiffTestBlueprint
from python.generators.diff_tests.testing import TestSuite
@@ -30,7 +30,7 @@
# modularisation of diff tests. Sched
def test_ts_desc_filter_android_sched_and_ps(self):
return DiffTestBlueprint(
- trace=Path('../../data/android_sched_and_ps.pb'),
+ trace=DataPath('android_sched_and_ps.pb'),
query="""
SELECT ts
FROM sched
@@ -56,7 +56,7 @@
# Sched reason
def test_android_sched_and_ps_end_reason_eq(self):
return DiffTestBlueprint(
- trace=Path('../../data/android_sched_and_ps.pb'),
+ trace=DataPath('android_sched_and_ps.pb'),
query="""
SELECT end_state, count(*)
FROM sched
@@ -70,7 +70,7 @@
def test_android_sched_and_ps_end_reason_neq(self):
return DiffTestBlueprint(
- trace=Path('../../data/android_sched_and_ps.pb'),
+ trace=DataPath('android_sched_and_ps.pb'),
query="""
SELECT end_state, count(*)
FROM sched
@@ -89,7 +89,7 @@
# CPU Frequency
def test_cpu_counters_b120487929(self):
return DiffTestBlueprint(
- trace=Path('../../data/cpu_counters.pb'),
+ trace=DataPath('cpu_counters.pb'),
query=Path('b120487929_test.sql'),
out=Path('cpu_counters_b120487929.out'))
@@ -116,7 +116,7 @@
# start a slice). Six slices in this case.
def test_sched_slices_sched_switch_original(self):
return DiffTestBlueprint(
- trace=Path('../../data/sched_switch_original.pb'),
+ trace=DataPath('sched_switch_original.pb'),
query="""
SELECT ts, cpu, dur, ts_end, end_state, priority, tid, name
FROM sched JOIN thread ON sched.utid = thread.utid
@@ -126,7 +126,7 @@
def test_sched_slices_sched_switch_compact(self):
return DiffTestBlueprint(
- trace=Path('../../data/sched_switch_compact.pb'),
+ trace=DataPath('sched_switch_compact.pb'),
query="""
SELECT ts, cpu, dur, ts_end, end_state, priority, tid, name
FROM sched JOIN thread ON sched.utid = thread.utid
@@ -138,13 +138,13 @@
# Verifies the contents of raw & instants tables.
def test_sched_waking_raw_compact_sched(self):
return DiffTestBlueprint(
- trace=Path('../../data/compact_sched.pb'),
+ trace=DataPath('compact_sched.pb'),
query=Path('sched_waking_raw_test.sql'),
out=Path('sched_waking_raw_compact_sched.out'))
def test_sched_waking_instants_compact_sched(self):
return DiffTestBlueprint(
- trace=Path('../../data/compact_sched.pb'),
+ trace=DataPath('compact_sched.pb'),
query="""
SELECT ts, thread.name, thread.tid
FROM thread_state
@@ -157,7 +157,7 @@
# Mm Event
def test_mm_event(self):
return DiffTestBlueprint(
- trace=Path('../../data/mm_event.pb'),
+ trace=DataPath('mm_event.pb'),
query="""
SELECT ts, name, value
FROM counter
@@ -172,7 +172,7 @@
# Check the systrace conversion code in the raw table. Print events
def test_print_systrace_lmk_userspace(self):
return DiffTestBlueprint(
- trace=Path('../../data/lmk_userspace.pb'),
+ trace=DataPath('lmk_userspace.pb'),
query="""
SELECT to_ftrace(id)
FROM raw;
@@ -333,7 +333,7 @@
# Parsing systrace files
def test_systrace_html(self):
return DiffTestBlueprint(
- trace=Path('../../data/systrace.html'),
+ trace=DataPath('systrace.html'),
query="""
SELECT ts, cpu, dur, ts_end, utid, end_state, priority, upid, name, tid
FROM sched
@@ -344,7 +344,7 @@
def test_sched_smoke_trailing_empty(self):
return DiffTestBlueprint(
- trace=Path('../../data/trailing_empty.systrace'),
+ trace=DataPath('trailing_empty.systrace'),
query="""
SELECT COUNT(1)
FROM sched;
@@ -357,7 +357,7 @@
# LMK handling
def test_lmk_userspace_lmk(self):
return DiffTestBlueprint(
- trace=Path('../../data/lmk_userspace.pb'),
+ trace=DataPath('lmk_userspace.pb'),
query="""
SELECT ts, process.pid
FROM instant
@@ -416,7 +416,7 @@
# Logcat
def test_android_log_counts(self):
return DiffTestBlueprint(
- trace=Path('../../data/android_log.pb'),
+ trace=DataPath('android_log.pb'),
query=Path('android_log_counts_test.sql'),
out=Csv("""
"cnt"
@@ -431,13 +431,13 @@
def test_android_log_msgs(self):
return DiffTestBlueprint(
- trace=Path('../../data/android_log.pb'),
+ trace=DataPath('android_log.pb'),
query=Path('android_log_msgs_test.sql'),
out=Path('android_log_msgs.out'))
def test_android_log_ring_buffer_mode(self):
return DiffTestBlueprint(
- trace=Path('../../data/android_log_ring_buffer_mode.pb'),
+ trace=DataPath('android_log_ring_buffer_mode.pb'),
query="""
SELECT count(*) FROM android_logs;
""",
@@ -455,7 +455,7 @@
def test_process_stats_poll_oom_score(self):
return DiffTestBlueprint(
- trace=Path('../../data/process_stats_poll.pb'),
+ trace=DataPath('process_stats_poll.pb'),
query="""
SELECT ts, name, value, upid
FROM counter c
@@ -470,7 +470,7 @@
# Stats
def test_android_sched_and_ps_stats(self):
return DiffTestBlueprint(
- trace=Path('../../data/android_sched_and_ps.pb'),
+ trace=DataPath('android_sched_and_ps.pb'),
query="""
SELECT name, idx, severity, source, value
FROM stats WHERE name GLOB 'ftrace_cpu_*' OR name GLOB 'traced_buf_*';
@@ -687,7 +687,7 @@
# Trace size
def test_android_sched_and_ps_trace_size(self):
return DiffTestBlueprint(
- trace=Path('../../data/android_sched_and_ps.pb'),
+ trace=DataPath('android_sched_and_ps.pb'),
query="""
SELECT int_value FROM metadata WHERE name = 'trace_size_bytes';
""",
@@ -972,7 +972,7 @@
def test_instants_json_instants(self):
return DiffTestBlueprint(
- trace=Path('../../data/instants.json'),
+ trace=DataPath('instants.json'),
query="""
SELECT
slice.ts,
@@ -1013,7 +1013,7 @@
# Regression test for b/193721088 (infra prepending " done\n" to atrace)
def test_sched_smoke_trailing_empty_2(self):
return DiffTestBlueprint(
- trace=Path('../../data/atrace_b_193721088.atr'),
+ trace=DataPath('atrace_b_193721088.atr'),
query="""
SELECT COUNT(1)
FROM sched;
@@ -1039,7 +1039,7 @@
# Output of atrace -z.
def test_atrace_compressed_sched_count(self):
return DiffTestBlueprint(
- trace=Path('../../data/atrace_compressed.ctrace'),
+ trace=DataPath('atrace_compressed.ctrace'),
query="""
SELECT COUNT(1)
FROM sched;
@@ -1053,7 +1053,7 @@
# from stderr before the TRACE: marker. See b/208691037.
def test_atrace_uncompressed_sched_count(self):
return DiffTestBlueprint(
- trace=Path('../../data/atrace_uncompressed_b_208691037'),
+ trace=DataPath('atrace_uncompressed_b_208691037'),
query="""
SELECT COUNT(1)
FROM sched;
@@ -1106,7 +1106,7 @@
# Statsd Atoms
def test_statsd_atoms_all_atoms(self):
return DiffTestBlueprint(
- trace=Path('../../data/statsd_atoms.pb'),
+ trace=DataPath('statsd_atoms.pb'),
query=Path('all_atoms_test.sql'),
out=Path('statsd_atoms_all_atoms.out'))
@@ -1126,3 +1126,46 @@
679375600673065,3797,385482,"__handle_mm_fault",0
679375600673769,1726,385482,"alloc_pages_vma",1
"""))
+
+ # Kernel task_newtask waker_utid parsing
+ def test_task_newtask_waker_utid(self):
+ return DiffTestBlueprint(
+ trace=TextProto(r"""
+ packet {
+ first_packet_on_sequence: true
+ ftrace_events {
+ cpu: 1
+ event {
+ timestamp: 201315132677
+ pid: 518
+ task_newtask {
+ pid: 3294
+ comm: "adbd"
+ clone_flags: 18874368
+ oom_score_adj: -1000
+ }
+ }
+ event {
+ timestamp: 201319417828
+ pid: 518
+ task_newtask {
+ pid: 3295
+ comm: "adbd"
+ clone_flags: 4001536
+ oom_score_adj: -1000
+ }
+ }
+ }
+ trusted_uid: 9999
+ trusted_packet_sequence_id: 2
+ trusted_pid: 521
+ previous_packet_dropped: true
+ }
+ """),
+ query="""
+ SELECT waker_utid FROM thread_state
+ """,
+ out=Csv("""
+ "waker_utid"
+ 1
+ """))
diff --git a/test/trace_processor/parsing/tests_memory_counters.py b/test/trace_processor/diff_tests/parsing/tests_memory_counters.py
similarity index 92%
rename from test/trace_processor/parsing/tests_memory_counters.py
rename to test/trace_processor/diff_tests/parsing/tests_memory_counters.py
index 4f46e01..733ab4c 100644
--- a/test/trace_processor/parsing/tests_memory_counters.py
+++ b/test/trace_processor/diff_tests/parsing/tests_memory_counters.py
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-from python.generators.diff_tests.testing import Path, Metric
+from python.generators.diff_tests.testing import Path, DataPath, Metric
from python.generators.diff_tests.testing import Csv, Json, TextProto
from python.generators.diff_tests.testing import DiffTestBlueprint
from python.generators.diff_tests.testing import TestSuite
@@ -23,7 +23,7 @@
def test_memory_counters_args_string_filter_null(self):
return DiffTestBlueprint(
- trace=Path('../../data/memory_counters.pb'),
+ trace=DataPath('memory_counters.pb'),
query=Path('args_string_filter_null_test.sql'),
out=Csv("""
"string_value"
@@ -31,7 +31,7 @@
def test_memory_counters_args_string_is_null(self):
return DiffTestBlueprint(
- trace=Path('../../data/memory_counters.pb'),
+ trace=DataPath('memory_counters.pb'),
query="""
SELECT string_value
FROM args
@@ -54,7 +54,7 @@
def test_memory_counters_args_string_is_not_null(self):
return DiffTestBlueprint(
- trace=Path('../../data/memory_counters.pb'),
+ trace=DataPath('memory_counters.pb'),
query="""
SELECT string_value
FROM args
@@ -77,7 +77,7 @@
def test_memory_counters_b120605557(self):
return DiffTestBlueprint(
- trace=Path('../../data/memory_counters.pb'),
+ trace=DataPath('memory_counters.pb'),
query="""
SELECT count(*)
FROM counter
@@ -90,7 +90,7 @@
def test_global_memory_counter_memory_counters(self):
return DiffTestBlueprint(
- trace=Path('../../data/memory_counters.pb'),
+ trace=DataPath('memory_counters.pb'),
query="""
SELECT ts, value, name
FROM counter
diff --git a/test/trace_processor/parsing/tests_rss_stats.py b/test/trace_processor/diff_tests/parsing/tests_rss_stats.py
similarity index 97%
rename from test/trace_processor/parsing/tests_rss_stats.py
rename to test/trace_processor/diff_tests/parsing/tests_rss_stats.py
index 24a4af3..add0709 100644
--- a/test/trace_processor/parsing/tests_rss_stats.py
+++ b/test/trace_processor/diff_tests/parsing/tests_rss_stats.py
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-from python.generators.diff_tests.testing import Path, Metric
+from python.generators.diff_tests.testing import Path, DataPath, Metric
from python.generators.diff_tests.testing import Csv, Json, TextProto
from python.generators.diff_tests.testing import DiffTestBlueprint
from python.generators.diff_tests.testing import TestSuite
diff --git a/test/trace_processor/parsing/thread_counter_and_track_test.sql b/test/trace_processor/diff_tests/parsing/thread_counter_and_track_test.sql
similarity index 100%
rename from test/trace_processor/parsing/thread_counter_and_track_test.sql
rename to test/trace_processor/diff_tests/parsing/thread_counter_and_track_test.sql
diff --git a/test/trace_processor/parsing/thread_time_in_state.out b/test/trace_processor/diff_tests/parsing/thread_time_in_state.out
similarity index 100%
rename from test/trace_processor/parsing/thread_time_in_state.out
rename to test/trace_processor/diff_tests/parsing/thread_time_in_state.out
diff --git a/test/trace_processor/parsing/thread_time_in_state_event.out b/test/trace_processor/diff_tests/parsing/thread_time_in_state_event.out
similarity index 100%
rename from test/trace_processor/parsing/thread_time_in_state_event.out
rename to test/trace_processor/diff_tests/parsing/thread_time_in_state_event.out
diff --git a/test/trace_processor/parsing/thread_time_in_state_event.py b/test/trace_processor/diff_tests/parsing/thread_time_in_state_event.py
similarity index 100%
rename from test/trace_processor/parsing/thread_time_in_state_event.py
rename to test/trace_processor/diff_tests/parsing/thread_time_in_state_event.py
diff --git a/test/trace_processor/parsing/triggers_packets_test.sql b/test/trace_processor/diff_tests/parsing/triggers_packets_test.sql
similarity index 100%
rename from test/trace_processor/parsing/triggers_packets_test.sql
rename to test/trace_processor/diff_tests/parsing/triggers_packets_test.sql
diff --git a/test/trace_processor/parsing/very_long_sched.py b/test/trace_processor/diff_tests/parsing/very_long_sched.py
similarity index 100%
rename from test/trace_processor/parsing/very_long_sched.py
rename to test/trace_processor/diff_tests/parsing/very_long_sched.py
diff --git a/test/trace_processor/performance/cpu_frequency_limits.textproto b/test/trace_processor/diff_tests/performance/cpu_frequency_limits.textproto
similarity index 100%
rename from test/trace_processor/performance/cpu_frequency_limits.textproto
rename to test/trace_processor/diff_tests/performance/cpu_frequency_limits.textproto
diff --git a/test/trace_processor/performance/frame_timeline_metric.out b/test/trace_processor/diff_tests/performance/frame_timeline_metric.out
similarity index 100%
rename from test/trace_processor/performance/frame_timeline_metric.out
rename to test/trace_processor/diff_tests/performance/frame_timeline_metric.out
diff --git a/test/trace_processor/performance/frame_timeline_metric.py b/test/trace_processor/diff_tests/performance/frame_timeline_metric.py
similarity index 100%
rename from test/trace_processor/performance/frame_timeline_metric.py
rename to test/trace_processor/diff_tests/performance/frame_timeline_metric.py
diff --git a/test/trace_processor/performance/irq_runtime_metric.out b/test/trace_processor/diff_tests/performance/irq_runtime_metric.out
similarity index 100%
rename from test/trace_processor/performance/irq_runtime_metric.out
rename to test/trace_processor/diff_tests/performance/irq_runtime_metric.out
diff --git a/test/trace_processor/performance/irq_runtime_metric.textproto b/test/trace_processor/diff_tests/performance/irq_runtime_metric.textproto
similarity index 100%
rename from test/trace_processor/performance/irq_runtime_metric.textproto
rename to test/trace_processor/diff_tests/performance/irq_runtime_metric.textproto
diff --git a/test/trace_processor/performance/tests.py b/test/trace_processor/diff_tests/performance/tests.py
similarity index 96%
rename from test/trace_processor/performance/tests.py
rename to test/trace_processor/diff_tests/performance/tests.py
index b6a0c1c..7358373 100644
--- a/test/trace_processor/performance/tests.py
+++ b/test/trace_processor/diff_tests/performance/tests.py
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-from python.generators.diff_tests.testing import Path, Metric
+from python.generators.diff_tests.testing import Path, DataPath, Metric
from python.generators.diff_tests.testing import Csv, Json, TextProto
from python.generators.diff_tests.testing import DiffTestBlueprint
from python.generators.diff_tests.testing import TestSuite
diff --git a/test/trace_processor/power/cpu_counters_p_state_test.out b/test/trace_processor/diff_tests/power/cpu_counters_p_state_test.out
similarity index 100%
rename from test/trace_processor/power/cpu_counters_p_state_test.out
rename to test/trace_processor/diff_tests/power/cpu_counters_p_state_test.out
diff --git a/test/trace_processor/power/dvfs_metric.out b/test/trace_processor/diff_tests/power/dvfs_metric.out
similarity index 100%
rename from test/trace_processor/power/dvfs_metric.out
rename to test/trace_processor/diff_tests/power/dvfs_metric.out
diff --git a/test/trace_processor/power/dvfs_metric.textproto b/test/trace_processor/diff_tests/power/dvfs_metric.textproto
similarity index 100%
rename from test/trace_processor/power/dvfs_metric.textproto
rename to test/trace_processor/diff_tests/power/dvfs_metric.textproto
diff --git a/test/trace_processor/power/energy_breakdown.textproto b/test/trace_processor/diff_tests/power/energy_breakdown.textproto
similarity index 100%
rename from test/trace_processor/power/energy_breakdown.textproto
rename to test/trace_processor/diff_tests/power/energy_breakdown.textproto
diff --git a/test/trace_processor/power/energy_breakdown_uid.textproto b/test/trace_processor/diff_tests/power/energy_breakdown_uid.textproto
similarity index 100%
rename from test/trace_processor/power/energy_breakdown_uid.textproto
rename to test/trace_processor/diff_tests/power/energy_breakdown_uid.textproto
diff --git a/test/trace_processor/power/power_rails.textproto b/test/trace_processor/diff_tests/power/power_rails.textproto
similarity index 100%
rename from test/trace_processor/power/power_rails.textproto
rename to test/trace_processor/diff_tests/power/power_rails.textproto
diff --git a/test/trace_processor/power/power_rails_custom_clock.textproto b/test/trace_processor/diff_tests/power/power_rails_custom_clock.textproto
similarity index 100%
rename from test/trace_processor/power/power_rails_custom_clock.textproto
rename to test/trace_processor/diff_tests/power/power_rails_custom_clock.textproto
diff --git a/test/trace_processor/power/suspend_period.textproto b/test/trace_processor/diff_tests/power/suspend_period.textproto
similarity index 100%
rename from test/trace_processor/power/suspend_period.textproto
rename to test/trace_processor/diff_tests/power/suspend_period.textproto
diff --git a/test/trace_processor/power/suspend_resume.textproto b/test/trace_processor/diff_tests/power/suspend_resume.textproto
similarity index 100%
rename from test/trace_processor/power/suspend_resume.textproto
rename to test/trace_processor/diff_tests/power/suspend_resume.textproto
diff --git a/test/trace_processor/power/tests.py b/test/trace_processor/diff_tests/power/tests.py
similarity index 89%
rename from test/trace_processor/power/tests.py
rename to test/trace_processor/diff_tests/power/tests.py
index b4664be..792b1b9 100644
--- a/test/trace_processor/power/tests.py
+++ b/test/trace_processor/diff_tests/power/tests.py
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-from python.generators.diff_tests.testing import Path, Metric
+from python.generators.diff_tests.testing import Path, DataPath, Metric
from python.generators.diff_tests.testing import Csv, Json, TextProto
from python.generators.diff_tests.testing import DiffTestBlueprint
from python.generators.diff_tests.testing import TestSuite
@@ -23,7 +23,7 @@
# Power states
def test_cpu_counters_p_state(self):
return DiffTestBlueprint(
- trace=Path('../../data/cpu_counters.pb'),
+ trace=DataPath('cpu_counters.pb'),
query="""
SELECT RUN_METRIC("android/p_state.sql");
@@ -34,7 +34,7 @@
# CPU power ups
def test_cpu_powerups(self):
return DiffTestBlueprint(
- trace=Path('../../data/cpu_powerups_1.pb'),
+ trace=DataPath('cpu_powerups_1.pb'),
query="""
SELECT IMPORT("chrome.cpu_powerups");
SELECT * FROM chrome_cpu_power_first_toplevel_slice_after_powerup;
diff --git a/test/trace_processor/power/tests_energy_breakdown.py b/test/trace_processor/diff_tests/power/tests_energy_breakdown.py
similarity index 97%
rename from test/trace_processor/power/tests_energy_breakdown.py
rename to test/trace_processor/diff_tests/power/tests_energy_breakdown.py
index ec11f9a..f62ba2c 100644
--- a/test/trace_processor/power/tests_energy_breakdown.py
+++ b/test/trace_processor/diff_tests/power/tests_energy_breakdown.py
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-from python.generators.diff_tests.testing import Path, Metric
+from python.generators.diff_tests.testing import Path, DataPath, Metric
from python.generators.diff_tests.testing import Csv, Json, TextProto
from python.generators.diff_tests.testing import DiffTestBlueprint
from python.generators.diff_tests.testing import TestSuite
diff --git a/test/trace_processor/power/tests_power_rails.py b/test/trace_processor/diff_tests/power/tests_power_rails.py
similarity index 96%
rename from test/trace_processor/power/tests_power_rails.py
rename to test/trace_processor/diff_tests/power/tests_power_rails.py
index fc53b75..869604c 100644
--- a/test/trace_processor/power/tests_power_rails.py
+++ b/test/trace_processor/diff_tests/power/tests_power_rails.py
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-from python.generators.diff_tests.testing import Path, Metric
+from python.generators.diff_tests.testing import Path, DataPath, Metric
from python.generators.diff_tests.testing import Csv, Json, TextProto
from python.generators.diff_tests.testing import DiffTestBlueprint
from python.generators.diff_tests.testing import TestSuite
@@ -23,7 +23,7 @@
def test_power_rails_power_rails(self):
return DiffTestBlueprint(
- trace=Path('../../data/power_rails.pb'),
+ trace=DataPath('power_rails.pb'),
query="""
SELECT name, AVG(value), COUNT(*)
FROM counters
diff --git a/test/trace_processor/power/tests_voltage_and_scaling.py b/test/trace_processor/diff_tests/power/tests_voltage_and_scaling.py
similarity index 97%
rename from test/trace_processor/power/tests_voltage_and_scaling.py
rename to test/trace_processor/diff_tests/power/tests_voltage_and_scaling.py
index 226c4b2..a5c418a 100644
--- a/test/trace_processor/power/tests_voltage_and_scaling.py
+++ b/test/trace_processor/diff_tests/power/tests_voltage_and_scaling.py
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-from python.generators.diff_tests.testing import Path, Metric
+from python.generators.diff_tests.testing import Path, DataPath, Metric
from python.generators.diff_tests.testing import Csv, Json, TextProto
from python.generators.diff_tests.testing import DiffTestBlueprint
from python.generators.diff_tests.testing import TestSuite
diff --git a/test/trace_processor/power/wakesource.textproto b/test/trace_processor/diff_tests/power/wakesource.textproto
similarity index 100%
rename from test/trace_processor/power/wakesource.textproto
rename to test/trace_processor/diff_tests/power/wakesource.textproto
diff --git a/test/trace_processor/process_tracking/process_parent_pid_tracking_1.py b/test/trace_processor/diff_tests/process_tracking/process_parent_pid_tracking_1.py
similarity index 100%
rename from test/trace_processor/process_tracking/process_parent_pid_tracking_1.py
rename to test/trace_processor/diff_tests/process_tracking/process_parent_pid_tracking_1.py
diff --git a/test/trace_processor/process_tracking/process_parent_pid_tracking_2.py b/test/trace_processor/diff_tests/process_tracking/process_parent_pid_tracking_2.py
similarity index 100%
rename from test/trace_processor/process_tracking/process_parent_pid_tracking_2.py
rename to test/trace_processor/diff_tests/process_tracking/process_parent_pid_tracking_2.py
diff --git a/test/trace_processor/process_tracking/process_tracking_exec.py b/test/trace_processor/diff_tests/process_tracking/process_tracking_exec.py
similarity index 100%
rename from test/trace_processor/process_tracking/process_tracking_exec.py
rename to test/trace_processor/diff_tests/process_tracking/process_tracking_exec.py
diff --git a/test/trace_processor/process_tracking/process_tracking_short_lived_1.py b/test/trace_processor/diff_tests/process_tracking/process_tracking_short_lived_1.py
similarity index 100%
rename from test/trace_processor/process_tracking/process_tracking_short_lived_1.py
rename to test/trace_processor/diff_tests/process_tracking/process_tracking_short_lived_1.py
diff --git a/test/trace_processor/process_tracking/process_tracking_short_lived_2.py b/test/trace_processor/diff_tests/process_tracking/process_tracking_short_lived_2.py
similarity index 100%
rename from test/trace_processor/process_tracking/process_tracking_short_lived_2.py
rename to test/trace_processor/diff_tests/process_tracking/process_tracking_short_lived_2.py
diff --git a/test/trace_processor/process_tracking/reused_thread_print.py b/test/trace_processor/diff_tests/process_tracking/reused_thread_print.py
similarity index 100%
rename from test/trace_processor/process_tracking/reused_thread_print.py
rename to test/trace_processor/diff_tests/process_tracking/reused_thread_print.py
diff --git a/test/trace_processor/process_tracking/synth_process_tracking.py b/test/trace_processor/diff_tests/process_tracking/synth_process_tracking.py
similarity index 100%
rename from test/trace_processor/process_tracking/synth_process_tracking.py
rename to test/trace_processor/diff_tests/process_tracking/synth_process_tracking.py
diff --git a/test/trace_processor/process_tracking/tests.py b/test/trace_processor/diff_tests/process_tracking/tests.py
similarity index 98%
rename from test/trace_processor/process_tracking/tests.py
rename to test/trace_processor/diff_tests/process_tracking/tests.py
index 3a2e7d3..f1413bd 100644
--- a/test/trace_processor/process_tracking/tests.py
+++ b/test/trace_processor/diff_tests/process_tracking/tests.py
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-from python.generators.diff_tests.testing import Path, Metric
+from python.generators.diff_tests.testing import Path, DataPath, Metric
from python.generators.diff_tests.testing import Csv, Json, TextProto
from python.generators.diff_tests.testing import DiffTestBlueprint
from python.generators.diff_tests.testing import TestSuite
diff --git a/test/trace_processor/process_tracking/unknown_thread_name.systrace b/test/trace_processor/diff_tests/process_tracking/unknown_thread_name.systrace
similarity index 100%
rename from test/trace_processor/process_tracking/unknown_thread_name.systrace
rename to test/trace_processor/diff_tests/process_tracking/unknown_thread_name.systrace
diff --git a/test/trace_processor/profiling/callstack_sampling_flamegraph.out b/test/trace_processor/diff_tests/profiling/callstack_sampling_flamegraph.out
similarity index 100%
rename from test/trace_processor/profiling/callstack_sampling_flamegraph.out
rename to test/trace_processor/diff_tests/profiling/callstack_sampling_flamegraph.out
diff --git a/test/trace_processor/profiling/heap_graph.textproto b/test/trace_processor/diff_tests/profiling/heap_graph.textproto
similarity index 100%
rename from test/trace_processor/profiling/heap_graph.textproto
rename to test/trace_processor/diff_tests/profiling/heap_graph.textproto
diff --git a/test/trace_processor/profiling/heap_graph_baseapk.textproto b/test/trace_processor/diff_tests/profiling/heap_graph_baseapk.textproto
similarity index 100%
rename from test/trace_processor/profiling/heap_graph_baseapk.textproto
rename to test/trace_processor/diff_tests/profiling/heap_graph_baseapk.textproto
diff --git a/test/trace_processor/profiling/heap_graph_branching.textproto b/test/trace_processor/diff_tests/profiling/heap_graph_branching.textproto
similarity index 100%
rename from test/trace_processor/profiling/heap_graph_branching.textproto
rename to test/trace_processor/diff_tests/profiling/heap_graph_branching.textproto
diff --git a/test/trace_processor/profiling/heap_graph_closest_proc.textproto b/test/trace_processor/diff_tests/profiling/heap_graph_closest_proc.textproto
similarity index 100%
rename from test/trace_processor/profiling/heap_graph_closest_proc.textproto
rename to test/trace_processor/diff_tests/profiling/heap_graph_closest_proc.textproto
diff --git a/test/trace_processor/profiling/heap_graph_deobfuscate_pkg.textproto b/test/trace_processor/diff_tests/profiling/heap_graph_deobfuscate_pkg.textproto
similarity index 100%
rename from test/trace_processor/profiling/heap_graph_deobfuscate_pkg.textproto
rename to test/trace_processor/diff_tests/profiling/heap_graph_deobfuscate_pkg.textproto
diff --git a/test/trace_processor/profiling/heap_graph_duplicate_flamegraph.out b/test/trace_processor/diff_tests/profiling/heap_graph_duplicate_flamegraph.out
similarity index 100%
rename from test/trace_processor/profiling/heap_graph_duplicate_flamegraph.out
rename to test/trace_processor/diff_tests/profiling/heap_graph_duplicate_flamegraph.out
diff --git a/test/trace_processor/profiling/heap_graph_flamegraph.out b/test/trace_processor/diff_tests/profiling/heap_graph_flamegraph.out
similarity index 100%
rename from test/trace_processor/profiling/heap_graph_flamegraph.out
rename to test/trace_processor/diff_tests/profiling/heap_graph_flamegraph.out
diff --git a/test/trace_processor/profiling/heap_graph_flamegraph_focused.out b/test/trace_processor/diff_tests/profiling/heap_graph_flamegraph_focused.out
similarity index 100%
rename from test/trace_processor/profiling/heap_graph_flamegraph_focused.out
rename to test/trace_processor/diff_tests/profiling/heap_graph_flamegraph_focused.out
diff --git a/test/trace_processor/profiling/heap_graph_flamegraph_system-server-heap-graph.out b/test/trace_processor/diff_tests/profiling/heap_graph_flamegraph_system-server-heap-graph.out
similarity index 100%
rename from test/trace_processor/profiling/heap_graph_flamegraph_system-server-heap-graph.out
rename to test/trace_processor/diff_tests/profiling/heap_graph_flamegraph_system-server-heap-graph.out
diff --git a/test/trace_processor/profiling/heap_graph_huge_size.textproto b/test/trace_processor/diff_tests/profiling/heap_graph_huge_size.textproto
similarity index 100%
rename from test/trace_processor/profiling/heap_graph_huge_size.textproto
rename to test/trace_processor/diff_tests/profiling/heap_graph_huge_size.textproto
diff --git a/test/trace_processor/profiling/heap_graph_interleaved.textproto b/test/trace_processor/diff_tests/profiling/heap_graph_interleaved.textproto
similarity index 100%
rename from test/trace_processor/profiling/heap_graph_interleaved.textproto
rename to test/trace_processor/diff_tests/profiling/heap_graph_interleaved.textproto
diff --git a/test/trace_processor/profiling/heap_graph_interleaved_object.out b/test/trace_processor/diff_tests/profiling/heap_graph_interleaved_object.out
similarity index 100%
rename from test/trace_processor/profiling/heap_graph_interleaved_object.out
rename to test/trace_processor/diff_tests/profiling/heap_graph_interleaved_object.out
diff --git a/test/trace_processor/profiling/heap_graph_interleaved_reference.out b/test/trace_processor/diff_tests/profiling/heap_graph_interleaved_reference.out
similarity index 100%
rename from test/trace_processor/profiling/heap_graph_interleaved_reference.out
rename to test/trace_processor/diff_tests/profiling/heap_graph_interleaved_reference.out
diff --git a/test/trace_processor/profiling/heap_graph_legacy.textproto b/test/trace_processor/diff_tests/profiling/heap_graph_legacy.textproto
similarity index 100%
rename from test/trace_processor/profiling/heap_graph_legacy.textproto
rename to test/trace_processor/diff_tests/profiling/heap_graph_legacy.textproto
diff --git a/test/trace_processor/profiling/heap_graph_native_size.textproto b/test/trace_processor/diff_tests/profiling/heap_graph_native_size.textproto
similarity index 100%
rename from test/trace_processor/profiling/heap_graph_native_size.textproto
rename to test/trace_processor/diff_tests/profiling/heap_graph_native_size.textproto
diff --git a/test/trace_processor/profiling/heap_graph_object.out b/test/trace_processor/diff_tests/profiling/heap_graph_object.out
similarity index 100%
rename from test/trace_processor/profiling/heap_graph_object.out
rename to test/trace_processor/diff_tests/profiling/heap_graph_object.out
diff --git a/test/trace_processor/profiling/heap_graph_reference.out b/test/trace_processor/diff_tests/profiling/heap_graph_reference.out
similarity index 100%
rename from test/trace_processor/profiling/heap_graph_reference.out
rename to test/trace_processor/diff_tests/profiling/heap_graph_reference.out
diff --git a/test/trace_processor/profiling/heap_graph_superclass.textproto b/test/trace_processor/diff_tests/profiling/heap_graph_superclass.textproto
similarity index 100%
rename from test/trace_processor/profiling/heap_graph_superclass.textproto
rename to test/trace_processor/diff_tests/profiling/heap_graph_superclass.textproto
diff --git a/test/trace_processor/profiling/heap_graph_two_locations.out b/test/trace_processor/diff_tests/profiling/heap_graph_two_locations.out
similarity index 100%
rename from test/trace_processor/profiling/heap_graph_two_locations.out
rename to test/trace_processor/diff_tests/profiling/heap_graph_two_locations.out
diff --git a/test/trace_processor/profiling/heap_graph_two_locations.textproto b/test/trace_processor/diff_tests/profiling/heap_graph_two_locations.textproto
similarity index 100%
rename from test/trace_processor/profiling/heap_graph_two_locations.textproto
rename to test/trace_processor/diff_tests/profiling/heap_graph_two_locations.textproto
diff --git a/test/trace_processor/profiling/heap_profile.textproto b/test/trace_processor/diff_tests/profiling/heap_profile.textproto
similarity index 100%
rename from test/trace_processor/profiling/heap_profile.textproto
rename to test/trace_processor/diff_tests/profiling/heap_profile.textproto
diff --git a/test/trace_processor/profiling/heap_profile_data_local_tmp.textproto b/test/trace_processor/diff_tests/profiling/heap_profile_data_local_tmp.textproto
similarity index 100%
rename from test/trace_processor/profiling/heap_profile_data_local_tmp.textproto
rename to test/trace_processor/diff_tests/profiling/heap_profile_data_local_tmp.textproto
diff --git a/test/trace_processor/profiling/heap_profile_deobfuscate.textproto b/test/trace_processor/diff_tests/profiling/heap_profile_deobfuscate.textproto
similarity index 100%
rename from test/trace_processor/profiling/heap_profile_deobfuscate.textproto
rename to test/trace_processor/diff_tests/profiling/heap_profile_deobfuscate.textproto
diff --git a/test/trace_processor/profiling/heap_profile_deobfuscate_memfd.textproto b/test/trace_processor/diff_tests/profiling/heap_profile_deobfuscate_memfd.textproto
similarity index 100%
rename from test/trace_processor/profiling/heap_profile_deobfuscate_memfd.textproto
rename to test/trace_processor/diff_tests/profiling/heap_profile_deobfuscate_memfd.textproto
diff --git a/test/trace_processor/profiling/heap_profile_deobfuscate_test.sql b/test/trace_processor/diff_tests/profiling/heap_profile_deobfuscate_test.sql
similarity index 100%
rename from test/trace_processor/profiling/heap_profile_deobfuscate_test.sql
rename to test/trace_processor/diff_tests/profiling/heap_profile_deobfuscate_test.sql
diff --git a/test/trace_processor/profiling/heap_profile_dump_max.textproto b/test/trace_processor/diff_tests/profiling/heap_profile_dump_max.textproto
similarity index 100%
rename from test/trace_processor/profiling/heap_profile_dump_max.textproto
rename to test/trace_processor/diff_tests/profiling/heap_profile_dump_max.textproto
diff --git a/test/trace_processor/profiling/heap_profile_dump_max_legacy.textproto b/test/trace_processor/diff_tests/profiling/heap_profile_dump_max_legacy.textproto
similarity index 100%
rename from test/trace_processor/profiling/heap_profile_dump_max_legacy.textproto
rename to test/trace_processor/diff_tests/profiling/heap_profile_dump_max_legacy.textproto
diff --git a/test/trace_processor/profiling/heap_profile_flamegraph_system-server-native-profile.out b/test/trace_processor/diff_tests/profiling/heap_profile_flamegraph_system-server-native-profile.out
similarity index 100%
rename from test/trace_processor/profiling/heap_profile_flamegraph_system-server-native-profile.out
rename to test/trace_processor/diff_tests/profiling/heap_profile_flamegraph_system-server-native-profile.out
diff --git a/test/trace_processor/profiling/heap_profile_jit.textproto b/test/trace_processor/diff_tests/profiling/heap_profile_jit.textproto
similarity index 100%
rename from test/trace_processor/profiling/heap_profile_jit.textproto
rename to test/trace_processor/diff_tests/profiling/heap_profile_jit.textproto
diff --git a/test/trace_processor/profiling/heap_profile_no_symbols.textproto b/test/trace_processor/diff_tests/profiling/heap_profile_no_symbols.textproto
similarity index 100%
rename from test/trace_processor/profiling/heap_profile_no_symbols.textproto
rename to test/trace_processor/diff_tests/profiling/heap_profile_no_symbols.textproto
diff --git a/test/trace_processor/profiling/heap_profile_tracker_new_stack.textproto b/test/trace_processor/diff_tests/profiling/heap_profile_tracker_new_stack.textproto
similarity index 100%
rename from test/trace_processor/profiling/heap_profile_tracker_new_stack.textproto
rename to test/trace_processor/diff_tests/profiling/heap_profile_tracker_new_stack.textproto
diff --git a/test/trace_processor/profiling/heap_profile_tracker_twoheaps.textproto b/test/trace_processor/diff_tests/profiling/heap_profile_tracker_twoheaps.textproto
similarity index 100%
rename from test/trace_processor/profiling/heap_profile_tracker_twoheaps.textproto
rename to test/trace_processor/diff_tests/profiling/heap_profile_tracker_twoheaps.textproto
diff --git a/test/trace_processor/profiling/heap_stats_closest_proc.out b/test/trace_processor/diff_tests/profiling/heap_stats_closest_proc.out
similarity index 100%
rename from test/trace_processor/profiling/heap_stats_closest_proc.out
rename to test/trace_processor/diff_tests/profiling/heap_stats_closest_proc.out
diff --git a/test/trace_processor/profiling/java_heap_histogram.out b/test/trace_processor/diff_tests/profiling/java_heap_histogram.out
similarity index 100%
rename from test/trace_processor/profiling/java_heap_histogram.out
rename to test/trace_processor/diff_tests/profiling/java_heap_histogram.out
diff --git a/test/trace_processor/profiling/perf_sample_rvc.out b/test/trace_processor/diff_tests/profiling/perf_sample_rvc.out
similarity index 100%
rename from test/trace_processor/profiling/perf_sample_rvc.out
rename to test/trace_processor/diff_tests/profiling/perf_sample_rvc.out
diff --git a/test/trace_processor/profiling/perf_sample_sc.out b/test/trace_processor/diff_tests/profiling/perf_sample_sc.out
similarity index 100%
rename from test/trace_processor/profiling/perf_sample_sc.out
rename to test/trace_processor/diff_tests/profiling/perf_sample_sc.out
diff --git a/test/trace_processor/diff_tests/profiling/perf_sample_switch_interp.textproto b/test/trace_processor/diff_tests/profiling/perf_sample_switch_interp.textproto
new file mode 100644
index 0000000..a8ddcbf
--- /dev/null
+++ b/test/trace_processor/diff_tests/profiling/perf_sample_switch_interp.textproto
@@ -0,0 +1,127 @@
+packet {
+ interned_data {
+ build_ids {
+ iid: 0
+ str: ""
+ }
+ mapping_paths {
+ iid: 0
+ str: ""
+ }
+ function_names {
+ iid: 0
+ str: ""
+ }
+ }
+ sequence_flags: 1
+ trusted_uid: 9999
+ trusted_packet_sequence_id: 2
+ trusted_pid: 24388
+}
+packet {
+ timestamp: 214681394021835
+ interned_data {
+ mappings {
+ iid: 1
+ path_string_ids: 1
+ path_string_ids: 2
+ path_string_ids: 3
+ path_string_ids: 4
+ build_id: 1
+ }
+ build_ids {
+ iid: 1
+ str: ""
+ }
+ mapping_paths {
+ iid: 1
+ str: "apex"
+ }
+ mapping_paths {
+ iid: 2
+ str: "com.android.art"
+ }
+ mapping_paths {
+ iid: 3
+ str: "lib64"
+ }
+ mapping_paths {
+ iid: 4
+ str: "libart.so"
+ }
+ mappings {
+ iid: 2
+ path_string_ids: 6
+ build_id: 1
+ }
+ mapping_paths {
+ iid: 6
+ str: "example.vdex"
+ }
+ frames {
+ iid: 1
+ function_name_id: 1
+ mapping_id: 2
+ }
+ function_names {
+ iid: 1
+ str: "com.example.managed.frame"
+ }
+ frames {
+ iid: 2
+ function_name_id: 2
+ mapping_id: 1
+ }
+ function_names {
+ iid: 2
+ str: "ExecuteSwitchImplAsm"
+ }
+ frames {
+ iid: 3
+ function_name_id: 3
+ mapping_id: 1
+ }
+ function_names {
+ iid: 3
+ str: "_ZN3art11interpreter20ExecuteSwitchImplCppILb0EEEvPNS0_17SwitchImplContextE"
+ }
+ frames {
+ iid: 4
+ function_name_id: 4
+ mapping_id: 1
+ }
+ function_names {
+ iid: 4
+ str: "_ZN3art11interpreter6DoCallILb1EEEbPNS_9ArtMethodEPNS_6ThreadERNS_11ShadowFrameEPKNS_11InstructionEtbPNS_6JValueE"
+ }
+ frames {
+ iid: 5
+ function_name_id: 5
+ mapping_id: 1
+ }
+ function_names {
+ iid: 5
+ str: "_ZN3art9ArtMethod6InvokeEPNS_6ThreadEPjjPNS_6JValueEPKc"
+ }
+ callstacks {
+ iid: 1
+ frame_ids: 1
+ frame_ids: 2
+ frame_ids: 3
+ frame_ids: 4
+ frame_ids: 5
+ }
+ }
+ perf_sample {
+ cpu: 0
+ pid: 1000
+ tid: 1000
+ cpu_mode: MODE_USER
+ timebase_count: 42
+ callstack_iid: 1
+ }
+ trusted_uid: 9999
+ trusted_packet_sequence_id: 2
+ trusted_pid: 24388
+}
+
diff --git a/test/trace_processor/profiling/simpleperf_event.out b/test/trace_processor/diff_tests/profiling/simpleperf_event.out
similarity index 100%
rename from test/trace_processor/profiling/simpleperf_event.out
rename to test/trace_processor/diff_tests/profiling/simpleperf_event.out
diff --git a/test/trace_processor/profiling/simpleperf_event.py b/test/trace_processor/diff_tests/profiling/simpleperf_event.py
similarity index 100%
rename from test/trace_processor/profiling/simpleperf_event.py
rename to test/trace_processor/diff_tests/profiling/simpleperf_event.py
diff --git a/test/trace_processor/profiling/stack_profile_symbols.out b/test/trace_processor/diff_tests/profiling/stack_profile_symbols.out
similarity index 100%
rename from test/trace_processor/profiling/stack_profile_symbols.out
rename to test/trace_processor/diff_tests/profiling/stack_profile_symbols.out
diff --git a/test/trace_processor/profiling/tests.py b/test/trace_processor/diff_tests/profiling/tests.py
similarity index 88%
rename from test/trace_processor/profiling/tests.py
rename to test/trace_processor/diff_tests/profiling/tests.py
index fd22182..e56fbff 100644
--- a/test/trace_processor/profiling/tests.py
+++ b/test/trace_processor/diff_tests/profiling/tests.py
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-from python.generators.diff_tests.testing import Path, Metric
+from python.generators.diff_tests.testing import Path, DataPath, Metric
from python.generators.diff_tests.testing import Csv, Json, TextProto
from python.generators.diff_tests.testing import DiffTestBlueprint
from python.generators.diff_tests.testing import TestSuite
@@ -246,7 +246,7 @@
# perf_sample table (traced_perf) with android R and S trace inputs.
def test_perf_sample_rvc(self):
return DiffTestBlueprint(
- trace=Path('../../data/perf_sample.pb'),
+ trace=DataPath('perf_sample.pb'),
query="""
SELECT ps.ts, ps.cpu, ps.cpu_mode, ps.unwind_error, ps.perf_session_id,
pct.name AS cntr_name, pct.is_timebase,
@@ -267,7 +267,7 @@
def test_perf_sample_sc(self):
return DiffTestBlueprint(
- trace=Path('../../data/perf_sample_sc.pb'),
+ trace=DataPath('perf_sample_sc.pb'),
query="""
SELECT ps.ts, ps.cpu, ps.cpu_mode, ps.unwind_error, ps.perf_session_id,
pct.name AS cntr_name, pct.is_timebase,
@@ -286,9 +286,9 @@
""",
out=Path('perf_sample_sc.out'))
- def test_perf_sample_annotations(self):
+ def test_annotations(self):
return DiffTestBlueprint(
- trace=Path('../../data/perf_sample_annotations.pftrace'),
+ trace=DataPath('perf_sample_annotations.pftrace'),
query="""
select
eac.depth, eac.annotation, spm.name as map_name,
@@ -334,3 +334,25 @@
26,"common-frame-interp","/apex/com.android.art/lib64/libart.so","NterpGetInstanceFieldOffset"
27,"common-frame","/apex/com.android.art/lib64/libart.so","art::ResolveFieldWithAccessChecks(art::Thread*, art::ClassLinker*, unsigned short, art::ArtMethod*, bool, bool, unsigned long)"
"""))
+
+ def test_annotations_switch_interpreter(self):
+ return DiffTestBlueprint(
+ trace=Path('perf_sample_switch_interp.textproto'),
+ query="""
+ select
+ eac.depth, eac.annotation, spm.name as map_name,
+ ifnull(demangle(spf.name), spf.name) as frame_name
+ from experimental_annotated_callstack eac
+ join stack_profile_frame spf on (eac.frame_id = spf.id)
+ join stack_profile_mapping spm on (spf.mapping = spm.id)
+ where eac.start_id = (select callsite_id from perf_sample)
+ order by depth asc;
+ """,
+ out=Csv("""
+ "depth","annotation","map_name","frame_name"
+ 0,"interp","/example.vdex","com.example.managed.frame"
+ 1,"common-frame-interp","/apex/com.android.art/lib64/libart.so","ExecuteSwitchImplAsm"
+ 2,"common-frame-interp","/apex/com.android.art/lib64/libart.so","void art::interpreter::ExecuteSwitchImplCpp<false>(art::interpreter::SwitchImplContext*)"
+ 3,"common-frame-interp","/apex/com.android.art/lib64/libart.so","bool art::interpreter::DoCall<true>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, bool, art::JValue*)"
+ 4,"common-frame","/apex/com.android.art/lib64/libart.so","art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)"
+ """))
diff --git a/test/trace_processor/profiling/tests_heap_graph.py b/test/trace_processor/diff_tests/profiling/tests_heap_graph.py
similarity index 98%
rename from test/trace_processor/profiling/tests_heap_graph.py
rename to test/trace_processor/diff_tests/profiling/tests_heap_graph.py
index 20bff8a..d222ccd 100644
--- a/test/trace_processor/profiling/tests_heap_graph.py
+++ b/test/trace_processor/diff_tests/profiling/tests_heap_graph.py
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-from python.generators.diff_tests.testing import Path, Metric
+from python.generators.diff_tests.testing import Path, DataPath, Metric
from python.generators.diff_tests.testing import Csv, Json, TextProto
from python.generators.diff_tests.testing import DiffTestBlueprint
from python.generators.diff_tests.testing import TestSuite
@@ -275,7 +275,7 @@
def test_heap_graph_flamegraph_system_server_heap_graph(self):
return DiffTestBlueprint(
- trace=Path('../../data/system-server-heap-graph-new.pftrace'),
+ trace=DataPath('system-server-heap-graph-new.pftrace'),
query="""
SELECT
id,
@@ -297,7 +297,7 @@
def test_heap_profile_flamegraph_system_server_native_profile(self):
return DiffTestBlueprint(
- trace=Path('../../data/system-server-native-profile'),
+ trace=DataPath('system-server-native-profile'),
query="""
SELECT * FROM experimental_flamegraph
WHERE ts = 605908369259172
diff --git a/test/trace_processor/profiling/tests_heap_profiling.py b/test/trace_processor/diff_tests/profiling/tests_heap_profiling.py
similarity index 97%
rename from test/trace_processor/profiling/tests_heap_profiling.py
rename to test/trace_processor/diff_tests/profiling/tests_heap_profiling.py
index a59434c..483d045 100644
--- a/test/trace_processor/profiling/tests_heap_profiling.py
+++ b/test/trace_processor/diff_tests/profiling/tests_heap_profiling.py
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-from python.generators.diff_tests.testing import Path, Metric
+from python.generators.diff_tests.testing import Path, DataPath, Metric
from python.generators.diff_tests.testing import Csv, Json, TextProto
from python.generators.diff_tests.testing import DiffTestBlueprint
from python.generators.diff_tests.testing import TestSuite
diff --git a/test/trace_processor/profiling/tests_llvm_symbolizer.py b/test/trace_processor/diff_tests/profiling/tests_llvm_symbolizer.py
similarity index 91%
rename from test/trace_processor/profiling/tests_llvm_symbolizer.py
rename to test/trace_processor/diff_tests/profiling/tests_llvm_symbolizer.py
index bc01454..0733eb5 100644
--- a/test/trace_processor/profiling/tests_llvm_symbolizer.py
+++ b/test/trace_processor/diff_tests/profiling/tests_llvm_symbolizer.py
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-from python.generators.diff_tests.testing import Path, Metric
+from python.generators.diff_tests.testing import Path, DataPath, Metric
from python.generators.diff_tests.testing import Csv, Json, TextProto
from python.generators.diff_tests.testing import DiffTestBlueprint
from python.generators.diff_tests.testing import TestSuite
@@ -23,7 +23,7 @@
# this uses llvm-symbolizer to test the offline symbolization built into
def test_stack_profile_symbols(self):
return DiffTestBlueprint(
- trace=Path('../../data/heapprofd_standalone_client_example-trace'),
+ trace=DataPath('heapprofd_standalone_client_example-trace'),
query="""
SELECT name, source_file, line_number FROM stack_profile_symbol;
""",
@@ -31,7 +31,7 @@
def test_callstack_sampling_flamegraph(self):
return DiffTestBlueprint(
- trace=Path('../../data/callstack_sampling.pftrace'),
+ trace=DataPath('callstack_sampling.pftrace'),
query="""
SELECT ef.*
FROM experimental_flamegraph ef
@@ -45,7 +45,7 @@
def test_callstack_sampling_flamegraph_multi_process(self):
return DiffTestBlueprint(
- trace=Path('../../data/callstack_sampling.pftrace'),
+ trace=DataPath('callstack_sampling.pftrace'),
query="""
SELECT count(*) AS count, 'BothProcesses' AS description
FROM experimental_flamegraph
diff --git a/test/trace_processor/profiling/tests_metrics.py b/test/trace_processor/diff_tests/profiling/tests_metrics.py
similarity index 97%
rename from test/trace_processor/profiling/tests_metrics.py
rename to test/trace_processor/diff_tests/profiling/tests_metrics.py
index c4456e6..cb210cf 100644
--- a/test/trace_processor/profiling/tests_metrics.py
+++ b/test/trace_processor/diff_tests/profiling/tests_metrics.py
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-from python.generators.diff_tests.testing import Path, Metric
+from python.generators.diff_tests.testing import Path, DataPath, Metric
from python.generators.diff_tests.testing import Csv, Json, TextProto
from python.generators.diff_tests.testing import DiffTestBlueprint
from python.generators.diff_tests.testing import TestSuite
diff --git a/test/trace_processor/scheduler/sched_cpu_util_cfs.textproto b/test/trace_processor/diff_tests/scheduler/sched_cpu_util_cfs.textproto
similarity index 100%
rename from test/trace_processor/scheduler/sched_cpu_util_cfs.textproto
rename to test/trace_processor/diff_tests/scheduler/sched_cpu_util_cfs.textproto
diff --git a/test/trace_processor/scheduler/sched_cpu_util_cfs_test.sql b/test/trace_processor/diff_tests/scheduler/sched_cpu_util_cfs_test.sql
similarity index 100%
rename from test/trace_processor/scheduler/sched_cpu_util_cfs_test.sql
rename to test/trace_processor/diff_tests/scheduler/sched_cpu_util_cfs_test.sql
diff --git a/test/trace_processor/scheduler/tests.py b/test/trace_processor/diff_tests/scheduler/tests.py
similarity index 95%
rename from test/trace_processor/scheduler/tests.py
rename to test/trace_processor/diff_tests/scheduler/tests.py
index b55e607..b935c6a 100644
--- a/test/trace_processor/scheduler/tests.py
+++ b/test/trace_processor/diff_tests/scheduler/tests.py
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-from python.generators.diff_tests.testing import Path, Metric
+from python.generators.diff_tests.testing import Path, DataPath, Metric
from python.generators.diff_tests.testing import Csv, Json, TextProto
from python.generators.diff_tests.testing import DiffTestBlueprint
from python.generators.diff_tests.testing import TestSuite
diff --git a/test/trace_processor/smoke/proxy_power.out b/test/trace_processor/diff_tests/smoke/proxy_power.out
similarity index 100%
rename from test/trace_processor/smoke/proxy_power.out
rename to test/trace_processor/diff_tests/smoke/proxy_power.out
diff --git a/test/trace_processor/smoke/tests.py b/test/trace_processor/diff_tests/smoke/tests.py
similarity index 93%
rename from test/trace_processor/smoke/tests.py
rename to test/trace_processor/diff_tests/smoke/tests.py
index 9b3f2e8..be0836f 100644
--- a/test/trace_processor/smoke/tests.py
+++ b/test/trace_processor/diff_tests/smoke/tests.py
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-from python.generators.diff_tests.testing import Path, Metric
+from python.generators.diff_tests.testing import Path, DataPath, Metric
from python.generators.diff_tests.testing import Csv, Json, TextProto
from python.generators.diff_tests.testing import DiffTestBlueprint
from python.generators.diff_tests.testing import TestSuite
@@ -25,7 +25,7 @@
# Compresesed traces
def test_compressed_smoke(self):
return DiffTestBlueprint(
- trace=Path('../../data/compressed.pb'),
+ trace=DataPath('compressed.pb'),
query="""
SELECT
ts,
diff --git a/test/trace_processor/smoke/tests_compute_metrics.py b/test/trace_processor/diff_tests/smoke/tests_compute_metrics.py
similarity index 92%
rename from test/trace_processor/smoke/tests_compute_metrics.py
rename to test/trace_processor/diff_tests/smoke/tests_compute_metrics.py
index 3f52060..e6a3cd5 100644
--- a/test/trace_processor/smoke/tests_compute_metrics.py
+++ b/test/trace_processor/diff_tests/smoke/tests_compute_metrics.py
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-from python.generators.diff_tests.testing import Path, Metric
+from python.generators.diff_tests.testing import Path, DataPath, Metric
from python.generators.diff_tests.testing import Csv, Json, TextProto
from python.generators.diff_tests.testing import DiffTestBlueprint
from python.generators.diff_tests.testing import TestSuite
@@ -25,7 +25,7 @@
# Compute CPU time metric testing several core tables.
def test_thread_cpu_time_example_android_trace_30s(self):
return DiffTestBlueprint(
- trace=Path('../../data/example_android_trace_30s.pb'),
+ trace=DataPath('example_android_trace_30s.pb'),
query="""
SELECT
tid,
@@ -50,7 +50,7 @@
# Compute power proxy metric
def test_proxy_power(self):
return DiffTestBlueprint(
- trace=Path('../../data/cpu_counters.pb'),
+ trace=DataPath('cpu_counters.pb'),
query="""
SELECT RUN_METRIC('android/android_proxy_power.sql');
diff --git a/test/trace_processor/smoke/tests_json.py b/test/trace_processor/diff_tests/smoke/tests_json.py
similarity index 92%
rename from test/trace_processor/smoke/tests_json.py
rename to test/trace_processor/diff_tests/smoke/tests_json.py
index 01ca11b..7d5593e 100644
--- a/test/trace_processor/smoke/tests_json.py
+++ b/test/trace_processor/diff_tests/smoke/tests_json.py
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-from python.generators.diff_tests.testing import Path, Metric
+from python.generators.diff_tests.testing import Path, DataPath, Metric
from python.generators.diff_tests.testing import Csv, Json, TextProto
from python.generators.diff_tests.testing import DiffTestBlueprint
from python.generators.diff_tests.testing import TestSuite
@@ -25,7 +25,7 @@
# JSON trace parsing
def test_sfgate_smoke(self):
return DiffTestBlueprint(
- trace=Path('../../data/sfgate.json'),
+ trace=DataPath('sfgate.json'),
query="""
SELECT
ts,
@@ -45,7 +45,7 @@
def test_sfgate_smoke_slices(self):
return DiffTestBlueprint(
- trace=Path('../../data/sfgate.json'),
+ trace=DataPath('sfgate.json'),
query="""
SELECT track.type AS type, depth, count(*) AS count
FROM slice
diff --git a/test/trace_processor/smoke/tests_sched_events.py b/test/trace_processor/diff_tests/smoke/tests_sched_events.py
similarity index 95%
rename from test/trace_processor/smoke/tests_sched_events.py
rename to test/trace_processor/diff_tests/smoke/tests_sched_events.py
index 04f588a..86e39fd 100644
--- a/test/trace_processor/smoke/tests_sched_events.py
+++ b/test/trace_processor/diff_tests/smoke/tests_sched_events.py
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-from python.generators.diff_tests.testing import Path, Metric
+from python.generators.diff_tests.testing import Path, DataPath, Metric
from python.generators.diff_tests.testing import Csv, Json, TextProto
from python.generators.diff_tests.testing import DiffTestBlueprint
from python.generators.diff_tests.testing import TestSuite
@@ -25,7 +25,7 @@
# Sched events
def test_android_sched_and_ps_smoke(self):
return DiffTestBlueprint(
- trace=Path('../../data/android_sched_and_ps.pb'),
+ trace=DataPath('android_sched_and_ps.pb'),
query="""
SELECT
ts,
diff --git a/test/trace_processor/smoke/thread_cpu_time_example_android_trace_30s.out b/test/trace_processor/diff_tests/smoke/thread_cpu_time_example_android_trace_30s.out
similarity index 100%
rename from test/trace_processor/smoke/thread_cpu_time_example_android_trace_30s.out
rename to test/trace_processor/diff_tests/smoke/thread_cpu_time_example_android_trace_30s.out
diff --git a/test/trace_processor/span_join/android_sched_and_ps_slice_span_join_b118665515.out b/test/trace_processor/diff_tests/span_join/android_sched_and_ps_slice_span_join_b118665515.out
similarity index 100%
rename from test/trace_processor/span_join/android_sched_and_ps_slice_span_join_b118665515.out
rename to test/trace_processor/diff_tests/span_join/android_sched_and_ps_slice_span_join_b118665515.out
diff --git a/test/trace_processor/span_join/slice_span_join_b118665515_test.sql b/test/trace_processor/diff_tests/span_join/slice_span_join_b118665515_test.sql
similarity index 100%
rename from test/trace_processor/span_join/slice_span_join_b118665515_test.sql
rename to test/trace_processor/diff_tests/span_join/slice_span_join_b118665515_test.sql
diff --git a/test/trace_processor/span_join/span_join_unordered_cols_reverse_test.sql b/test/trace_processor/diff_tests/span_join/span_join_unordered_cols_reverse_test.sql
similarity index 100%
rename from test/trace_processor/span_join/span_join_unordered_cols_reverse_test.sql
rename to test/trace_processor/diff_tests/span_join/span_join_unordered_cols_reverse_test.sql
diff --git a/test/trace_processor/span_join/span_join_unordered_cols_test.sql b/test/trace_processor/diff_tests/span_join/span_join_unordered_cols_test.sql
similarity index 100%
rename from test/trace_processor/span_join/span_join_unordered_cols_test.sql
rename to test/trace_processor/diff_tests/span_join/span_join_unordered_cols_test.sql
diff --git a/test/trace_processor/span_join/span_join_zero_negative_dur_test.sql b/test/trace_processor/diff_tests/span_join/span_join_zero_negative_dur_test.sql
similarity index 100%
rename from test/trace_processor/span_join/span_join_zero_negative_dur_test.sql
rename to test/trace_processor/diff_tests/span_join/span_join_zero_negative_dur_test.sql
diff --git a/test/trace_processor/span_join/span_left_join.out b/test/trace_processor/diff_tests/span_join/span_left_join.out
similarity index 100%
rename from test/trace_processor/span_join/span_left_join.out
rename to test/trace_processor/diff_tests/span_join/span_left_join.out
diff --git a/test/trace_processor/span_join/span_left_join_left_partitioned.out b/test/trace_processor/diff_tests/span_join/span_left_join_left_partitioned.out
similarity index 100%
rename from test/trace_processor/span_join/span_left_join_left_partitioned.out
rename to test/trace_processor/diff_tests/span_join/span_left_join_left_partitioned.out
diff --git a/test/trace_processor/span_join/span_left_join_left_partitioned_test.sql b/test/trace_processor/diff_tests/span_join/span_left_join_left_partitioned_test.sql
similarity index 100%
rename from test/trace_processor/span_join/span_left_join_left_partitioned_test.sql
rename to test/trace_processor/diff_tests/span_join/span_left_join_left_partitioned_test.sql
diff --git a/test/trace_processor/span_join/span_left_join_left_unpartitioned.out b/test/trace_processor/diff_tests/span_join/span_left_join_left_unpartitioned.out
similarity index 100%
rename from test/trace_processor/span_join/span_left_join_left_unpartitioned.out
rename to test/trace_processor/diff_tests/span_join/span_left_join_left_unpartitioned.out
diff --git a/test/trace_processor/span_join/span_left_join_left_unpartitioned_test.sql b/test/trace_processor/diff_tests/span_join/span_left_join_left_unpartitioned_test.sql
similarity index 100%
rename from test/trace_processor/span_join/span_left_join_left_unpartitioned_test.sql
rename to test/trace_processor/diff_tests/span_join/span_left_join_left_unpartitioned_test.sql
diff --git a/test/trace_processor/span_join/span_left_join_test.sql b/test/trace_processor/diff_tests/span_join/span_left_join_test.sql
similarity index 100%
rename from test/trace_processor/span_join/span_left_join_test.sql
rename to test/trace_processor/diff_tests/span_join/span_left_join_test.sql
diff --git a/test/trace_processor/span_join/span_left_join_unpartitioned.out b/test/trace_processor/diff_tests/span_join/span_left_join_unpartitioned.out
similarity index 100%
rename from test/trace_processor/span_join/span_left_join_unpartitioned.out
rename to test/trace_processor/diff_tests/span_join/span_left_join_unpartitioned.out
diff --git a/test/trace_processor/span_join/span_left_join_unpartitioned_test.sql b/test/trace_processor/diff_tests/span_join/span_left_join_unpartitioned_test.sql
similarity index 100%
rename from test/trace_processor/span_join/span_left_join_unpartitioned_test.sql
rename to test/trace_processor/diff_tests/span_join/span_left_join_unpartitioned_test.sql
diff --git a/test/trace_processor/span_join/span_outer_join.out b/test/trace_processor/diff_tests/span_join/span_outer_join.out
similarity index 100%
rename from test/trace_processor/span_join/span_outer_join.out
rename to test/trace_processor/diff_tests/span_join/span_outer_join.out
diff --git a/test/trace_processor/span_join/span_outer_join_mixed.out b/test/trace_processor/diff_tests/span_join/span_outer_join_mixed.out
similarity index 100%
rename from test/trace_processor/span_join/span_outer_join_mixed.out
rename to test/trace_processor/diff_tests/span_join/span_outer_join_mixed.out
diff --git a/test/trace_processor/span_join/span_outer_join_mixed_test.sql b/test/trace_processor/diff_tests/span_join/span_outer_join_mixed_test.sql
similarity index 100%
rename from test/trace_processor/span_join/span_outer_join_mixed_test.sql
rename to test/trace_processor/diff_tests/span_join/span_outer_join_mixed_test.sql
diff --git a/test/trace_processor/span_join/span_outer_join_test.sql b/test/trace_processor/diff_tests/span_join/span_outer_join_test.sql
similarity index 100%
rename from test/trace_processor/span_join/span_outer_join_test.sql
rename to test/trace_processor/diff_tests/span_join/span_outer_join_test.sql
diff --git a/test/trace_processor/span_join/span_outer_join_unpartitioned.out b/test/trace_processor/diff_tests/span_join/span_outer_join_unpartitioned.out
similarity index 100%
rename from test/trace_processor/span_join/span_outer_join_unpartitioned.out
rename to test/trace_processor/diff_tests/span_join/span_outer_join_unpartitioned.out
diff --git a/test/trace_processor/span_join/span_outer_join_unpartitioned_test.sql b/test/trace_processor/diff_tests/span_join/span_outer_join_unpartitioned_test.sql
similarity index 100%
rename from test/trace_processor/span_join/span_outer_join_unpartitioned_test.sql
rename to test/trace_processor/diff_tests/span_join/span_outer_join_unpartitioned_test.sql
diff --git a/test/trace_processor/span_join/tests.py b/test/trace_processor/diff_tests/span_join/tests.py
similarity index 98%
rename from test/trace_processor/span_join/tests.py
rename to test/trace_processor/diff_tests/span_join/tests.py
index c4002c6..e675aff 100644
--- a/test/trace_processor/span_join/tests.py
+++ b/test/trace_processor/diff_tests/span_join/tests.py
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-from python.generators.diff_tests.testing import Path, Metric
+from python.generators.diff_tests.testing import Path, DataPath, Metric
from python.generators.diff_tests.testing import Csv, Json, TextProto
from python.generators.diff_tests.testing import DiffTestBlueprint
from python.generators.diff_tests.testing import DiffTestModule
diff --git a/test/trace_processor/span_join/tests_left_join.py b/test/trace_processor/diff_tests/span_join/tests_left_join.py
similarity index 97%
rename from test/trace_processor/span_join/tests_left_join.py
rename to test/trace_processor/diff_tests/span_join/tests_left_join.py
index c552150..2bd2e58 100644
--- a/test/trace_processor/span_join/tests_left_join.py
+++ b/test/trace_processor/diff_tests/span_join/tests_left_join.py
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-from python.generators.diff_tests.testing import Path, Metric
+from python.generators.diff_tests.testing import Path, DataPath, Metric
from python.generators.diff_tests.testing import Csv, Json, TextProto
from python.generators.diff_tests.testing import DiffTestBlueprint
from python.generators.diff_tests.testing import TestSuite
diff --git a/test/trace_processor/span_join/tests_outer_join.py b/test/trace_processor/diff_tests/span_join/tests_outer_join.py
similarity index 98%
rename from test/trace_processor/span_join/tests_outer_join.py
rename to test/trace_processor/diff_tests/span_join/tests_outer_join.py
index 4ec28a9..c2ac4f5 100644
--- a/test/trace_processor/span_join/tests_outer_join.py
+++ b/test/trace_processor/diff_tests/span_join/tests_outer_join.py
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-from python.generators.diff_tests.testing import Path, Metric
+from python.generators.diff_tests.testing import Path, DataPath, Metric
from python.generators.diff_tests.testing import Csv, Json, TextProto
from python.generators.diff_tests.testing import DiffTestBlueprint
from python.generators.diff_tests.testing import TestSuite
diff --git a/test/trace_processor/span_join/tests_regression.py b/test/trace_processor/diff_tests/span_join/tests_regression.py
similarity index 90%
rename from test/trace_processor/span_join/tests_regression.py
rename to test/trace_processor/diff_tests/span_join/tests_regression.py
index 7c4fdd6..31d667e 100644
--- a/test/trace_processor/span_join/tests_regression.py
+++ b/test/trace_processor/diff_tests/span_join/tests_regression.py
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-from python.generators.diff_tests.testing import Path, Metric
+from python.generators.diff_tests.testing import Path, DataPath, Metric
from python.generators.diff_tests.testing import Csv, Json, TextProto
from python.generators.diff_tests.testing import DiffTestBlueprint
from python.generators.diff_tests.testing import TestSuite
@@ -23,13 +23,13 @@
def test_android_sched_and_ps_slice_span_join_b118665515(self):
return DiffTestBlueprint(
- trace=Path('../../data/android_sched_and_ps.pb'),
+ trace=DataPath('android_sched_and_ps.pb'),
query=Path('slice_span_join_b118665515_test.sql'),
out=Path('android_sched_and_ps_slice_span_join_b118665515.out'))
def test_span_join_unpartitioned_empty(self):
return DiffTestBlueprint(
- trace=Path('../../data/android_sched_and_ps.pb'),
+ trace=DataPath('android_sched_and_ps.pb'),
query="""
CREATE TABLE t1(
ts BIGINT,
diff --git a/test/trace_processor/span_join/tests_smoke.py b/test/trace_processor/diff_tests/span_join/tests_smoke.py
similarity index 94%
rename from test/trace_processor/span_join/tests_smoke.py
rename to test/trace_processor/diff_tests/span_join/tests_smoke.py
index 7f6875b..e94a6c8 100644
--- a/test/trace_processor/span_join/tests_smoke.py
+++ b/test/trace_processor/diff_tests/span_join/tests_smoke.py
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-from python.generators.diff_tests.testing import Path, Metric
+from python.generators.diff_tests.testing import Path, DataPath, Metric
from python.generators.diff_tests.testing import Csv, Json, TextProto
from python.generators.diff_tests.testing import DiffTestBlueprint
from python.generators.diff_tests.testing import TestSuite
@@ -53,7 +53,7 @@
def test_span_join_zero_negative_dur(self):
return DiffTestBlueprint(
- trace=Path('../../data/android_sched_and_ps.pb'),
+ trace=DataPath('android_sched_and_ps.pb'),
query=Path('span_join_zero_negative_dur_test.sql'),
out=Csv("""
"ts","dur","part"
diff --git a/test/trace_processor/startup/android_startup.out b/test/trace_processor/diff_tests/startup/android_startup.out
similarity index 98%
rename from test/trace_processor/startup/android_startup.out
rename to test/trace_processor/diff_tests/startup/android_startup.out
index f804a34..752db7b 100644
--- a/test/trace_processor/startup/android_startup.out
+++ b/test/trace_processor/diff_tests/startup/android_startup.out
@@ -8,7 +8,7 @@
dur_ns: 108
main_thread_by_task_state {
running_dur_ns: 10
- runnable_dur_ns: 80
+ runnable_dur_ns: 90
uninterruptible_sleep_dur_ns: 0
interruptible_sleep_dur_ns: 10
uninterruptible_io_sleep_dur_ns: 0
diff --git a/test/trace_processor/startup/android_startup.py b/test/trace_processor/diff_tests/startup/android_startup.py
similarity index 100%
rename from test/trace_processor/startup/android_startup.py
rename to test/trace_processor/diff_tests/startup/android_startup.py
diff --git a/test/trace_processor/startup/android_startup_attribution.out b/test/trace_processor/diff_tests/startup/android_startup_attribution.out
similarity index 100%
rename from test/trace_processor/startup/android_startup_attribution.out
rename to test/trace_processor/diff_tests/startup/android_startup_attribution.out
diff --git a/test/trace_processor/startup/android_startup_attribution.py b/test/trace_processor/diff_tests/startup/android_startup_attribution.py
similarity index 100%
rename from test/trace_processor/startup/android_startup_attribution.py
rename to test/trace_processor/diff_tests/startup/android_startup_attribution.py
diff --git a/test/trace_processor/startup/android_startup_attribution_slow.out b/test/trace_processor/diff_tests/startup/android_startup_attribution_slow.out
similarity index 100%
rename from test/trace_processor/startup/android_startup_attribution_slow.out
rename to test/trace_processor/diff_tests/startup/android_startup_attribution_slow.out
diff --git a/test/trace_processor/startup/android_startup_attribution_slow.py b/test/trace_processor/diff_tests/startup/android_startup_attribution_slow.py
similarity index 83%
rename from test/trace_processor/startup/android_startup_attribution_slow.py
rename to test/trace_processor/diff_tests/startup/android_startup_attribution_slow.py
index 2707af9..aa81cca 100644
--- a/test/trace_processor/startup/android_startup_attribution_slow.py
+++ b/test/trace_processor/diff_tests/startup/android_startup_attribution_slow.py
@@ -17,9 +17,11 @@
import synth_common
+
def to_s(ts):
return ts * 1000 * 1000 * 1000
+
APP_PID = 3
APP_TID = APP_PID
SECOND_APP_TID = 3
@@ -51,7 +53,8 @@
trace.add_thread(tid=BINDER_TID, tgid=APP_PID, cmdline='Binder', name='Binder')
trace.add_thread(tid=FONTS_TID, tgid=APP_PID, cmdline='fonts', name='fonts')
-trace.add_package_list(ts=to_s(99), name='com.some.app', uid=10001, version_code=123)
+trace.add_package_list(
+ ts=to_s(99), name='com.some.app', uid=10001, version_code=123)
trace.add_ftrace_packet(cpu=0)
# Start intent.
@@ -71,16 +74,23 @@
buf='launching: com.some.app')
# Emulate a hot start (and therefore that we only see activityResume).
-trace.add_atrace_begin(ts=to_s(125), tid=APP_TID, pid=APP_PID, buf='activityResume')
+trace.add_atrace_begin(
+ ts=to_s(125), tid=APP_TID, pid=APP_PID, buf='activityResume')
trace.add_atrace_end(ts=to_s(130), tid=APP_TID, pid=APP_PID)
# OpenDex slices within the startup.
trace.add_atrace_begin(
- ts=to_s(150), pid=APP_PID, tid=APP_TID, buf='OpenDexFilesFromOat(something)')
+ ts=to_s(150),
+ pid=APP_PID,
+ tid=APP_TID,
+ buf='OpenDexFilesFromOat(something)')
trace.add_atrace_end(ts=to_s(165), pid=APP_PID, tid=APP_TID)
trace.add_atrace_begin(
- ts=to_s(170), pid=APP_PID, tid=APP_TID, buf='OpenDexFilesFromOat(something else)')
+ ts=to_s(170),
+ pid=APP_PID,
+ tid=APP_TID,
+ buf='OpenDexFilesFromOat(something else)')
trace.add_atrace_end(ts=to_s(175), pid=APP_PID, tid=APP_TID)
# OpenDex slice outside the startup.
@@ -95,14 +105,17 @@
buf='launching: com.some.app')
# VerifyClass slices within the startup.
-trace.add_atrace_begin(ts=to_s(250), pid=APP_PID, tid=APP_TID, buf='VerifyClass vr')
+trace.add_atrace_begin(
+ ts=to_s(250), pid=APP_PID, tid=APP_TID, buf='VerifyClass vr')
trace.add_atrace_end(ts=to_s(265), pid=APP_PID, tid=APP_TID)
-trace.add_atrace_begin(ts=to_s(270), pid=APP_PID, tid=APP_TID, buf='VerifyClass dl')
+trace.add_atrace_begin(
+ ts=to_s(270), pid=APP_PID, tid=APP_TID, buf='VerifyClass dl')
trace.add_atrace_end(ts=to_s(275), pid=APP_PID, tid=APP_TID)
# VerifyClass slice outside the startup.
-trace.add_atrace_begin(ts=to_s(55), pid=APP_PID, tid=APP_TID, buf='VerifyClass xf')
+trace.add_atrace_begin(
+ ts=to_s(55), pid=APP_PID, tid=APP_TID, buf='VerifyClass xf')
trace.add_atrace_end(ts=to_s(65), pid=APP_PID, tid=APP_TID)
# VerifyClass slice on a different thread, overlapping with the other slices.
@@ -113,16 +126,16 @@
for t in range(100, 160, 2):
# JIT compilation slices
trace.add_atrace_begin(
- ts=to_s(t), pid=APP_PID, tid=JIT_TID, buf='JIT compiling someting')
- trace.add_atrace_end(ts=to_s(t+1), pid=APP_PID, tid=JIT_TID)
+ ts=to_s(t), pid=APP_PID, tid=JIT_TID, buf='JIT compiling someting')
+ trace.add_atrace_end(ts=to_s(t + 1), pid=APP_PID, tid=JIT_TID)
trace.add_sched(ts=to_s(155), prev_pid=0, next_pid=JIT_TID)
trace.add_sched(ts=to_s(165), prev_pid=JIT_TID, next_pid=0)
for t in range(168, 190, 2):
trace.add_atrace_begin(
- ts=to_s(t), pid=APP_PID, tid=JIT_TID, buf='JIT compiling something else')
- trace.add_atrace_end(ts=to_s(t+1), pid=APP_PID, tid=JIT_TID)
+ ts=to_s(t), pid=APP_PID, tid=JIT_TID, buf='JIT compiling something else')
+ trace.add_atrace_end(ts=to_s(t + 1), pid=APP_PID, tid=JIT_TID)
trace.add_sched(ts=to_s(170), prev_pid=0, next_pid=JIT_TID)
trace.add_sched(ts=to_s(175), prev_pid=JIT_TID, next_pid=0, prev_state='R')
@@ -141,14 +154,21 @@
# GC slices.
trace.add_atrace_begin(
- ts=to_s(300), pid=APP_PID, tid=GC_TID, buf='Background concurrent copying GC')
+ ts=to_s(300),
+ pid=APP_PID,
+ tid=GC_TID,
+ buf='Background concurrent copying GC')
trace.add_atrace_end(ts=to_s(330), pid=APP_PID, tid=GC_TID)
trace.add_atrace_begin(
- ts=to_s(340), pid=APP_PID, tid=GC_TID, buf='CollectorTransition mark sweep GC')
+ ts=to_s(340),
+ pid=APP_PID,
+ tid=GC_TID,
+ buf='CollectorTransition mark sweep GC')
trace.add_atrace_end(ts=to_s(390), pid=APP_PID, tid=GC_TID)
-trace.add_atrace_begin(ts=to_s(320), pid=APP_PID, tid=GC2_TID, buf='semispace GC')
+trace.add_atrace_begin(
+ ts=to_s(320), pid=APP_PID, tid=GC2_TID, buf='semispace GC')
trace.add_atrace_end(ts=to_s(370), pid=APP_PID, tid=GC2_TID)
# Start running copying slice on the first thread
diff --git a/test/trace_processor/startup/android_startup_battery.py b/test/trace_processor/diff_tests/startup/android_startup_battery.py
similarity index 100%
rename from test/trace_processor/startup/android_startup_battery.py
rename to test/trace_processor/diff_tests/startup/android_startup_battery.py
diff --git a/test/trace_processor/startup/android_startup_breakdown.out b/test/trace_processor/diff_tests/startup/android_startup_breakdown.out
similarity index 96%
rename from test/trace_processor/startup/android_startup_breakdown.out
rename to test/trace_processor/diff_tests/startup/android_startup_breakdown.out
index d58a886..8b35bb5 100644
--- a/test/trace_processor/startup/android_startup_breakdown.out
+++ b/test/trace_processor/diff_tests/startup/android_startup_breakdown.out
@@ -8,7 +8,7 @@
dur_ns: 108000000000
main_thread_by_task_state {
running_dur_ns: 25000000000
- runnable_dur_ns: 5000000000
+ runnable_dur_ns: 30000000000
uninterruptible_sleep_dur_ns: 0
interruptible_sleep_dur_ns: 0
uninterruptible_io_sleep_dur_ns: 0
@@ -107,6 +107,7 @@
slow_start_reason: "Time spent in bindApplication"
slow_start_reason: "Time spent in view inflation"
slow_start_reason: "Time spent in ResourcesManager#getResources"
+ slow_start_reason: "Potential CPU contention with init"
slow_start_reason: "No baseline or cloud profiles"
slow_start_reason: "Optimized artifacts missing, run from apk"
startup_type: "cold"
diff --git a/test/trace_processor/startup/android_startup_breakdown.py b/test/trace_processor/diff_tests/startup/android_startup_breakdown.py
similarity index 100%
rename from test/trace_processor/startup/android_startup_breakdown.py
rename to test/trace_processor/diff_tests/startup/android_startup_breakdown.py
diff --git a/test/trace_processor/startup/android_startup_breakdown_slow.out b/test/trace_processor/diff_tests/startup/android_startup_breakdown_slow.out
similarity index 96%
rename from test/trace_processor/startup/android_startup_breakdown_slow.out
rename to test/trace_processor/diff_tests/startup/android_startup_breakdown_slow.out
index fec1c2e..3ed8ce3 100644
--- a/test/trace_processor/startup/android_startup_breakdown_slow.out
+++ b/test/trace_processor/diff_tests/startup/android_startup_breakdown_slow.out
@@ -8,7 +8,7 @@
dur_ns: 108000000000
main_thread_by_task_state {
running_dur_ns: 25000000000
- runnable_dur_ns: 5000000000
+ runnable_dur_ns: 30000000000
uninterruptible_sleep_dur_ns: 0
interruptible_sleep_dur_ns: 0
uninterruptible_io_sleep_dur_ns: 0
@@ -107,6 +107,7 @@
slow_start_reason: "Time spent in bindApplication"
slow_start_reason: "Time spent in view inflation"
slow_start_reason: "Time spent in ResourcesManager#getResources"
+ slow_start_reason: "Potential CPU contention with init"
slow_start_reason: "Optimized artifacts missing, run from apk"
startup_type: "cold"
}
diff --git a/test/trace_processor/startup/android_startup_breakdown_slow.py b/test/trace_processor/diff_tests/startup/android_startup_breakdown_slow.py
similarity index 100%
rename from test/trace_processor/startup/android_startup_breakdown_slow.py
rename to test/trace_processor/diff_tests/startup/android_startup_breakdown_slow.py
diff --git a/test/trace_processor/startup/android_startup_broadcast.out b/test/trace_processor/diff_tests/startup/android_startup_broadcast.out
similarity index 100%
rename from test/trace_processor/startup/android_startup_broadcast.out
rename to test/trace_processor/diff_tests/startup/android_startup_broadcast.out
diff --git a/test/trace_processor/startup/android_startup_broadcast.py b/test/trace_processor/diff_tests/startup/android_startup_broadcast.py
similarity index 100%
rename from test/trace_processor/startup/android_startup_broadcast.py
rename to test/trace_processor/diff_tests/startup/android_startup_broadcast.py
diff --git a/test/trace_processor/startup/android_startup_broadcast_multiple.out b/test/trace_processor/diff_tests/startup/android_startup_broadcast_multiple.out
similarity index 100%
rename from test/trace_processor/startup/android_startup_broadcast_multiple.out
rename to test/trace_processor/diff_tests/startup/android_startup_broadcast_multiple.out
diff --git a/test/trace_processor/startup/android_startup_broadcast_multiple.py b/test/trace_processor/diff_tests/startup/android_startup_broadcast_multiple.py
similarity index 83%
rename from test/trace_processor/startup/android_startup_broadcast_multiple.py
rename to test/trace_processor/diff_tests/startup/android_startup_broadcast_multiple.py
index a1a5264..4b5f5b2 100644
--- a/test/trace_processor/startup/android_startup_broadcast_multiple.py
+++ b/test/trace_processor/diff_tests/startup/android_startup_broadcast_multiple.py
@@ -33,15 +33,15 @@
for t in range(105, 129, 2):
trace.add_atrace_begin(
- ts=t,
- tid=1,
- pid=1,
- buf='Broadcast dispatched from android (2005:system/1000) x')
- trace.add_atrace_end(ts=t+1, tid=1, pid=1)
+ ts=t,
+ tid=1,
+ pid=1,
+ buf='Broadcast dispatched from android (2005:system/1000) x')
+ trace.add_atrace_end(ts=t + 1, tid=1, pid=1)
for t in range(130, 152, 2):
- trace.add_atrace_begin(ts=t, tid=2, pid=2, buf='broadcastReceiveReg: x')
- trace.add_atrace_end(ts=t+1, tid=2, pid=2)
+ trace.add_atrace_begin(ts=t, tid=2, pid=2, buf='broadcastReceiveReg: x')
+ trace.add_atrace_end(ts=t + 1, tid=2, pid=2)
trace.add_atrace_instant(
ts=201,
diff --git a/test/trace_processor/startup/android_startup_cpu.out b/test/trace_processor/diff_tests/startup/android_startup_cpu.out
similarity index 100%
rename from test/trace_processor/startup/android_startup_cpu.out
rename to test/trace_processor/diff_tests/startup/android_startup_cpu.out
diff --git a/test/trace_processor/startup/android_startup_cpu.py b/test/trace_processor/diff_tests/startup/android_startup_cpu.py
similarity index 100%
rename from test/trace_processor/startup/android_startup_cpu.py
rename to test/trace_processor/diff_tests/startup/android_startup_cpu.py
diff --git a/test/trace_processor/startup/android_startup_installd_dex2oat.out b/test/trace_processor/diff_tests/startup/android_startup_installd_dex2oat.out
similarity index 100%
rename from test/trace_processor/startup/android_startup_installd_dex2oat.out
rename to test/trace_processor/diff_tests/startup/android_startup_installd_dex2oat.out
diff --git a/test/trace_processor/startup/android_startup_installd_dex2oat.py b/test/trace_processor/diff_tests/startup/android_startup_installd_dex2oat.py
similarity index 100%
rename from test/trace_processor/startup/android_startup_installd_dex2oat.py
rename to test/trace_processor/diff_tests/startup/android_startup_installd_dex2oat.py
diff --git a/test/trace_processor/startup/android_startup_installd_dex2oat_slow.out b/test/trace_processor/diff_tests/startup/android_startup_installd_dex2oat_slow.out
similarity index 100%
rename from test/trace_processor/startup/android_startup_installd_dex2oat_slow.out
rename to test/trace_processor/diff_tests/startup/android_startup_installd_dex2oat_slow.out
diff --git a/test/trace_processor/startup/android_startup_installd_dex2oat_slow.py b/test/trace_processor/diff_tests/startup/android_startup_installd_dex2oat_slow.py
similarity index 74%
rename from test/trace_processor/startup/android_startup_installd_dex2oat_slow.py
rename to test/trace_processor/diff_tests/startup/android_startup_installd_dex2oat_slow.py
index 1756722..3e59d25 100644
--- a/test/trace_processor/startup/android_startup_installd_dex2oat_slow.py
+++ b/test/trace_processor/diff_tests/startup/android_startup_installd_dex2oat_slow.py
@@ -17,9 +17,11 @@
import synth_common
+
def to_s(ts):
return ts * 1000 * 1000 * 1000
+
trace = synth_common.create_trace()
trace.add_packet()
trace.add_process(1, 0, 'init')
@@ -34,17 +36,25 @@
trace.add_package_list(
ts=to_s(1), name='com.google.android.calendar', uid=10003, version_code=123)
trace.add_package_list(
- ts=to_s(2), name='com.google.android.calculator', uid=10004, version_code=123)
+ ts=to_s(2),
+ name='com.google.android.calculator',
+ uid=10004,
+ version_code=123)
trace.add_package_list(
- ts=to_s(3), name='com.google.android.deskclock', uid=10005, version_code=123)
+ ts=to_s(3),
+ name='com.google.android.deskclock',
+ uid=10005,
+ version_code=123)
trace.add_package_list(
ts=to_s(4), name='com.google.android.gm', uid=10006, version_code=123)
trace.add_ftrace_packet(cpu=0)
# First launch: don't have either dex2oat or installd
-trace.add_atrace_async_begin(ts=to_s(100), tid=2, pid=2, buf='launchingActivity#1')
-trace.add_atrace_async_end(ts=to_s(200), tid=2, pid=2, buf='launchingActivity#1')
+trace.add_atrace_async_begin(
+ ts=to_s(100), tid=2, pid=2, buf='launchingActivity#1')
+trace.add_atrace_async_end(
+ ts=to_s(200), tid=2, pid=2, buf='launchingActivity#1')
trace.add_atrace_instant(
ts=to_s(201),
tid=2,
@@ -52,10 +62,12 @@
buf='launchingActivity#1:completed:com.google.android.calendar')
# Second launch: just dex2oat
-trace.add_atrace_async_begin(ts=to_s(300), tid=2, pid=2, buf='launchingActivity#2')
+trace.add_atrace_async_begin(
+ ts=to_s(300), tid=2, pid=2, buf='launchingActivity#2')
trace.add_sched(ts=to_s(305), prev_pid=0, next_pid=10)
trace.add_sched(ts=to_s(310), prev_pid=10, next_pid=0)
-trace.add_atrace_async_end(ts=to_s(400), tid=2, pid=2, buf='launchingActivity#2')
+trace.add_atrace_async_end(
+ ts=to_s(400), tid=2, pid=2, buf='launchingActivity#2')
trace.add_atrace_instant(
ts=to_s(401),
tid=2,
@@ -63,10 +75,12 @@
buf='launchingActivity#2:completed:com.google.android.calculator')
# Third launch: just installd
-trace.add_atrace_async_begin(ts=to_s(500), tid=2, pid=2, buf='launchingActivity#3')
+trace.add_atrace_async_begin(
+ ts=to_s(500), tid=2, pid=2, buf='launchingActivity#3')
trace.add_sched(ts=to_s(505), prev_pid=0, next_pid=11)
trace.add_sched(ts=to_s(510), prev_pid=11, next_pid=0)
-trace.add_atrace_async_end(ts=to_s(750), tid=2, pid=2, buf='launchingActivity#3')
+trace.add_atrace_async_end(
+ ts=to_s(750), tid=2, pid=2, buf='launchingActivity#3')
trace.add_atrace_instant(
ts=to_s(751),
tid=2,
@@ -74,12 +88,14 @@
buf='launchingActivity#3:completed:com.google.android.deskclock')
# Third launch: just installd
-trace.add_atrace_async_begin(ts=to_s(700), tid=2, pid=2, buf='launchingActivity#4')
+trace.add_atrace_async_begin(
+ ts=to_s(700), tid=2, pid=2, buf='launchingActivity#4')
trace.add_sched(ts=to_s(705), prev_pid=0, next_pid=10)
trace.add_sched(ts=to_s(710), prev_pid=10, next_pid=0)
trace.add_sched(ts=to_s(715), prev_pid=0, next_pid=11)
trace.add_sched(ts=to_s(720), prev_pid=11, next_pid=0)
-trace.add_atrace_async_end(ts=to_s(800), tid=2, pid=2, buf='launchingActivity#4')
+trace.add_atrace_async_end(
+ ts=to_s(800), tid=2, pid=2, buf='launchingActivity#4')
trace.add_atrace_instant(
ts=to_s(801),
tid=2,
diff --git a/test/trace_processor/startup/android_startup_lock_contention.out b/test/trace_processor/diff_tests/startup/android_startup_lock_contention.out
similarity index 100%
rename from test/trace_processor/startup/android_startup_lock_contention.out
rename to test/trace_processor/diff_tests/startup/android_startup_lock_contention.out
diff --git a/test/trace_processor/startup/android_startup_lock_contention.py b/test/trace_processor/diff_tests/startup/android_startup_lock_contention.py
similarity index 100%
rename from test/trace_processor/startup/android_startup_lock_contention.py
rename to test/trace_processor/diff_tests/startup/android_startup_lock_contention.py
diff --git a/test/trace_processor/startup/android_startup_lock_contention_slow.out b/test/trace_processor/diff_tests/startup/android_startup_lock_contention_slow.out
similarity index 100%
rename from test/trace_processor/startup/android_startup_lock_contention_slow.out
rename to test/trace_processor/diff_tests/startup/android_startup_lock_contention_slow.out
diff --git a/test/trace_processor/startup/android_startup_lock_contention_slow.py b/test/trace_processor/diff_tests/startup/android_startup_lock_contention_slow.py
similarity index 93%
rename from test/trace_processor/startup/android_startup_lock_contention_slow.py
rename to test/trace_processor/diff_tests/startup/android_startup_lock_contention_slow.py
index bc4ee7e..c447b08 100644
--- a/test/trace_processor/startup/android_startup_lock_contention_slow.py
+++ b/test/trace_processor/diff_tests/startup/android_startup_lock_contention_slow.py
@@ -17,9 +17,11 @@
import synth_common
+
def to_s(ts):
return ts * 1000 * 1000 * 1000
+
trace = synth_common.create_trace()
trace.add_packet()
trace.add_process(1, 0, 'init')
@@ -31,8 +33,10 @@
ts=to_s(1), name='com.google.android.calendar', uid=10001, version_code=123)
trace.add_ftrace_packet(cpu=0)
-trace.add_atrace_async_begin(ts=to_s(110), tid=2, pid=2, buf='launchingActivity#1')
-trace.add_atrace_async_end(ts=to_s(210), tid=2, pid=2, buf='launchingActivity#1')
+trace.add_atrace_async_begin(
+ ts=to_s(110), tid=2, pid=2, buf='launchingActivity#1')
+trace.add_atrace_async_end(
+ ts=to_s(210), tid=2, pid=2, buf='launchingActivity#1')
# Required so we know this process is the one being started up.
trace.add_atrace_begin(ts=to_s(112), tid=3, pid=3, buf='bindApplication')
diff --git a/test/trace_processor/startup/android_startup_minsdk33.out b/test/trace_processor/diff_tests/startup/android_startup_minsdk33.out
similarity index 100%
rename from test/trace_processor/startup/android_startup_minsdk33.out
rename to test/trace_processor/diff_tests/startup/android_startup_minsdk33.out
diff --git a/test/trace_processor/startup/android_startup_minsdk33.py b/test/trace_processor/diff_tests/startup/android_startup_minsdk33.py
similarity index 100%
rename from test/trace_processor/startup/android_startup_minsdk33.py
rename to test/trace_processor/diff_tests/startup/android_startup_minsdk33.py
diff --git a/test/trace_processor/startup/android_startup_powrails.out b/test/trace_processor/diff_tests/startup/android_startup_powrails.out
similarity index 100%
rename from test/trace_processor/startup/android_startup_powrails.out
rename to test/trace_processor/diff_tests/startup/android_startup_powrails.out
diff --git a/test/trace_processor/startup/android_startup_powrails.py b/test/trace_processor/diff_tests/startup/android_startup_powrails.py
similarity index 100%
rename from test/trace_processor/startup/android_startup_powrails.py
rename to test/trace_processor/diff_tests/startup/android_startup_powrails.py
diff --git a/test/trace_processor/startup/android_startup_process_track.out b/test/trace_processor/diff_tests/startup/android_startup_process_track.out
similarity index 100%
rename from test/trace_processor/startup/android_startup_process_track.out
rename to test/trace_processor/diff_tests/startup/android_startup_process_track.out
diff --git a/test/trace_processor/startup/android_startup_process_track.py b/test/trace_processor/diff_tests/startup/android_startup_process_track.py
similarity index 100%
rename from test/trace_processor/startup/android_startup_process_track.py
rename to test/trace_processor/diff_tests/startup/android_startup_process_track.py
diff --git a/test/trace_processor/startup/android_startup_slow.out b/test/trace_processor/diff_tests/startup/android_startup_slow.out
similarity index 95%
rename from test/trace_processor/startup/android_startup_slow.out
rename to test/trace_processor/diff_tests/startup/android_startup_slow.out
index 9ae0024..333883a 100644
--- a/test/trace_processor/startup/android_startup_slow.out
+++ b/test/trace_processor/diff_tests/startup/android_startup_slow.out
@@ -8,7 +8,7 @@
dur_ns: 108000000000
main_thread_by_task_state {
running_dur_ns: 10000000000
- runnable_dur_ns: 80000000000
+ runnable_dur_ns: 90000000000
uninterruptible_sleep_dur_ns: 5000000000
interruptible_sleep_dur_ns: 5000000000
uninterruptible_io_sleep_dur_ns: 5000000000
@@ -67,5 +67,6 @@
slow_start_reason: "Main Thread - Time spent in Runnable state"
slow_start_reason: "Main Thread - Time spent in interruptible sleep state"
slow_start_reason: "Main Thread - Time spent in Blocking I/O"
+ slow_start_reason: "Potential CPU contention with init"
}
}
diff --git a/test/trace_processor/startup/android_startup_slow.py b/test/trace_processor/diff_tests/startup/android_startup_slow.py
similarity index 92%
rename from test/trace_processor/startup/android_startup_slow.py
rename to test/trace_processor/diff_tests/startup/android_startup_slow.py
index 0977fff..c85d320 100644
--- a/test/trace_processor/startup/android_startup_slow.py
+++ b/test/trace_processor/diff_tests/startup/android_startup_slow.py
@@ -17,9 +17,11 @@
import synth_common
+
def to_s(ts):
return ts * 1000 * 1000 * 1000
+
trace = synth_common.create_trace()
trace.add_packet()
trace.add_process(1, 0, 'init')
@@ -33,12 +35,18 @@
trace.add_ftrace_packet(cpu=0)
# Intent without any corresponding end state, will be ignored
trace.add_atrace_begin(
- ts=to_s(100), tid=2, pid=2, buf='MetricsLogger:launchObserverNotifyIntentStarted')
+ ts=to_s(100),
+ tid=2,
+ pid=2,
+ buf='MetricsLogger:launchObserverNotifyIntentStarted')
trace.add_atrace_end(ts=to_s(101), tid=2, pid=2)
# Start intent for a successful launch of calendar
trace.add_atrace_begin(
- ts=to_s(102), tid=2, pid=2, buf='MetricsLogger:launchObserverNotifyIntentStarted')
+ ts=to_s(102),
+ tid=2,
+ pid=2,
+ buf='MetricsLogger:launchObserverNotifyIntentStarted')
trace.add_atrace_end(ts=to_s(103), tid=2, pid=2)
trace.add_atrace_async_begin(
@@ -93,7 +101,10 @@
# Start intent for calendar, we failed to launch the activity.
trace.add_atrace_begin(
- ts=to_s(402), tid=2, pid=2, buf='MetricsLogger:launchObserverNotifyIntentStarted')
+ ts=to_s(402),
+ tid=2,
+ pid=2,
+ buf='MetricsLogger:launchObserverNotifyIntentStarted')
trace.add_atrace_end(ts=to_s(403), tid=2, pid=2)
trace.add_atrace_async_begin(
diff --git a/test/trace_processor/startup/android_startup_unlock.out b/test/trace_processor/diff_tests/startup/android_startup_unlock.out
similarity index 100%
rename from test/trace_processor/startup/android_startup_unlock.out
rename to test/trace_processor/diff_tests/startup/android_startup_unlock.out
diff --git a/test/trace_processor/startup/android_startup_unlock.py b/test/trace_processor/diff_tests/startup/android_startup_unlock.py
similarity index 93%
rename from test/trace_processor/startup/android_startup_unlock.py
rename to test/trace_processor/diff_tests/startup/android_startup_unlock.py
index fc73899..59d2d45 100644
--- a/test/trace_processor/startup/android_startup_unlock.py
+++ b/test/trace_processor/diff_tests/startup/android_startup_unlock.py
@@ -34,8 +34,8 @@
trace.add_atrace_async_begin(ts=100, tid=2, pid=2, buf='launchingActivity#1')
trace.add_atrace_async_end(ts=200, tid=2, pid=2, buf='launchingActivity#1')
-
-trace.add_atrace_begin(ts=130, tid=2, pid=4, buf='KeyguardUpdateMonitor#onAuthenticationSucceeded')
+trace.add_atrace_begin(
+ ts=130, tid=2, pid=4, buf='KeyguardUpdateMonitor#onAuthenticationSucceeded')
trace.add_atrace_end(ts=133, tid=2, pid=4)
trace.add_atrace_instant(
diff --git a/test/trace_processor/startup/tests.py b/test/trace_processor/diff_tests/startup/tests.py
similarity index 95%
rename from test/trace_processor/startup/tests.py
rename to test/trace_processor/diff_tests/startup/tests.py
index af0d184..b365fcf 100644
--- a/test/trace_processor/startup/tests.py
+++ b/test/trace_processor/diff_tests/startup/tests.py
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-from python.generators.diff_tests.testing import Path, Metric
+from python.generators.diff_tests.testing import Path, DataPath, Metric
from python.generators.diff_tests.testing import Csv, Json, TextProto
from python.generators.diff_tests.testing import DiffTestBlueprint
from python.generators.diff_tests.testing import TestSuite
diff --git a/test/trace_processor/startup/tests_broadcasts.py b/test/trace_processor/diff_tests/startup/tests_broadcasts.py
similarity index 94%
rename from test/trace_processor/startup/tests_broadcasts.py
rename to test/trace_processor/diff_tests/startup/tests_broadcasts.py
index 16dd96b..34b6756 100644
--- a/test/trace_processor/startup/tests_broadcasts.py
+++ b/test/trace_processor/diff_tests/startup/tests_broadcasts.py
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-from python.generators.diff_tests.testing import Path, Metric
+from python.generators.diff_tests.testing import Path, DataPath, Metric
from python.generators.diff_tests.testing import Csv, Json, TextProto
from python.generators.diff_tests.testing import DiffTestBlueprint
from python.generators.diff_tests.testing import TestSuite
diff --git a/test/trace_processor/startup/tests_lock_contention.py b/test/trace_processor/diff_tests/startup/tests_lock_contention.py
similarity index 94%
rename from test/trace_processor/startup/tests_lock_contention.py
rename to test/trace_processor/diff_tests/startup/tests_lock_contention.py
index a3e3cd0..f41bfe3 100644
--- a/test/trace_processor/startup/tests_lock_contention.py
+++ b/test/trace_processor/diff_tests/startup/tests_lock_contention.py
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-from python.generators.diff_tests.testing import Path, Metric
+from python.generators.diff_tests.testing import Path, DataPath, Metric
from python.generators.diff_tests.testing import Csv, Json, TextProto
from python.generators.diff_tests.testing import DiffTestBlueprint
from python.generators.diff_tests.testing import TestSuite
diff --git a/test/trace_processor/startup/tests_metrics.py b/test/trace_processor/diff_tests/startup/tests_metrics.py
similarity index 97%
rename from test/trace_processor/startup/tests_metrics.py
rename to test/trace_processor/diff_tests/startup/tests_metrics.py
index f326188..99911da 100644
--- a/test/trace_processor/startup/tests_metrics.py
+++ b/test/trace_processor/diff_tests/startup/tests_metrics.py
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-from python.generators.diff_tests.testing import Path, Metric
+from python.generators.diff_tests.testing import Path, DataPath, Metric
from python.generators.diff_tests.testing import Csv, Json, TextProto
from python.generators.diff_tests.testing import DiffTestBlueprint
from python.generators.diff_tests.testing import TestSuite
diff --git a/test/trace_processor/tables/counter_dur_test.sql b/test/trace_processor/diff_tests/tables/counter_dur_test.sql
similarity index 100%
rename from test/trace_processor/tables/counter_dur_test.sql
rename to test/trace_processor/diff_tests/tables/counter_dur_test.sql
diff --git a/test/trace_processor/tables/counters_group_by_freq.py b/test/trace_processor/diff_tests/tables/counters_group_by_freq.py
similarity index 100%
rename from test/trace_processor/tables/counters_group_by_freq.py
rename to test/trace_processor/diff_tests/tables/counters_group_by_freq.py
diff --git a/test/trace_processor/tables/counters_where_cpu.py b/test/trace_processor/diff_tests/tables/counters_where_cpu.py
similarity index 100%
rename from test/trace_processor/tables/counters_where_cpu.py
rename to test/trace_processor/diff_tests/tables/counters_where_cpu.py
diff --git a/test/trace_processor/tables/filter_row_vector_example_android_trace_30s.out b/test/trace_processor/diff_tests/tables/filter_row_vector_example_android_trace_30s.out
similarity index 100%
rename from test/trace_processor/tables/filter_row_vector_example_android_trace_30s.out
rename to test/trace_processor/diff_tests/tables/filter_row_vector_example_android_trace_30s.out
diff --git a/test/trace_processor/tables/nulls.out b/test/trace_processor/diff_tests/tables/nulls.out
similarity index 100%
rename from test/trace_processor/tables/nulls.out
rename to test/trace_processor/diff_tests/tables/nulls.out
diff --git a/test/trace_processor/tables/tests.py b/test/trace_processor/diff_tests/tables/tests.py
similarity index 95%
rename from test/trace_processor/tables/tests.py
rename to test/trace_processor/diff_tests/tables/tests.py
index 4b43712..2f2e926 100644
--- a/test/trace_processor/tables/tests.py
+++ b/test/trace_processor/diff_tests/tables/tests.py
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-from python.generators.diff_tests.testing import Path, Metric
+from python.generators.diff_tests.testing import Path, DataPath, Metric
from python.generators.diff_tests.testing import Csv, Json, TextProto
from python.generators.diff_tests.testing import DiffTestBlueprint
from python.generators.diff_tests.testing import TestSuite
@@ -27,7 +27,7 @@
# for choosing which folder to add a new test to. Window table
def test_android_sched_and_ps_smoke_window(self):
return DiffTestBlueprint(
- trace=Path('../../data/android_sched_and_ps.pb'),
+ trace=DataPath('android_sched_and_ps.pb'),
query="""
SELECT * FROM "window";
""",
@@ -143,7 +143,7 @@
# Json output
def test_trace_metadata(self):
return DiffTestBlueprint(
- trace=Path('../../data/memory_counters.pb'),
+ trace=DataPath('memory_counters.pb'),
query=Metric('trace_metadata'),
out=Path('trace_metadata.json.out'))
@@ -196,7 +196,7 @@
# Ftrace stats imports in metadata and stats tables
def test_ftrace_setup_errors(self):
return DiffTestBlueprint(
- trace=Path('../../data/ftrace_error_stats.pftrace'),
+ trace=DataPath('ftrace_error_stats.pftrace'),
query="""
SELECT value FROM stats WHERE name = 'ftrace_setup_errors'
UNION ALL
diff --git a/test/trace_processor/tables/tests_counters.py b/test/trace_processor/diff_tests/tables/tests_counters.py
similarity index 93%
rename from test/trace_processor/tables/tests_counters.py
rename to test/trace_processor/diff_tests/tables/tests_counters.py
index c011a92..8ed753f 100644
--- a/test/trace_processor/tables/tests_counters.py
+++ b/test/trace_processor/diff_tests/tables/tests_counters.py
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-from python.generators.diff_tests.testing import Path, Metric
+from python.generators.diff_tests.testing import Path, DataPath, Metric
from python.generators.diff_tests.testing import Csv, Json, TextProto
from python.generators.diff_tests.testing import DiffTestBlueprint
from python.generators.diff_tests.testing import TestSuite
@@ -37,7 +37,7 @@
def test_memory_counters_b120278869_neg_ts_end(self):
return DiffTestBlueprint(
- trace=Path('../../data/memory_counters.pb'),
+ trace=DataPath('memory_counters.pb'),
query="""
SELECT count(*) FROM counters WHERE -1 < ts;
""",
@@ -89,7 +89,7 @@
def test_filter_row_vector_example_android_trace_30s(self):
return DiffTestBlueprint(
- trace=Path('../../data/example_android_trace_30s.pb'),
+ trace=DataPath('example_android_trace_30s.pb'),
query="""
SELECT ts
FROM counter
@@ -110,7 +110,7 @@
def test_counter_dur_example_android_trace_30s(self):
return DiffTestBlueprint(
- trace=Path('../../data/example_android_trace_30s.pb'),
+ trace=DataPath('example_android_trace_30s.pb'),
query=Path('counter_dur_test.sql'),
out=Csv("""
"ts","dur"
diff --git a/test/trace_processor/tables/tests_sched.py b/test/trace_processor/diff_tests/tables/tests_sched.py
similarity index 92%
rename from test/trace_processor/tables/tests_sched.py
rename to test/trace_processor/diff_tests/tables/tests_sched.py
index 98af57a..1f1ee49 100644
--- a/test/trace_processor/tables/tests_sched.py
+++ b/test/trace_processor/diff_tests/tables/tests_sched.py
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-from python.generators.diff_tests.testing import Path, Metric
+from python.generators.diff_tests.testing import Path, DataPath, Metric
from python.generators.diff_tests.testing import Csv, Json, TextProto
from python.generators.diff_tests.testing import DiffTestBlueprint
from python.generators.diff_tests.testing import TestSuite
@@ -40,7 +40,7 @@
def test_android_sched_and_ps_b119496959(self):
return DiffTestBlueprint(
- trace=Path('../../data/android_sched_and_ps.pb'),
+ trace=DataPath('android_sched_and_ps.pb'),
query="""
SELECT ts, cpu FROM sched WHERE ts >= 81473797418963 LIMIT 10;
""",
@@ -60,7 +60,7 @@
def test_android_sched_and_ps_b119301023(self):
return DiffTestBlueprint(
- trace=Path('../../data/android_sched_and_ps.pb'),
+ trace=DataPath('android_sched_and_ps.pb'),
query="""
SELECT ts FROM sched
WHERE ts > 0.1 + 1e9
diff --git a/test/trace_processor/tables/trace_metadata.json.out b/test/trace_processor/diff_tests/tables/trace_metadata.json.out
similarity index 100%
rename from test/trace_processor/tables/trace_metadata.json.out
rename to test/trace_processor/diff_tests/tables/trace_metadata.json.out
diff --git a/test/trace_processor/track_event/experimental_slice_layout_depth.py b/test/trace_processor/diff_tests/track_event/experimental_slice_layout_depth.py
similarity index 100%
rename from test/trace_processor/track_event/experimental_slice_layout_depth.py
rename to test/trace_processor/diff_tests/track_event/experimental_slice_layout_depth.py
diff --git a/test/trace_processor/track_event/flow_events_proto_v1.textproto b/test/trace_processor/diff_tests/track_event/flow_events_proto_v1.textproto
similarity index 100%
rename from test/trace_processor/track_event/flow_events_proto_v1.textproto
rename to test/trace_processor/diff_tests/track_event/flow_events_proto_v1.textproto
diff --git a/test/trace_processor/track_event/flow_events_proto_v2.textproto b/test/trace_processor/diff_tests/track_event/flow_events_proto_v2.textproto
similarity index 100%
rename from test/trace_processor/track_event/flow_events_proto_v2.textproto
rename to test/trace_processor/diff_tests/track_event/flow_events_proto_v2.textproto
diff --git a/test/trace_processor/track_event/flow_events_track_event.textproto b/test/trace_processor/diff_tests/track_event/flow_events_track_event.textproto
similarity index 100%
rename from test/trace_processor/track_event/flow_events_track_event.textproto
rename to test/trace_processor/diff_tests/track_event/flow_events_track_event.textproto
diff --git a/test/trace_processor/track_event/legacy_async_event.out b/test/trace_processor/diff_tests/track_event/legacy_async_event.out
similarity index 100%
rename from test/trace_processor/track_event/legacy_async_event.out
rename to test/trace_processor/diff_tests/track_event/legacy_async_event.out
diff --git a/test/trace_processor/track_event/legacy_async_event.textproto b/test/trace_processor/diff_tests/track_event/legacy_async_event.textproto
similarity index 100%
rename from test/trace_processor/track_event/legacy_async_event.textproto
rename to test/trace_processor/diff_tests/track_event/legacy_async_event.textproto
diff --git a/test/trace_processor/track_event/range_of_interest.textproto b/test/trace_processor/diff_tests/track_event/range_of_interest.textproto
similarity index 100%
rename from test/trace_processor/track_event/range_of_interest.textproto
rename to test/trace_processor/diff_tests/track_event/range_of_interest.textproto
diff --git a/test/trace_processor/track_event/tests.py b/test/trace_processor/diff_tests/track_event/tests.py
similarity index 99%
rename from test/trace_processor/track_event/tests.py
rename to test/trace_processor/diff_tests/track_event/tests.py
index 8b3e6fb..884f17e 100644
--- a/test/trace_processor/track_event/tests.py
+++ b/test/trace_processor/diff_tests/track_event/tests.py
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-from python.generators.diff_tests.testing import Path, Metric
+from python.generators.diff_tests.testing import Path, DataPath, Metric
from python.generators.diff_tests.testing import Csv, Json, TextProto
from python.generators.diff_tests.testing import DiffTestBlueprint
from python.generators.diff_tests.testing import TestSuite
@@ -631,7 +631,7 @@
# Descriptor merging regression test (bug: b/197203390)
def test_merging_regression(self):
return DiffTestBlueprint(
- trace=Path('../../data/trace_with_descriptor.pftrace'),
+ trace=DataPath('trace_with_descriptor.pftrace'),
query="""
SELECT ts FROM slice ORDER BY ts LIMIT 10;
""",
diff --git a/test/trace_processor/track_event/track_event_args_test.sql b/test/trace_processor/diff_tests/track_event/track_event_args_test.sql
similarity index 100%
rename from test/trace_processor/track_event/track_event_args_test.sql
rename to test/trace_processor/diff_tests/track_event/track_event_args_test.sql
diff --git a/test/trace_processor/track_event/track_event_chrome_histogram_sample.textproto b/test/trace_processor/diff_tests/track_event/track_event_chrome_histogram_sample.textproto
similarity index 100%
rename from test/trace_processor/track_event/track_event_chrome_histogram_sample.textproto
rename to test/trace_processor/diff_tests/track_event/track_event_chrome_histogram_sample.textproto
diff --git a/test/trace_processor/track_event/track_event_chrome_histogram_sample_args.out b/test/trace_processor/diff_tests/track_event/track_event_chrome_histogram_sample_args.out
similarity index 100%
rename from test/trace_processor/track_event/track_event_chrome_histogram_sample_args.out
rename to test/trace_processor/diff_tests/track_event/track_event_chrome_histogram_sample_args.out
diff --git a/test/trace_processor/track_event/track_event_counters.textproto b/test/trace_processor/diff_tests/track_event/track_event_counters.textproto
similarity index 100%
rename from test/trace_processor/track_event/track_event_counters.textproto
rename to test/trace_processor/diff_tests/track_event/track_event_counters.textproto
diff --git a/test/trace_processor/track_event/track_event_counters_counters.out b/test/trace_processor/diff_tests/track_event/track_event_counters_counters.out
similarity index 100%
rename from test/trace_processor/track_event/track_event_counters_counters.out
rename to test/trace_processor/diff_tests/track_event/track_event_counters_counters.out
diff --git a/test/trace_processor/track_event/track_event_merged_debug_annotations.textproto b/test/trace_processor/diff_tests/track_event/track_event_merged_debug_annotations.textproto
similarity index 100%
rename from test/trace_processor/track_event/track_event_merged_debug_annotations.textproto
rename to test/trace_processor/diff_tests/track_event/track_event_merged_debug_annotations.textproto
diff --git a/test/trace_processor/track_event/track_event_merged_debug_annotations_args.out b/test/trace_processor/diff_tests/track_event/track_event_merged_debug_annotations_args.out
similarity index 100%
rename from test/trace_processor/track_event/track_event_merged_debug_annotations_args.out
rename to test/trace_processor/diff_tests/track_event/track_event_merged_debug_annotations_args.out
diff --git a/test/trace_processor/track_event/track_event_tracks.textproto b/test/trace_processor/diff_tests/track_event/track_event_tracks.textproto
similarity index 100%
rename from test/trace_processor/track_event/track_event_tracks.textproto
rename to test/trace_processor/diff_tests/track_event/track_event_tracks.textproto
diff --git a/test/trace_processor/track_event/track_event_tracks_slices.out b/test/trace_processor/diff_tests/track_event/track_event_tracks_slices.out
similarity index 100%
rename from test/trace_processor/track_event/track_event_tracks_slices.out
rename to test/trace_processor/diff_tests/track_event/track_event_tracks_slices.out
diff --git a/test/trace_processor/track_event/track_event_typed_args.textproto b/test/trace_processor/diff_tests/track_event/track_event_typed_args.textproto
similarity index 100%
rename from test/trace_processor/track_event/track_event_typed_args.textproto
rename to test/trace_processor/diff_tests/track_event/track_event_typed_args.textproto
diff --git a/test/trace_processor/track_event/track_event_typed_args_args.out b/test/trace_processor/diff_tests/track_event/track_event_typed_args_args.out
similarity index 100%
rename from test/trace_processor/track_event/track_event_typed_args_args.out
rename to test/trace_processor/diff_tests/track_event/track_event_typed_args_args.out
diff --git a/test/trace_processor/track_event/track_event_with_atrace.textproto b/test/trace_processor/diff_tests/track_event/track_event_with_atrace.textproto
similarity index 100%
rename from test/trace_processor/track_event/track_event_with_atrace.textproto
rename to test/trace_processor/diff_tests/track_event/track_event_with_atrace.textproto
diff --git a/test/trace_processor/translation/chrome_args_test.sql b/test/trace_processor/diff_tests/translation/chrome_args_test.sql
similarity index 100%
rename from test/trace_processor/translation/chrome_args_test.sql
rename to test/trace_processor/diff_tests/translation/chrome_args_test.sql
diff --git a/test/trace_processor/translation/chrome_histogram.out b/test/trace_processor/diff_tests/translation/chrome_histogram.out
similarity index 100%
rename from test/trace_processor/translation/chrome_histogram.out
rename to test/trace_processor/diff_tests/translation/chrome_histogram.out
diff --git a/test/trace_processor/translation/chrome_histogram.textproto b/test/trace_processor/diff_tests/translation/chrome_histogram.textproto
similarity index 100%
rename from test/trace_processor/translation/chrome_histogram.textproto
rename to test/trace_processor/diff_tests/translation/chrome_histogram.textproto
diff --git a/test/trace_processor/translation/chrome_performance_mark.out b/test/trace_processor/diff_tests/translation/chrome_performance_mark.out
similarity index 100%
rename from test/trace_processor/translation/chrome_performance_mark.out
rename to test/trace_processor/diff_tests/translation/chrome_performance_mark.out
diff --git a/test/trace_processor/translation/chrome_user_event.out b/test/trace_processor/diff_tests/translation/chrome_user_event.out
similarity index 100%
rename from test/trace_processor/translation/chrome_user_event.out
rename to test/trace_processor/diff_tests/translation/chrome_user_event.out
diff --git a/test/trace_processor/translation/chrome_user_event.textproto b/test/trace_processor/diff_tests/translation/chrome_user_event.textproto
similarity index 100%
rename from test/trace_processor/translation/chrome_user_event.textproto
rename to test/trace_processor/diff_tests/translation/chrome_user_event.textproto
diff --git a/test/trace_processor/translation/java_class_name_arg.out b/test/trace_processor/diff_tests/translation/java_class_name_arg.out
similarity index 100%
rename from test/trace_processor/translation/java_class_name_arg.out
rename to test/trace_processor/diff_tests/translation/java_class_name_arg.out
diff --git a/test/trace_processor/translation/java_class_name_arg.textproto b/test/trace_processor/diff_tests/translation/java_class_name_arg.textproto
similarity index 100%
rename from test/trace_processor/translation/java_class_name_arg.textproto
rename to test/trace_processor/diff_tests/translation/java_class_name_arg.textproto
diff --git a/test/trace_processor/translation/native_symbol_arg.out b/test/trace_processor/diff_tests/translation/native_symbol_arg.out
similarity index 100%
rename from test/trace_processor/translation/native_symbol_arg.out
rename to test/trace_processor/diff_tests/translation/native_symbol_arg.out
diff --git a/test/trace_processor/translation/native_symbol_arg.textproto b/test/trace_processor/diff_tests/translation/native_symbol_arg.textproto
similarity index 100%
rename from test/trace_processor/translation/native_symbol_arg.textproto
rename to test/trace_processor/diff_tests/translation/native_symbol_arg.textproto
diff --git a/test/trace_processor/translation/native_symbol_arg_incomplete.textproto b/test/trace_processor/diff_tests/translation/native_symbol_arg_incomplete.textproto
similarity index 100%
rename from test/trace_processor/translation/native_symbol_arg_incomplete.textproto
rename to test/trace_processor/diff_tests/translation/native_symbol_arg_incomplete.textproto
diff --git a/test/trace_processor/translation/slice_name.textproto b/test/trace_processor/diff_tests/translation/slice_name.textproto
similarity index 100%
rename from test/trace_processor/translation/slice_name.textproto
rename to test/trace_processor/diff_tests/translation/slice_name.textproto
diff --git a/test/trace_processor/translation/slice_name_negative_timestamp.textproto b/test/trace_processor/diff_tests/translation/slice_name_negative_timestamp.textproto
similarity index 100%
rename from test/trace_processor/translation/slice_name_negative_timestamp.textproto
rename to test/trace_processor/diff_tests/translation/slice_name_negative_timestamp.textproto
diff --git a/test/trace_processor/translation/tests.py b/test/trace_processor/diff_tests/translation/tests.py
similarity index 97%
rename from test/trace_processor/translation/tests.py
rename to test/trace_processor/diff_tests/translation/tests.py
index f72f0e7..9856205 100644
--- a/test/trace_processor/translation/tests.py
+++ b/test/trace_processor/diff_tests/translation/tests.py
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-from python.generators.diff_tests.testing import Path, Metric
+from python.generators.diff_tests.testing import Path, DataPath, Metric
from python.generators.diff_tests.testing import Csv, Json, TextProto
from python.generators.diff_tests.testing import DiffTestBlueprint
from python.generators.diff_tests.testing import TestSuite
diff --git a/test/trace_processor/ufs/tests.py b/test/trace_processor/diff_tests/ufs/tests.py
similarity index 95%
rename from test/trace_processor/ufs/tests.py
rename to test/trace_processor/diff_tests/ufs/tests.py
index 0e79732..0e318aa 100644
--- a/test/trace_processor/ufs/tests.py
+++ b/test/trace_processor/diff_tests/ufs/tests.py
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-from python.generators.diff_tests.testing import Path, Metric
+from python.generators.diff_tests.testing import Path, DataPath, Metric
from python.generators.diff_tests.testing import Csv, Json, TextProto
from python.generators.diff_tests.testing import DiffTestBlueprint
from python.generators.diff_tests.testing import TestSuite
diff --git a/test/trace_processor/ufs/ufshcd_command.textproto b/test/trace_processor/diff_tests/ufs/ufshcd_command.textproto
similarity index 100%
rename from test/trace_processor/ufs/ufshcd_command.textproto
rename to test/trace_processor/diff_tests/ufs/ufshcd_command.textproto
diff --git a/test/trace_processor/ufs/ufshcd_command_tag.textproto b/test/trace_processor/diff_tests/ufs/ufshcd_command_tag.textproto
similarity index 100%
rename from test/trace_processor/ufs/ufshcd_command_tag.textproto
rename to test/trace_processor/diff_tests/ufs/ufshcd_command_tag.textproto
diff --git a/test/trace_processor/functions/tests.py b/test/trace_processor/functions/tests.py
deleted file mode 100644
index 37c590b..0000000
--- a/test/trace_processor/functions/tests.py
+++ /dev/null
@@ -1,110 +0,0 @@
-#!/usr/bin/env python3
-# Copyright (C) 2023 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 a
-#
-# 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.
-
-from python.generators.diff_tests.testing import Path, Metric
-from python.generators.diff_tests.testing import Csv, Json, TextProto
-from python.generators.diff_tests.testing import DiffTestBlueprint
-from python.generators.diff_tests.testing import TestSuite
-
-
-class Functions(TestSuite):
-
- def test_first_non_null_frame(self):
- return DiffTestBlueprint(
- trace=TextProto(r"""
-
- """),
- query="""
- CREATE TABLE TEST(id INTEGER, val INTEGER);
-
- INSERT INTO TEST
- VALUES (1, 1), (2, NULL), (3, 3), (4, 4), (5, NULL), (6, NULL), (7, NULL);
-
- SELECT
- id,
- LAST_NON_NULL(val)
- OVER (ORDER BY id ASC ROWS BETWEEN CURRENT ROW AND 2 FOLLOWING) AS val
- FROM TEST
- ORDER BY id ASC;
- """,
- out=Csv("""
- "id","val"
- 1,3
- 2,4
- 3,4
- 4,4
- 5,"[NULL]"
- 6,"[NULL]"
- 7,"[NULL]"
- """))
-
- def test_first_non_null_partition(self):
- return DiffTestBlueprint(
- trace=TextProto(r"""
-
- """),
- query="""
- CREATE TABLE TEST(id INTEGER, part TEXT, val INTEGER);
-
- INSERT INTO TEST
- VALUES
- (1, 'A', 1),
- (2, 'A', NULL),
- (3, 'A', 3),
- (4, 'B', NULL),
- (5, 'B', 5),
- (6, 'B', NULL),
- (7, 'B', 7);
-
- SELECT id, LAST_NON_NULL(val) OVER (PARTITION BY part ORDER BY id ASC) AS val
- FROM TEST
- ORDER BY id ASC;
- """,
- out=Csv("""
- "id","val"
- 1,1
- 2,1
- 3,3
- 4,"[NULL]"
- 5,5
- 6,5
- 7,7
- """))
-
- def test_first_non_null(self):
- return DiffTestBlueprint(
- trace=TextProto(r"""
-
- """),
- query="""
- CREATE TABLE TEST(id INTEGER, val INTEGER);
-
- INSERT INTO TEST
- VALUES (1, 1), (2, NULL), (3, 3), (4, 4), (5, NULL), (6, NULL), (7, NULL);
-
- SELECT id, LAST_NON_NULL(val) OVER (ORDER BY id ASC) AS val
- FROM TEST
- ORDER BY id ASC;
- """,
- out=Csv("""
- "id","val"
- 1,1
- 2,1
- 3,3
- 4,4
- 5,4
- 6,4
- 7,4
- """))
diff --git a/test/trace_processor/include_index.py b/test/trace_processor/include_index.py
deleted file mode 100644
index 38b06e9..0000000
--- a/test/trace_processor/include_index.py
+++ /dev/null
@@ -1,147 +0,0 @@
-#!/usr/bin/env python3
-# Copyright (C) 2023 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 a
-#
-# 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.
-from typing import List
-from python.generators.diff_tests import testing
-
-
-from android.tests import Android
-from android.tests_bugreport import AndroidBugreport
-from android.tests_games import AndroidGames
-from atrace.tests import Atrace
-from atrace.tests_error_handling import AtraceErrorHandling
-from camera.tests import Camera
-from chrome.tests_scroll_jank import ChromeScrollJank
-from chrome.tests_touch_gesture import ChromeTouchGesture
-from chrome.tests_memory_snapshots import ChromeMemorySnapshots
-from chrome.tests_rail_modes import ChromeRailModes
-from chrome.tests_processes import ChromeProcesses
-from chrome.tests_args import ChromeArgs
-from chrome.tests import Chrome
-from cros.tests import Cros
-from dynamic.tests import Dynamic
-from fs.tests import Fs
-from fuchsia.tests import Fuchsia
-from functions.tests import Functions
-from graphics.tests import Graphics
-from graphics.tests_gpu_trace import GraphicsGpuTrace
-from graphics.tests_drm_related_ftrace_events import GraphicsDrmRelatedFtraceEvents
-from ufs.tests import Ufs
-from memory.tests import Memory
-from memory.tests_metrics import MemoryMetrics
-from network.tests import Network
-from parsing.tests import Parsing
-from parsing.tests_rss_stats import ParsingRssStats
-from parsing.tests_memory_counters import ParsingMemoryCounters
-from performance.tests import Performance
-from power.tests import Power
-from power.tests_power_rails import PowerPowerRails
-from power.tests_voltage_and_scaling import PowerVoltageAndScaling
-from power.tests_energy_breakdown import PowerEnergyBreakdown
-from process_tracking.tests import ProcessTracking
-from profiling.tests import Profiling
-from profiling.tests_heap_profiling import ProfilingHeapProfiling
-from profiling.tests_heap_graph import ProfilingHeapGraph
-from profiling.tests_metrics import ProfilingMetrics
-from profiling.tests_llvm_symbolizer import ProfilingLlvmSymbolizer
-from scheduler.tests import Scheduler
-from smoke.tests import Smoke
-from smoke.tests_json import SmokeJson
-from smoke.tests_sched_events import SmokeSchedEvents
-from smoke.tests_compute_metrics import SmokeComputeMetrics
-from span_join.tests_outer_join import SpanJoinOuterJoin
-from span_join.tests_left_join import SpanJoinLeftJoin
-from span_join.tests_smoke import SpanJoinSmoke
-from span_join.tests_regression import SpanJoinRegression
-from startup.tests import Startup
-from startup.tests_broadcasts import StartupBroadcasts
-from startup.tests_metrics import StartupMetrics
-from startup.tests_lock_contention import StartupLockContention
-from tables.tests import Tables
-from tables.tests_counters import TablesCounters
-from tables.tests_sched import TablesSched
-from track_event.tests import TrackEvent
-from translation.tests import Translation
-
-def fetch_all_diff_tests(index_path: str) -> List['testing.TestCase']:
- return [
- *Android(index_path, 'android', 'Android').fetch(),
- *AndroidBugreport(index_path, 'android', 'AndroidBugreport').fetch(),
- *AndroidGames(index_path, 'android', 'AndroidGames').fetch(),
- *Atrace(index_path, 'atrace', 'Atrace').fetch(),
- *AtraceErrorHandling(index_path, 'atrace', 'AtraceErrorHandling').fetch(),
- *Camera(index_path, 'camera', 'Camera').fetch(),
- *ChromeScrollJank(index_path, 'chrome', 'ChromeScrollJank').fetch(),
- *ChromeTouchGesture(index_path, 'chrome', 'ChromeTouchGesture').fetch(),
- *ChromeMemorySnapshots(index_path, 'chrome',
- 'ChromeMemorySnapshots').fetch(),
- *ChromeRailModes(index_path, 'chrome', 'ChromeRailModes').fetch(),
- *ChromeProcesses(index_path, 'chrome', 'ChromeProcesses').fetch(),
- *ChromeArgs(index_path, 'chrome', 'ChromeArgs').fetch(),
- *Chrome(index_path, 'chrome', 'Chrome').fetch(),
- *Cros(index_path, 'cros', 'Cros').fetch(),
- *Dynamic(index_path, 'dynamic', 'Dynamic').fetch(),
- *Fs(index_path, 'fs', 'Fs').fetch(),
- *Fuchsia(index_path, 'fuchsia', 'Fuchsia').fetch(),
- *Functions(index_path, 'functions', 'Functions').fetch(),
- *Graphics(index_path, 'graphics', 'Graphics').fetch(),
- *GraphicsGpuTrace(index_path, 'graphics', 'GraphicsGpuTrace').fetch(),
- *GraphicsDrmRelatedFtraceEvents(index_path, 'graphics',
- 'GraphicsDrmRelatedFtraceEvents').fetch(),
- *Ufs(index_path, 'ufs', 'Ufs').fetch(),
- *Memory(index_path, 'memory', 'Memory').fetch(),
- *MemoryMetrics(index_path, 'memory', 'MemoryMetrics').fetch(),
- *Network(index_path, 'network', 'Network').fetch(),
- *Parsing(index_path, 'parsing', 'Parsing').fetch(),
- *ParsingRssStats(index_path, 'parsing', 'ParsingRssStats').fetch(),
- *ParsingMemoryCounters(index_path, 'parsing',
- 'ParsingMemoryCounters').fetch(),
- *Performance(index_path, 'performance', 'Performance').fetch(),
- *Power(index_path, 'power', 'Power').fetch(),
- *PowerPowerRails(index_path, 'power', 'PowerPowerRails').fetch(),
- *PowerVoltageAndScaling(index_path, 'power',
- 'PowerVoltageAndScaling').fetch(),
- *PowerEnergyBreakdown(index_path, 'power',
- 'PowerEnergyBreakdown').fetch(),
- *ProcessTracking(index_path, 'process_tracking',
- 'ProcessTracking').fetch(),
- *Profiling(index_path, 'profiling', 'Profiling').fetch(),
- *ProfilingHeapProfiling(index_path, 'profiling',
- 'ProfilingHeapProfiling').fetch(),
- *ProfilingHeapGraph(index_path, 'profiling',
- 'ProfilingHeapGraph').fetch(),
- *ProfilingMetrics(index_path, 'profiling', 'ProfilingMetrics').fetch(),
- *ProfilingLlvmSymbolizer(index_path, 'profiling',
- 'ProfilingLlvmSymbolizer').fetch(),
- *Scheduler(index_path, 'scheduler', 'Scheduler').fetch(),
- *Smoke(index_path, 'smoke', 'Smoke').fetch(),
- *SmokeJson(index_path, 'smoke', 'SmokeJson').fetch(),
- *SmokeSchedEvents(index_path, 'smoke', 'SmokeSchedEvents').fetch(),
- *SmokeComputeMetrics(index_path, 'smoke', 'SmokeComputeMetrics').fetch(),
- *SpanJoinOuterJoin(index_path, 'span_join', 'SpanJoinOuterJoin').fetch(),
- *SpanJoinLeftJoin(index_path, 'span_join', 'SpanJoinLeftJoin').fetch(),
- *SpanJoinSmoke(index_path, 'span_join', 'SpanJoinSmoke').fetch(),
- *SpanJoinRegression(index_path, 'span_join',
- 'SpanJoinRegression').fetch(),
- *Startup(index_path, 'startup', 'Startup').fetch(),
- *StartupBroadcasts(index_path, 'startup', 'StartupBroadcasts').fetch(),
- *StartupMetrics(index_path, 'startup', 'StartupMetrics').fetch(),
- *StartupLockContention(index_path, 'startup',
- 'StartupLockContention').fetch(),
- *Tables(index_path, 'tables', 'Tables').fetch(),
- *TablesCounters(index_path, 'tables', 'TablesCounters').fetch(),
- *TablesSched(index_path, 'tables', 'TablesSched').fetch(),
- *TrackEvent(index_path, 'track_event', 'TrackEvent').fetch(),
- *Translation(index_path, 'translation', 'Translation').fetch(),
- ]
diff --git a/tools/cpu_profile b/tools/cpu_profile
index df93bba..ccce9d2 100755
--- a/tools/cpu_profile
+++ b/tools/cpu_profile
@@ -37,18 +37,18 @@
# ----- Amalgamator: begin of python/perfetto/prebuilts/manifests/traceconv.py
-# This file has been generated by: /usr/local/google/home/lalitm/perfetto/tools/roll-prebuilts v31.0
+# This file has been generated by: tools/roll-prebuilts v32.1
TRACECONV_MANIFEST = [{
'arch':
'mac-amd64',
'file_name':
'traceconv',
'file_size':
- 7772872,
+ 7805800,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/mac-amd64/traceconv',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/mac-amd64/traceconv',
'sha256':
- 'a987cfd2e722994a5911032d046ec2d0b912845a83b093226c3fccd5e316ed01',
+ '0ea0a025cedab2b6cfe605f127daa2a12c98f051f9314c9ab8a59c55306b36c2',
'platform':
'darwin',
'machine': ['x86_64']
@@ -58,11 +58,11 @@
'file_name':
'traceconv',
'file_size':
- 6554552,
+ 6587480,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/mac-arm64/traceconv',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/mac-arm64/traceconv',
'sha256':
- '972610d249990d4b03de50bece4a7adf03ebd6b3cc3c2c10feb7bb6561c1fce1',
+ '85bb771be931fe90c9da122f412efb884ff8bd2bd2eaa3f083c2c6ea5dd9205a',
'platform':
'darwin',
'machine': ['arm64']
@@ -72,11 +72,11 @@
'file_name':
'traceconv',
'file_size':
- 8073432,
+ 8100352,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/linux-amd64/traceconv',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/linux-amd64/traceconv',
'sha256':
- 'e34f6ddd91ad0de62bfbef76303f2a94136470fe5a4f679af2f5b8898548ac13',
+ 'c201fe1c30a00c0e7a1eac169ab91f05d6468a485b0791db3c439888e9334fde',
'platform':
'linux',
'machine': ['x86_64']
@@ -86,11 +86,11 @@
'file_name':
'traceconv',
'file_size':
- 6677612,
+ 6674592,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/linux-arm/traceconv',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/linux-arm/traceconv',
'sha256':
- '55c9cd6e5c5bc65210068a173b0c16ad3323faaba0fccec20247dca5bd3b913d',
+ '5a0bc650e39a289b2051a55ac3e7e2c05cb56f053e2b8dc31bb183e75892be28',
'platform':
'linux',
'machine': ['armv6l', 'armv7l', 'armv8l']
@@ -100,11 +100,11 @@
'file_name':
'traceconv',
'file_size':
- 7543648,
+ 7554976,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/linux-arm64/traceconv',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/linux-arm64/traceconv',
'sha256':
- '2477857470f613410f6151acb06b6b6a067ef8612d619eee86dd2a3b8aac2a3e',
+ 'f2a3d4c3a7e6af760a4a03fe70e6c32479260bd6487f4b89d49412231c42e197',
'platform':
'linux',
'machine': ['aarch64']
@@ -114,55 +114,55 @@
'file_name':
'traceconv',
'file_size':
- 5360020,
+ 5355916,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/android-arm/traceconv',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/android-arm/traceconv',
'sha256':
- '60cecbd8d9b6357bb89929fa5afa1eba6c1d46d621e62ee558509424d88bd53d'
+ '58101b41d4930abfebef729d2657252ca6f2c3cff4ebcb838165d606808ff0ad'
}, {
'arch':
'android-arm64',
'file_name':
'traceconv',
'file_size':
- 6769184,
+ 6773264,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/android-arm64/traceconv',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/android-arm64/traceconv',
'sha256':
- 'e373cbed4502977290abe3e246132ced538fca33881058e6049676ef9c613dd9'
+ 'a7fc9fb02e94c92821d36cd0fb90bff75cbe32688e5f2678426b796a5f86ba53'
}, {
'arch':
'android-x86',
'file_name':
'traceconv',
'file_size':
- 7682412,
+ 7670116,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/android-x86/traceconv',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/android-x86/traceconv',
'sha256':
- 'dcaa5d156247433537d59ad33238feb23dc0f97ba64c51581360f25ac0fc16a8'
+ '1a64a26516b5a0db710532b4a6f495d4f83153df56b2847093d1b6d17e749b6b'
}, {
'arch':
'android-x64',
'file_name':
'traceconv',
'file_size':
- 7903832,
+ 7916104,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/android-x64/traceconv',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/android-x64/traceconv',
'sha256':
- 'b73b8d398019b2a349d3748b4fe4096a069c6362697375d3c2668cf79ef1bb38'
+ '9badc970a3573a038977a7fef59b4d57797ef57e2e4e2d5f23804a0bfcdf1585'
}, {
'arch':
'windows-amd64',
'file_name':
'traceconv.exe',
'file_size':
- 7188992,
+ 7217664,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/windows-amd64/traceconv.exe',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/windows-amd64/traceconv.exe',
'sha256':
- '9cbdfcad3b5f2164d0c9e79d4f8b749db693814ae97fba038385d2e6f0111f72',
+ 'd2b9c3ca448c9815c2393716758e85d4d2c8033ce0531b4551703a2b7e3d43a0',
'platform':
'win32',
'machine': ['amd64']
@@ -342,7 +342,7 @@
traces if requested.
For usage instructions, please see:
- https://perfetto.dev/docs/quickstart/cpu-profiling
+ https://perfetto.dev/docs/quickstart/callstack-sampling
"""
parser = argparse.ArgumentParser(description=DESCRIPTION)
parser.add_argument(
@@ -361,6 +361,25 @@
metavar="DURATION",
type=int,
default=0)
+ # Profiling using hardware counters.
+ parser.add_argument(
+ "-e",
+ "--event",
+ help="Use the specified hardware counter event for sampling.",
+ metavar="EVENT",
+ action="append",
+ # See: '//perfetto/protos/perfetto/trace/perfetto_trace.proto'.
+ choices=['HW_CPU_CYCLES', 'HW_INSTRUCTIONS', 'HW_CACHE_REFERENCES',
+ 'HW_CACHE_MISSES', 'HW_BRANCH_INSTRUCTIONS', 'HW_BRANCH_MISSES',
+ 'HW_BUS_CYCLES', 'HW_STALLED_CYCLES_FRONTEND',
+ 'HW_STALLED_CYCLES_BACKEND'],
+ default=[])
+ parser.add_argument(
+ "-k",
+ "--kernel-frames",
+ help="Collect kernel frames. Default: false.",
+ action="store_true",
+ default=False)
parser.add_argument(
"-n",
"--name",
@@ -372,7 +391,8 @@
"--partial-matching",
help="If set, enables \"partial matching\" on the strings in --names/-n."
"Processes that are already running when profiling is started, and whose "
- "names include any of the values in --names/-n as substrings will be profiled.",
+ "names include any of the values in --names/-n as substrings will be "
+ "profiled.",
action="store_true")
parser.add_argument(
"-c",
@@ -398,8 +418,11 @@
default=None)
args = parser.parse_args()
- if args.config is not None and args.name is not None:
- sys.exit("--name/-n should not be provided when --config/-c is provided.")
+ if args.config is not None:
+ if args.name is not None:
+ sys.exit("--name/-n should not be specified with --config/-c.")
+ elif args.event is not None:
+ sys.exit("-e/--event should not be specified with --config/-c.")
elif args.config is None and args.name is None:
sys.exit("One of --names/-n or --config/-c is required.")
@@ -407,7 +430,8 @@
def get_matching_processes(args, names_to_match):
- """Returns a list of currently-running processes whose names match `names_to_match`.
+ """Returns a list of currently-running processes whose names match
+ `names_to_match`.
Args:
args: The command-line arguments provided to this script.
@@ -434,7 +458,8 @@
def get_perfetto_config(args):
- """Returns a Perfetto config with CPU profiling enabled for the selected processes.
+ """Returns a Perfetto config with CPU profiling enabled for the selected
+ processes.
Args:
args: The command-line arguments provided to this script.
@@ -446,7 +471,7 @@
except IOError as error:
sys.exit("Unable to read config file: {}".format(error))
- CONFIG_INDENT = ' '
+ CONFIG_INDENT = ' '
CONFIG = textwrap.dedent('''\
buffers {{
size_kb: 2048
@@ -466,18 +491,6 @@
}}
}}
- data_sources {{
- config {{
- name: "linux.perf"
- target_buffer: 1
- perf_event_config {{
- all_cpus: true
- sampling_frequency: {frequency}
- {target_config}
- }}
- }}
- }}
-
duration_ms: {duration}
write_into_file: true
flush_timeout_ms: 30000
@@ -495,6 +508,35 @@
target_config = "\n".join(
[f'{CONFIG_INDENT}target_cmdline: "{p}"' for p in matching_processes])
+ events = args.event or ['SW_CPU_CLOCK']
+ for event in events:
+ CONFIG += (textwrap.dedent('''
+ data_sources {{
+ config {{
+ name: "linux.perf"
+ target_buffer: 1
+ perf_event_config {{
+ timebase {{
+ counter: %s
+ frequency: {frequency}
+ timestamp_clock: PERF_CLOCK_MONOTONIC
+ }}
+ callstack_sampling {{
+ scope {{
+ {target_config}
+ }}
+ kernel_frames: {kernel_config}
+ }}
+ }}
+ }}
+ }}
+ ''') % (event))
+
+ if args.kernel_frames:
+ kernel_config = "true"
+ else:
+ kernel_config = "false"
+
if not args.print_config:
print("Configured profiling for these processes:\n")
for matching_process in matching_processes:
@@ -504,7 +546,8 @@
config = CONFIG.format(
frequency=args.frequency,
duration=args.duration,
- target_config=target_config)
+ target_config=target_config,
+ kernel_config=kernel_config)
return config
@@ -524,7 +567,8 @@
def get_and_prepare_profile_target(args):
- """Returns the target where the trace/profile will be output. Creates a new directory if necessary.
+ """Returns the target where the trace/profile will be output. Creates a
+ new directory if necessary.
Args:
args: The command-line arguments provided to this script.
@@ -556,14 +600,23 @@
}
if not release_or_newer('R'):
sys.exit("This tool requires Android R+ to run.")
+
+ # Push configuration to the device.
+ tf = tempfile.NamedTemporaryFile()
+ tf.file.write(config.encode('utf-8'))
+ tf.file.flush()
+ profile_config_path = '/data/misc/perfetto-configs/config-' + UUID
+ adb_check_output(['adb', 'push', tf.name, profile_config_path])
+ tf.close()
+
+
profile_device_path = '/data/misc/perfetto-traces/profile-' + UUID
- perfetto_command = ('CONFIG=\'{}\'; echo ${{CONFIG}} | '
- 'perfetto --txt -c - -o {} -d')
+ perfetto_command = ('perfetto --txt -c {} -o {} -d')
try:
perfetto_pid = int(
adb_check_output([
'adb', 'exec-out',
- perfetto_command.format(config, profile_device_path)
+ perfetto_command.format(profile_config_path, profile_device_path)
]).strip())
except ValueError as error:
sys.exit("Unable to start profiling: {}".format(error))
@@ -593,6 +646,7 @@
profile_host_path = os.path.join(profile_target, 'raw-trace')
adb_check_output(['adb', 'pull', profile_device_path, profile_host_path])
+ adb_check_output(['adb', 'shell', 'rm', profile_config_path])
adb_check_output(['adb', 'shell', 'rm', profile_device_path])
@@ -623,7 +677,8 @@
def symbolize_trace(traceconv, profile_target):
- """Attempts symbolization of the recorded trace/profile, if symbols are available.
+ """Attempts symbolization of the recorded trace/profile, if symbols are
+ available.
Args:
traceconv: The path to the `traceconv` binary used for symbolization.
diff --git a/tools/gen_grpc_build_gn.py b/tools/gen_grpc_build_gn.py
new file mode 100755
index 0000000..706e062
--- /dev/null
+++ b/tools/gen_grpc_build_gn.py
@@ -0,0 +1,107 @@
+#!/usr/bin/env python3
+import json
+import os
+import subprocess
+import sys
+from typing import Any, Dict, List
+import yaml
+
+ROOT_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
+
+IGNORE_LIST = set([
+ 'grpcpp_channelz',
+ 'grpc++_reflection',
+ 'benchmark_helpers',
+ 'boringssl_test_util',
+])
+
+SOURCE_SET_TARGET = """
+source_set("{name}") {{
+ sources = {srcs}
+ public_deps = {deps}
+ public_configs = ["..:{config_name}"]
+ configs -= [ "//gn/standalone:extra_warnings" ]
+}}"""
+
+
+def grpc_relpath(*segments: str) -> str:
+ '''From path segments to GRPC root, returns the absolute path.'''
+ return os.path.join(ROOT_DIR, 'buildtools', 'grpc', 'src', *segments)
+
+
+GRPC_GN_HEADER = '''
+#
+# DO NOT EDIT. AUTOGENERATED file
+#
+# This file is generated with the command:
+# tools/gen_grpc_build_gn.py > buildtools/grpc/BUILD.gn
+#
+
+# Prevent the gRPC from being depended upon without explicitly being opted in.
+assert(enable_perfetto_grpc)
+'''
+
+GRPC_BUILD_YAML = grpc_relpath('build_autogenerated.yaml')
+ABSL_GEN_BUILD_YAML = grpc_relpath('src', 'abseil-cpp', 'gen_build_yaml.py')
+UPB_GEN_BUILD_YAML = grpc_relpath('src', 'upb', 'gen_build_yaml.py')
+BSSL_GEN_BUILD_YAML = grpc_relpath('src', 'boringssl', 'gen_build_yaml.py')
+
+
+def bazel_label_to_gn_target(dep: str):
+ '''Converts a Bazel label name into a gn target name.'''
+ if dep == 'libssl':
+ return 'boringssl'
+ return dep.replace('/', '_').replace(':', '_')
+
+
+def gen_grpc_dep_yaml(gen_path: str) -> Dict[str, Any]:
+ '''Invokes a gen_build_yaml.py file for creating YAML for gRPC deps.'''
+ return yaml.safe_load(subprocess.check_output(['python3', gen_path]))
+
+
+def yaml_to_gn_targets(desc: Dict[str, Any], build_type: str, config_name: str,
+ out: List[str]):
+ '''Given a gRPC YAML description of the build graph, generates GN targets.'''
+ for lib in desc['libs']:
+ if lib['build'] != build_type:
+ continue
+ if lib['name'] in IGNORE_LIST:
+ continue
+ srcs = json.dumps([f'src/{file}' for file in lib['src'] + lib['headers']])
+ deps = json.dumps(
+ [f':{bazel_label_to_gn_target(dep)}' for dep in lib.get('deps', [])])
+ source_set_target = SOURCE_SET_TARGET.format(
+ name=bazel_label_to_gn_target(lib['name']),
+ config_name=config_name,
+ srcs=srcs,
+ deps=deps)
+ out.append(source_set_target)
+
+
+def main():
+ out: List[str] = []
+
+ # Generate absl rules
+ absl_yaml = gen_grpc_dep_yaml(ABSL_GEN_BUILD_YAML)
+ yaml_to_gn_targets(absl_yaml, 'private', 'grpc_absl_config', out)
+
+ # Generate upb rules
+ upb_yaml = gen_grpc_dep_yaml(UPB_GEN_BUILD_YAML)
+ yaml_to_gn_targets(upb_yaml, 'all', 'grpc_upb_config', out)
+
+ # Generate boringssl rules
+ boringssl_yaml = gen_grpc_dep_yaml(BSSL_GEN_BUILD_YAML)
+ yaml_to_gn_targets(boringssl_yaml, 'private', 'grpc_boringssl_config', out)
+
+ # Generate grpc rules
+ with open(GRPC_BUILD_YAML, 'r', encoding='utf-8') as f:
+ grpc_yaml = yaml.safe_load(f.read())
+ yaml_to_gn_targets(grpc_yaml, 'all', 'grpc_internal_config', out)
+
+ print(GRPC_GN_HEADER)
+ print('\n'.join(out))
+ return 0
+
+
+if __name__ == '__main__':
+ sys.exit(main())
diff --git a/tools/heap_profile b/tools/heap_profile
index 910216b..dd597a8 100755
--- a/tools/heap_profile
+++ b/tools/heap_profile
@@ -34,18 +34,18 @@
# ----- Amalgamator: begin of python/perfetto/prebuilts/manifests/traceconv.py
-# This file has been generated by: /usr/local/google/home/lalitm/perfetto/tools/roll-prebuilts v31.0
+# This file has been generated by: tools/roll-prebuilts v32.1
TRACECONV_MANIFEST = [{
'arch':
'mac-amd64',
'file_name':
'traceconv',
'file_size':
- 7772872,
+ 7805800,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/mac-amd64/traceconv',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/mac-amd64/traceconv',
'sha256':
- 'a987cfd2e722994a5911032d046ec2d0b912845a83b093226c3fccd5e316ed01',
+ '0ea0a025cedab2b6cfe605f127daa2a12c98f051f9314c9ab8a59c55306b36c2',
'platform':
'darwin',
'machine': ['x86_64']
@@ -55,11 +55,11 @@
'file_name':
'traceconv',
'file_size':
- 6554552,
+ 6587480,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/mac-arm64/traceconv',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/mac-arm64/traceconv',
'sha256':
- '972610d249990d4b03de50bece4a7adf03ebd6b3cc3c2c10feb7bb6561c1fce1',
+ '85bb771be931fe90c9da122f412efb884ff8bd2bd2eaa3f083c2c6ea5dd9205a',
'platform':
'darwin',
'machine': ['arm64']
@@ -69,11 +69,11 @@
'file_name':
'traceconv',
'file_size':
- 8073432,
+ 8100352,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/linux-amd64/traceconv',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/linux-amd64/traceconv',
'sha256':
- 'e34f6ddd91ad0de62bfbef76303f2a94136470fe5a4f679af2f5b8898548ac13',
+ 'c201fe1c30a00c0e7a1eac169ab91f05d6468a485b0791db3c439888e9334fde',
'platform':
'linux',
'machine': ['x86_64']
@@ -83,11 +83,11 @@
'file_name':
'traceconv',
'file_size':
- 6677612,
+ 6674592,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/linux-arm/traceconv',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/linux-arm/traceconv',
'sha256':
- '55c9cd6e5c5bc65210068a173b0c16ad3323faaba0fccec20247dca5bd3b913d',
+ '5a0bc650e39a289b2051a55ac3e7e2c05cb56f053e2b8dc31bb183e75892be28',
'platform':
'linux',
'machine': ['armv6l', 'armv7l', 'armv8l']
@@ -97,11 +97,11 @@
'file_name':
'traceconv',
'file_size':
- 7543648,
+ 7554976,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/linux-arm64/traceconv',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/linux-arm64/traceconv',
'sha256':
- '2477857470f613410f6151acb06b6b6a067ef8612d619eee86dd2a3b8aac2a3e',
+ 'f2a3d4c3a7e6af760a4a03fe70e6c32479260bd6487f4b89d49412231c42e197',
'platform':
'linux',
'machine': ['aarch64']
@@ -111,55 +111,55 @@
'file_name':
'traceconv',
'file_size':
- 5360020,
+ 5355916,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/android-arm/traceconv',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/android-arm/traceconv',
'sha256':
- '60cecbd8d9b6357bb89929fa5afa1eba6c1d46d621e62ee558509424d88bd53d'
+ '58101b41d4930abfebef729d2657252ca6f2c3cff4ebcb838165d606808ff0ad'
}, {
'arch':
'android-arm64',
'file_name':
'traceconv',
'file_size':
- 6769184,
+ 6773264,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/android-arm64/traceconv',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/android-arm64/traceconv',
'sha256':
- 'e373cbed4502977290abe3e246132ced538fca33881058e6049676ef9c613dd9'
+ 'a7fc9fb02e94c92821d36cd0fb90bff75cbe32688e5f2678426b796a5f86ba53'
}, {
'arch':
'android-x86',
'file_name':
'traceconv',
'file_size':
- 7682412,
+ 7670116,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/android-x86/traceconv',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/android-x86/traceconv',
'sha256':
- 'dcaa5d156247433537d59ad33238feb23dc0f97ba64c51581360f25ac0fc16a8'
+ '1a64a26516b5a0db710532b4a6f495d4f83153df56b2847093d1b6d17e749b6b'
}, {
'arch':
'android-x64',
'file_name':
'traceconv',
'file_size':
- 7903832,
+ 7916104,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/android-x64/traceconv',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/android-x64/traceconv',
'sha256':
- 'b73b8d398019b2a349d3748b4fe4096a069c6362697375d3c2668cf79ef1bb38'
+ '9badc970a3573a038977a7fef59b4d57797ef57e2e4e2d5f23804a0bfcdf1585'
}, {
'arch':
'windows-amd64',
'file_name':
'traceconv.exe',
'file_size':
- 7188992,
+ 7217664,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/windows-amd64/traceconv.exe',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/windows-amd64/traceconv.exe',
'sha256':
- '9cbdfcad3b5f2164d0c9e79d4f8b749db693814ae97fba038385d2e6f0111f72',
+ 'd2b9c3ca448c9815c2393716758e85d4d2c8033ce0531b4551703a2b7e3d43a0',
'platform':
'win32',
'machine': ['amd64']
diff --git a/tools/install-build-deps b/tools/install-build-deps
index 3ad1026..ddafffc 100755
--- a/tools/install-build-deps
+++ b/tools/install-build-deps
@@ -14,6 +14,7 @@
# limitations under the License.
import argparse
+import dataclasses as dc
import hashlib
import logging
import os
@@ -27,6 +28,7 @@
from collections import namedtuple
from platform import system, machine
+
# The format for the deps below is the following:
# (target_folder, source_url, sha1, target_os, target_arch)
# |source_url| can be either a git repo or a http url.
@@ -41,9 +43,15 @@
# in both cases the dep only applies on matching platforms
# |target_arch| can be 'all' when 'target_os' is not 'all' for example in the
# case of MacOS universal binaries.
-Dependency = namedtuple(
- 'Dependency',
- ['target_folder', 'source_url', 'checksum', 'target_os', 'target_arch'])
+@dc.dataclass
+class Dependency:
+ target_folder: str
+ source_url: str
+ checksum: str
+ target_os: str
+ target_arch: str
+ submodules: bool = False
+
# This is to remove old directories when build tools get {re,}moved. This is to
# avoid accidentally referring to stale dir in custom user scripts.
@@ -146,8 +154,8 @@
# Keep in sync with Chromium's //third_party/protobuf.
Dependency(
'buildtools/protobuf',
- 'https://chromium.googlesource.com/external/github.com/google/protobuf.git',
- '6a59a2ad1f61d9696092f79b6d74368b4d7970a3', # refs/tags/v3.9.0
+ 'https://chromium.googlesource.com/external/github.com/protocolbuffers/protobuf.git',
+ 'fe271ab76f2ad2b2b28c10443865d2af21e27e0e', # refs/tags/v3.20.3
'all',
'all'),
@@ -357,6 +365,14 @@
TYPEFACES_SHA256, TYPEFACES_SHA256, 'all', 'all')
]
+# Dependencies to build gRPC.
+GRPC_DEPS = [
+ Dependency(
+ 'buildtools/grpc/src',
+ 'https://chromium.googlesource.com/external/github.com/grpc/grpc.git',
+ '6943c1841f57cac4666b165aea4f618fe73b3ff1', 'all', 'all', True),
+]
+
# Sysroots required to cross-compile Linux targets (linux-arm{,64}).
# These are taken from Chromium's build/linux/sysroot_scripts/sysroots.json.
BUILD_DEPS_LINUX_CROSS_SYSROOTS = [
@@ -467,6 +483,9 @@
subprocess.check_call(
['git', 'fetch', '--quiet', '--depth', '1', git_url, revision], cwd=path)
subprocess.check_call(['git', 'checkout', revision, '--quiet'], cwd=path)
+ subprocess.check_call(
+ ['git', 'submodule', 'update', '--init', '--recursive', '--quiet'],
+ cwd=path)
assert (IsGitRepoCheckoutOutAtRevision(path, revision))
return True
@@ -533,6 +552,10 @@
'--ui',
action='store_true',
help='Node and NPM packages to Build the Web-based UI via ./ui/build')
+ parser.add_argument(
+ '--grpc',
+ action='store_true',
+ help='Packages to build gRPC')
parser.add_argument('--check-only')
parser.add_argument('--filter', action='append')
parser.add_argument('--verify', help='Check all URLs', action='store_true')
@@ -557,6 +580,8 @@
deps += BUILD_DEPS_LINUX_CROSS_SYSROOTS
if args.ui:
deps += UI_DEPS
+ if args.grpc:
+ deps += GRPC_DEPS
deps_updated = False
nodejs_updated = False
diff --git a/tools/record_android_trace b/tools/record_android_trace
index 9c86659..f14be02 100755
--- a/tools/record_android_trace
+++ b/tools/record_android_trace
@@ -33,18 +33,18 @@
# ----- Amalgamator: begin of python/perfetto/prebuilts/manifests/tracebox.py
-# This file has been generated by: /usr/local/google/home/lalitm/perfetto/tools/roll-prebuilts v31.0
+# This file has been generated by: tools/roll-prebuilts v32.1
TRACEBOX_MANIFEST = [{
'arch':
'mac-amd64',
'file_name':
'tracebox',
'file_size':
- 1431944,
+ 1464912,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/mac-amd64/tracebox',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/mac-amd64/tracebox',
'sha256':
- '9ba2bd56eac2464060158fc6a972709663102fd79e210036558a79e0450a39a7',
+ '453523bcbdde071447192afbd30bb3479bf7b5a6c82759eedad7228760ba91de',
'platform':
'darwin',
'machine': ['x86_64']
@@ -54,11 +54,11 @@
'file_name':
'tracebox',
'file_size':
- 1325592,
+ 1358808,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/mac-arm64/tracebox',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/mac-arm64/tracebox',
'sha256':
- '2bc59074dc169bd3ca0b58fc8e6536b5a8d35f99ef6d44ce467719b888f5f65e',
+ '2b843df989889e728a002f9829b18d1ce3ce5a7bb4b267ee3ea108f1d67606ad',
'platform':
'darwin',
'machine': ['arm64']
@@ -68,11 +68,11 @@
'file_name':
'tracebox',
'file_size':
- 2140080,
+ 2176672,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/linux-amd64/tracebox',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/linux-amd64/tracebox',
'sha256':
- 'ee12c839586f19d024c6de78825b416fcb7d9a6d4fe6e9266e239812ec63e188',
+ '8ecb2d40b77d846f8d849913ddf5c6629d67a55c4891984d4cd236822d3655a8',
'platform':
'linux',
'machine': ['x86_64']
@@ -82,11 +82,11 @@
'file_name':
'tracebox',
'file_size':
- 1286400,
+ 1306960,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/linux-arm/tracebox',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/linux-arm/tracebox',
'sha256':
- 'e4b76213b71d192a6155f576ccf265b9f2605090eff01444216fa49e3f06c40c',
+ '023c81e41ea8d7548f2e749bbbaaf4d19036d719d66033036a54aa0c2b14f8d4',
'platform':
'linux',
'machine': ['armv6l', 'armv7l', 'armv8l']
@@ -96,11 +96,11 @@
'file_name':
'tracebox',
'file_size':
- 2070760,
+ 2105360,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/linux-arm64/tracebox',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/linux-arm64/tracebox',
'sha256':
- '653469e497c7f021c51220b2b3f0a70efce35dcb4ca897bbf09e24a89af92aea',
+ '1ae9264b304a6336dcdaa938c7eb0aeffd3689149fcd1e10ac67c6d995c8e54f',
'platform':
'linux',
'machine': ['aarch64']
@@ -110,44 +110,44 @@
'file_name':
'tracebox',
'file_size':
- 1157076,
+ 1181652,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/android-arm/tracebox',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/android-arm/tracebox',
'sha256':
- '6f610486d0ee1d052a21d6c16491a2c373634bbfa5374fed01026eb2767c05f7'
+ 'f7704023112300f74d351cc62c5c3d1fa386e749013b8cdf74678dfd9731c066'
}, {
'arch':
'android-arm64',
'file_name':
'tracebox',
'file_size':
- 1768104,
+ 1800872,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/android-arm64/tracebox',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/android-arm64/tracebox',
'sha256':
- 'b30ca03fa0cb1261386b5d6b01161c275bf68026e894bf5d74781abf8f78acef'
+ '18ae4f02caac24282111dc605d287f29470c2af5f93e49fdb7ca9fe1282b392a'
}, {
'arch':
'android-x86',
'file_name':
'tracebox',
'file_size':
- 1755052,
+ 1787820,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/android-x86/tracebox',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/android-x86/tracebox',
'sha256':
- '781ed489fe91aad98fc72f9d0faf69c62323feaac8ae0ce813fbfe0274789144'
+ '50a00e310e16f087b508ef96ff2ca0f6c49b90190ec07fa68953203419507ced'
}, {
'arch':
'android-x64',
'file_name':
'tracebox',
'file_size':
- 2038440,
+ 2071208,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/android-x64/tracebox',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/android-x64/tracebox',
'sha256':
- 'e58167092e4ec060efc152ace675175f04af57c564ec2ca38704fa65af8a7b25'
+ '84d6c3996dfe0728d4a8df974fd17ccee08aea91edd46724914e45ba6f1b95bd'
}]
# ----- Amalgamator: end of python/perfetto/prebuilts/manifests/tracebox.py
diff --git a/tools/trace_processor b/tools/trace_processor
index c703ea0..753eda3 100755
--- a/tools/trace_processor
+++ b/tools/trace_processor
@@ -30,18 +30,18 @@
# ----- Amalgamator: begin of python/perfetto/prebuilts/manifests/trace_processor_shell.py
-# This file has been generated by: /usr/local/google/home/lalitm/perfetto/tools/roll-prebuilts v31.0
+# This file has been generated by: tools/roll-prebuilts v32.1
TRACE_PROCESSOR_SHELL_MANIFEST = [{
'arch':
'mac-amd64',
'file_name':
'trace_processor_shell',
'file_size':
- 8516960,
+ 8566376,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/mac-amd64/trace_processor_shell',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/mac-amd64/trace_processor_shell',
'sha256':
- 'e15e409929d3c140ce82f69ad3f0b0634a4d9b765a1a61f03d8ff29d87cb8f7f',
+ 'e918db13f3068de751bacd15fb8b3ff920cc6290508512e820186eed0150731b',
'platform':
'darwin',
'machine': ['x86_64']
@@ -51,11 +51,11 @@
'file_name':
'trace_processor_shell',
'file_size':
- 7270264,
+ 7286792,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/mac-arm64/trace_processor_shell',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/mac-arm64/trace_processor_shell',
'sha256':
- 'd500226e1d53c3e8db4f29f44df463139f8fbc81ba2364934f6a69e76d9d065d',
+ 'e98902c678b642773e867b9308e041ef9c37d07199077c4903e586ddb3ac6b7c',
'platform':
'darwin',
'machine': ['arm64']
@@ -65,11 +65,11 @@
'file_name':
'trace_processor_shell',
'file_size':
- 8944032,
+ 8976816,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/linux-amd64/trace_processor_shell',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/linux-amd64/trace_processor_shell',
'sha256':
- '5a2303c36e852f044962c502b9e24d1f5ffb468f25c4672cbe8e5dd9c345906c',
+ 'da6a99374f04cc10fd19dd5247a5d6ea9a0e6572a12b6f77de5c64827bc7c98c',
'platform':
'linux',
'machine': ['x86_64']
@@ -79,11 +79,11 @@
'file_name':
'trace_processor_shell',
'file_size':
- 7110964,
+ 7109580,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/linux-arm/trace_processor_shell',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/linux-arm/trace_processor_shell',
'sha256':
- '4646a44ccab1f28c29c045edda338ebbde2880d5431cc151a6003daf8efe8ddb',
+ 'd996276bb125c2d95b677e0c3326f8822947f9d2bedcdfec82581da36c50fa90',
'platform':
'linux',
'machine': ['armv6l', 'armv7l', 'armv8l']
@@ -93,11 +93,11 @@
'file_name':
'trace_processor_shell',
'file_size':
- 8380416,
+ 8395080,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/linux-arm64/trace_processor_shell',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/linux-arm64/trace_processor_shell',
'sha256':
- '130c60bebbbb338d8e9c250a5fbd526296d4cab49af08680fef5134cb6831130',
+ 'cd9d4dec964223549eb3e6580e1d4f72aa0dd8467ad0da22fcdf8b6c6b39ff34',
'platform':
'linux',
'machine': ['aarch64']
@@ -107,55 +107,55 @@
'file_name':
'trace_processor_shell',
'file_size':
- 5807408,
+ 5807400,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/android-arm/trace_processor_shell',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/android-arm/trace_processor_shell',
'sha256':
- '5d13bc0d37f3379a6fd0d66d8f98c36ec8bf80c133b7660ae8b7cbcfe41284f4'
+ 'a691c3b8c4f62dc73bd9e0538e812abe6b340b0ab7c8516d3395d7d726725305'
}, {
'arch':
'android-arm64',
'file_name':
'trace_processor_shell',
'file_size':
- 7458752,
+ 7471024,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/android-arm64/trace_processor_shell',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/android-arm64/trace_processor_shell',
'sha256':
- '3e038732d0ee77875e6376ddf0f804271c4e5337b76977e939c91a553621587a'
+ 'a2269b32897bc7c16426b0af6f213994b67df439386b5acd19fe67da56e574ad'
}, {
'arch':
'android-x86',
'file_name':
'trace_processor_shell',
'file_size':
- 8404228,
+ 8400124,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/android-x86/trace_processor_shell',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/android-x86/trace_processor_shell',
'sha256':
- '1a04a4d888dfa16a5baa36073df50f28ea9f5ed688fb59fe8ef24a9f3341ad77'
+ 'd4d999cd23b3fb3d288227bbb6c42ebed9ea664efda65c03bf1b3d527126517e'
}, {
'arch':
'android-x64',
'file_name':
'trace_processor_shell',
'file_size':
- 8744960,
+ 8757232,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/android-x64/trace_processor_shell',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/android-x64/trace_processor_shell',
'sha256':
- '45fe2744b60baac964c636304b4b83853405f7f4f7329b2764cf921d3d90a2b1'
+ '5ac30fa1e290a5d6a5f1ae648d0d2e42ebc4abd6be3594a9f8aa843841e26593'
}, {
'arch':
'windows-amd64',
'file_name':
'trace_processor_shell.exe',
'file_size':
- 8152064,
+ 8189952,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/windows-amd64/trace_processor_shell.exe',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/windows-amd64/trace_processor_shell.exe',
'sha256':
- '6d5e873b65ea68ec5ddf51a02a049f350e9da4f5f78cc7294d0bbf95f7673ea9',
+ 'f11b220447ecf9a7b6f4394443c915f1dea92a2316b3c35da823e6e42dfacd9d',
'platform':
'win32',
'machine': ['amd64']
diff --git a/tools/tracebox b/tools/tracebox
index 60a4cb9..e7ac233 100755
--- a/tools/tracebox
+++ b/tools/tracebox
@@ -30,18 +30,18 @@
# ----- Amalgamator: begin of python/perfetto/prebuilts/manifests/tracebox.py
-# This file has been generated by: /usr/local/google/home/lalitm/perfetto/tools/roll-prebuilts v31.0
+# This file has been generated by: tools/roll-prebuilts v32.1
TRACEBOX_MANIFEST = [{
'arch':
'mac-amd64',
'file_name':
'tracebox',
'file_size':
- 1431944,
+ 1464912,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/mac-amd64/tracebox',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/mac-amd64/tracebox',
'sha256':
- '9ba2bd56eac2464060158fc6a972709663102fd79e210036558a79e0450a39a7',
+ '453523bcbdde071447192afbd30bb3479bf7b5a6c82759eedad7228760ba91de',
'platform':
'darwin',
'machine': ['x86_64']
@@ -51,11 +51,11 @@
'file_name':
'tracebox',
'file_size':
- 1325592,
+ 1358808,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/mac-arm64/tracebox',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/mac-arm64/tracebox',
'sha256':
- '2bc59074dc169bd3ca0b58fc8e6536b5a8d35f99ef6d44ce467719b888f5f65e',
+ '2b843df989889e728a002f9829b18d1ce3ce5a7bb4b267ee3ea108f1d67606ad',
'platform':
'darwin',
'machine': ['arm64']
@@ -65,11 +65,11 @@
'file_name':
'tracebox',
'file_size':
- 2140080,
+ 2176672,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/linux-amd64/tracebox',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/linux-amd64/tracebox',
'sha256':
- 'ee12c839586f19d024c6de78825b416fcb7d9a6d4fe6e9266e239812ec63e188',
+ '8ecb2d40b77d846f8d849913ddf5c6629d67a55c4891984d4cd236822d3655a8',
'platform':
'linux',
'machine': ['x86_64']
@@ -79,11 +79,11 @@
'file_name':
'tracebox',
'file_size':
- 1286400,
+ 1306960,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/linux-arm/tracebox',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/linux-arm/tracebox',
'sha256':
- 'e4b76213b71d192a6155f576ccf265b9f2605090eff01444216fa49e3f06c40c',
+ '023c81e41ea8d7548f2e749bbbaaf4d19036d719d66033036a54aa0c2b14f8d4',
'platform':
'linux',
'machine': ['armv6l', 'armv7l', 'armv8l']
@@ -93,11 +93,11 @@
'file_name':
'tracebox',
'file_size':
- 2070760,
+ 2105360,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/linux-arm64/tracebox',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/linux-arm64/tracebox',
'sha256':
- '653469e497c7f021c51220b2b3f0a70efce35dcb4ca897bbf09e24a89af92aea',
+ '1ae9264b304a6336dcdaa938c7eb0aeffd3689149fcd1e10ac67c6d995c8e54f',
'platform':
'linux',
'machine': ['aarch64']
@@ -107,44 +107,44 @@
'file_name':
'tracebox',
'file_size':
- 1157076,
+ 1181652,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/android-arm/tracebox',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/android-arm/tracebox',
'sha256':
- '6f610486d0ee1d052a21d6c16491a2c373634bbfa5374fed01026eb2767c05f7'
+ 'f7704023112300f74d351cc62c5c3d1fa386e749013b8cdf74678dfd9731c066'
}, {
'arch':
'android-arm64',
'file_name':
'tracebox',
'file_size':
- 1768104,
+ 1800872,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/android-arm64/tracebox',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/android-arm64/tracebox',
'sha256':
- 'b30ca03fa0cb1261386b5d6b01161c275bf68026e894bf5d74781abf8f78acef'
+ '18ae4f02caac24282111dc605d287f29470c2af5f93e49fdb7ca9fe1282b392a'
}, {
'arch':
'android-x86',
'file_name':
'tracebox',
'file_size':
- 1755052,
+ 1787820,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/android-x86/tracebox',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/android-x86/tracebox',
'sha256':
- '781ed489fe91aad98fc72f9d0faf69c62323feaac8ae0ce813fbfe0274789144'
+ '50a00e310e16f087b508ef96ff2ca0f6c49b90190ec07fa68953203419507ced'
}, {
'arch':
'android-x64',
'file_name':
'tracebox',
'file_size':
- 2038440,
+ 2071208,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/android-x64/tracebox',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/android-x64/tracebox',
'sha256':
- 'e58167092e4ec060efc152ace675175f04af57c564ec2ca38704fa65af8a7b25'
+ '84d6c3996dfe0728d4a8df974fd17ccee08aea91edd46724914e45ba6f1b95bd'
}]
# ----- Amalgamator: end of python/perfetto/prebuilts/manifests/tracebox.py
diff --git a/tools/traceconv b/tools/traceconv
index 1079ba0..1e9c610 100755
--- a/tools/traceconv
+++ b/tools/traceconv
@@ -30,18 +30,18 @@
# ----- Amalgamator: begin of python/perfetto/prebuilts/manifests/traceconv.py
-# This file has been generated by: /usr/local/google/home/lalitm/perfetto/tools/roll-prebuilts v31.0
+# This file has been generated by: tools/roll-prebuilts v32.1
TRACECONV_MANIFEST = [{
'arch':
'mac-amd64',
'file_name':
'traceconv',
'file_size':
- 7772872,
+ 7805800,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/mac-amd64/traceconv',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/mac-amd64/traceconv',
'sha256':
- 'a987cfd2e722994a5911032d046ec2d0b912845a83b093226c3fccd5e316ed01',
+ '0ea0a025cedab2b6cfe605f127daa2a12c98f051f9314c9ab8a59c55306b36c2',
'platform':
'darwin',
'machine': ['x86_64']
@@ -51,11 +51,11 @@
'file_name':
'traceconv',
'file_size':
- 6554552,
+ 6587480,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/mac-arm64/traceconv',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/mac-arm64/traceconv',
'sha256':
- '972610d249990d4b03de50bece4a7adf03ebd6b3cc3c2c10feb7bb6561c1fce1',
+ '85bb771be931fe90c9da122f412efb884ff8bd2bd2eaa3f083c2c6ea5dd9205a',
'platform':
'darwin',
'machine': ['arm64']
@@ -65,11 +65,11 @@
'file_name':
'traceconv',
'file_size':
- 8073432,
+ 8100352,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/linux-amd64/traceconv',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/linux-amd64/traceconv',
'sha256':
- 'e34f6ddd91ad0de62bfbef76303f2a94136470fe5a4f679af2f5b8898548ac13',
+ 'c201fe1c30a00c0e7a1eac169ab91f05d6468a485b0791db3c439888e9334fde',
'platform':
'linux',
'machine': ['x86_64']
@@ -79,11 +79,11 @@
'file_name':
'traceconv',
'file_size':
- 6677612,
+ 6674592,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/linux-arm/traceconv',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/linux-arm/traceconv',
'sha256':
- '55c9cd6e5c5bc65210068a173b0c16ad3323faaba0fccec20247dca5bd3b913d',
+ '5a0bc650e39a289b2051a55ac3e7e2c05cb56f053e2b8dc31bb183e75892be28',
'platform':
'linux',
'machine': ['armv6l', 'armv7l', 'armv8l']
@@ -93,11 +93,11 @@
'file_name':
'traceconv',
'file_size':
- 7543648,
+ 7554976,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/linux-arm64/traceconv',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/linux-arm64/traceconv',
'sha256':
- '2477857470f613410f6151acb06b6b6a067ef8612d619eee86dd2a3b8aac2a3e',
+ 'f2a3d4c3a7e6af760a4a03fe70e6c32479260bd6487f4b89d49412231c42e197',
'platform':
'linux',
'machine': ['aarch64']
@@ -107,55 +107,55 @@
'file_name':
'traceconv',
'file_size':
- 5360020,
+ 5355916,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/android-arm/traceconv',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/android-arm/traceconv',
'sha256':
- '60cecbd8d9b6357bb89929fa5afa1eba6c1d46d621e62ee558509424d88bd53d'
+ '58101b41d4930abfebef729d2657252ca6f2c3cff4ebcb838165d606808ff0ad'
}, {
'arch':
'android-arm64',
'file_name':
'traceconv',
'file_size':
- 6769184,
+ 6773264,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/android-arm64/traceconv',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/android-arm64/traceconv',
'sha256':
- 'e373cbed4502977290abe3e246132ced538fca33881058e6049676ef9c613dd9'
+ 'a7fc9fb02e94c92821d36cd0fb90bff75cbe32688e5f2678426b796a5f86ba53'
}, {
'arch':
'android-x86',
'file_name':
'traceconv',
'file_size':
- 7682412,
+ 7670116,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/android-x86/traceconv',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/android-x86/traceconv',
'sha256':
- 'dcaa5d156247433537d59ad33238feb23dc0f97ba64c51581360f25ac0fc16a8'
+ '1a64a26516b5a0db710532b4a6f495d4f83153df56b2847093d1b6d17e749b6b'
}, {
'arch':
'android-x64',
'file_name':
'traceconv',
'file_size':
- 7903832,
+ 7916104,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/android-x64/traceconv',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/android-x64/traceconv',
'sha256':
- 'b73b8d398019b2a349d3748b4fe4096a069c6362697375d3c2668cf79ef1bb38'
+ '9badc970a3573a038977a7fef59b4d57797ef57e2e4e2d5f23804a0bfcdf1585'
}, {
'arch':
'windows-amd64',
'file_name':
'traceconv.exe',
'file_size':
- 7188992,
+ 7217664,
'url':
- 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v31.0/windows-amd64/traceconv.exe',
+ 'https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v32.1/windows-amd64/traceconv.exe',
'sha256':
- '9cbdfcad3b5f2164d0c9e79d4f8b749db693814ae97fba038385d2e6f0111f72',
+ 'd2b9c3ca448c9815c2393716758e85d4d2c8033ce0531b4551703a2b7e3d43a0',
'platform':
'win32',
'machine': ['amd64']
diff --git a/ui/.eslintrc.js b/ui/.eslintrc.js
index 16553be..b890b89 100644
--- a/ui/.eslintrc.js
+++ b/ui/.eslintrc.js
@@ -47,7 +47,7 @@
// https://github.com/typescript-eslint/typescript-eslint/issues/2621
'no-unused-vars': 'off',
'@typescript-eslint/no-unused-vars':
- ['error', {'argsIgnorePattern': '^_.*'}],
+ ['error', {'argsIgnorePattern': '^_.*', 'varsIgnorePattern': '^_.*'}],
// new Array() is banned (use [] instead) but new Array<Foo>() is
// allowed since it can be clearer to put the type by the
diff --git a/ui/build.js b/ui/build.js
index 73b2aac..9a0ded5 100644
--- a/ui/build.js
+++ b/ui/build.js
@@ -222,14 +222,14 @@
console.log('Entering', cfg.outDir);
process.chdir(cfg.outDir);
- updateSymlinks(); // Links //ui/out -> //out/xxx/ui/
-
// Enqueue empty task. This is needed only for --no-build --serve. The HTTP
// server is started when the task queue reaches quiescence, but it takes at
// least one task for that.
addTask(() => {});
if (!args.no_build) {
+ updateSymlinks(); // Links //ui/out -> //out/xxx/ui/
+
buildWasm(args.no_wasm);
scanDir('ui/src/assets');
scanDir('ui/src/chrome_extension');
@@ -253,11 +253,18 @@
// We should enter the loop only in watch mode, where tsc and rollup are
// asynchronous because they run in watch mode.
- const tStart = Date.now();
- while (!isDistComplete()) {
- const secs = Math.ceil((Date.now() - tStart) / 1000);
- process.stdout.write(`\t\tWaiting for first build to complete... ${secs} s\r`);
- await new Promise((r) => setTimeout(r, 500));
+ if (args.no_build && !isDistComplete()) {
+ console.log('No build was requested, but artifacts are not available.');
+ console.log('In case of execution error, re-run without --no-build.');
+ }
+ if (!args.no_build) {
+ const tStart = Date.now();
+ while (!isDistComplete()) {
+ const secs = Math.ceil((Date.now() - tStart) / 1000);
+ process.stdout.write(
+ `\t\tWaiting for first build to complete... ${secs} s\r`);
+ await new Promise((r) => setTimeout(r, 500));
+ }
}
if (cfg.watch) console.log('\nFirst build completed!');
diff --git a/ui/src/assets/common.scss b/ui/src/assets/common.scss
index 570fa44..5470643 100644
--- a/ui/src/assets/common.scss
+++ b/ui/src/assets/common.scss
@@ -11,6 +11,9 @@
// 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.
+
+@import "fonts";
+
:root {
--sidebar-width: 256px;
--topbar-height: 48px;
@@ -199,28 +202,64 @@
width: 100%;
}
+@mixin table-font-size {
+ font-size: 14px;
+ line-height: 18px;
+}
+
+$table-hover-color: hsl(214, 22%, 90%);
+
+$table-border-color: rgba(60, 76, 92, 0.4);
+
+.pivot-table {
+ @include bottom-panel-font;
+ @include table-font-size;
+
+ width: 100%;
+ border-collapse: collapse;
+
+ thead,
+ i {
+ cursor: pointer;
+ }
+ thead {
+ font-weight: normal;
+ }
+ td {
+ padding: 2px 1px;
+ }
+ td.first {
+ border-left: 1px solid $table-border-color;
+ padding-left: 6px;
+ }
+ tr.header {
+ border-bottom: 1px solid $table-border-color;
+ text-align: center;
+ }
+ thead td.reorderable-cell {
+ cursor: grab;
+ }
+ tr:hover td {
+ background-color: $table-hover-color;
+ }
+ .disabled {
+ cursor: default;
+ }
+ .indent {
+ display: inline-block;
+ // 16px is the width of expand_more/expand_less icon to pad out cells
+ // without the button
+ width: 16px;
+ }
+ strong {
+ font-weight: 400;
+ }
+}
+
.query-table {
width: 100%;
font-size: 14px;
border: 0;
- &.pivot-table {
- thead,
- i {
- cursor: pointer;
- }
- thead td.reorderable-cell {
- cursor: grab;
- }
- .disabled {
- cursor: default;
- }
- .indent {
- display: inline-block;
- // 16px is the width of expand_more/expand_less icon to pad out cells
- // without the button
- width: 16px;
- }
- }
thead td {
position: sticky;
top: 0;
@@ -755,6 +794,7 @@
.pivot-table-redux {
user-select: text;
+ padding: 10px;
button.mode-button {
border-radius: 10px;
@@ -763,11 +803,6 @@
background-color: #c7d0db;
}
- &.edit {
- padding: 10px;
- display: flex;
- }
-
&.query-error {
color: red;
}
@@ -817,11 +852,11 @@
}
&.highlight-left {
- border-left-color: red;
+ background: linear-gradient(90deg, $table-border-color, transparent 20%);
}
&.highlight-right {
- border-right-color: red;
+ background: linear-gradient(270deg, $table-border-color, transparent 20%);
}
}
diff --git a/ui/src/assets/details.scss b/ui/src/assets/details.scss
index 11186c2..3faaadd 100644
--- a/ui/src/assets/details.scss
+++ b/ui/src/assets/details.scss
@@ -97,9 +97,7 @@
}
.details-panel {
- font-family: "Roboto Condensed", sans-serif;
- font-weight: 300;
- color: #3c4b5d;
+ @include bottom-panel-font;
.material-icons {
@include transition(0.3s);
@@ -234,8 +232,7 @@
table {
@include transition(0.1s);
- font-size: 14px;
- line-height: 18px;
+ @include table-font-size;
width: 100%;
// Aggregation panel uses multiple table elements that need to be aligned,
// which is done by using fixed table layout.
@@ -245,7 +242,7 @@
tr:hover {
td,
th {
- background-color: hsl(214, 22%, 90%);
+ background-color: $table-hover-color;
&.no-highlight {
background-color: white;
@@ -392,7 +389,7 @@
font-weight: bolder;
font-size: 12px;
.sum-data {
- border-bottom: 1px solid rgba(60, 76, 92, 0.4);
+ border-bottom: 1px solid $table-border-color;
}
}
@@ -543,7 +540,7 @@
background-color: hsl(214, 22%, 95%);
}
&:hover {
- background-color: hsl(214, 22%, 90%);
+ background-color: $table-hover-color;
}
.cell {
font-size: 11px;
diff --git a/ui/src/assets/fonts.scss b/ui/src/assets/fonts.scss
new file mode 100644
index 0000000..6f52d19
--- /dev/null
+++ b/ui/src/assets/fonts.scss
@@ -0,0 +1,20 @@
+// Copyright (C) 2023 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.
+
+@mixin bottom-panel-font {
+ font-family: "Roboto Condensed", sans-serif;
+ font-weight: 300;
+ color: #3c4b5d;
+}
+
diff --git a/ui/src/base/math_utils.ts b/ui/src/base/math_utils.ts
new file mode 100644
index 0000000..f1c1816
--- /dev/null
+++ b/ui/src/base/math_utils.ts
@@ -0,0 +1,23 @@
+// Copyright (C) 2023 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.
+
+// Round a number up to the nearest stepsize.
+export function roundUpNearest(val: number, stepsize: number): number {
+ return stepsize * Math.ceil(val / stepsize);
+}
+
+// Round a number down to the nearest stepsize.
+export function roundDownNearest(val: number, stepsize: number): number {
+ return stepsize * Math.floor(val / stepsize);
+}
diff --git a/ui/src/base/math_utils_unittest.ts b/ui/src/base/math_utils_unittest.ts
new file mode 100644
index 0000000..169b793
--- /dev/null
+++ b/ui/src/base/math_utils_unittest.ts
@@ -0,0 +1,29 @@
+// Copyright (C) 2023 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.
+
+import {roundDownNearest, roundUpNearest} from './math_utils';
+
+describe('roundUpNearest()', () => {
+ it('rounds decimal values up to the right step size', () => {
+ expect(roundUpNearest(0.1, 0.5)).toBeCloseTo(0.5);
+ expect(roundUpNearest(17.2, 0.5)).toBeCloseTo(17.5);
+ });
+});
+
+describe('roundDownNearest()', () => {
+ it('rounds decimal values down to the right step size', () => {
+ expect(roundDownNearest(0.4, 0.5)).toBeCloseTo(0.0);
+ expect(roundDownNearest(17.4, 0.5)).toBeCloseTo(17.0);
+ });
+});
diff --git a/ui/src/common/actions.ts b/ui/src/common/actions.ts
index c5e40d6..2909c73 100644
--- a/ui/src/common/actions.ts
+++ b/ui/src/common/actions.ts
@@ -1024,6 +1024,13 @@
}
},
+ clearAllPinnedTracks(state: StateDraft, _: {}) {
+ if (state.pinnedTracks.length > 0) {
+ // Clear pinnedTracks array
+ state.pinnedTracks.length = 0;
+ }
+ },
+
togglePivotTableRedux(state: StateDraft, args: {areaId: string|null}) {
state.nonSerializableState.pivotTableRedux.selectionArea =
args.areaId === null ?
diff --git a/ui/src/common/query_result.ts b/ui/src/common/query_result.ts
index bae847d..9d44c9e 100644
--- a/ui/src/common/query_result.ts
+++ b/ui/src/common/query_result.ts
@@ -57,8 +57,10 @@
export const STR = 'str';
export const NUM_NULL: number|null = 1;
export const STR_NULL: string|null = 'str_null';
+export const BLOB: Uint8Array = new Uint8Array();
+export const BLOB_NULL: Uint8Array|null = new Uint8Array();
-export type ColumnType = string|number|null;
+export type ColumnType = string|number|null|Uint8Array;
// Info that could help debug a query error. For example the query
// in question, the stack where the query was issued, the active
@@ -119,11 +121,32 @@
return 'STR';
case STR_NULL:
return 'STR_NULL';
+ case BLOB:
+ return 'BLOB';
+ case BLOB_NULL:
+ return 'BLOB_NULL';
default:
return `INVALID(${t})`;
}
}
+function isCompatible(actual: CellType, expected: ColumnType): boolean {
+ switch (actual) {
+ case CellType.CELL_NULL:
+ return expected === NUM_NULL || expected === STR_NULL ||
+ expected === BLOB_NULL;
+ case CellType.CELL_VARINT:
+ case CellType.CELL_FLOAT64:
+ return expected === NUM || expected === NUM_NULL;
+ case CellType.CELL_STRING:
+ return expected === STR || expected === STR_NULL;
+ case CellType.CELL_BLOB:
+ return expected === BLOB || expected === BLOB_NULL;
+ default:
+ throw new Error(`Unknown CellType ${actual}`);
+ }
+}
+
// Disable Long.js support in protobuf. This seems to be enabled only in tests
// but not in production code. In any case, for now we want casting to number
// accepting the 2**53 limitation. This is consistent with passing
@@ -652,8 +675,7 @@
case CellType.CELL_BLOB:
const blob = this.blobCells[this.nextBlobCell++];
- throw new Error(`TODO implement BLOB support (${blob})`);
- // outRow[colName] = blob;
+ rowData[colName] = blob;
break;
default:
@@ -721,20 +743,16 @@
if (expType === undefined) continue;
let err = '';
- if (actualType === CellType.CELL_NULL &&
- (expType !== STR_NULL && expType !== NUM_NULL)) {
- err = 'SQL value is NULL but that was not expected' +
- ` (expected type: ${columnTypeToString(expType)}). ` +
- 'Did you intend to use NUM_NULL or STR_NULL?';
- } else if (
- ((actualType === CellType.CELL_VARINT ||
- actualType === CellType.CELL_FLOAT64) &&
- (expType !== NUM && expType !== NUM_NULL)) ||
- ((actualType === CellType.CELL_STRING) &&
- (expType !== STR && expType !== STR_NULL))) {
- err = `Incompatible cell type. Expected: ${
- columnTypeToString(
- expType)} actual: ${CELL_TYPE_NAMES[actualType]}`;
+ if (!isCompatible(actualType, expType)) {
+ if (actualType === CellType.CELL_NULL) {
+ err = 'SQL value is NULL but that was not expected' +
+ ` (expected type: ${columnTypeToString(expType)}). ` +
+ 'Did you intend to use NUM_NULL, STR_NULL or BLOB_NULL?';
+ } else {
+ err = `Incompatible cell type. Expected: ${
+ columnTypeToString(
+ expType)} actual: ${CELL_TYPE_NAMES[actualType]}`;
+ }
}
if (err.length > 0) {
throw new Error(
diff --git a/ui/src/controller/aggregation/aggregation_controller.ts b/ui/src/controller/aggregation/aggregation_controller.ts
index 0510ca0..4fa1ecc 100644
--- a/ui/src/controller/aggregation/aggregation_controller.ts
+++ b/ui/src/controller/aggregation/aggregation_controller.ts
@@ -146,6 +146,8 @@
column.data[i] = isStringColumn(column) ? internString('NULL') : 0;
} else if (typeof item === 'string') {
column.data[i] = internString(item);
+ } else if (item instanceof Uint8Array) {
+ column.data[i] = internString('<Binary blob>');
} else {
column.data[i] = item;
}
diff --git a/ui/src/controller/globals.ts b/ui/src/controller/globals.ts
index 84564a8..5cd8f67 100644
--- a/ui/src/controller/globals.ts
+++ b/ui/src/controller/globals.ts
@@ -15,16 +15,13 @@
import {applyPatches, Patch} from 'immer';
import {assertExists} from '../base/logging';
-import {DeferredAction} from '../common/actions';
import {createEmptyState} from '../common/empty_state';
import {State} from '../common/state';
-import {globals as frontendGlobals} from '../frontend/globals';
import {ControllerAny} from './controller';
export interface App {
state: State;
- dispatch(action: DeferredAction): void;
}
/**
@@ -40,19 +37,6 @@
this._state = createEmptyState();
}
- dispatch(action: DeferredAction): void {
- frontendGlobals.dispatch(action);
- }
-
- // Send the passed dispatch actions to the frontend. The frontend logic
- // will run the actions, compute the new state and invoke patchState() so
- // our copy is updated.
- dispatchMultiple(actions: DeferredAction[]): void {
- for (const action of actions) {
- this.dispatch(action);
- }
- }
-
// This is called by the frontend logic which now owns and handle the
// source-of-truth state, to give us an update on the newer state updates.
patchState(patches: Patch[]): void {
diff --git a/ui/src/controller/metrics_controller.ts b/ui/src/controller/metrics_controller.ts
index d0e0916..7c7c9be 100644
--- a/ui/src/controller/metrics_controller.ts
+++ b/ui/src/controller/metrics_controller.ts
@@ -15,6 +15,7 @@
import {Actions} from '../common/actions';
import {Engine} from '../common/engine';
import {QueryError} from '../common/query_result';
+import {globals as frontendGlobals} from '../frontend/globals';
import {publishMetricResult} from '../frontend/publish';
import {Controller} from './controller';
@@ -48,7 +49,7 @@
throw e;
}
}
- globals.dispatch(Actions.resetMetricRequest({name}));
+ frontendGlobals.dispatch(Actions.resetMetricRequest({name}));
this.currentlyRunningMetric = undefined;
}
diff --git a/ui/src/controller/permalink_controller.ts b/ui/src/controller/permalink_controller.ts
index 349a02a..22cf3de 100644
--- a/ui/src/controller/permalink_controller.ts
+++ b/ui/src/controller/permalink_controller.ts
@@ -79,7 +79,7 @@
PermalinkController.createPermalink(isRecordingConfig)
.then((hash) => {
- globals.dispatch(Actions.setPermalink({requestId, hash}));
+ frontendGlobals.dispatch(Actions.setPermalink({requestId, hash}));
})
.finally(() => {
publishConversionJobStatusUpdate({
@@ -99,11 +99,12 @@
const validConfig =
runValidator(recordConfigValidator, stateOrConfig as unknown)
.result;
- globals.dispatch(Actions.setRecordConfig({config: validConfig}));
+ frontendGlobals.dispatch(
+ Actions.setRecordConfig({config: validConfig}));
Router.navigate('#!/record');
return;
}
- globals.dispatch(Actions.setState({newState: stateOrConfig}));
+ frontendGlobals.dispatch(Actions.setState({newState: stateOrConfig}));
this.lastRequestId = stateOrConfig.permalink.requestId;
});
}
@@ -215,7 +216,7 @@
private static updateStatus(msg: string): void {
// TODO(hjd): Unify loading updates.
- globals.dispatch(Actions.updateStatus({
+ frontendGlobals.dispatch(Actions.updateStatus({
msg,
timestamp: Date.now() / 1000,
}));
diff --git a/ui/src/controller/pivot_table_redux_controller.ts b/ui/src/controller/pivot_table_redux_controller.ts
index 4f57891..8658822 100644
--- a/ui/src/controller/pivot_table_redux_controller.ts
+++ b/ui/src/controller/pivot_table_redux_controller.ts
@@ -26,6 +26,7 @@
PivotTableReduxResult,
PivotTableReduxState,
} from '../common/state';
+import {globals as frontendGlobals} from '../frontend/globals';
import {
aggregationIndex,
generateQueryFromState,
@@ -219,7 +220,7 @@
if (!it.valid()) {
// Iterator is invalid after creation; means that there are no rows
// satisfying filtering criteria. Return an empty tree.
- globals.dispatch(Actions.setPivotStateQueryResult(
+ frontendGlobals.dispatch(Actions.setPivotStateQueryResult(
{queryResult: createEmptyQueryResult(query.metadata)}));
return;
}
@@ -232,9 +233,9 @@
treeBuilder.ingestRow(nextRow());
}
- globals.dispatch(Actions.setPivotStateQueryResult(
+ frontendGlobals.dispatch(Actions.setPivotStateQueryResult(
{queryResult: {tree: treeBuilder.build(), metadata: query.metadata}}));
- globals.dispatch(Actions.setCurrentTab({tab: 'pivot_table_redux'}));
+ frontendGlobals.dispatch(Actions.setCurrentTab({tab: 'pivot_table_redux'}));
}
async requestArgumentNames() {
@@ -250,7 +251,8 @@
it.next();
}
- globals.dispatch(Actions.setPivotTableArgumentNames({argumentNames}));
+ frontendGlobals.dispatch(
+ Actions.setPivotTableArgumentNames({argumentNames}));
}
@@ -269,17 +271,18 @@
if (pivotTableState.queryRequested ||
(selection !== null && selection.kind === 'AREA' &&
this.shouldRerun(pivotTableState, selection))) {
- globals.dispatch(
+ frontendGlobals.dispatch(
Actions.setPivotTableQueryRequested({queryRequested: false}));
// Need to re-run the existing query, clear the current result.
- globals.dispatch(Actions.setPivotStateQueryResult({queryResult: null}));
+ frontendGlobals.dispatch(
+ Actions.setPivotStateQueryResult({queryResult: null}));
this.processQuery(generateQueryFromState(pivotTableState));
}
if (selection !== null && selection.kind === 'AREA' &&
(pivotTableState.selectionArea === undefined ||
pivotTableState.selectionArea.areaId !== selection.areaId)) {
- globals.dispatch(
+ frontendGlobals.dispatch(
Actions.togglePivotTableRedux({areaId: selection.areaId}));
}
}
diff --git a/ui/src/controller/query_controller.ts b/ui/src/controller/query_controller.ts
index 4e9017f..3a896d8 100644
--- a/ui/src/controller/query_controller.ts
+++ b/ui/src/controller/query_controller.ts
@@ -16,6 +16,7 @@
import {Actions} from '../common/actions';
import {Engine} from '../common/engine';
import {runQuery} from '../common/queries';
+import {globals as frontendGlobals} from '../frontend/globals';
import {publishQueryResult} from '../frontend/publish';
import {Controller} from './controller';
@@ -39,7 +40,7 @@
.then((result) => {
console.log(`Query ${config.query} took ${result.durationMs} ms`);
publishQueryResult({id: this.args.queryId, data: result});
- globals.dispatch(
+ frontendGlobals.dispatch(
Actions.deleteQuery({queryId: this.args.queryId}));
});
this.setState('querying');
diff --git a/ui/src/controller/record_controller.ts b/ui/src/controller/record_controller.ts
index aef43ab..3ce567e 100644
--- a/ui/src/controller/record_controller.ts
+++ b/ui/src/controller/record_controller.ts
@@ -29,6 +29,7 @@
isChromeTarget,
RecordingTarget,
} from '../common/state';
+import {globals as frontendGlobals} from '../frontend/globals';
import {publishBufferUsage, publishTrackData} from '../frontend/publish';
import {AdbOverWebUsb} from './adb';
@@ -208,7 +209,8 @@
if (this.app.state.extensionInstalled) {
this.extensionPort.postMessage({method: 'GetCategories'});
}
- globals.dispatch(Actions.setFetchChromeCategories({fetch: false}));
+ frontendGlobals.dispatch(
+ Actions.setFetchChromeCategories({fetch: false}));
}
if (this.app.state.recordConfig === this.config &&
this.app.state.recordingInProgress === this.recordingInProgress) {
@@ -302,15 +304,15 @@
onTraceComplete() {
this.consumerPort.freeBuffers({});
- globals.dispatch(Actions.setRecordingStatus({status: undefined}));
+ frontendGlobals.dispatch(Actions.setRecordingStatus({status: undefined}));
if (globals.state.recordingCancelled) {
- globals.dispatch(
+ frontendGlobals.dispatch(
Actions.setLastRecordingError({error: 'Recording cancelled.'}));
this.traceBuffer = [];
return;
}
const trace = this.generateTrace();
- globals.dispatch(Actions.openTraceFromBuffer({
+ frontendGlobals.dispatch(Actions.openTraceFromBuffer({
title: 'Recorded trace',
buffer: trace.buffer,
fileName: `recorded_trace${this.recordedTraceSuffix}`,
@@ -346,13 +348,13 @@
onError(message: string) {
// TODO(octaviant): b/204998302
console.error('Error in record controller: ', message);
- globals.dispatch(
+ frontendGlobals.dispatch(
Actions.setLastRecordingError({error: message.substr(0, 150)}));
- globals.dispatch(Actions.stopRecording({}));
+ frontendGlobals.dispatch(Actions.stopRecording({}));
}
onStatus(message: string) {
- globals.dispatch(Actions.setRecordingStatus({status: message}));
+ frontendGlobals.dispatch(Actions.setRecordingStatus({status: message}));
}
// Depending on the recording target, different implementation of the
diff --git a/ui/src/controller/selection_controller.ts b/ui/src/controller/selection_controller.ts
index 134d78b..4b4ee82 100644
--- a/ui/src/controller/selection_controller.ts
+++ b/ui/src/controller/selection_controller.ts
@@ -466,7 +466,7 @@
// If this is the first sched slice for this utid or if the wakeup found
// was after the previous slice then we know the wakeup was for this slice.
- if (prevSchedResult.numRows() === 0 ||
+ if (prevSchedResult.numRows() !== 0 &&
wakeupTs < prevSchedResult.firstRow({ts: NUM}).ts) {
return undefined;
}
diff --git a/ui/src/controller/trace_controller.ts b/ui/src/controller/trace_controller.ts
index dd62689..a6c8771 100644
--- a/ui/src/controller/trace_controller.ts
+++ b/ui/src/controller/trace_controller.ts
@@ -206,17 +206,17 @@
switch (this.state) {
case 'init':
this.loadTrace()
- .then((mode) => {
- globals.dispatch(Actions.setEngineReady({
- engineId: this.engineId,
- ready: true,
- mode,
- }));
- })
- .catch((err) => {
- this.updateStatus(`${err}`);
- throw err;
- });
+ .then((mode) => {
+ frontendGlobals.dispatch(Actions.setEngineReady({
+ engineId: this.engineId,
+ ready: true,
+ mode,
+ }));
+ })
+ .catch((err) => {
+ this.updateStatus(`${err}`);
+ throw err;
+ });
this.updateStatus('Opening trace');
this.setState('loading_trace');
break;
@@ -349,8 +349,8 @@
engineMode = 'HTTP_RPC';
engine = new HttpRpcEngine(this.engineId, LoadingManager.getInstance);
engine.errorHandler = (err) => {
- globals.dispatch(
- Actions.setEngineFailed({mode: 'HTTP_RPC', failure: `${err}`}));
+ frontendGlobals.dispatch(
+ Actions.setEngineFailed({mode: 'HTTP_RPC', failure: `${err}`}));
throw err;
};
} else {
@@ -375,7 +375,7 @@
new BottomTabList(engine.getProxy('BottomTabList'));
frontendGlobals.engines.set(this.engineId, engine);
- globals.dispatch(Actions.setEngineReady({
+ frontendGlobals.dispatch(Actions.setEngineReady({
engineId: this.engineId,
ready: false,
mode: engineMode,
@@ -476,7 +476,7 @@
resolution,
}));
- globals.dispatchMultiple(actions);
+ frontendGlobals.dispatchMultiple(actions);
Router.navigate(`#!/viewer?local_cache_key=${traceUuid}`);
// Make sure the helper views are available before we start adding tracks.
@@ -510,9 +510,9 @@
publishHasFtrace(hasFtrace);
}
- globals.dispatch(Actions.removeDebugTrack({}));
- globals.dispatch(Actions.sortThreadTracks({}));
- globals.dispatch(Actions.maybeExpandOnlyTrackGroup({}));
+ frontendGlobals.dispatch(Actions.removeDebugTrack({}));
+ frontendGlobals.dispatch(Actions.sortThreadTracks({}));
+ frontendGlobals.dispatch(Actions.maybeExpandOnlyTrackGroup({}));
await this.selectFirstHeapProfile();
if (PERF_SAMPLE_FLAG.get()) {
@@ -531,7 +531,7 @@
if (!isJsonTrace && ENABLE_CHROME_RELIABLE_RANGE_ANNOTATION_FLAG.get()) {
const reliableRangeStart = await computeTraceReliableRangeStart(engine);
if (reliableRangeStart > 0) {
- globals.dispatch(Actions.addAutomaticNote({
+ frontendGlobals.dispatch(Actions.addAutomaticNote({
timestamp: reliableRangeStart,
color: '#ff0000',
text: 'Reliable Range Start',
@@ -554,8 +554,8 @@
const upid = row.upid;
const leftTs = toNs(globals.state.traceTime.startSec);
const rightTs = toNs(globals.state.traceTime.endSec);
- globals.dispatch(Actions.selectPerfSamples(
- {id: 0, upid, leftTs, rightTs, type: ProfileType.PERF_SAMPLE}));
+ frontendGlobals.dispatch(Actions.selectPerfSamples(
+ {id: 0, upid, leftTs, rightTs, type: ProfileType.PERF_SAMPLE}));
}
private async selectFirstHeapProfile() {
@@ -576,14 +576,15 @@
const ts = row.ts;
const type = profileType(row.type);
const upid = row.upid;
- globals.dispatch(Actions.selectHeapProfile({id: 0, upid, ts, type}));
+ frontendGlobals.dispatch(
+ Actions.selectHeapProfile({id: 0, upid, ts, type}));
}
private async listTracks() {
this.updateStatus('Loading tracks');
const engine = assertExists<Engine>(this.engine);
const actions = await decideTracks(this.engineId, engine);
- globals.dispatchMultiple(actions);
+ frontendGlobals.dispatchMultiple(actions);
}
private async listThreads() {
@@ -776,7 +777,7 @@
for (const it = metricsResult.iter({name: STR}); it.valid(); it.next()) {
availableMetrics.push(it.name);
}
- globals.dispatch(Actions.setAvailableMetrics({availableMetrics}));
+ frontendGlobals.dispatch(Actions.setAvailableMetrics({availableMetrics}));
const availableMetricsSet = new Set<string>(availableMetrics);
for (const [flag, metric] of FLAGGED_METRICS) {
@@ -895,7 +896,7 @@
}
private updateStatus(msg: string): void {
- globals.dispatch(Actions.updateStatus({
+ frontendGlobals.dispatch(Actions.updateStatus({
msg,
timestamp: Date.now() / 1000,
}));
diff --git a/ui/src/controller/visualised_args_controller.ts b/ui/src/controller/visualised_args_controller.ts
index 9ac6d3d..ec1d67c 100644
--- a/ui/src/controller/visualised_args_controller.ts
+++ b/ui/src/controller/visualised_args_controller.ts
@@ -18,6 +18,7 @@
import {Engine} from '../common/engine';
import {NUM} from '../common/query_result';
import {InThreadTrackSortKey} from '../common/state';
+import {globals as frontendGlobals} from '../frontend/globals';
import {
VISUALISED_ARGS_SLICE_TRACK_KIND,
} from '../tracks/visualised_args/index';
@@ -48,7 +49,7 @@
onDestroy() {
this.engine.query(`drop table if exists ${this.tableName}`);
- globals.dispatch(
+ frontendGlobals.dispatch(
Actions.removeVisualisedArgTracks({trackIds: this.addedTrackIds}));
}
@@ -113,8 +114,8 @@
},
});
}
- globals.dispatch(Actions.addTracks({tracks: tracksToAdd}));
- globals.dispatch(Actions.sortThreadTracks({}));
+ frontendGlobals.dispatch(Actions.addTracks({tracks: tracksToAdd}));
+ frontendGlobals.dispatch(Actions.sortThreadTracks({}));
}
run() {
diff --git a/ui/src/frontend/globals.ts b/ui/src/frontend/globals.ts
index 5b8728a..0e5de55 100644
--- a/ui/src/frontend/globals.ts
+++ b/ui/src/frontend/globals.ts
@@ -293,6 +293,13 @@
return assertExists(this._dispatch);
}
+ dispatchMultiple(actions: DeferredAction[]): void {
+ const dispatch = this.dispatch;
+ for (const action of actions) {
+ dispatch(action);
+ }
+ }
+
get frontendLocalState() {
return assertExists(this._frontendLocalState);
}
diff --git a/ui/src/frontend/gridline_helper.ts b/ui/src/frontend/gridline_helper.ts
index 6c0b74d..1c9dbfe 100644
--- a/ui/src/frontend/gridline_helper.ts
+++ b/ui/src/frontend/gridline_helper.ts
@@ -12,94 +12,172 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-import {TimeSpan} from '../common/time';
-
+import {assertTrue} from '../base/logging';
+import {roundDownNearest} from '../base/math_utils';
import {TRACK_BORDER_COLOR, TRACK_SHELL_WIDTH} from './css_constants';
+import {globals} from './globals';
import {TimeScale} from './time_scale';
-export const DESIRED_PX_PER_STEP = 80;
-
-// Returns the step size of a grid line in seconds.
-// The returned step size has two properties:
-// (1) It is 1, 2, or 5, multiplied by some integer power of 10.
-// (2) The number steps in |range| produced by |stepSize| is as close as
-// possible to |desiredSteps|.
-export function getGridStepSize(range: number, desiredSteps: number): number {
+// Returns the optimal step size (in seconds) and tick pattern of ticks within
+// the step. The returned step size has two properties: (1) It is 1, 2, or 5,
+// multiplied by some integer power of 10. (2) It is maximised given the
+// constraint: |range| / stepSize <= |maxNumberOfSteps|.
+export function getStepSize(
+ range: number, maxNumberOfSteps: number): [number, string] {
// First, get the largest possible power of 10 that is smaller than the
- // desired step size, and set it to the current step size.
+ // desired step size, and use it as our initial step size.
// For example, if the range is 2345ms and the desired steps is 10, then the
- // desired step size is 234.5 and the step size will be set to 100.
- const desiredStepSize = range / desiredSteps;
- const zeros = Math.floor(Math.log10(desiredStepSize));
+ // minimum step size is 234.5ms so the step size will initialise to 100.
+ const minStepSize = range / maxNumberOfSteps;
+ const zeros = Math.floor(Math.log10(minStepSize));
const initialStepSize = Math.pow(10, zeros);
- // This function first calculates how many steps within the range a certain
- // stepSize will produce, and returns the difference between that and
- // desiredSteps.
- const distToDesired = (evaluatedStepSize: number) =>
- Math.abs(range / evaluatedStepSize - desiredSteps);
-
// We know that |initialStepSize| is a power of 10, and
// initialStepSize <= desiredStepSize <= 10 * initialStepSize. There are four
// possible candidates for final step size: 1, 2, 5 or 10 * initialStepSize.
- // We pick the candidate that minimizes distToDesired(stepSize).
- const stepSizeMultipliers = [2, 5, 10];
+ // For our example above, this would result in a step size of 500ms, as both
+ // 100ms and 200ms are smaller than the minimum step size of 234.5ms.
+ // We pick the candidate that minimizes the step size without letting the
+ // number of steps exceed |maxNumberOfSteps|. The factor we pick to also
+ // determines the pattern of ticks. This pattern is represented using a string
+ // where:
+ // | = Major tick
+ // : = Medium tick
+ // . = Minor tick
+ const stepSizeMultipliers: [number, string][] =
+ [[1, '|....:....'], [2, '|.:.'], [5, '|....'], [10, '|....:....']];
- let minimalDistance = distToDesired(initialStepSize);
- let minimizingStepSize = initialStepSize;
-
- for (const multiplier of stepSizeMultipliers) {
+ for (const [multiplier, pattern] of stepSizeMultipliers) {
const newStepSize = multiplier * initialStepSize;
- const newDistance = distToDesired(newStepSize);
- if (newDistance < minimalDistance) {
- minimalDistance = newDistance;
- minimizingStepSize = newStepSize;
+ const numberOfNewSteps = range / newStepSize;
+ if (numberOfNewSteps <= maxNumberOfSteps) {
+ return [newStepSize, pattern];
}
}
- return minimizingStepSize;
+
+ throw new Error('Something has gone horribly wrong with maths');
}
-// Generator that returns that (given a width im px, span, and scale) returns
-// pairs of [xInPx, timestampInS] pairs describing where gridlines should be
-// drawn.
-export function gridlines(width: number, span: TimeSpan, timescale: TimeScale):
- Array<[number, number]> {
- const desiredSteps = width / DESIRED_PX_PER_STEP;
- const step = getGridStepSize(span.duration, desiredSteps);
- const actualSteps = Math.floor(span.duration / step);
- const start = Math.round(span.start / step) * step;
- const lines: Array<[number, number]> = [];
- let previousTimestamp = Number.NEGATIVE_INFINITY;
- // Iterating over the number of steps instead of
- // for (let s = start; s < span.end; s += step) because if start is very large
- // number and step very small, s will never reach end.
- for (let i = 0; i <= actualSteps; i++) {
- let xPos = TRACK_SHELL_WIDTH;
- const timestamp = start + i * step;
- xPos += Math.floor(timescale.timeToPx(timestamp));
- if (xPos < TRACK_SHELL_WIDTH) continue;
- if (xPos > width) break;
- if (Math.abs(timestamp - previousTimestamp) > Number.EPSILON) {
- previousTimestamp = timestamp;
- lines.push([xPos, timestamp]);
+function tickPatternToArray(pattern: string): TickType[] {
+ const array = Array.from(pattern);
+ return array.map((char) => {
+ switch (char) {
+ case '|':
+ return TickType.MAJOR;
+ case ':':
+ return TickType.MEDIUM;
+ case '.':
+ return TickType.MINOR;
+ default:
+ // This is almost certainly a developer/fat-finger error
+ throw Error(`Invalid char "${char}" in pattern "${pattern}"`);
+ }
+ });
+}
+
+// Assuming a number only has one non-zero decimal digit, find the number of
+// decimal places required to accurately print that number. I.e. the parameter
+// we should pass to number.toFixed(x). To account for floating point
+// innaccuracies when representing numbers in base-10, we only take the first
+// nonzero fractional digit into account. E.g.
+// 1.0 -> 0
+// 0.5 -> 1
+// 0.009 -> 3
+// 0.00007 -> 5
+// 30000 -> 0
+// 0.30000000000000004 -> 1
+export function guessDecimalPlaces(val: number): number {
+ const neglog10 = -Math.floor(Math.log10(val));
+ const clamped = Math.max(0, neglog10);
+ return clamped;
+}
+
+export enum TickType {
+ MAJOR,
+ MEDIUM,
+ MINOR
+}
+
+export interface Tick {
+ type: TickType;
+ time: number;
+ position: number;
+}
+
+const MIN_PX_PER_STEP = 80;
+
+// An iterable which generates a series of ticks for a given timescale.
+export class TickGenerator implements Iterable<Tick> {
+ private _tickPattern: TickType[];
+ private _patternSize: number;
+
+ constructor(private scale: TimeScale, {minLabelPx = MIN_PX_PER_STEP} = {}) {
+ assertTrue(minLabelPx > 0, 'minLabelPx cannot be lte 0');
+ assertTrue(scale.widthPx > 0, 'widthPx cannot be lte 0');
+ assertTrue(
+ scale.timeSpan.duration > 0, 'timeSpan.duration cannot be lte 0');
+
+ const desiredSteps = scale.widthPx / minLabelPx;
+ const [size, pattern] = getStepSize(scale.timeSpan.duration, desiredSteps);
+ this._patternSize = size;
+ this._tickPattern = tickPatternToArray(pattern);
+ }
+
+ // Returns an iterable, so this object can be iterated over directly using the
+ // `for x of y` notation. The use of a generator here is just to make things
+ // more elegant than creating an array of ticks and building an iterator for
+ // it.
+ * [Symbol.iterator](): Generator<Tick> {
+ const span = this.scale.timeSpan;
+ const stepSize = this._patternSize / this._tickPattern.length;
+ const start = roundDownNearest(span.start, this._patternSize);
+ const timeAtStep = (i: number) => start + (i * stepSize);
+
+ // Iterating using steps instead of
+ // for (let s = start; s < span.end; s += stepSize) because if start is much
+ // larger than stepSize we can enter an infinite loop due to floating
+ // point precision errors.
+ for (let i = 0; timeAtStep(i) < span.end; i++) {
+ const time = timeAtStep(i);
+ if (time >= span.start) {
+ const position = Math.floor(this.scale.timeToPx(time));
+ const type = this._tickPattern[i % this._tickPattern.length];
+ yield {type, time, position};
+ }
}
}
- return lines;
+
+ // The number of decimal places labels should be printed with, assuming labels
+ // are only printed on major ticks.
+ get digits(): number {
+ return guessDecimalPlaces(this._patternSize);
+ }
+}
+
+// Gets the timescale associated with the current visible window.
+export function timeScaleForVisibleWindow(
+ startPx: number, endPx: number): TimeScale {
+ const span = globals.frontendLocalState.visibleWindowTime;
+ const spanRelative = span.add(-globals.state.traceTime.startSec);
+ return new TimeScale(spanRelative, [startPx, endPx]);
}
export function drawGridLines(
ctx: CanvasRenderingContext2D,
- x: TimeScale,
- timeSpan: TimeSpan,
width: number,
height: number): void {
ctx.strokeStyle = TRACK_BORDER_COLOR;
ctx.lineWidth = 1;
- for (const xAndTime of gridlines(width, timeSpan, x)) {
- ctx.beginPath();
- ctx.moveTo(xAndTime[0] + 0.5, 0);
- ctx.lineTo(xAndTime[0] + 0.5, height);
- ctx.stroke();
+ const timeScale = timeScaleForVisibleWindow(TRACK_SHELL_WIDTH, width);
+ if (timeScale.timeSpan.duration > 0 && timeScale.widthPx > 0) {
+ for (const {type, position} of new TickGenerator(timeScale)) {
+ if (type === TickType.MAJOR) {
+ ctx.beginPath();
+ ctx.moveTo(position + 0.5, 0);
+ ctx.lineTo(position + 0.5, height);
+ ctx.stroke();
+ }
+ }
}
}
diff --git a/ui/src/frontend/gridline_helper_unittest.ts b/ui/src/frontend/gridline_helper_unittest.ts
index 98724d5..3b6dcac 100644
--- a/ui/src/frontend/gridline_helper_unittest.ts
+++ b/ui/src/frontend/gridline_helper_unittest.ts
@@ -12,36 +12,303 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-import {getGridStepSize} from './gridline_helper';
+import {TimeSpan} from '../common/time';
+
+import {getStepSize, Tick, TickGenerator, TickType} from './gridline_helper';
+import {TimeScale} from './time_scale';
+
+const pattern1 = '|....:....';
+const pattern2 = '|.:.';
+const pattern5 = '|....';
+const timeScale = new TimeScale(new TimeSpan(0, 1), [1, 2]);
test('gridline helper to have sensible step sizes', () => {
- expect(getGridStepSize(10, 14)).toEqual(1);
- expect(getGridStepSize(30, 14)).toEqual(2);
- expect(getGridStepSize(60, 14)).toEqual(5);
- expect(getGridStepSize(100, 14)).toEqual(10);
+ expect(getStepSize(10, 14)).toEqual([1, pattern1]);
+ expect(getStepSize(30, 14)).toEqual([5, pattern5]);
+ expect(getStepSize(60, 14)).toEqual([5, pattern5]);
+ expect(getStepSize(100, 14)).toEqual([10, pattern1]);
- expect(getGridStepSize(10, 21)).toEqual(0.5);
- expect(getGridStepSize(30, 21)).toEqual(2);
- expect(getGridStepSize(60, 21)).toEqual(2);
- expect(getGridStepSize(100, 21)).toEqual(5);
+ expect(getStepSize(10, 21)).toEqual([0.5, pattern5]);
+ expect(getStepSize(30, 21)).toEqual([2, pattern2]);
+ expect(getStepSize(60, 21)).toEqual([5, pattern5]);
+ expect(getStepSize(100, 21)).toEqual([5, pattern5]);
- expect(getGridStepSize(10, 3)).toEqual(5);
- expect(getGridStepSize(30, 3)).toEqual(10);
- expect(getGridStepSize(60, 3)).toEqual(20);
- expect(getGridStepSize(100, 3)).toEqual(50);
+ expect(getStepSize(10, 3)).toEqual([5, pattern5]);
+ expect(getStepSize(30, 3)).toEqual([10, pattern1]);
+ expect(getStepSize(60, 3)).toEqual([20, pattern2]);
+ expect(getStepSize(100, 3)).toEqual([50, pattern5]);
- expect(getGridStepSize(800, 4)).toEqual(200);
+ expect(getStepSize(800, 4)).toEqual([200, pattern2]);
});
test('gridline helper to scale to very small and very large values', () => {
- expect(getGridStepSize(.01, 14)).toEqual(.001);
- expect(getGridStepSize(10000, 14)).toEqual(1000);
+ expect(getStepSize(.01, 14)).toEqual([.001, pattern1]);
+ expect(getStepSize(10000, 14)).toEqual([1000, pattern1]);
});
test('gridline helper to always return a reasonable number of steps', () => {
for (let i = 1; i <= 1000; i++) {
- const stepSize = getGridStepSize(i, 14);
- expect(Math.round(i / stepSize)).toBeGreaterThanOrEqual(7);
- expect(Math.round(i / stepSize)).toBeLessThanOrEqual(21);
+ const [stepSize, _] = getStepSize(i, 14);
+ expect(Math.round(i / stepSize)).toBeGreaterThanOrEqual(6);
+ expect(Math.round(i / stepSize)).toBeLessThanOrEqual(14);
}
});
+
+describe('TickGenerator with range 0.0-1.0 and room for 2 labels', () => {
+ let tickGen: TickGenerator|undefined = undefined;
+ beforeAll(() => {
+ const timeSpan = new TimeSpan(0.0, 1.0);
+ const timeScale = new TimeScale(timeSpan, [0, 200]);
+ tickGen = new TickGenerator(timeScale, {minLabelPx: 100});
+ });
+ it('should produce major ticks at 0.5s and minor ticks at 0.1s starting at 0',
+ () => {
+ const expected = [
+ {type: TickType.MAJOR, time: 0.0},
+ {type: TickType.MINOR, time: 0.1},
+ {type: TickType.MINOR, time: 0.2},
+ {type: TickType.MINOR, time: 0.3},
+ {type: TickType.MINOR, time: 0.4},
+ {type: TickType.MAJOR, time: 0.5},
+ {type: TickType.MINOR, time: 0.6},
+ {type: TickType.MINOR, time: 0.7},
+ {type: TickType.MINOR, time: 0.8},
+ {type: TickType.MINOR, time: 0.9},
+ ];
+ const actual = Array.from(tickGen!);
+ expectTicksEqual(actual, expected);
+ });
+ it('should tell us to use 1 decimal place for labels', () => {
+ expect(tickGen!.digits).toEqual(1);
+ });
+});
+
+describe('TickGenerator with range 0.3-1.3 and room for 2 labels', () => {
+ let tickGen: TickGenerator|undefined = undefined;
+ beforeAll(() => {
+ const timeSpan = new TimeSpan(0.3, 1.3);
+ const timeScale = new TimeScale(timeSpan, [0, 200]);
+ tickGen = new TickGenerator(timeScale, {minLabelPx: 100});
+ });
+ it('should produce major ticks at 0.5s and minor ticks at 0.1s starting at 0',
+ () => {
+ const expected = [
+ {type: TickType.MINOR, time: 0.3},
+ {type: TickType.MINOR, time: 0.4},
+ {type: TickType.MAJOR, time: 0.5},
+ {type: TickType.MINOR, time: 0.6},
+ {type: TickType.MINOR, time: 0.7},
+ {type: TickType.MINOR, time: 0.8},
+ {type: TickType.MINOR, time: 0.9},
+ {type: TickType.MAJOR, time: 1.0},
+ {type: TickType.MINOR, time: 1.1},
+ {type: TickType.MINOR, time: 1.2},
+ ];
+ const actual = Array.from(tickGen!);
+ expectTicksEqual(actual, expected);
+ });
+ it('should tell us to use 1 decimal place for labels', () => {
+ expect(tickGen!.digits).toEqual(1);
+ });
+});
+
+describe('TickGenerator with range 0.0-0.2 and room for 1 label', () => {
+ let tickGen: TickGenerator|undefined = undefined;
+ beforeAll(() => {
+ const timeSpan = new TimeSpan(0.0, 0.2);
+ const timeScale = new TimeScale(timeSpan, [0, 100]);
+ tickGen = new TickGenerator(timeScale, {minLabelPx: 100});
+ });
+ it('should produce major ticks at 0.2s and minor ticks at 0.1s starting at 0',
+ () => {
+ const expected = [
+ {type: TickType.MAJOR, time: 0.0},
+ {type: TickType.MINOR, time: 0.05},
+ {type: TickType.MEDIUM, time: 0.1},
+ {type: TickType.MINOR, time: 0.15},
+ ];
+ const actual = Array.from(tickGen!);
+ expectTicksEqual(actual, expected);
+ });
+ it('should tell us to use 1 decimal place for labels', () => {
+ expect(tickGen!.digits).toEqual(1);
+ });
+});
+
+describe('TickGenerator with range 0.0-0.1 and room for 1 label', () => {
+ let tickGen: TickGenerator|undefined = undefined;
+ beforeAll(() => {
+ const timeSpan = new TimeSpan(0.0, 0.1);
+ const timeScale = new TimeScale(timeSpan, [0, 100]);
+ tickGen = new TickGenerator(timeScale, {minLabelPx: 100});
+ });
+ it('should produce major ticks at 0.1s & minor ticks at 0.02s starting at 0',
+ () => {
+ const expected = [
+ {type: TickType.MAJOR, time: 0.0},
+ {type: TickType.MINOR, time: 0.01},
+ {type: TickType.MINOR, time: 0.02},
+ {type: TickType.MINOR, time: 0.03},
+ {type: TickType.MINOR, time: 0.04},
+ {type: TickType.MEDIUM, time: 0.05},
+ {type: TickType.MINOR, time: 0.06},
+ {type: TickType.MINOR, time: 0.07},
+ {type: TickType.MINOR, time: 0.08},
+ {type: TickType.MINOR, time: 0.09},
+ ];
+ const actual = Array.from(tickGen!);
+ expect(tickGen!.digits).toEqual(1);
+ expectTicksEqual(actual, expected);
+ });
+ it('should tell us to use 1 decimal place for labels', () => {
+ expect(tickGen!.digits).toEqual(1);
+ });
+});
+
+describe('TickGenerator with a very small timespan', () => {
+ let tickGen: TickGenerator|undefined = undefined;
+ beforeAll(() => {
+ const timeSpan = new TimeSpan(0.0, 1e-9);
+ const timeScale = new TimeScale(timeSpan, [0, 100]);
+ tickGen = new TickGenerator(timeScale, {minLabelPx: 100});
+ });
+ it('should generate minor ticks at 2e-10s and one major tick at the start',
+ () => {
+ const expected = [
+ {type: TickType.MAJOR, time: 0.0},
+ {type: TickType.MINOR, time: 1e-10},
+ {type: TickType.MINOR, time: 2e-10},
+ {type: TickType.MINOR, time: 3e-10},
+ {type: TickType.MINOR, time: 4e-10},
+ {type: TickType.MEDIUM, time: 5e-10},
+ {type: TickType.MINOR, time: 6e-10},
+ {type: TickType.MINOR, time: 7e-10},
+ {type: TickType.MINOR, time: 8e-10},
+ {type: TickType.MINOR, time: 9e-10},
+ ];
+ const actual = Array.from(tickGen!);
+ expectTicksEqual(actual, expected);
+ });
+ it('should tell us to use 9 decimal places for labels', () => {
+ expect(tickGen!.digits).toEqual(9);
+ });
+});
+
+describe('TickGenerator with a very large timespan', () => {
+ let tickGen: TickGenerator|undefined = undefined;
+ beforeAll(() => {
+ const timeSpan = new TimeSpan(0.0, 1e9);
+ const timeScale = new TimeScale(timeSpan, [0, 100]);
+ tickGen = new TickGenerator(timeScale, {minLabelPx: 100});
+ });
+ it('should generate minor ticks at 2e8 and one major tick at the start',
+ () => {
+ const expected = [
+ {type: TickType.MAJOR, time: 0.0},
+ {type: TickType.MINOR, time: 1e8},
+ {type: TickType.MINOR, time: 2e8},
+ {type: TickType.MINOR, time: 3e8},
+ {type: TickType.MINOR, time: 4e8},
+ {type: TickType.MEDIUM, time: 5e8},
+ {type: TickType.MINOR, time: 6e8},
+ {type: TickType.MINOR, time: 7e8},
+ {type: TickType.MINOR, time: 8e8},
+ {type: TickType.MINOR, time: 9e8},
+ ];
+ const actual = Array.from(tickGen!);
+ expectTicksEqual(actual, expected);
+ });
+ it('should tell us to use 0 decimal places for labels', () => {
+ expect(tickGen!.digits).toEqual(0);
+ });
+});
+
+describe('TickGenerator where the timespan has a dynamic range of 1e12', () => {
+ // This is the equivalent of zooming in to the nanosecond level, 1000 seconds
+ // into a trace Note: this is about the limit of what this generator can
+ // handle.
+ let tickGen: TickGenerator|undefined = undefined;
+ beforeAll(() => {
+ const timeSpan = new TimeSpan(1000, 1000.000000001);
+ const timeScale = new TimeScale(timeSpan, [0, 100]);
+ tickGen = new TickGenerator(timeScale, {minLabelPx: 100});
+ });
+ it('should generate minor ticks at 1e-10s and one major tick at the start',
+ () => {
+ const expected = [
+ {type: TickType.MAJOR, time: 1000.0000000000},
+ {type: TickType.MINOR, time: 1000.0000000001},
+ {type: TickType.MINOR, time: 1000.0000000002},
+ {type: TickType.MINOR, time: 1000.0000000003},
+ {type: TickType.MINOR, time: 1000.0000000004},
+ {type: TickType.MEDIUM, time: 1000.0000000005},
+ {type: TickType.MINOR, time: 1000.0000000006},
+ {type: TickType.MINOR, time: 1000.0000000007},
+ {type: TickType.MINOR, time: 1000.0000000008},
+ {type: TickType.MINOR, time: 1000.0000000009},
+ ];
+ const actual = Array.from(tickGen!);
+ expectTicksEqual(actual, expected);
+ });
+ it('should tell us to use 9 decimal places for labels', () => {
+ expect(tickGen!.digits).toEqual(9);
+ });
+});
+
+describe(
+ 'TickGenerator where the timespan has a ridiculously huge dynamic range',
+ () => {
+ // We don't expect this to work, just wanna make sure it doesn't crash or
+ // get stuck
+ it('should not crash or get stuck in an infinite loop', () => {
+ const timeSpan = new TimeSpan(1000, 1000.000000000001);
+ const timeScale = new TimeScale(timeSpan, [0, 100]);
+ new TickGenerator(timeScale);
+ });
+ });
+
+describe(
+ 'TickGenerator where the timespan has a ridiculously huge dynamic range',
+ () => {
+ // We don't expect this to work, just wanna make sure it doesn't crash or
+ // get stuck
+ it('should not crash or get stuck in an infinite loop', () => {
+ const timeSpan = new TimeSpan(1000, 1000.000000000001);
+ const timeScale = new TimeScale(timeSpan, [0, 100]);
+ new TickGenerator(timeScale);
+ });
+ });
+
+test('TickGenerator constructed with a 0 width throws an error', () => {
+ expect(() => {
+ const timeScale = new TimeScale(new TimeSpan(0.0, 1.0), [0, 0]);
+ new TickGenerator(timeScale);
+ }).toThrow(Error);
+});
+
+test(
+ 'TickGenerator constructed with desiredPxPerStep of 0 throws an error',
+ () => {
+ expect(() => {
+ new TickGenerator(timeScale, {minLabelPx: 0});
+ }).toThrow(Error);
+ });
+
+test('TickGenerator constructed with a 0 duration throws an error', () => {
+ expect(() => {
+ const timeScale = new TimeScale(new TimeSpan(0.0, 0.0), [0, 1]);
+ new TickGenerator(timeScale);
+ }).toThrow(Error);
+});
+
+function expectTicksEqual(actual: Tick[], expected: any[]) {
+ // TODO(stevegolton) We could write a custom matcher for this; this approach
+ // produces cryptic error messages.
+ expect(actual.length).toEqual(expected.length);
+ for (let i = 0; i < actual.length; ++i) {
+ const ex = expected[i];
+ const ac = actual[i];
+ expect(ac.type).toEqual(ex.type);
+ expect(ac.time).toBeCloseTo(ex.time, 9);
+ }
+}
diff --git a/ui/src/frontend/notes_panel.ts b/ui/src/frontend/notes_panel.ts
index 1a91678..295c893 100644
--- a/ui/src/frontend/notes_panel.ts
+++ b/ui/src/frontend/notes_panel.ts
@@ -27,7 +27,11 @@
import {TRACK_SHELL_WIDTH} from './css_constants';
import {PerfettoMouseEvent} from './events';
import {globals} from './globals';
-import {gridlines} from './gridline_helper';
+import {
+ TickGenerator,
+ TickType,
+ timeScaleForVisibleWindow,
+} from './gridline_helper';
import {Panel, PanelSize} from './panel';
import {isTraceLoaded} from './sidebar';
@@ -79,29 +83,43 @@
},
},
isTraceLoaded() ?
- m('button',
- {
- onclick: (e: Event) => {
- e.preventDefault();
- globals.dispatch(
- Actions.toggleAllTrackGroups({collapsed: !allCollapsed}));
+ [
+ m('button',
+ {
+ onclick: (e: Event) => {
+ e.preventDefault();
+ globals.dispatch(Actions.toggleAllTrackGroups(
+ {collapsed: !allCollapsed}));
+ },
},
- },
- m('i.material-icons',
- {title: allCollapsed ? 'Expand all' : 'Collapse all'},
- allCollapsed ? 'unfold_more' : 'unfold_less')) :
+ m('i.material-icons',
+ {title: allCollapsed ? 'Expand all' : 'Collapse all'},
+ allCollapsed ? 'unfold_more' : 'unfold_less')),
+ m('button',
+ {
+ onclick: (e: Event) => {
+ e.preventDefault();
+ globals.dispatch(Actions.clearAllPinnedTracks({}));
+ },
+ },
+ m('i.material-icons',
+ {title: 'Clear all pinned tracks'},
+ 'clear_all')),
+ ] :
'');
}
renderCanvas(ctx: CanvasRenderingContext2D, size: PanelSize) {
const timeScale = globals.frontendLocalState.timeScale;
- const range = globals.frontendLocalState.visibleWindowTime;
let aNoteIsHovered = false;
ctx.fillStyle = '#999';
ctx.fillRect(TRACK_SHELL_WIDTH - 2, 0, 2, size.height);
- for (const xAndTime of gridlines(size.width, range, timeScale)) {
- ctx.fillRect(xAndTime[0], 0, 1, size.height);
+ const relScale = timeScaleForVisibleWindow(TRACK_SHELL_WIDTH, size.width);
+ if (relScale.timeSpan.duration > 0 && relScale.widthPx > 0) {
+ for (const {type, position} of new TickGenerator(relScale)) {
+ if (type === TickType.MAJOR) ctx.fillRect(position, 0, 1, size.height);
+ }
}
ctx.textBaseline = 'bottom';
diff --git a/ui/src/frontend/overview_timeline_panel.ts b/ui/src/frontend/overview_timeline_panel.ts
index 12b5582..adc06d9 100644
--- a/ui/src/frontend/overview_timeline_panel.ts
+++ b/ui/src/frontend/overview_timeline_panel.ts
@@ -16,7 +16,7 @@
import {assertExists} from '../base/logging';
import {hueForCpu} from '../common/colorizer';
-import {TimeSpan, timeToString} from '../common/time';
+import {TimeSpan} from '../common/time';
import {
OVERVIEW_TIMELINE_NON_VISIBLE_COLOR,
@@ -29,6 +29,7 @@
import {OuterDragStrategy} from './drag/outer_drag_strategy';
import {DragGestureHandler} from './drag_gesture_handler';
import {globals} from './globals';
+import {TickGenerator, TickType} from './gridline_helper';
import {Panel, PanelSize} from './panel';
import {TimeScale} from './time_scale';
@@ -80,21 +81,28 @@
if (this.timeScale === undefined) return;
const headerHeight = 25;
const tracksHeight = size.height - headerHeight;
+ const timeSpan = new TimeSpan(0, this.totTime.duration);
- // Draw time labels on the top header.
- ctx.font = '10px Roboto Condensed';
- ctx.fillStyle = '#999';
- for (let i = 0; i < 100; i++) {
- const xPos =
- (i * (this.width - TRACK_SHELL_WIDTH) / 100) + TRACK_SHELL_WIDTH;
- const t = this.timeScale.pxToTime(xPos);
- if (xPos <= 0) continue;
- if (xPos > this.width) break;
- if (i % 10 === 0) {
- ctx.fillRect(xPos - 1, 0, 1, headerHeight - 5);
- ctx.fillText(timeToString(t - this.totTime.start), xPos + 5, 18);
- } else {
- ctx.fillRect(xPos - 1, 0, 1, 5);
+ const timeScale = new TimeScale(timeSpan, [TRACK_SHELL_WIDTH, this.width]);
+
+ if (timeScale.timeSpan.duration > 0 && timeScale.widthPx > 0) {
+ const tickGen = new TickGenerator(timeScale);
+
+ // Draw time labels on the top header.
+ ctx.font = '10px Roboto Condensed';
+ ctx.fillStyle = '#999';
+ for (const {type, time, position} of tickGen) {
+ const xPos = Math.round(position);
+ if (xPos <= 0) continue;
+ if (xPos > this.width) break;
+ if (type === TickType.MAJOR) {
+ ctx.fillRect(xPos - 1, 0, 1, headerHeight - 5);
+ ctx.fillText(time.toFixed(tickGen.digits) + ' s', xPos + 5, 18);
+ } else if (type == TickType.MEDIUM) {
+ ctx.fillRect(xPos - 1, 0, 1, 8);
+ } else if (type == TickType.MINOR) {
+ ctx.fillRect(xPos - 1, 0, 1, 5);
+ }
}
}
diff --git a/ui/src/frontend/pivot_table_redux.ts b/ui/src/frontend/pivot_table_redux.ts
index e1c880c..f17bb24 100644
--- a/ui/src/frontend/pivot_table_redux.ts
+++ b/ui/src/frontend/pivot_table_redux.ts
@@ -52,7 +52,7 @@
TableColumn,
} from './pivot_table_redux_types';
import {PopupMenuButton, PopupMenuItem} from './popup_menu';
-import {ReorderableCellGroup} from './reorderable_cells';
+import {ReorderableCell, ReorderableCellGroup} from './reorderable_cells';
interface PathItem {
@@ -85,6 +85,8 @@
return `${column} IS NULL`;
} else if (typeof filter.value === 'number') {
return `${column} = ${filter.value}`;
+ } else if (filter.value instanceof Uint8Array) {
+ throw new Error(`BLOB as DrillFilter not implemented`);
}
return `${column} = ${sqliteString(filter.value)}`;
}
@@ -98,6 +100,13 @@
}
}
+export function markFirst(index: number) {
+ if (index === 0) {
+ return '.first';
+ }
+ return '';
+}
+
export class PivotTableRedux extends Panel<PivotTableReduxAttrs> {
get pivotState() {
return globals.state.nonSerializableState.pivotTableRedux;
@@ -165,7 +174,7 @@
for (let i = 0; i < tree.aggregates.length; i++) {
const renderedValue = this.renderCell(
result.metadata.aggregationColumns[i].column, tree.aggregates[i]);
- renderedCells.push(m('td', renderedValue));
+ renderedCells.push(m('td' + markFirst(i), renderedValue));
}
const drillFilters: DrillFilter[] = [];
@@ -234,7 +243,7 @@
const value = row[aggregationIndex(treeDepth, j)];
const renderedValue = this.renderCell(
result.metadata.aggregationColumns[j].column, value);
- renderedCells.push(m('td', renderedValue));
+ renderedCells.push(m('td.aggregation' + markFirst(j), renderedValue));
}
renderedCells.push(this.renderDrillDownCell(area, drillFilters));
@@ -249,7 +258,7 @@
m('strong', 'Total values:'))];
for (let i = 0; i < queryResult.tree.aggregates.length; i++) {
overallValuesRow.push(
- m('td',
+ m('td' + markFirst(i),
this.renderCell(
queryResult.metadata.aggregationColumns[i].column,
queryResult.tree.aggregates[i])));
@@ -317,7 +326,7 @@
renderAggregationHeaderCell(
aggregation: Aggregation, index: number,
- removeItem: boolean): m.Children {
+ removeItem: boolean): ReorderableCell {
const popupItems: PopupMenuItem[] = [];
const state = globals.state.nonSerializableState.pivotTableRedux;
let icon = 'more_horiz';
@@ -382,13 +391,16 @@
popupItems.push(sliceAggregationsItem);
}
- return [
- this.readableAggregationName(aggregation),
- m(PopupMenuButton, {
- icon,
- items: popupItems,
- }),
- ];
+ return {
+ extraClass: '.aggregation' + markFirst(index),
+ content: [
+ this.readableAggregationName(aggregation),
+ m(PopupMenuButton, {
+ icon,
+ items: popupItems,
+ }),
+ ],
+ };
}
showModal = false;
@@ -422,7 +434,7 @@
renderPivotColumnHeader(
queryResult: PivotTableReduxResult, pivot: TableColumn,
- selectedPivots: Set<string>): m.Children {
+ selectedPivots: Set<string>): ReorderableCell {
const items: PopupMenuItem[] = [{
itemType: 'regular',
text: 'Add argument pivot',
@@ -476,10 +488,12 @@
});
}
- return [
- readableColumnName(pivot),
- m(PopupMenuButton, {icon: 'more_horiz', items}),
- ];
+ return {
+ content: [
+ readableColumnName(pivot),
+ m(PopupMenuButton, {icon: 'more_horiz', items}),
+ ],
+ };
}
renderResultsTable(attrs: PivotTableReduxAttrs) {
@@ -517,13 +531,13 @@
aggregation, index, removeItem));
return m(
- 'table.query-table.pivot-table',
+ 'table.pivot-table',
m('thead',
// First row of the table, containing names of pivot and aggregation
// columns, as well as popup menus to modify the columns. Last cell
// is empty because of an extra column with "drill down" button for
// each pivot table row.
- m('tr',
+ m('tr.header',
m(ReorderableCellGroup, {
cells: pivotTableHeaders,
onReorder: (
diff --git a/ui/src/frontend/query_table.ts b/ui/src/frontend/query_table.ts
index ff240d9..2469b24 100644
--- a/ui/src/frontend/query_table.ts
+++ b/ui/src/frontend/query_table.ts
@@ -79,7 +79,12 @@
const cells = [];
const {row, columns} = vnode.attrs;
for (const col of columns) {
- cells.push(m('td', row[col]));
+ const value = row[col];
+ if (value instanceof Uint8Array) {
+ cells.push(m('td', `<BLOB sz=${value.length}>`));
+ } else {
+ cells.push(m('td', value));
+ }
}
const containsSliceLocation =
QueryTableRow.columnsContainsSliceLocation(columns);
diff --git a/ui/src/frontend/reorderable_cells.ts b/ui/src/frontend/reorderable_cells.ts
index dd5992b..e3977a2 100644
--- a/ui/src/frontend/reorderable_cells.ts
+++ b/ui/src/frontend/reorderable_cells.ts
@@ -20,8 +20,13 @@
import {globals} from './globals';
+export interface ReorderableCell {
+ content: m.Children;
+ extraClass?: string;
+}
+
export interface ReorderableCellGroupAttrs {
- cells: m.Children[];
+ cells: ReorderableCell[];
onReorder: (from: number, to: number, side: DropDirection) => void;
}
@@ -62,7 +67,7 @@
view(vnode: m.Vnode<ReorderableCellGroupAttrs>): m.Children {
return vnode.attrs.cells.map(
(cell, index) => m(
- 'td.reorderable-cell',
+ `td.reorderable-cell${cell.extraClass ?? ''}`,
{
draggable: 'draggable',
class: this.getClassForIndex(index),
@@ -138,7 +143,7 @@
globals.rafScheduler.scheduleFullRedraw();
},
},
- cell));
+ cell.content));
}
oncreate(vnode: m.VnodeDOM<ReorderableCellGroupAttrs, this>) {
diff --git a/ui/src/frontend/tickmark_panel.ts b/ui/src/frontend/tickmark_panel.ts
index 6cc8037..aea1085 100644
--- a/ui/src/frontend/tickmark_panel.ts
+++ b/ui/src/frontend/tickmark_panel.ts
@@ -13,11 +13,16 @@
// limitations under the License.
import * as m from 'mithril';
+
import {fromNs} from '../common/time';
import {TRACK_SHELL_WIDTH} from './css_constants';
import {globals} from './globals';
-import {gridlines} from './gridline_helper';
+import {
+ TickGenerator,
+ TickType,
+ timeScaleForVisibleWindow,
+} from './gridline_helper';
import {Panel, PanelSize} from './panel';
// This is used to display the summary of search results.
@@ -31,9 +36,11 @@
ctx.fillStyle = '#999';
ctx.fillRect(TRACK_SHELL_WIDTH - 2, 0, 2, size.height);
- for (const xAndTime of gridlines(
- size.width, visibleWindowTime, timeScale)) {
- ctx.fillRect(xAndTime[0], 0, 1, size.height);
+ const relScale = timeScaleForVisibleWindow(TRACK_SHELL_WIDTH, size.width);
+ if (relScale.timeSpan.duration > 0 && relScale.widthPx > 0) {
+ for (const {type, position} of new TickGenerator(relScale)) {
+ if (type === TickType.MAJOR) ctx.fillRect(position, 0, 1, size.height);
+ }
}
const data = globals.searchSummary;
diff --git a/ui/src/frontend/time_axis_panel.ts b/ui/src/frontend/time_axis_panel.ts
index 2f39881..aeb396b 100644
--- a/ui/src/frontend/time_axis_panel.ts
+++ b/ui/src/frontend/time_axis_panel.ts
@@ -18,7 +18,11 @@
import {TRACK_SHELL_WIDTH} from './css_constants';
import {globals} from './globals';
-import {gridlines} from './gridline_helper';
+import {
+ TickGenerator,
+ TickType,
+ timeScaleForVisibleWindow,
+} from './gridline_helper';
import {Panel, PanelSize} from './panel';
export class TimeAxisPanel extends Panel {
@@ -27,27 +31,23 @@
}
renderCanvas(ctx: CanvasRenderingContext2D, size: PanelSize) {
- const timeScale = globals.frontendLocalState.timeScale;
- const range = globals.frontendLocalState.visibleWindowTime;
ctx.fillStyle = '#999';
-
- // Write trace offset time + line.
- ctx.font = '12px Roboto Condensed';
-
- ctx.textAlign = 'right';
- const offsetTime =
- timeToString(range.start - globals.state.traceTime.startSec);
- ctx.fillText(offsetTime, TRACK_SHELL_WIDTH - 6, 11);
-
+ ctx.font = '10px Roboto Condensed';
ctx.textAlign = 'left';
+
const startTime = timeToString(globals.state.traceTime.startSec);
ctx.fillText(startTime + ' +', 6, 11);
// Draw time axis.
- ctx.font = '10px Roboto Condensed';
- for (const [x, time] of gridlines(size.width, range, timeScale)) {
- ctx.fillRect(x, 0, 1, size.height);
- ctx.fillText('+' + timeToString(time - range.start), x + 5, 10);
+ const timeScale = timeScaleForVisibleWindow(TRACK_SHELL_WIDTH, size.width);
+ if (timeScale.timeSpan.duration > 0 && timeScale.widthPx > 0) {
+ const tickGen = new TickGenerator(timeScale);
+ for (const {type, time, position} of tickGen) {
+ if (type === TickType.MAJOR) {
+ ctx.fillRect(position, 0, 1, size.height);
+ ctx.fillText(time.toFixed(tickGen.digits) + ' s', position + 5, 10);
+ }
+ }
}
ctx.fillRect(TRACK_SHELL_WIDTH - 2, 0, 2, size.height);
diff --git a/ui/src/frontend/time_scale.ts b/ui/src/frontend/time_scale.ts
index cdf3ca2..6f0307a 100644
--- a/ui/src/frontend/time_scale.ts
+++ b/ui/src/frontend/time_scale.ts
@@ -79,6 +79,14 @@
get endPx(): number {
return this._endPx;
}
+
+ get widthPx(): number {
+ return this._endPx - this._startPx;
+ }
+
+ get timeSpan(): TimeSpan {
+ return this.timeBounds;
+ }
}
export function computeZoom(
diff --git a/ui/src/frontend/time_selection_panel.ts b/ui/src/frontend/time_selection_panel.ts
index f1391da..5fc8a9f 100644
--- a/ui/src/frontend/time_selection_panel.ts
+++ b/ui/src/frontend/time_selection_panel.ts
@@ -19,7 +19,11 @@
import {TRACK_SHELL_WIDTH} from './css_constants';
import {globals} from './globals';
-import {gridlines} from './gridline_helper';
+import {
+ TickGenerator,
+ TickType,
+ timeScaleForVisibleWindow,
+} from './gridline_helper';
import {Panel, PanelSize} from './panel';
export interface BBox {
@@ -120,13 +124,15 @@
}
renderCanvas(ctx: CanvasRenderingContext2D, size: PanelSize) {
- const range = globals.frontendLocalState.visibleWindowTime;
- const timeScale = globals.frontendLocalState.timeScale;
-
ctx.fillStyle = '#999';
ctx.fillRect(TRACK_SHELL_WIDTH - 2, 0, 2, size.height);
- for (const xAndTime of gridlines(size.width, range, timeScale)) {
- ctx.fillRect(xAndTime[0], 0, 1, size.height);
+ const scale = timeScaleForVisibleWindow(TRACK_SHELL_WIDTH, size.width);
+ if (scale.timeSpan.duration > 0 && scale.widthPx > 0) {
+ for (const {position, type} of new TickGenerator(scale)) {
+ if (type === TickType.MAJOR) {
+ ctx.fillRect(position, 0, 1, size.height);
+ }
+ }
}
const localArea = globals.frontendLocalState.selectedArea;
diff --git a/ui/src/frontend/track_group_panel.ts b/ui/src/frontend/track_group_panel.ts
index 34a7ec4..0c1df65 100644
--- a/ui/src/frontend/track_group_panel.ts
+++ b/ui/src/frontend/track_group_panel.ts
@@ -215,8 +215,6 @@
drawGridLines(
ctx,
- globals.frontendLocalState.timeScale,
- globals.frontendLocalState.visibleWindowTime,
size.width,
size.height);
diff --git a/ui/src/frontend/track_panel.ts b/ui/src/frontend/track_panel.ts
index 588900f..5ee1a55 100644
--- a/ui/src/frontend/track_panel.ts
+++ b/ui/src/frontend/track_panel.ts
@@ -364,8 +364,6 @@
drawGridLines(
ctx,
- globals.frontendLocalState.timeScale,
- globals.frontendLocalState.visibleWindowTime,
size.width,
size.height);
diff --git a/ui/tsconfig.json b/ui/tsconfig.json
index 5fd4e3d..35ae460 100644
--- a/ui/tsconfig.json
+++ b/ui/tsconfig.json
@@ -1,6 +1,6 @@
{
"extends": "./tsconfig.base.json",
- "include": [ "src/" ],
+ "include": [ "src/**/*" ],
"exclude": [
"./node_modules/",
"./src/service_worker/",