[tracing][stdlib] Add input.sql module
This CL adds a new stdlib module for getting information about the input pipeline. The first table added to this module has sequences of the input pipeline processing steps. PERFETTO_TESTS=`autoninja -C out/Default perfetto_diff_tests && out/Default/bin/run_perfetto_diff_tests` Bug: b:374736396 Change-Id: Ie800f92ec58b80e4f8cb896fb1c5b3ef9a94f950 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5948879 Reviewed-by: Etienne Pierre-Doray <etiennep@chromium.org> Reviewed-by: Tushar Agarwal <agarwaltushar@google.com> Commit-Queue: Oksana Zhuravlova <oksamyt@chromium.org> Cr-Commit-Position: refs/heads/main@{#1374761}
This commit is contained in:

committed by
Chromium LUCI CQ

parent
8cd1492b48
commit
fecb9c6621
7
DEPS
7
DEPS
@ -2344,6 +2344,13 @@ deps = {
|
||||
'generation': 1719520814352733,
|
||||
'output_file': 'chrome_input_with_frame_view_new.pftrace'
|
||||
},
|
||||
{
|
||||
'object_name': 'test_data/scroll_m131.pftrace-14171c9e502a65a454f39fe14fce8b313c7012a2c14394bed496fc93b1644b0d',
|
||||
'sha256sum': '14171c9e502a65a454f39fe14fce8b313c7012a2c14394bed496fc93b1644b0d',
|
||||
'size_bytes': 1247290,
|
||||
'generation': 1729619115836875,
|
||||
'output_file': 'scroll_m131.pftrace'
|
||||
}
|
||||
],
|
||||
'dep_type': 'gcs'
|
||||
},
|
||||
|
87
base/tracing/stdlib/chrome/input.sql
Normal file
87
base/tracing/stdlib/chrome/input.sql
Normal file
@ -0,0 +1,87 @@
|
||||
-- Copyright 2024 The Chromium Authors
|
||||
-- Use of this source code is governed by a BSD-style license that can be
|
||||
-- found in the LICENSE file.
|
||||
|
||||
INCLUDE PERFETTO MODULE slices.with_context;
|
||||
|
||||
-- Processing steps of the Chrome input pipeline.
|
||||
CREATE PERFETTO TABLE _chrome_input_pipeline_steps_no_input_type(
|
||||
-- Id of this Chrome input pipeline (LatencyInfo).
|
||||
latency_id INT,
|
||||
-- Slice id
|
||||
slice_id INT,
|
||||
-- The step timestamp.
|
||||
ts INT,
|
||||
-- Step duration.
|
||||
dur INT,
|
||||
-- Utid of the thread.
|
||||
utid INT,
|
||||
-- Step name (ChromeLatencyInfo.step).
|
||||
step STRING,
|
||||
-- Input type.
|
||||
input_type STRING
|
||||
) AS
|
||||
SELECT
|
||||
EXTRACT_ARG(thread_slice.arg_set_id, 'chrome_latency_info.trace_id') AS latency_id,
|
||||
id AS slice_id,
|
||||
ts,
|
||||
dur,
|
||||
utid,
|
||||
EXTRACT_ARG(thread_slice.arg_set_id, 'chrome_latency_info.step') AS step,
|
||||
EXTRACT_ARG(thread_slice.arg_set_id, 'chrome_latency_info.input_type') AS input_type
|
||||
FROM
|
||||
thread_slice
|
||||
WHERE
|
||||
step IS NOT NULL
|
||||
AND latency_id != -1
|
||||
ORDER BY slice_id, ts;
|
||||
|
||||
-- Each row represents one input pipeline.
|
||||
CREATE PERFETTO TABLE chrome_inputs(
|
||||
-- Id of this Chrome input pipeline (LatencyInfo).
|
||||
latency_id INT,
|
||||
-- Input type.
|
||||
input_type STRING
|
||||
) AS
|
||||
SELECT
|
||||
-- Id of this Chrome input pipeline (LatencyInfo).
|
||||
latency_id,
|
||||
-- MIN selects the first non-null value.
|
||||
MIN(input_type) as input_type
|
||||
FROM _chrome_input_pipeline_steps_no_input_type
|
||||
WHERE latency_id != -1
|
||||
GROUP BY latency_id;
|
||||
|
||||
-- Since not all steps have associated input type (but all steps
|
||||
-- for a given latency id should have the same input type),
|
||||
-- populate input type for steps where it would be NULL.
|
||||
CREATE PERFETTO TABLE chrome_input_pipeline_steps(
|
||||
-- Id of this Chrome input pipeline (LatencyInfo).
|
||||
latency_id INT,
|
||||
-- Slice id
|
||||
slice_id INT,
|
||||
-- The step timestamp.
|
||||
ts INT,
|
||||
-- Step duration.
|
||||
dur INT,
|
||||
-- Utid of the thread.
|
||||
utid INT,
|
||||
-- Step name (ChromeLatencyInfo.step).
|
||||
step STRING,
|
||||
-- Input type.
|
||||
input_type STRING
|
||||
) AS
|
||||
SELECT
|
||||
latency_id,
|
||||
slice_id,
|
||||
ts,
|
||||
dur,
|
||||
utid,
|
||||
step,
|
||||
chrome_inputs.input_type AS input_type
|
||||
FROM
|
||||
chrome_inputs
|
||||
LEFT JOIN
|
||||
_chrome_input_pipeline_steps_no_input_type
|
||||
USING (latency_id)
|
||||
WHERE chrome_inputs.input_type IS NOT NULL;
|
@ -11,6 +11,7 @@ chrome_stdlib_sql_files = [
|
||||
"histograms.sql",
|
||||
"interactions.sql",
|
||||
"metadata.sql",
|
||||
"input.sql",
|
||||
"page_loads.sql",
|
||||
"scroll_interactions.sql",
|
||||
"speedometer.sql",
|
||||
|
1
base/tracing/test/data_sha256/scroll_m131.pftrace.sha256
Normal file
1
base/tracing/test/data_sha256/scroll_m131.pftrace.sha256
Normal file
@ -0,0 +1 @@
|
||||
14171c9e502a65a454f39fe14fce8b313c7012a2c14394bed496fc93b1644b0d
|
@ -352,3 +352,44 @@ class ChromeScrollJankStdlib(TestSuite):
|
||||
772,"EventLatency",4488833198068189,38185000,21,1,"INERTIAL_GESTURE_SCROLL_UPDATE",42,11.111000,0,4488833211744189,4488833212097189,4488833226028189,4488833227246189,4488833236253189
|
||||
819,"EventLatency",4488833209202189,38170000,22,1,"INERTIAL_GESTURE_SCROLL_UPDATE",43,11.111000,0,4488833223115189,4488833223308189,4488833237115189,4488833238196189,4488833247372189
|
||||
"""))
|
||||
|
||||
# A trace from M131 (ToT as of adding this test) has the necessary
|
||||
# events/arguments.
|
||||
def test_chrome_input_pipeline_steps(self):
|
||||
return DiffTestBlueprint(
|
||||
trace=DataPath('scroll_m131.pftrace'),
|
||||
query="""
|
||||
INCLUDE PERFETTO MODULE chrome.input;
|
||||
|
||||
SELECT latency_id,
|
||||
input_type,
|
||||
GROUP_CONCAT(step) AS steps
|
||||
FROM chrome_input_pipeline_steps
|
||||
GROUP BY latency_id
|
||||
ORDER by input_type
|
||||
LIMIT 20
|
||||
""",
|
||||
out=Csv("""
|
||||
"latency_id","input_type","steps"
|
||||
-2143831735395279846,"GESTURE_FLING_CANCEL_EVENT","STEP_SEND_INPUT_EVENT_UI"
|
||||
-2143831735395279570,"GESTURE_FLING_CANCEL_EVENT","STEP_SEND_INPUT_EVENT_UI"
|
||||
-2143831735395279037,"GESTURE_FLING_CANCEL_EVENT","STEP_SEND_INPUT_EVENT_UI"
|
||||
-2143831735395280234,"GESTURE_FLING_START_EVENT","STEP_SEND_INPUT_EVENT_UI"
|
||||
-2143831735395279756,"GESTURE_FLING_START_EVENT","STEP_SEND_INPUT_EVENT_UI"
|
||||
-2143831735395279516,"GESTURE_FLING_START_EVENT","STEP_SEND_INPUT_EVENT_UI"
|
||||
-2143831735395278975,"GESTURE_FLING_START_EVENT","STEP_SEND_INPUT_EVENT_UI"
|
||||
-2143831735395280167,"GESTURE_SCROLL_BEGIN_EVENT","STEP_SEND_INPUT_EVENT_UI,STEP_HANDLE_INPUT_EVENT_IMPL,STEP_DID_HANDLE_INPUT_AND_OVERSCROLL,STEP_GESTURE_EVENT_HANDLED"
|
||||
-2143831735395279816,"GESTURE_SCROLL_BEGIN_EVENT","STEP_SEND_INPUT_EVENT_UI,STEP_HANDLE_INPUT_EVENT_IMPL,STEP_DID_HANDLE_INPUT_AND_OVERSCROLL,STEP_GESTURE_EVENT_HANDLED"
|
||||
-2143831735395279175,"GESTURE_SCROLL_BEGIN_EVENT","STEP_SEND_INPUT_EVENT_UI,STEP_HANDLE_INPUT_EVENT_IMPL,STEP_DID_HANDLE_INPUT_AND_OVERSCROLL,STEP_GESTURE_EVENT_HANDLED"
|
||||
-2143831735395279004,"GESTURE_SCROLL_BEGIN_EVENT","STEP_SEND_INPUT_EVENT_UI,STEP_HANDLE_INPUT_EVENT_IMPL,STEP_DID_HANDLE_INPUT_AND_OVERSCROLL,STEP_GESTURE_EVENT_HANDLED"
|
||||
-2143831735395280198,"GESTURE_SCROLL_END_EVENT","STEP_SEND_INPUT_EVENT_UI,STEP_GESTURE_EVENT_HANDLED,STEP_HANDLE_INPUT_EVENT_IMPL,STEP_DID_HANDLE_INPUT_AND_OVERSCROLL"
|
||||
-2143831735395279762,"GESTURE_SCROLL_END_EVENT","STEP_SEND_INPUT_EVENT_UI,STEP_GESTURE_EVENT_HANDLED,STEP_HANDLE_INPUT_EVENT_IMPL,STEP_DID_HANDLE_INPUT_AND_OVERSCROLL"
|
||||
-2143831735395279584,"GESTURE_SCROLL_END_EVENT","STEP_SEND_INPUT_EVENT_UI,STEP_GESTURE_EVENT_HANDLED,STEP_HANDLE_INPUT_EVENT_IMPL,STEP_DID_HANDLE_INPUT_AND_OVERSCROLL"
|
||||
-2143831735395279038,"GESTURE_SCROLL_END_EVENT","STEP_SEND_INPUT_EVENT_UI,STEP_GESTURE_EVENT_HANDLED,STEP_HANDLE_INPUT_EVENT_IMPL,STEP_DID_HANDLE_INPUT_AND_OVERSCROLL"
|
||||
-2143831735395280256,"GESTURE_SCROLL_UPDATE_EVENT","STEP_SEND_INPUT_EVENT_UI,STEP_HANDLE_INPUT_EVENT_IMPL,STEP_DID_HANDLE_INPUT_AND_OVERSCROLL,STEP_GESTURE_EVENT_HANDLED"
|
||||
-2143831735395280254,"GESTURE_SCROLL_UPDATE_EVENT","STEP_SEND_INPUT_EVENT_UI,STEP_HANDLE_INPUT_EVENT_IMPL,STEP_DID_HANDLE_INPUT_AND_OVERSCROLL,STEP_GESTURE_EVENT_HANDLED"
|
||||
-2143831735395280250,"GESTURE_SCROLL_UPDATE_EVENT","STEP_SEND_INPUT_EVENT_UI,STEP_HANDLE_INPUT_EVENT_IMPL,STEP_DID_HANDLE_INPUT_AND_OVERSCROLL,STEP_GESTURE_EVENT_HANDLED"
|
||||
-2143831735395280248,"GESTURE_SCROLL_UPDATE_EVENT","STEP_SEND_INPUT_EVENT_UI,STEP_HANDLE_INPUT_EVENT_IMPL,STEP_DID_HANDLE_INPUT_AND_OVERSCROLL,STEP_GESTURE_EVENT_HANDLED"
|
||||
-2143831735395280246,"GESTURE_SCROLL_UPDATE_EVENT","STEP_SEND_INPUT_EVENT_UI,STEP_HANDLE_INPUT_EVENT_IMPL,STEP_DID_HANDLE_INPUT_AND_OVERSCROLL,STEP_GESTURE_EVENT_HANDLED"
|
||||
"""))
|
||||
|
||||
|
Reference in New Issue
Block a user