Add aggregation function EXPERIMENTAL_PERF_PROFILE
traceconv currently generates a pprof profile for all samples in a
trace. For some analysis we might be interested in only looking at
certain samples (e.g. those that intersect a given slice). This new
function allows to generate a pprof profile for a given set of samples.
E.g. To get a profile per thread
SELECT tid, EXPERIMENTAL_PERF_PROFILE(callsite_id)
FROM perf_sample
JOIN thread USING (utid)
GROUP BY tid
Change-Id: I0d06098f06baa5e668f42296a0b2c6a435c209ba
diff --git a/Android.bp b/Android.bp
index 56f9d47..3e0b127 100644
--- a/Android.bp
+++ b/Android.bp
@@ -1803,6 +1803,7 @@
":perfetto_include_perfetto_ext_base_base",
":perfetto_include_perfetto_ext_base_version",
":perfetto_include_perfetto_ext_ipc_ipc",
+ ":perfetto_include_perfetto_ext_trace_processor_demangle",
":perfetto_include_perfetto_ext_trace_processor_export_json",
":perfetto_include_perfetto_ext_trace_processor_importers_memory_tracker_memory_tracker",
":perfetto_include_perfetto_ext_traced_sys_stats_counters",
@@ -1977,6 +1978,7 @@
":perfetto_src_trace_processor_util_descriptors",
":perfetto_src_trace_processor_util_gzip",
":perfetto_src_trace_processor_util_interned_message_view",
+ ":perfetto_src_trace_processor_util_profile_builder",
":perfetto_src_trace_processor_util_proto_profiler",
":perfetto_src_trace_processor_util_proto_to_args_parser",
":perfetto_src_trace_processor_util_protozero_to_text",
@@ -9354,6 +9356,7 @@
"src/trace_processor/sqlite/create_function_internal.cc",
"src/trace_processor/sqlite/create_view_function.cc",
"src/trace_processor/sqlite/db_sqlite_table.cc",
+ "src/trace_processor/sqlite/pprof_functions.cc",
"src/trace_processor/sqlite/register_function.cc",
"src/trace_processor/sqlite/span_join_operator_table.cc",
"src/trace_processor/sqlite/sql_stats_table.cc",
@@ -9555,6 +9558,14 @@
name: "perfetto_src_trace_processor_util_interned_message_view",
}
+// GN: //src/trace_processor/util:profile_builder
+filegroup {
+ name: "perfetto_src_trace_processor_util_profile_builder",
+ srcs: [
+ "src/trace_processor/util/profile_builder.cc",
+ ],
+}
+
// GN: //src/trace_processor/util:proto_profiler
filegroup {
name: "perfetto_src_trace_processor_util_proto_profiler",
@@ -10696,6 +10707,7 @@
":perfetto_include_perfetto_ext_base_http_http",
":perfetto_include_perfetto_ext_base_version",
":perfetto_include_perfetto_ext_ipc_ipc",
+ ":perfetto_include_perfetto_ext_trace_processor_demangle",
":perfetto_include_perfetto_ext_trace_processor_export_json",
":perfetto_include_perfetto_ext_trace_processor_importers_memory_tracker_memory_tracker",
":perfetto_include_perfetto_ext_traced_sys_stats_counters",
@@ -10911,6 +10923,7 @@
":perfetto_src_trace_processor_util_descriptors",
":perfetto_src_trace_processor_util_gzip",
":perfetto_src_trace_processor_util_interned_message_view",
+ ":perfetto_src_trace_processor_util_profile_builder",
":perfetto_src_trace_processor_util_proto_profiler",
":perfetto_src_trace_processor_util_proto_to_args_parser",
":perfetto_src_trace_processor_util_protozero_to_text",
@@ -11173,6 +11186,7 @@
":perfetto_include_perfetto_ext_base_base",
":perfetto_include_perfetto_ext_base_http_http",
":perfetto_include_perfetto_ext_base_version",
+ ":perfetto_include_perfetto_ext_trace_processor_demangle",
":perfetto_include_perfetto_ext_trace_processor_export_json",
":perfetto_include_perfetto_ext_trace_processor_importers_memory_tracker_memory_tracker",
":perfetto_include_perfetto_ext_traced_sys_stats_counters",
@@ -11252,6 +11266,7 @@
":perfetto_src_trace_processor_util_descriptors",
":perfetto_src_trace_processor_util_gzip",
":perfetto_src_trace_processor_util_interned_message_view",
+ ":perfetto_src_trace_processor_util_profile_builder",
":perfetto_src_trace_processor_util_proto_profiler",
":perfetto_src_trace_processor_util_proto_to_args_parser",
":perfetto_src_trace_processor_util_protozero_to_text",
@@ -11360,6 +11375,7 @@
":perfetto_include_perfetto_base_base",
":perfetto_include_perfetto_ext_base_base",
":perfetto_include_perfetto_ext_base_version",
+ ":perfetto_include_perfetto_ext_trace_processor_demangle",
":perfetto_include_perfetto_ext_trace_processor_export_json",
":perfetto_include_perfetto_ext_trace_processor_importers_memory_tracker_memory_tracker",
":perfetto_include_perfetto_ext_traced_sys_stats_counters",
@@ -11436,6 +11452,7 @@
":perfetto_src_trace_processor_util_descriptors",
":perfetto_src_trace_processor_util_gzip",
":perfetto_src_trace_processor_util_interned_message_view",
+ ":perfetto_src_trace_processor_util_profile_builder",
":perfetto_src_trace_processor_util_proto_profiler",
":perfetto_src_trace_processor_util_proto_to_args_parser",
":perfetto_src_trace_processor_util_protozero_to_text",