• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1--
2-- Copyright 2019 The Android Open Source Project
3--
4-- Licensed under the Apache License, Version 2.0 (the "License");
5-- you may not use this file except in compliance with the License.
6-- You may obtain a copy of the License at
7--
8--     https://www.apache.org/licenses/LICENSE-2.0
9--
10-- Unless required by applicable law or agreed to in writing, software
11-- distributed under the License is distributed on an "AS IS" BASIS,
12-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13-- See the License for the specific language governing permissions and
14-- limitations under the License.
15--
16
17INCLUDE PERFETTO MODULE memory.linux.process;
18
19SELECT RUN_METRIC('android/process_oom_score.sql');
20
21DROP VIEW IF EXISTS anon_rss_span;
22CREATE PERFETTO VIEW anon_rss_span AS
23SELECT * FROM _anon_rss;
24
25DROP VIEW IF EXISTS file_rss_span;
26CREATE PERFETTO VIEW file_rss_span AS
27SELECT * FROM _file_rss;
28
29DROP VIEW IF EXISTS shmem_rss_span;
30CREATE PERFETTO VIEW shmem_rss_span AS
31SELECT * FROM _shmem_rss;
32
33DROP VIEW IF EXISTS swap_span;
34CREATE PERFETTO VIEW swap_span AS
35SELECT * FROM _swap;
36
37DROP VIEW IF EXISTS anon_and_swap_span;
38CREATE PERFETTO VIEW anon_and_swap_span AS
39SELECT
40  ts, dur, upid,
41  IFNULL(anon_rss_val, 0) + IFNULL(swap_val, 0) AS anon_and_swap_val
42FROM _anon_swap_sj;
43
44DROP VIEW IF EXISTS rss_and_swap_span;
45CREATE PERFETTO VIEW rss_and_swap_span AS
46SELECT
47  ts,
48  dur,
49  upid,
50  file_rss AS file_rss_val,
51  anon_rss AS anon_rss_val,
52  shmem_rss AS shmem_rss_val,
53  swap AS swap_val,
54  COALESCE(file_rss, 0)
55    + COALESCE(anon_rss, 0)
56    + COALESCE(shmem_rss, 0) AS rss_val,
57  COALESCE(file_rss, 0)
58    + COALESCE(anon_rss, 0)
59    + COALESCE(shmem_rss, 0)
60    + COALESCE(swap, 0) AS rss_and_swap_val
61FROM _memory_rss_and_swap_per_process_table;
62
63-- If we have dalvik events enabled (for ART trace points) we can construct the java heap timeline.
64SELECT RUN_METRIC('android/process_counter_span_view.sql',
65  'table_name', 'java_heap_kb',
66  'counter_name', 'Heap size (KB)');
67
68DROP VIEW IF EXISTS java_heap_span;
69CREATE PERFETTO VIEW java_heap_span AS
70SELECT ts, dur, upid, java_heap_kb_val * 1024 AS java_heap_val
71FROM java_heap_kb_span;
72
73DROP TABLE IF EXISTS java_heap_by_oom_span;
74CREATE VIRTUAL TABLE java_heap_by_oom_span
75USING SPAN_JOIN(java_heap_span PARTITIONED upid, oom_score_span PARTITIONED upid);
76
77DROP TABLE IF EXISTS anon_rss_by_oom_span;
78CREATE VIRTUAL TABLE anon_rss_by_oom_span
79USING SPAN_JOIN(_anon_rss PARTITIONED upid, oom_score_span PARTITIONED upid);
80
81DROP TABLE IF EXISTS file_rss_by_oom_span;
82CREATE VIRTUAL TABLE file_rss_by_oom_span
83USING SPAN_JOIN(_file_rss PARTITIONED upid, oom_score_span PARTITIONED upid);
84
85DROP TABLE IF EXISTS swap_by_oom_span;
86CREATE VIRTUAL TABLE swap_by_oom_span
87USING SPAN_JOIN(_swap PARTITIONED upid, oom_score_span PARTITIONED upid);
88
89DROP TABLE IF EXISTS anon_and_swap_by_oom_span;
90CREATE VIRTUAL TABLE anon_and_swap_by_oom_span
91USING SPAN_JOIN(anon_and_swap_span PARTITIONED upid, oom_score_span PARTITIONED upid);
92