blob: d6a84549004320468ee5f5327a1e0d07588f7a08 [file] [log] [blame]
--
-- Copyright 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
--
-- 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.
--
-- Create all the views used to generate the Android Memory metrics proto.
-- Anon RSS
SELECT RUN_METRIC('android/upid_span_view.sql',
'table_name', 'anon_rss',
'counter_name', 'mem.rss.anon');
-- File RSS
SELECT RUN_METRIC('android/upid_span_view.sql',
'table_name', 'file_rss',
'counter_name', 'mem.rss.file');
-- Swap
SELECT RUN_METRIC('android/upid_span_view.sql',
'table_name', 'swap',
'counter_name', 'mem.swap');
-- Anon RSS + Swap
DROP TABLE IF EXISTS anon_and_swap_join;
CREATE VIRTUAL TABLE anon_and_swap_join
USING SPAN_OUTER_JOIN(anon_rss_span PARTITIONED upid, swap_span PARTITIONED upid);
DROP VIEW IF EXISTS anon_and_swap_span;
CREATE VIEW anon_and_swap_span AS
SELECT
ts, dur, upid,
IFNULL(anon_rss_val, 0) + IFNULL(swap_val, 0) AS anon_and_swap_val
FROM anon_and_swap_join;
-- Create a track for process OOM scores.
DROP VIEW IF EXISTS oom_score_span;
CREATE VIEW oom_score_span AS
SELECT
ts,
LEAD(ts, 1, (SELECT end_ts + 1 FROM trace_bounds))
OVER(PARTITION BY counter_id ORDER BY ts) - ts AS dur,
ref AS upid,
CAST(value AS INT) AS oom_score_val
FROM counters
WHERE name = 'oom_score_adj' AND ref IS NOT NULL;
DROP TABLE IF EXISTS anon_rss_by_oom_span;
CREATE VIRTUAL TABLE anon_rss_by_oom_span
USING SPAN_JOIN(anon_rss_span PARTITIONED upid, oom_score_span PARTITIONED upid);
DROP TABLE IF EXISTS file_rss_by_oom_span;
CREATE VIRTUAL TABLE file_rss_by_oom_span
USING SPAN_JOIN(file_rss_span PARTITIONED upid, oom_score_span PARTITIONED upid);
DROP TABLE IF EXISTS swap_by_oom_span;
CREATE VIRTUAL TABLE swap_by_oom_span
USING SPAN_JOIN(swap_span PARTITIONED upid, oom_score_span PARTITIONED upid);
DROP TABLE IF EXISTS anon_and_swap_by_oom_span;
CREATE VIRTUAL TABLE anon_and_swap_by_oom_span
USING SPAN_JOIN(anon_and_swap_span PARTITIONED upid, oom_score_span PARTITIONED upid);