• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 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  *      http://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 
17 #ifndef SRC_TRACE_PROCESSOR_TABLES_TRACK_TABLES_H_
18 #define SRC_TRACE_PROCESSOR_TABLES_TRACK_TABLES_H_
19 
20 #include "src/trace_processor/tables/macros.h"
21 
22 namespace perfetto {
23 namespace trace_processor {
24 namespace tables {
25 
26 // @tablegroup Tracks
27 // @param source_arg_set_id {@joinable args.arg_set_id}
28 #define PERFETTO_TP_TRACK_TABLE_DEF(NAME, PARENT, C) \
29   NAME(TrackTable, "track")                          \
30   PERFETTO_TP_ROOT_TABLE(PARENT, C)                  \
31   C(StringPool::Id, name)                            \
32   C(base::Optional<uint32_t>, source_arg_set_id)
33 
34 PERFETTO_TP_TABLE(PERFETTO_TP_TRACK_TABLE_DEF);
35 
36 // @tablegroup Tracks
37 #define PERFETTO_TP_PROCESS_TRACK_TABLE_DEF(NAME, PARENT, C) \
38   NAME(ProcessTrackTable, "process_track")                   \
39   PARENT(PERFETTO_TP_TRACK_TABLE_DEF, C)                     \
40   C(uint32_t, upid)
41 
42 PERFETTO_TP_TABLE(PERFETTO_TP_PROCESS_TRACK_TABLE_DEF);
43 
44 // @tablegroup Tracks
45 #define PERFETTO_TP_THREAD_TRACK_TABLE_DEF(NAME, PARENT, C) \
46   NAME(ThreadTrackTable, "thread_track")                    \
47   PARENT(PERFETTO_TP_TRACK_TABLE_DEF, C)                    \
48   C(uint32_t, utid)
49 
50 PERFETTO_TP_TABLE(PERFETTO_TP_THREAD_TRACK_TABLE_DEF);
51 
52 // @tablegroup Tracks
53 #define PERFETTO_TP_GPU_TRACK_DEF(NAME, PARENT, C) \
54   NAME(GpuTrackTable, "gpu_track")                 \
55   PARENT(PERFETTO_TP_TRACK_TABLE_DEF, C)           \
56   C(StringPool::Id, scope)                         \
57   C(StringPool::Id, description)                   \
58   C(base::Optional<int64_t>, context_id)
59 
60 PERFETTO_TP_TABLE(PERFETTO_TP_GPU_TRACK_DEF);
61 
62 // @tablegroup Tracks
63 #define PERFETTO_TP_COUNTER_TRACK_DEF(NAME, PARENT, C) \
64   NAME(CounterTrackTable, "counter_track")             \
65   PARENT(PERFETTO_TP_TRACK_TABLE_DEF, C)               \
66   C(StringPool::Id, unit)                              \
67   C(StringPool::Id, description)
68 
69 PERFETTO_TP_TABLE(PERFETTO_TP_COUNTER_TRACK_DEF);
70 
71 // @tablegroup Tracks
72 #define PERFETTO_TP_THREAD_COUNTER_TRACK_DEF(NAME, PARENT, C) \
73   NAME(ThreadCounterTrackTable, "thread_counter_track")       \
74   PARENT(PERFETTO_TP_COUNTER_TRACK_DEF, C)                    \
75   C(uint32_t, utid)
76 
77 PERFETTO_TP_TABLE(PERFETTO_TP_THREAD_COUNTER_TRACK_DEF);
78 
79 // @tablegroup Tracks
80 #define PERFETTO_TP_PROCESS_COUNTER_TRACK_DEF(NAME, PARENT, C) \
81   NAME(ProcessCounterTrackTable, "process_counter_track")      \
82   PARENT(PERFETTO_TP_COUNTER_TRACK_DEF, C)                     \
83   C(uint32_t, upid)
84 
85 PERFETTO_TP_TABLE(PERFETTO_TP_PROCESS_COUNTER_TRACK_DEF);
86 
87 // @tablegroup Tracks
88 #define PERFETTO_TP_CPU_COUNTER_TRACK_DEF(NAME, PARENT, C) \
89   NAME(CpuCounterTrackTable, "cpu_counter_track")          \
90   PARENT(PERFETTO_TP_COUNTER_TRACK_DEF, C)                 \
91   C(uint32_t, cpu)
92 
93 PERFETTO_TP_TABLE(PERFETTO_TP_CPU_COUNTER_TRACK_DEF);
94 
95 // @tablegroup Tracks
96 #define PERFETTO_TP_IRQ_COUNTER_TRACK_DEF(NAME, PARENT, C) \
97   NAME(IrqCounterTrackTable, "irq_counter_track")          \
98   PARENT(PERFETTO_TP_COUNTER_TRACK_DEF, C)                 \
99   C(int32_t, irq)
100 
101 PERFETTO_TP_TABLE(PERFETTO_TP_IRQ_COUNTER_TRACK_DEF);
102 
103 // @tablegroup Tracks
104 #define PERFETTO_TP_SOFTIRQ_COUNTER_TRACK_DEF(NAME, PARENT, C) \
105   NAME(SoftirqCounterTrackTable, "softirq_counter_track")      \
106   PARENT(PERFETTO_TP_COUNTER_TRACK_DEF, C)                     \
107   C(int32_t, softirq)
108 
109 PERFETTO_TP_TABLE(PERFETTO_TP_SOFTIRQ_COUNTER_TRACK_DEF);
110 
111 // @tablegroup Tracks
112 #define PERFETTO_TP_GPU_COUNTER_TRACK_DEF(NAME, PARENT, C) \
113   NAME(GpuCounterTrackTable, "gpu_counter_track")          \
114   PARENT(PERFETTO_TP_COUNTER_TRACK_DEF, C)                 \
115   C(uint32_t, gpu_id)
116 
117 PERFETTO_TP_TABLE(PERFETTO_TP_GPU_COUNTER_TRACK_DEF);
118 
119 }  // namespace tables
120 }  // namespace trace_processor
121 }  // namespace perfetto
122 
123 #endif  // SRC_TRACE_PROCESSOR_TABLES_TRACK_TABLES_H_
124