tp: remove experimental package and diffuse contents into other packages
This CL removes the central "experimental" module from the stdlib. This
module's design was a bit of a mistake as it became a central dumping
ground for randoming things without clear ownership. Also making the
tables visible in the documentation while not being something people
should depend on was a bit of a misnomer.
Instead diffuse the modules inside into other packages and make all the
experimental_ prefixed tables just _ (i.e. internal tables which ~have
the same guarantees of being breakable at any time).
Change-Id: I7f2b85476f6bb53690ec2900d542463f184900d6
diff --git a/Android.bp b/Android.bp
index ebf7e39..952fcc4 100644
--- a/Android.bp
+++ b/Android.bp
@@ -11885,6 +11885,7 @@
"src/trace_processor/perfetto_sql/stdlib/android/battery.sql",
"src/trace_processor/perfetto_sql/stdlib/android/battery_stats.sql",
"src/trace_processor/perfetto_sql/stdlib/android/binder.sql",
+ "src/trace_processor/perfetto_sql/stdlib/android/broadcasts.sql",
"src/trace_processor/perfetto_sql/stdlib/android/dvfs.sql",
"src/trace_processor/perfetto_sql/stdlib/android/io.sql",
"src/trace_processor/perfetto_sql/stdlib/android/monitor_contention.sql",
@@ -11908,19 +11909,17 @@
"src/trace_processor/perfetto_sql/stdlib/common/slices.sql",
"src/trace_processor/perfetto_sql/stdlib/common/thread_states.sql",
"src/trace_processor/perfetto_sql/stdlib/common/timestamps.sql",
- "src/trace_processor/perfetto_sql/stdlib/experimental/android_broadcast.sql",
- "src/trace_processor/perfetto_sql/stdlib/experimental/flat_slices.sql",
- "src/trace_processor/perfetto_sql/stdlib/experimental/proto_path.sql",
- "src/trace_processor/perfetto_sql/stdlib/experimental/slices.sql",
- "src/trace_processor/perfetto_sql/stdlib/experimental/thread_executing_span.sql",
- "src/trace_processor/perfetto_sql/stdlib/experimental/thread_state_flattened.sql",
"src/trace_processor/perfetto_sql/stdlib/graphs/dominator_tree.sql",
"src/trace_processor/perfetto_sql/stdlib/graphs/search.sql",
"src/trace_processor/perfetto_sql/stdlib/intervals/overlap.sql",
"src/trace_processor/perfetto_sql/stdlib/linux/cpu_idle.sql",
"src/trace_processor/perfetto_sql/stdlib/pkvm/hypervisor.sql",
"src/trace_processor/perfetto_sql/stdlib/prelude/slices.sql",
+ "src/trace_processor/perfetto_sql/stdlib/sched/thread_executing_span.sql",
"src/trace_processor/perfetto_sql/stdlib/sched/thread_level_parallelism.sql",
+ "src/trace_processor/perfetto_sql/stdlib/sched/thread_state_flattened.sql",
+ "src/trace_processor/perfetto_sql/stdlib/slices/flat_slices.sql",
+ "src/trace_processor/perfetto_sql/stdlib/slices/slices.sql",
],
cmd: "$(location tools/gen_amalgamated_sql.py) --namespace=stdlib --cpp-out=$(out) $(in)",
out: [
diff --git a/BUILD b/BUILD
index 09d7509..14d7423 100644
--- a/BUILD
+++ b/BUILD
@@ -2249,6 +2249,7 @@
"src/trace_processor/perfetto_sql/stdlib/android/battery.sql",
"src/trace_processor/perfetto_sql/stdlib/android/battery_stats.sql",
"src/trace_processor/perfetto_sql/stdlib/android/binder.sql",
+ "src/trace_processor/perfetto_sql/stdlib/android/broadcasts.sql",
"src/trace_processor/perfetto_sql/stdlib/android/dvfs.sql",
"src/trace_processor/perfetto_sql/stdlib/android/io.sql",
"src/trace_processor/perfetto_sql/stdlib/android/monitor_contention.sql",
@@ -2282,19 +2283,6 @@
],
)
-# GN target: //src/trace_processor/perfetto_sql/stdlib/experimental:experimental
-perfetto_filegroup(
- name = "src_trace_processor_perfetto_sql_stdlib_experimental_experimental",
- srcs = [
- "src/trace_processor/perfetto_sql/stdlib/experimental/android_broadcast.sql",
- "src/trace_processor/perfetto_sql/stdlib/experimental/flat_slices.sql",
- "src/trace_processor/perfetto_sql/stdlib/experimental/proto_path.sql",
- "src/trace_processor/perfetto_sql/stdlib/experimental/slices.sql",
- "src/trace_processor/perfetto_sql/stdlib/experimental/thread_executing_span.sql",
- "src/trace_processor/perfetto_sql/stdlib/experimental/thread_state_flattened.sql",
- ],
-)
-
# GN target: //src/trace_processor/perfetto_sql/stdlib/graphs:graphs
perfetto_filegroup(
name = "src_trace_processor_perfetto_sql_stdlib_graphs_graphs",
@@ -2340,7 +2328,18 @@
perfetto_filegroup(
name = "src_trace_processor_perfetto_sql_stdlib_sched_sched",
srcs = [
+ "src/trace_processor/perfetto_sql/stdlib/sched/thread_executing_span.sql",
"src/trace_processor/perfetto_sql/stdlib/sched/thread_level_parallelism.sql",
+ "src/trace_processor/perfetto_sql/stdlib/sched/thread_state_flattened.sql",
+ ],
+)
+
+# GN target: //src/trace_processor/perfetto_sql/stdlib/slices:slices
+perfetto_filegroup(
+ name = "src_trace_processor_perfetto_sql_stdlib_slices_slices",
+ srcs = [
+ "src/trace_processor/perfetto_sql/stdlib/slices/flat_slices.sql",
+ "src/trace_processor/perfetto_sql/stdlib/slices/slices.sql",
],
)
@@ -2352,13 +2351,13 @@
":src_trace_processor_perfetto_sql_stdlib_android_startup_startup",
":src_trace_processor_perfetto_sql_stdlib_chrome_chrome_sql",
":src_trace_processor_perfetto_sql_stdlib_common_common",
- ":src_trace_processor_perfetto_sql_stdlib_experimental_experimental",
":src_trace_processor_perfetto_sql_stdlib_graphs_graphs",
":src_trace_processor_perfetto_sql_stdlib_intervals_intervals",
":src_trace_processor_perfetto_sql_stdlib_linux_linux",
":src_trace_processor_perfetto_sql_stdlib_pkvm_pkvm",
":src_trace_processor_perfetto_sql_stdlib_prelude_prelude",
":src_trace_processor_perfetto_sql_stdlib_sched_sched",
+ ":src_trace_processor_perfetto_sql_stdlib_slices_slices",
],
outs = [
"src/trace_processor/perfetto_sql/stdlib/stdlib.h",
diff --git a/protos/perfetto/trace_processor/trace_processor.proto b/protos/perfetto/trace_processor/trace_processor.proto
index 48959ad..c96caa0 100644
--- a/protos/perfetto/trace_processor/trace_processor.proto
+++ b/protos/perfetto/trace_processor/trace_processor.proto
@@ -47,7 +47,8 @@
// 8. Add 'json' option to ComputeMetricArgs
// 9. Add get_thread_state_summary_for_interval.
// 10. Add 'slice_is_ancestor' to stdlib.
- TRACE_PROCESSOR_CURRENT_API_VERSION = 10;
+ // 11. Removal of experimental module from stdlib.
+ TRACE_PROCESSOR_CURRENT_API_VERSION = 11;
}
// At lowest level, the wire-format of the RPC procol is a linear sequence of
diff --git a/python/perfetto/trace_processor/trace_processor.descriptor b/python/perfetto/trace_processor/trace_processor.descriptor
index ecb561d..261ab0b 100644
--- a/python/perfetto/trace_processor/trace_processor.descriptor
+++ b/python/perfetto/trace_processor/trace_processor.descriptor
Binary files differ
diff --git a/src/trace_processor/perfetto_sql/stdlib/BUILD.gn b/src/trace_processor/perfetto_sql/stdlib/BUILD.gn
index 26b7093..0f84ae8 100644
--- a/src/trace_processor/perfetto_sql/stdlib/BUILD.gn
+++ b/src/trace_processor/perfetto_sql/stdlib/BUILD.gn
@@ -22,13 +22,13 @@
"android",
"chrome:chrome_sql",
"common",
- "experimental",
"graphs",
"intervals",
"linux",
"pkvm",
"prelude",
"sched",
+ "slices",
]
generated_header = "stdlib.h"
namespace = "stdlib"
diff --git a/src/trace_processor/perfetto_sql/stdlib/android/BUILD.gn b/src/trace_processor/perfetto_sql/stdlib/android/BUILD.gn
index 7236654..9ddd90d 100644
--- a/src/trace_processor/perfetto_sql/stdlib/android/BUILD.gn
+++ b/src/trace_processor/perfetto_sql/stdlib/android/BUILD.gn
@@ -21,6 +21,7 @@
"battery.sql",
"battery_stats.sql",
"binder.sql",
+ "broadcasts.sql",
"dvfs.sql",
"io.sql",
"monitor_contention.sql",
diff --git a/src/trace_processor/perfetto_sql/stdlib/experimental/android_broadcast.sql b/src/trace_processor/perfetto_sql/stdlib/android/broadcasts.sql
similarity index 95%
rename from src/trace_processor/perfetto_sql/stdlib/experimental/android_broadcast.sql
rename to src/trace_processor/perfetto_sql/stdlib/android/broadcasts.sql
index f35b751..3afe0bf 100644
--- a/src/trace_processor/perfetto_sql/stdlib/experimental/android_broadcast.sql
+++ b/src/trace_processor/perfetto_sql/stdlib/android/broadcasts.sql
@@ -16,7 +16,7 @@
-- Provides a list of broadcast names and processes they were sent to by the
-- system_server process on U+ devices.
-CREATE PERFETTO VIEW experimental_android_broadcasts_minsdk_u(
+CREATE PERFETTO VIEW _android_broadcasts_minsdk_u(
-- The name of the broadcast type which was sent.
type STRING,
-- The process name the broadcast was sent to.
diff --git a/src/trace_processor/perfetto_sql/stdlib/common/slices.sql b/src/trace_processor/perfetto_sql/stdlib/common/slices.sql
index e89a57b..84badb6 100644
--- a/src/trace_processor/perfetto_sql/stdlib/common/slices.sql
+++ b/src/trace_processor/perfetto_sql/stdlib/common/slices.sql
@@ -253,4 +253,4 @@
SELECT
name
FROM slice
-WHERE $id = id;
\ No newline at end of file
+WHERE $id = id;
diff --git a/src/trace_processor/perfetto_sql/stdlib/linux/cpu_idle.sql b/src/trace_processor/perfetto_sql/stdlib/linux/cpu_idle.sql
index 458166f..d4aeeb2 100644
--- a/src/trace_processor/perfetto_sql/stdlib/linux/cpu_idle.sql
+++ b/src/trace_processor/perfetto_sql/stdlib/linux/cpu_idle.sql
@@ -79,4 +79,3 @@
FROM _freq_idle_counters ific
WHERE idle_value >=0
GROUP BY cpu, idle_value;
-
diff --git a/src/trace_processor/perfetto_sql/stdlib/experimental/BUILD.gn b/src/trace_processor/perfetto_sql/stdlib/proto_path/BUILD.gn
similarity index 68%
copy from src/trace_processor/perfetto_sql/stdlib/experimental/BUILD.gn
copy to src/trace_processor/perfetto_sql/stdlib/proto_path/BUILD.gn
index d9a48c1..a0d9582 100644
--- a/src/trace_processor/perfetto_sql/stdlib/experimental/BUILD.gn
+++ b/src/trace_processor/perfetto_sql/stdlib/proto_path/BUILD.gn
@@ -1,4 +1,4 @@
-# Copyright (C) 2022 The Android Open Source Project
+# 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.
@@ -14,13 +14,6 @@
import("../../../../../gn/perfetto_sql.gni")
-perfetto_sql_source_set("experimental") {
- sources = [
- "android_broadcast.sql",
- "flat_slices.sql",
- "proto_path.sql",
- "slices.sql",
- "thread_executing_span.sql",
- "thread_state_flattened.sql",
- ]
+perfetto_sql_source_set("proto_path") {
+ sources = [ "proto_path.sql" ]
}
diff --git a/src/trace_processor/perfetto_sql/stdlib/experimental/proto_path.sql b/src/trace_processor/perfetto_sql/stdlib/proto_path/proto_path.sql
similarity index 94%
rename from src/trace_processor/perfetto_sql/stdlib/experimental/proto_path.sql
rename to src/trace_processor/perfetto_sql/stdlib/proto_path/proto_path.sql
index 5ab538c..46b3e65 100644
--- a/src/trace_processor/perfetto_sql/stdlib/experimental/proto_path.sql
+++ b/src/trace_processor/perfetto_sql/stdlib/proto_path/proto_path.sql
@@ -15,7 +15,7 @@
-- Creates a Stack consisting of one frame for a path in the
-- EXPERIMENTAL_PROTO_PATH table.
-CREATE PERFETTO FUNCTION experimental_proto_path_to_frame(
+CREATE PERFETTO FUNCTION _proto_path_to_frame(
-- Id of the path in EXPERIMENTAL_PROTO_PATH.
path_id LONG)
-- Stack with one frame
@@ -31,7 +31,7 @@
-- Creates a Stack following the parent relations in EXPERIMENTAL_PROTO_PATH
-- table starting at the given path_id.
-CREATE PERFETTO FUNCTION experimental_proto_path_to_stack(
+CREATE PERFETTO FUNCTION _proto_path_to_stack(
-- Id of the path in EXPERIMENTAL_PROTO_PATH that will be the leaf in the returned stack.
path_id LONG)
-- Stack
@@ -61,4 +61,4 @@
SELECT stack
FROM R
WHERE
- parent_id IS NULL;
\ No newline at end of file
+ parent_id IS NULL;
diff --git a/src/trace_processor/perfetto_sql/stdlib/sched/BUILD.gn b/src/trace_processor/perfetto_sql/stdlib/sched/BUILD.gn
index 143aff0..8e83d6f 100644
--- a/src/trace_processor/perfetto_sql/stdlib/sched/BUILD.gn
+++ b/src/trace_processor/perfetto_sql/stdlib/sched/BUILD.gn
@@ -15,5 +15,9 @@
import("../../../../../gn/perfetto_sql.gni")
perfetto_sql_source_set("sched") {
- sources = [ "thread_level_parallelism.sql" ]
+ sources = [
+ "thread_executing_span.sql",
+ "thread_level_parallelism.sql",
+ "thread_state_flattened.sql",
+ ]
}
diff --git a/src/trace_processor/perfetto_sql/stdlib/experimental/thread_executing_span.sql b/src/trace_processor/perfetto_sql/stdlib/sched/thread_executing_span.sql
similarity index 94%
rename from src/trace_processor/perfetto_sql/stdlib/experimental/thread_executing_span.sql
rename to src/trace_processor/perfetto_sql/stdlib/sched/thread_executing_span.sql
index a5c4f5a..8e74d2f 100644
--- a/src/trace_processor/perfetto_sql/stdlib/experimental/thread_executing_span.sql
+++ b/src/trace_processor/perfetto_sql/stdlib/sched/thread_executing_span.sql
@@ -15,7 +15,7 @@
--
INCLUDE PERFETTO MODULE common.slices;
-INCLUDE PERFETTO MODULE experimental.flat_slices;
+INCLUDE PERFETTO MODULE slices.flat_slices;
-- A 'thread_executing_span' is thread_state span starting with a runnable slice
-- until the next runnable slice that's woken up by a process (as opposed
@@ -273,7 +273,7 @@
-- @column blocked_function Kernel blocked_function of thread state before waking up.
-- @column is_root Whether the thread_executing_span is a root.
-- @column depth Tree depth of thread executing span from the root.
-CREATE TABLE experimental_thread_executing_span_graph AS
+CREATE TABLE _thread_executing_span_graph AS
WITH roots AS (
SELECT
start_id AS root_id,
@@ -315,7 +315,7 @@
CREATE PERFETTO FUNCTION _critical_path_start_ts(ts LONG, leaf_blocked_ts LONG)
RETURNS LONG AS SELECT MAX($ts, IFNULL($leaf_blocked_ts, $ts));
--- See |experimental_thread_executing_span_critical_path|
+-- See |_thread_executing_span_critical_path|
CREATE PERFETTO TABLE _critical_path
AS
WITH chain AS (
@@ -332,7 +332,7 @@
blocked_function AS critical_path_blocked_function,
utid AS critical_path_utid,
upid AS critical_path_upid
- FROM experimental_thread_executing_span_graph graph
+ FROM _thread_executing_span_graph graph
UNION ALL
SELECT
graph.parent_id,
@@ -348,7 +348,7 @@
chain.critical_path_blocked_function,
chain.critical_path_utid,
chain.critical_path_upid
- FROM experimental_thread_executing_span_graph graph
+ FROM _thread_executing_span_graph graph
JOIN chain ON (chain.parent_id = graph.id AND (chain.ts > chain.critical_path_blocked_ts))
) SELECT * FROM chain;
@@ -356,7 +356,7 @@
-- every sleeping thread state is computed and unioned with the thread executing spans on that thread.
-- The duration of a thread executing span in the critical path is the range between the start of the
-- thread_executing_span and the start of the next span in the critical path.
-CREATE PERFETTO FUNCTION experimental_thread_executing_span_critical_path(
+CREATE PERFETTO FUNCTION _thread_executing_span_critical_path(
-- Utid of the thread to compute the critical path for.
critical_path_utid INT,
-- Timestamp.
@@ -409,18 +409,18 @@
critical_path_utid
FROM span_starts;
--- Limited thread_state view that will later be span joined with the |experimental_thread_executing_span_graph|.
+-- Limited thread_state view that will later be span joined with the |_thread_executing_span_graph|.
CREATE PERFETTO VIEW _span_thread_state_view
AS SELECT id AS thread_state_id, ts, dur, utid, state, blocked_function as function, io_wait, cpu FROM thread_state;
--- |experimental_thread_executing_span_graph| span joined with thread_state information.
+-- |_thread_executing_span_graph| span joined with thread_state information.
CREATE VIRTUAL TABLE _span_graph_thread_state_sp
USING
SPAN_JOIN(
- experimental_thread_executing_span_graph PARTITIONED utid,
+ _thread_executing_span_graph PARTITIONED utid,
_span_thread_state_view PARTITIONED utid);
--- Limited slice_view that will later be span joined with the |experimental_thread_executing_span_graph|.
+-- Limited slice_view that will later be span joined with the |_thread_executing_span_graph|.
CREATE PERFETTO VIEW _span_slice_view
AS
SELECT
@@ -430,28 +430,28 @@
CAST(ts AS INT) AS ts,
CAST(dur AS INT) AS dur,
utid
-FROM experimental_slice_flattened;
+FROM _slice_flattened;
--- |experimental_thread_executing_span_graph| span joined with slice information.
+-- |_thread_executing_span_graph| span joined with slice information.
CREATE VIRTUAL TABLE _span_graph_slice_sp
USING
SPAN_JOIN(
- experimental_thread_executing_span_graph PARTITIONED utid,
+ _thread_executing_span_graph PARTITIONED utid,
_span_slice_view PARTITIONED utid);
--- Limited |experimental_thread_executing_span_graph| + thread_state view.
+-- Limited |_thread_executing_span_graph| + thread_state view.
CREATE PERFETTO VIEW _span_graph_thread_state
AS
SELECT ts, dur, id, thread_state_id, state, function, io_wait, cpu
FROM _span_graph_thread_state_sp;
--- Limited |experimental_thread_executing_span_graph| + slice view.
+-- Limited |_thread_executing_span_graph| + slice view.
CREATE PERFETTO VIEW _span_graph_slice
AS
SELECT ts, dur, id, slice_id, slice_depth, slice_name
FROM _span_graph_slice_sp;
--- |experimental_thread_executing_span_graph| + thread_state view joined with critical_path information.
+-- |_thread_executing_span_graph| + thread_state view joined with critical_path information.
CREATE PERFETTO TABLE _critical_path_thread_state AS
WITH span AS MATERIALIZED (
SELECT * FROM _critical_path
@@ -494,8 +494,8 @@
FROM span_starts
WHERE MIN(span_end_ts, thread_state_end_ts) - ts > 0;
--- |experimental_thread_executing_span_graph| + thread_state + critical_path span joined with
--- |experimental_thread_executing_span_graph| + slice view.
+-- |_thread_executing_span_graph| + thread_state + critical_path span joined with
+-- |_thread_executing_span_graph| + slice view.
CREATE VIRTUAL TABLE _critical_path_sp
USING
SPAN_LEFT_JOIN(
@@ -505,7 +505,7 @@
-- Flattened slices span joined with their thread_states. This contains the 'self' information
-- without 'critical_path' (blocking) information.
CREATE VIRTUAL TABLE _self_sp USING
- SPAN_LEFT_JOIN(thread_state PARTITIONED utid, experimental_slice_flattened PARTITIONED utid);
+ SPAN_LEFT_JOIN(thread_state PARTITIONED utid, _slice_flattened PARTITIONED utid);
-- Limited view of |_self_sp|.
CREATE PERFETTO VIEW _self_view
@@ -883,7 +883,7 @@
-- stacked from top to bottom: self thread_state, self blocked_function, self process_name,
-- self thread_name, slice stack, critical_path thread_state, critical_path process_name,
-- critical_path thread_name, critical_path slice_stack, running_cpu.
-CREATE PERFETTO FUNCTION experimental_thread_executing_span_critical_path_stack(
+CREATE PERFETTO FUNCTION _thread_executing_span_critical_path_stack(
-- Thread utid to filter critical paths to.
critical_path_utid INT,
-- Timestamp of start of time range to filter critical paths to.
@@ -962,8 +962,8 @@
)
SELECT EXPERIMENTAL_PROFILE(stack, 'duration', 'ns', dur) AS pprof FROM stacks;
--- Returns a pprof aggreagation of the stacks in |experimental_thread_executing_span_critical_path_stack|
-CREATE PERFETTO FUNCTION experimental_thread_executing_span_critical_path_graph(
+-- Returns a pprof aggreagation of the stacks in |_thread_executing_span_critical_path_stack|
+CREATE PERFETTO FUNCTION _thread_executing_span_critical_path_graph(
-- Descriptive name for the graph.
graph_title STRING,
-- Thread utid to filter critical paths to.
diff --git a/src/trace_processor/perfetto_sql/stdlib/experimental/thread_state_flattened.sql b/src/trace_processor/perfetto_sql/stdlib/sched/thread_state_flattened.sql
similarity index 89%
rename from src/trace_processor/perfetto_sql/stdlib/experimental/thread_state_flattened.sql
rename to src/trace_processor/perfetto_sql/stdlib/sched/thread_state_flattened.sql
index 48dcfbf..2ba1406 100644
--- a/src/trace_processor/perfetto_sql/stdlib/experimental/thread_state_flattened.sql
+++ b/src/trace_processor/perfetto_sql/stdlib/sched/thread_state_flattened.sql
@@ -13,18 +13,18 @@
-- See the License for the specific language governing permissions and
-- limitations under the License.
-INCLUDE PERFETTO MODULE experimental.flat_slices;
+INCLUDE PERFETTO MODULE slices.flat_slices;
-- Create a table which joins the thread state across the flattened slices.
-CREATE VIRTUAL TABLE _experimental_span_joined_thread USING
- SPAN_JOIN(experimental_slice_flattened PARTITIONED utid, thread_state PARTITIONED utid);
+CREATE VIRTUAL TABLE __span_joined_thread USING
+ SPAN_JOIN(_slice_flattened PARTITIONED utid, thread_state PARTITIONED utid);
-- Get the thread state breakdown of a flattened slice from its slice id.
-- This table pivoted and summed for better visualization and aggregation.
-- The concept of a "flat slice" is to take the data in the slice table and
-- remove all notion of nesting. For more information, read the description
--- of experimental_slice_flattened.
-CREATE PERFETTO FUNCTION experimental_get_flattened_thread_state(
+-- of _slice_flattened.
+CREATE PERFETTO FUNCTION _get_flattened_thread_state(
-- Id of the slice of interest.
slice_id LONG,
-- Utid.
@@ -84,7 +84,7 @@
blocked_function,
waker_utid,
irq_context
-FROM _experimental_span_joined_thread
+FROM __span_joined_thread
WHERE
track_id = (SELECT track_id FROM interesting_slice)
AND ts >= (SELECT ts FROM interesting_slice)
@@ -94,8 +94,8 @@
-- This table pivoted and summed for better visualization and aggragation.
-- The concept of a "flat slice" is to take the data in the slice table and
-- remove all notion of nesting. For more information, read the description
--- of experimental_slice_flattened.
-CREATE PERFETTO FUNCTION experimental_get_flattened_thread_state_aggregated(
+-- of _slice_flattened.
+CREATE PERFETTO FUNCTION _get_flattened_thread_state_aggregated(
-- Slice id.
slice_id LONG,
-- Utid.
@@ -145,7 +145,7 @@
WITH
final_table AS (
SELECT *
- FROM experimental_get_flattened_thread_state($slice_id, $utid)
+ FROM _get_flattened_thread_state($slice_id, $utid)
)
SELECT
fs.slice_id,
diff --git a/src/trace_processor/perfetto_sql/stdlib/experimental/BUILD.gn b/src/trace_processor/perfetto_sql/stdlib/slices/BUILD.gn
similarity index 75%
rename from src/trace_processor/perfetto_sql/stdlib/experimental/BUILD.gn
rename to src/trace_processor/perfetto_sql/stdlib/slices/BUILD.gn
index d9a48c1..ac79369 100644
--- a/src/trace_processor/perfetto_sql/stdlib/experimental/BUILD.gn
+++ b/src/trace_processor/perfetto_sql/stdlib/slices/BUILD.gn
@@ -1,4 +1,4 @@
-# Copyright (C) 2022 The Android Open Source Project
+# 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.
@@ -14,13 +14,9 @@
import("../../../../../gn/perfetto_sql.gni")
-perfetto_sql_source_set("experimental") {
+perfetto_sql_source_set("slices") {
sources = [
- "android_broadcast.sql",
"flat_slices.sql",
- "proto_path.sql",
"slices.sql",
- "thread_executing_span.sql",
- "thread_state_flattened.sql",
]
}
diff --git a/src/trace_processor/perfetto_sql/stdlib/experimental/flat_slices.sql b/src/trace_processor/perfetto_sql/stdlib/slices/flat_slices.sql
similarity index 94%
rename from src/trace_processor/perfetto_sql/stdlib/experimental/flat_slices.sql
rename to src/trace_processor/perfetto_sql/stdlib/slices/flat_slices.sql
index a6b7f9b..4353ed2 100644
--- a/src/trace_processor/perfetto_sql/stdlib/experimental/flat_slices.sql
+++ b/src/trace_processor/perfetto_sql/stdlib/slices/flat_slices.sql
@@ -51,7 +51,7 @@
-- @column upid Alias for `process.upid`.
-- @column pid Alias for `process.pid`.
-- @column process_name Alias for `process.name`.
-CREATE TABLE experimental_slice_flattened AS
+CREATE TABLE _slice_flattened AS
-- The algorithm proceeds as follows:
-- 1. Find the start and end timestamps of all slices.
-- 2. Iterate the generated timestamps within a stack in chronoligical order.
@@ -102,9 +102,9 @@
WHERE depth != -1;
CREATE
- INDEX experimental_slice_flattened_id_idx
-ON experimental_slice_flattened(slice_id);
+ INDEX _slice_flattened_id_idx
+ON _slice_flattened(slice_id);
CREATE
- INDEX experimental_slice_flattened_ts_idx
-ON experimental_slice_flattened(ts);
+ INDEX _slice_flattened_ts_idx
+ON _slice_flattened(ts);
diff --git a/src/trace_processor/perfetto_sql/stdlib/experimental/slices.sql b/src/trace_processor/perfetto_sql/stdlib/slices/slices.sql
similarity index 97%
rename from src/trace_processor/perfetto_sql/stdlib/experimental/slices.sql
rename to src/trace_processor/perfetto_sql/stdlib/slices/slices.sql
index 757e7b0..20383b3 100644
--- a/src/trace_processor/perfetto_sql/stdlib/experimental/slices.sql
+++ b/src/trace_processor/perfetto_sql/stdlib/slices/slices.sql
@@ -19,7 +19,7 @@
-- `thread_slice` and `process_slice`, this view contains all slices,
-- with thread- and process-related columns set to NULL if the slice
-- is not associated with a thread or a process.
-CREATE PERFETTO VIEW experimental_slice_with_thread_and_process_info(
+CREATE PERFETTO VIEW _slice_with_thread_and_process_info(
-- Alias for `slice.id`.
id INT,
-- Alias for `slice.type`.
diff --git a/test/trace_processor/diff_tests/stdlib/slices/tests.py b/test/trace_processor/diff_tests/stdlib/slices/tests.py
index 4f814cc..9b565bb 100644
--- a/test/trace_processor/diff_tests/stdlib/slices/tests.py
+++ b/test/trace_processor/diff_tests/stdlib/slices/tests.py
@@ -54,10 +54,10 @@
return DiffTestBlueprint(
trace=Path('trace.py'),
query="""
- INCLUDE PERFETTO MODULE experimental.slices;
+ INCLUDE PERFETTO MODULE slices.slices;
SELECT name, ts, dur, depth, thread_name, tid, process_name, pid
- FROM experimental_slice_with_thread_and_process_info;
+ FROM _slice_with_thread_and_process_info;
""",
out=Csv("""
"name","ts","dur","depth","thread_name","tid","process_name","pid"
@@ -143,10 +143,10 @@
return DiffTestBlueprint(
trace=DataPath('chrome_input_with_frame_view.pftrace'),
query="""
- INCLUDE PERFETTO MODULE experimental.flat_slices;
+ INCLUDE PERFETTO MODULE slices.flat_slices;
SELECT e.name, e.ts, e.dur, e.depth
- FROM experimental_slice_flattened e
+ FROM _slice_flattened e
JOIN thread_track ON e.track_id = thread_track.id
JOIN thread USING(utid)
WHERE thread.tid = 30944;
diff --git a/test/trace_processor/diff_tests/tables/tests.py b/test/trace_processor/diff_tests/tables/tests.py
index 5a8f393..8346078 100644
--- a/test/trace_processor/diff_tests/tables/tests.py
+++ b/test/trace_processor/diff_tests/tables/tests.py
@@ -268,8 +268,8 @@
return DiffTestBlueprint(
trace=DataPath('android_monitor_contention_trace.atr'),
query="""
- INCLUDE PERFETTO MODULE experimental.thread_state_flattened;
- select * from experimental_get_flattened_thread_state_aggregated(11155, NULL);
+ INCLUDE PERFETTO MODULE sched.thread_state_flattened;
+ select * from _get_flattened_thread_state_aggregated(11155, NULL);
""",
out=Path('thread_state_flattened_aggregated_csv.out'))
@@ -277,8 +277,8 @@
return DiffTestBlueprint(
trace=DataPath('android_monitor_contention_trace.atr'),
query="""
- INCLUDE PERFETTO MODULE experimental.thread_state_flattened;
- select * from experimental_get_flattened_thread_state(11155, NULL);
+ INCLUDE PERFETTO MODULE sched.thread_state_flattened;
+ select * from _get_flattened_thread_state(11155, NULL);
""",
out=Path('thread_state_flattened_csv.out'))
diff --git a/test/trace_processor/diff_tests/tables/tests_sched.py b/test/trace_processor/diff_tests/tables/tests_sched.py
index ad2d875..399cb55 100644
--- a/test/trace_processor/diff_tests/tables/tests_sched.py
+++ b/test/trace_processor/diff_tests/tables/tests_sched.py
@@ -126,7 +126,7 @@
return DiffTestBlueprint(
trace=DataPath('sched_wakeup_trace.atr'),
query="""
- INCLUDE PERFETTO MODULE experimental.thread_executing_span;
+ INCLUDE PERFETTO MODULE sched.thread_executing_span;
SELECT
root_id,
parent_id,
@@ -140,7 +140,7 @@
blocked_function,
is_root,
depth
- FROM experimental_thread_executing_span_graph
+ FROM _thread_executing_span_graph
WHERE blocked_function IS NOT NULL
ORDER BY ts
LIMIT 10
@@ -163,7 +163,7 @@
return DiffTestBlueprint(
trace=DataPath('sched_wakeup_trace.atr'),
query="""
- INCLUDE PERFETTO MODULE experimental.thread_executing_span;
+ INCLUDE PERFETTO MODULE sched.thread_executing_span;
SELECT
root_id,
parent_id,
@@ -177,7 +177,7 @@
blocked_function,
is_root,
depth
- FROM experimental_thread_executing_span_graph
+ FROM _thread_executing_span_graph
WHERE ts = 1735842081507 AND dur = 293868
""",
out=Csv("""
@@ -189,7 +189,7 @@
return DiffTestBlueprint(
trace=DataPath('sched_wakeup_trace.atr'),
query="""
- INCLUDE PERFETTO MODULE experimental.thread_executing_span;
+ INCLUDE PERFETTO MODULE sched.thread_executing_span;
SELECT COUNT(*) AS count FROM _runnable_state WHERE state = 'Running'
""",
out=Csv("""
@@ -201,8 +201,8 @@
return DiffTestBlueprint(
trace=DataPath('sched_wakeup_trace.atr'),
query="""
- INCLUDE PERFETTO MODULE experimental.thread_executing_span;
- SELECT ts,dur FROM experimental_thread_executing_span_graph
+ INCLUDE PERFETTO MODULE sched.thread_executing_span;
+ SELECT ts,dur FROM _thread_executing_span_graph
WHERE dur IS NULL OR ts IS NULL
""",
out=Csv("""
@@ -213,8 +213,8 @@
return DiffTestBlueprint(
trace=DataPath('sched_switch_original.pb'),
query="""
- INCLUDE PERFETTO MODULE experimental.thread_executing_span;
- SELECT COUNT(*) AS count FROM experimental_thread_executing_span_graph
+ INCLUDE PERFETTO MODULE sched.thread_executing_span;
+ SELECT COUNT(*) AS count FROM _thread_executing_span_graph
""",
out=Csv("""
"count"
@@ -225,7 +225,7 @@
return DiffTestBlueprint(
trace=DataPath('sched_wakeup_trace.atr'),
query="""
- INCLUDE PERFETTO MODULE experimental.thread_executing_span;
+ INCLUDE PERFETTO MODULE sched.thread_executing_span;
SELECT
id,
ts,
@@ -236,7 +236,7 @@
critical_path_blocked_state,
critical_path_blocked_function,
critical_path_utid INT
- FROM experimental_thread_executing_span_critical_path(NULL, start_ts, end_ts), trace_bounds
+ FROM _thread_executing_span_critical_path(NULL, start_ts, end_ts), trace_bounds
ORDER BY ts
LIMIT 10
""",
@@ -258,7 +258,7 @@
return DiffTestBlueprint(
trace=DataPath('sched_wakeup_trace.atr'),
query="""
- INCLUDE PERFETTO MODULE experimental.thread_executing_span;
+ INCLUDE PERFETTO MODULE sched.thread_executing_span;
SELECT
id,
ts,
@@ -269,7 +269,7 @@
critical_path_blocked_state,
critical_path_blocked_function,
critical_path_utid INT
- FROM experimental_thread_executing_span_critical_path((select utid from thread where tid = 3487), start_ts, end_ts), trace_bounds
+ FROM _thread_executing_span_critical_path((select utid from thread where tid = 3487), start_ts, end_ts), trace_bounds
ORDER BY ts
LIMIT 10
""",
@@ -291,7 +291,7 @@
return DiffTestBlueprint(
trace=DataPath('sched_wakeup_trace.atr'),
query="""
- INCLUDE PERFETTO MODULE experimental.thread_executing_span;
+ INCLUDE PERFETTO MODULE sched.thread_executing_span;
SELECT
id,
ts,
@@ -301,7 +301,7 @@
name,
table_name,
critical_path_utid
- FROM experimental_thread_executing_span_critical_path_stack((select utid from thread where tid = 3487), start_ts, end_ts), trace_bounds
+ FROM _thread_executing_span_critical_path_stack((select utid from thread where tid = 3487), start_ts, end_ts), trace_bounds
ORDER BY ts
LIMIT 11
""",
@@ -324,8 +324,8 @@
return DiffTestBlueprint(
trace=DataPath('sched_wakeup_trace.atr'),
query="""
- INCLUDE PERFETTO MODULE experimental.thread_executing_span;
- SELECT HEX(pprof) FROM experimental_thread_executing_span_critical_path_graph("critical path", (select utid from thread where tid = 3487), 1737488133487, 16000), trace_bounds
+ INCLUDE PERFETTO MODULE sched.thread_executing_span;
+ SELECT HEX(pprof) FROM _thread_executing_span_critical_path_graph("critical path", (select utid from thread where tid = 3487), 1737488133487, 16000), trace_bounds
""",
out=BinaryProto(
message_type="perfetto.third_party.perftools.profiles.Profile",
diff --git a/tools/check_sql_modules.py b/tools/check_sql_modules.py
index 20440f9..27e95cb 100755
--- a/tools/check_sql_modules.py
+++ b/tools/check_sql_modules.py
@@ -45,11 +45,11 @@
'_chrome_mojo_slices', '_chrome_java_views', '_chrome_scheduler_tasks',
'_chrome_tasks'
],
- '/experimental/thread_executing_span.sql': [
- '_wakeup', 'experimental_thread_executing_span_graph', '_critical_path',
- '_wakeup_graph', 'experimental_thread_executing_span_graph'
+ '/sched/thread_executing_span.sql': [
+ '_wakeup', '_thread_executing_span_graph', '_critical_path',
+ '_wakeup_graph', '_thread_executing_span_graph'
],
- '/experimental/flat_slices.sql': ['experimental_slice_flattened']
+ '/slices/flat_slices.sql': ['_slice_flattened']
}
diff --git a/ui/src/frontend/app.ts b/ui/src/frontend/app.ts
index ae4c38b..015b893 100644
--- a/ui/src/frontend/app.ts
+++ b/ui/src/frontend/app.ts
@@ -323,7 +323,7 @@
if (engine !== undefined && trackUtid != 0) {
await runQuery(
- `SELECT IMPORT('experimental.thread_executing_span');`,
+ `SELECT IMPORT('sched.thread_executing_span');`,
engine);
await addDebugSliceTrack(
engine,
@@ -338,7 +338,7 @@
process.name AS process_name,
'thread_state' AS table_name
FROM
- experimental_thread_executing_span_critical_path(
+ _thread_executing_span_critical_path(
${trackUtid},
${window.start},
${window.end} - ${window.start}) cr
@@ -365,7 +365,7 @@
if (engine !== undefined && trackUtid != 0) {
await runQuery(
- `SELECT IMPORT('experimental.thread_executing_span');`,
+ `SELECT IMPORT('sched.thread_executing_span');`,
engine);
await addDebugSliceTrack(
engine,
@@ -399,10 +399,10 @@
if (engine !== undefined && trackUtid != 0) {
addQueryResultsTab({
- query: `SELECT IMPORT('experimental.thread_executing_span');
+ query: `SELECT IMPORT('sched.thread_executing_span');
SELECT *
FROM
- experimental_thread_executing_span_critical_path_graph(
+ _thread_executing_span_critical_path_graph(
"criical_path",
${trackUtid},
${window.start},
diff --git a/ui/src/frontend/thread_state_tab.ts b/ui/src/frontend/thread_state_tab.ts
index 3d4047f..1c881ec 100644
--- a/ui/src/frontend/thread_state_tab.ts
+++ b/ui/src/frontend/thread_state_tab.ts
@@ -291,7 +291,7 @@
), m(Button,
{
label: 'Critical path lite',
- onclick: () => runQuery(`INCLUDE PERFETTO MODULE experimental.thread_executing_span;`, this.engine)
+ onclick: () => runQuery(`INCLUDE PERFETTO MODULE sched.thread_executing_span;`, this.engine)
.then(() => addDebugSliceTrack(
this.engine,
{
@@ -306,7 +306,7 @@
process.name AS process_name,
'thread_state' AS table_name
FROM
- experimental_thread_executing_span_critical_path(
+ _thread_executing_span_critical_path(
${this.state?.thread?.utid},
trace_bounds.start_ts,
trace_bounds.end_ts - trace_bounds.start_ts) cr,
@@ -323,7 +323,7 @@
), m(Button,
{
label: 'Critical path',
- onclick: () => runQuery(`INCLUDE PERFETTO MODULE experimental.thread_executing_span;`, this.engine)
+ onclick: () => runQuery(`INCLUDE PERFETTO MODULE sched.thread_executing_span;`, this.engine)
.then(() => addDebugSliceTrack(
this.engine,
{
@@ -331,7 +331,7 @@
`
SELECT cr.id, cr.utid, cr.ts, cr.dur, cr.name, cr.table_name
FROM
- experimental_thread_executing_span_critical_path_stack(
+ _thread_executing_span_critical_path_stack(
${this.state?.thread?.utid},
trace_bounds.start_ts,
trace_bounds.end_ts - trace_bounds.start_ts) cr,