• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (C) 2023 The Android Open Source Project
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7#      http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14"""Contains tables for finding ancestor events."""
15
16from python.generators.trace_processor_table.public import Column as C
17from python.generators.trace_processor_table.public import ColumnFlag
18from python.generators.trace_processor_table.public import CppDouble
19from python.generators.trace_processor_table.public import CppInt64
20from python.generators.trace_processor_table.public import CppOptional
21from python.generators.trace_processor_table.public import CppString
22from python.generators.trace_processor_table.public import CppTableId
23from python.generators.trace_processor_table.public import CppUint32
24from python.generators.trace_processor_table.public import Table
25
26from src.trace_processor.tables.counter_tables import COUNTER_TABLE
27from src.trace_processor.tables.flow_tables import FLOW_TABLE
28from src.trace_processor.tables.metadata_tables import PROCESS_TABLE
29from src.trace_processor.tables.profiler_tables import STACK_PROFILE_CALLSITE_TABLE
30from src.trace_processor.tables.slice_tables import SLICE_TABLE
31from src.trace_processor.tables.slice_tables import SCHED_SLICE_TABLE
32
33ANCESTOR_SLICE_TABLE = Table(
34    python_module=__file__,
35    class_name="AncestorSliceTable",
36    sql_name="ancestor_slice",
37    columns=[
38        C("start_id", CppTableId(SLICE_TABLE), flags=ColumnFlag.HIDDEN),
39    ],
40    parent=SLICE_TABLE)
41
42ANCESTOR_SLICE_BY_STACK_TABLE = Table(
43    python_module=__file__,
44    class_name="AncestorSliceByStackTable",
45    sql_name="ancestor_slice_by_stack",
46    columns=[
47        C("start_stack_id", CppInt64(), flags=ColumnFlag.HIDDEN),
48    ],
49    parent=SLICE_TABLE)
50
51ANCESTOR_STACK_PROFILE_CALLSITE_TABLE = Table(
52    python_module=__file__,
53    class_name="AncestorStackProfileCallsiteTable",
54    sql_name="experimental_ancestor_stack_profile_callsite",
55    columns=[
56        C("start_id",
57          CppTableId(STACK_PROFILE_CALLSITE_TABLE),
58          flags=ColumnFlag.HIDDEN),
59    ],
60    parent=STACK_PROFILE_CALLSITE_TABLE)
61
62CONNECTED_FLOW_TABLE = Table(
63    python_module=__file__,
64    class_name="ConnectedFlowTable",
65    sql_name="not_exposed_to_sql",
66    columns=[
67        C("start_id", CppTableId(SLICE_TABLE), flags=ColumnFlag.HIDDEN),
68    ],
69    parent=FLOW_TABLE)
70
71DESCENDANT_SLICE_TABLE = Table(
72    python_module=__file__,
73    class_name="DescendantSliceTable",
74    sql_name="descendant_slice",
75    columns=[
76        C("start_id", CppTableId(SLICE_TABLE), flags=ColumnFlag.HIDDEN),
77    ],
78    parent=SLICE_TABLE)
79
80DESCENDANT_SLICE_BY_STACK_TABLE = Table(
81    python_module=__file__,
82    class_name="DescendantSliceByStackTable",
83    sql_name="descendant_slice_by_stack",
84    columns=[
85        C("start_stack_id", CppInt64(), flags=ColumnFlag.HIDDEN),
86    ],
87    parent=SLICE_TABLE)
88
89EXPERIMENTAL_ANNOTATED_CALLSTACK_TABLE = Table(
90    python_module=__file__,
91    class_name="ExperimentalAnnotatedCallstackTable",
92    sql_name="experimental_annotated_callstack",
93    columns=[
94        C("annotation", CppString()),
95        C("start_id",
96          CppTableId(STACK_PROFILE_CALLSITE_TABLE),
97          flags=ColumnFlag.HIDDEN),
98    ],
99    parent=STACK_PROFILE_CALLSITE_TABLE)
100
101EXPERIMENTAL_ANNOTATED_CALLSTACK_TABLE = Table(
102    python_module=__file__,
103    class_name="ExperimentalAnnotatedCallstackTable",
104    sql_name="experimental_annotated_callstack",
105    columns=[
106        C("annotation", CppString()),
107        C("start_id",
108          CppTableId(STACK_PROFILE_CALLSITE_TABLE),
109          flags=ColumnFlag.HIDDEN),
110    ],
111    parent=STACK_PROFILE_CALLSITE_TABLE)
112
113EXPERIMENTAL_ANNOTATED_CALLSTACK_TABLE = Table(
114    python_module=__file__,
115    class_name="ExperimentalAnnotatedCallstackTable",
116    sql_name="experimental_annotated_callstack",
117    columns=[
118        C("annotation", CppString()),
119        C("start_id",
120          CppTableId(STACK_PROFILE_CALLSITE_TABLE),
121          flags=ColumnFlag.HIDDEN),
122    ],
123    parent=STACK_PROFILE_CALLSITE_TABLE)
124
125EXPERIMENTAL_COUNTER_DUR_TABLE = Table(
126    python_module=__file__,
127    class_name="ExperimentalCounterDurTable",
128    sql_name="experimental_counter_dur",
129    columns=[
130        C("dur", CppInt64()),
131        C("delta", CppDouble()),
132    ],
133    parent=COUNTER_TABLE)
134
135EXPERIMENTAL_SCHED_UPID_TABLE = Table(
136    python_module=__file__,
137    class_name="ExperimentalSchedUpidTable",
138    sql_name="experimental_sched_upid",
139    columns=[
140        C("upid", CppOptional(CppTableId(PROCESS_TABLE))),
141    ],
142    parent=SCHED_SLICE_TABLE)
143
144EXPERIMENTAL_SLICE_LAYOUT_TABLE = Table(
145    python_module=__file__,
146    class_name="ExperimentalSliceLayoutTable",
147    sql_name="experimental_slice_layout",
148    columns=[
149        C("layout_depth", CppUint32()),
150        C("filter_track_ids", CppString(), flags=ColumnFlag.HIDDEN),
151    ],
152    parent=SLICE_TABLE)
153
154# Keep this list sorted.
155ALL_TABLES = [
156    ANCESTOR_SLICE_BY_STACK_TABLE,
157    ANCESTOR_SLICE_TABLE,
158    ANCESTOR_STACK_PROFILE_CALLSITE_TABLE,
159    CONNECTED_FLOW_TABLE,
160    DESCENDANT_SLICE_BY_STACK_TABLE,
161    DESCENDANT_SLICE_TABLE,
162    EXPERIMENTAL_ANNOTATED_CALLSTACK_TABLE,
163    EXPERIMENTAL_COUNTER_DUR_TABLE,
164    EXPERIMENTAL_SCHED_UPID_TABLE,
165    EXPERIMENTAL_SLICE_LAYOUT_TABLE,
166]
167