lttng: update and add HR timer related events and fields
[deliverable/tracecompass.git] / lttng / org.eclipse.tracecompass.lttng2.kernel.core / src / org / eclipse / tracecompass / internal / lttng2 / kernel / core / trace / layout / PerfEventLayout.java
1 /*******************************************************************************
2 * Copyright (c) 2012, 2015 Ericsson
3 *
4 * All rights reserved. This program and the accompanying materials are
5 * made available under the terms of the Eclipse Public License v1.0 which
6 * accompanies this distribution, and is available at
7 * http://www.eclipse.org/legal/epl-v10.html
8 *
9 * Contributors:
10 * Alexandre Montplaisir - Initial API and implementation
11 ******************************************************************************/
12
13 package org.eclipse.tracecompass.internal.lttng2.kernel.core.trace.layout;
14
15 import static org.eclipse.tracecompass.common.core.NonNullUtils.checkNotNull;
16
17 import java.util.Collection;
18
19 import org.eclipse.jdt.annotation.Nullable;
20 import org.eclipse.tracecompass.analysis.os.linux.core.trace.IKernelAnalysisEventLayout;
21
22 import com.google.common.collect.ImmutableList;
23
24 /**
25 * Event and field definitions for perf traces in CTF format.
26 *
27 * @author Alexandre Montplaisir
28 */
29 public class PerfEventLayout implements IKernelAnalysisEventLayout {
30
31 private PerfEventLayout() {}
32
33 private static final PerfEventLayout INSTANCE = new PerfEventLayout();
34
35 /**
36 * Get the singleton instance of this event layout object.
37 *
38 * @return The instance
39 */
40 public static PerfEventLayout getInstance() {
41 return INSTANCE;
42 }
43
44 // ------------------------------------------------------------------------
45 // Event names
46 // ------------------------------------------------------------------------
47
48 @Override
49 public String eventIrqHandlerEntry() {
50 return "irq:irq_handler_exit"; //$NON-NLS-1$
51 }
52
53 @Override
54 public String eventIrqHandlerExit() {
55 return "irq:irq_handler_entry"; //$NON-NLS-1$
56 }
57
58 @Override
59 public String eventSoftIrqEntry() {
60 return "irq:softirq_entry"; //$NON-NLS-1$
61 }
62
63 @Override
64 public String eventSoftIrqExit() {
65 return "irq:softirq_exit"; //$NON-NLS-1$
66 }
67
68 @Override
69 public String eventSoftIrqRaise() {
70 return "irq:softirq_raise"; //$NON-NLS-1$
71 }
72
73 @Override
74 public String eventSchedSwitch() {
75 return "sched:sched_switch"; //$NON-NLS-1$
76 }
77
78 @Override
79 public String eventSchedPiSetprio() {
80 return "sched:sched_pi_setprio"; //$NON-NLS-1$
81 }
82
83 private static final Collection<String> WAKEUP_EVENTS =
84 checkNotNull(ImmutableList.of("sched:sched_wakeup", "sched:sched_wakeup_new")); //$NON-NLS-1$ //$NON-NLS-2$
85
86 @Override
87 public Collection<String> eventsSchedWakeup() {
88 return WAKEUP_EVENTS;
89 }
90
91 @Override
92 public String eventSchedProcessFork() {
93 return "sched:sched_process_fork"; //$NON-NLS-1$
94 }
95
96 @Override
97 public String eventSchedProcessExit() {
98 return "sched:sched_process_exit"; //$NON-NLS-1$
99 }
100
101 @Override
102 public String eventSchedProcessFree() {
103 return "sched:sched_process_free"; //$NON-NLS-1$
104 }
105
106 @Override
107 public @Nullable String eventStatedumpProcessState() {
108 /* Not present in perf traces */
109 return null;
110 }
111
112 @Override
113 public String eventSyscallEntryPrefix() {
114 return "raw_syscalls:sys_enter"; //$NON-NLS-1$
115 }
116
117 @Override
118 public String eventCompatSyscallEntryPrefix() {
119 return eventSyscallEntryPrefix();
120 }
121
122 @Override
123 public String eventSyscallExitPrefix() {
124 return "raw_syscalls:sys_exit"; //$NON-NLS-1$
125 }
126
127 @Override
128 public String eventSchedProcessExec() {
129 return "sched:sched_process_exec"; //$NON-NLS-1$
130 }
131
132 @Override
133 public String eventSchedProcessWakeup() {
134 return "sched:sched_process_wakeup"; //$NON-NLS-1$
135 }
136
137 @Override
138 public String eventSchedProcessWakeupNew() {
139 return "sched:process_wakeup_new"; //$NON-NLS-1$
140 }
141
142 @Override
143 public String eventHRTimerStart() {
144 return "timer:hrtimer_start"; //$NON-NLS-1$
145 }
146
147 @Override
148 public String eventHRTimerCancel() {
149 return "timer:hrtimer_cancel"; //$NON-NLS-1$
150 }
151
152 @Override
153 public String eventHRTimerExpireEntry() {
154 return "timer:hrtimer_expire_entry"; //$NON-NLS-1$
155 }
156
157 @Override
158 public String eventHRTimerExpireExit() {
159 return "timer:hrtimer_expire_exit"; //$NON-NLS-1$
160 }
161
162 // ------------------------------------------------------------------------
163 // Field names
164 // ------------------------------------------------------------------------
165
166 @Override
167 public String fieldIrq() {
168 return "irq"; //$NON-NLS-1$
169 }
170
171 @Override
172 public String fieldVec() {
173 return "vec"; //$NON-NLS-1$
174 }
175
176 @Override
177 public String fieldTid() {
178 return "pid"; //$NON-NLS-1$
179 }
180
181 @Override
182 public String fieldPrevTid() {
183 return "prev_pid"; //$NON-NLS-1$
184 }
185
186 @Override
187 public String fieldPrevState() {
188 return "prev_state"; //$NON-NLS-1$
189 }
190
191 @Override
192 public String fieldNextComm() {
193 return "next_comm"; //$NON-NLS-1$
194 }
195
196 @Override
197 public String fieldNextTid() {
198 return "next_pid"; //$NON-NLS-1$
199 }
200
201 @Override
202 public String fieldChildComm() {
203 return "child_comm"; //$NON-NLS-1$
204 }
205
206 @Override
207 public String fieldParentTid() {
208 return "parent_pid"; //$NON-NLS-1$
209 }
210
211 @Override
212 public String fieldChildTid() {
213 return "child_pid"; //$NON-NLS-1$
214 }
215
216 @Override
217 public String fieldPrio() {
218 return "prio"; //$NON-NLS-1$
219 }
220
221 @Override
222 public String fieldNewPrio() {
223 return "newprio"; //$NON-NLS-1$
224 }
225
226 @Override
227 public String fieldNextPrio() {
228 return "next_prio"; //$NON-NLS-1$
229 }
230
231 @Override
232 public String fieldComm() {
233 return "comm"; //$NON-NLS-1$
234 }
235
236 @Override
237 public String fieldName() {
238 return "name"; //$NON-NLS-1$
239 }
240
241 @Override
242 public String fieldStatus() {
243 return "status"; //$NON-NLS-1$
244 }
245
246 @Override
247 public String fieldPrevComm() {
248 return "prev_comm"; //$NON-NLS-1$
249 }
250
251 @Override
252 public String fieldFilename() {
253 return "filename"; //$NON-NLS-1$
254 }
255
256 @Override
257 public String fieldHRtimer() {
258 return "hrtimer"; //$NON-NLS-1$
259 }
260
261 @Override
262 public String fieldHRtimerFunction() {
263 return "function"; //$NON-NLS-1$
264 }
265
266 @Override
267 public String fieldHRtimerExpires() {
268 return "expires"; //$NON-NLS-1$
269 }
270
271 @Override
272 public String fieldHRtimerSoftexpires() {
273 return "softexpires"; //$NON-NLS-1$
274 }
275
276 @Override
277 public String fieldHRtimerNow() {
278 return "now"; //$NON-NLS-1$
279 }
280
281 }
This page took 0.038799 seconds and 5 git commands to generate.