blob: 34e5f03d0c48f9d92fd3057ccbb7ae248fd0c658 [file] [log] [blame]
/*
* Copyright (C) 2019 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.
*/
DROP VIEW IF EXISTS blocked_iowait_for_app_launches;
CREATE VIEW blocked_iowait_for_app_launches AS
WITH
block_launch_join AS (
SELECT *
FROM blocking_durations AS bd,
launch_durations_named AS ld
WHERE bd.block_timestamp >= ld.started_timestamp
AND bd.unblock_timestamp <= ld.finished_timestamp
),
blocked_ui_threads AS (
SELECT *
FROM start_process_ui_threads AS sp,
block_launch_join AS blj
WHERE sp.atm_ui_thread_tid == unblock_pid
AND sp.process_name = blj.proc_name
),
summed_raw AS (
SELECT SUM(unblock_timestamp-block_timestamp)*1000 AS sum_block_duration_ms,
*
FROM blocked_ui_threads
GROUP BY unblock_pid
),
summed_neat AS (
SELECT sum_block_duration_ms AS blocked_iowait_duration_ms,
process_name,
(finished_timestamp - started_timestamp) * 1000 AS launching_duration_ms,
started_timestamp * 1000 AS launching_started_timestamp_ms,
finished_timestamp * 1000 AS launching_finished_timestamp_ms
-- filter out the rest because its just selecting 1 arbitrary row (due to the SUM aggregate).,
FROM summed_raw
)
SELECT * FROM summed_neat;
SELECT * FROM blocked_iowait_for_app_launches;