blob: f5415b44eae81ec2b931bf41f0f42c47531d964f [file]
--
-- Copyright 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
--
-- https://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 MODULE android.slices;
DROP TABLE IF EXISTS android_sysui_notifications_blocking_calls;
CREATE PERFETTO TABLE android_sysui_notifications_blocking_calls AS
SELECT
s.name name,
COUNT(s.name) count,
MAX(dur) AS max_dur_ns,
MIN(dur) AS min_dur_ns,
SUM(dur) AS total_dur_ns
FROM slice s
JOIN thread_track ON s.track_id = thread_track.id
JOIN thread USING (utid)
WHERE
thread.is_main_thread AND
s.dur > 0 AND (
s.name GLOB 'NotificationStackScrollLayout#onMeasure'
OR s.name GLOB 'NotificationToplineView#onMeasure'
OR s.name GLOB 'ExpNotRow#*'
OR s.name GLOB 'NotificationShadeWindowView#onMeasure'
OR s.name GLOB 'ImageFloatingTextView#onMeasure'
)
GROUP BY s.name;
DROP VIEW IF EXISTS android_sysui_notifications_blocking_calls_metric_output;
CREATE PERFETTO VIEW android_sysui_notifications_blocking_calls_metric_output AS
SELECT AndroidSysUINotificationsBlockingCallsMetric('blocking_calls', (
SELECT RepeatedField(
AndroidBlockingCall(
'name', a.name,
'cnt', a.count,
'total_dur_ns', a.total_dur_ns,
'max_dur_ns', a.max_dur_ns,
'min_dur_ns', a.min_dur_ns
)
)
FROM android_sysui_notifications_blocking_calls a
ORDER BY total_dur_ns DESC
)
);