1 /*******************************************************************************
2 * Copyright (c) 2012, 2015 Ericsson
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
10 * Alexandre Montplaisir - Initial API and implementation
11 ******************************************************************************/
13 package org
.eclipse
.tracecompass
.internal
.lttng2
.kernel
.core
.trace
.layout
;
15 import static org
.eclipse
.tracecompass
.common
.core
.NonNullUtils
.checkNotNull
;
17 import java
.util
.Collection
;
19 import org
.eclipse
.jdt
.annotation
.Nullable
;
20 import org
.eclipse
.tracecompass
.analysis
.os
.linux
.core
.trace
.IKernelAnalysisEventLayout
;
22 import com
.google
.common
.collect
.ImmutableList
;
25 * Event and field definitions for perf traces in CTF format.
27 * @author Alexandre Montplaisir
29 public class PerfEventLayout
implements IKernelAnalysisEventLayout
{
31 private PerfEventLayout() {}
33 private static final PerfEventLayout INSTANCE
= new PerfEventLayout();
36 * Get the singleton instance of this event layout object.
38 * @return The instance
40 public static PerfEventLayout
getInstance() {
44 // ------------------------------------------------------------------------
46 // ------------------------------------------------------------------------
49 public String
eventIrqHandlerEntry() {
50 return "irq:irq_handler_exit"; //$NON-NLS-1$
54 public String
eventIrqHandlerExit() {
55 return "irq:irq_handler_entry"; //$NON-NLS-1$
59 public String
eventSoftIrqEntry() {
60 return "irq:softirq_entry"; //$NON-NLS-1$
64 public String
eventSoftIrqExit() {
65 return "irq:softirq_exit"; //$NON-NLS-1$
69 public String
eventSoftIrqRaise() {
70 return "irq:softirq_raise"; //$NON-NLS-1$
74 public String
eventSchedSwitch() {
75 return "sched:sched_switch"; //$NON-NLS-1$
79 public String
eventSchedPiSetprio() {
80 return "sched:sched_pi_setprio"; //$NON-NLS-1$
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$
87 public Collection
<String
> eventsSchedWakeup() {
92 public String
eventSchedProcessFork() {
93 return "sched:sched_process_fork"; //$NON-NLS-1$
97 public String
eventSchedProcessExit() {
98 return "sched:sched_process_exit"; //$NON-NLS-1$
102 public String
eventSchedProcessFree() {
103 return "sched:sched_process_free"; //$NON-NLS-1$
107 public @Nullable String
eventStatedumpProcessState() {
108 /* Not present in perf traces */
113 public String
eventSyscallEntryPrefix() {
114 return "raw_syscalls:sys_enter"; //$NON-NLS-1$
118 public String
eventCompatSyscallEntryPrefix() {
119 return eventSyscallEntryPrefix();
123 public String
eventSyscallExitPrefix() {
124 return "raw_syscalls:sys_exit"; //$NON-NLS-1$
128 public String
eventSchedProcessExec() {
129 return "sched:sched_process_exec"; //$NON-NLS-1$
133 public String
eventSchedProcessWakeup() {
134 return "sched:sched_process_wakeup"; //$NON-NLS-1$
138 public String
eventSchedProcessWakeupNew() {
139 return "sched:process_wakeup_new"; //$NON-NLS-1$
143 public String
eventHRTimerStart() {
144 return "timer:hrtimer_start"; //$NON-NLS-1$
148 public String
eventHRTimerCancel() {
149 return "timer:hrtimer_cancel"; //$NON-NLS-1$
153 public String
eventHRTimerExpireEntry() {
154 return "timer:hrtimer_expire_entry"; //$NON-NLS-1$
158 public String
eventHRTimerExpireExit() {
159 return "timer:hrtimer_expire_exit"; //$NON-NLS-1$
162 // ------------------------------------------------------------------------
164 // ------------------------------------------------------------------------
167 public String
fieldIrq() {
168 return "irq"; //$NON-NLS-1$
172 public String
fieldVec() {
173 return "vec"; //$NON-NLS-1$
177 public String
fieldTid() {
178 return "pid"; //$NON-NLS-1$
182 public String
fieldPrevTid() {
183 return "prev_pid"; //$NON-NLS-1$
187 public String
fieldPrevState() {
188 return "prev_state"; //$NON-NLS-1$
192 public String
fieldNextComm() {
193 return "next_comm"; //$NON-NLS-1$
197 public String
fieldNextTid() {
198 return "next_pid"; //$NON-NLS-1$
202 public String
fieldChildComm() {
203 return "child_comm"; //$NON-NLS-1$
207 public String
fieldParentTid() {
208 return "parent_pid"; //$NON-NLS-1$
212 public String
fieldChildTid() {
213 return "child_pid"; //$NON-NLS-1$
217 public String
fieldPrio() {
218 return "prio"; //$NON-NLS-1$
222 public String
fieldNewPrio() {
223 return "newprio"; //$NON-NLS-1$
227 public String
fieldNextPrio() {
228 return "next_prio"; //$NON-NLS-1$
232 public String
fieldComm() {
233 return "comm"; //$NON-NLS-1$
237 public String
fieldName() {
238 return "name"; //$NON-NLS-1$
242 public String
fieldStatus() {
243 return "status"; //$NON-NLS-1$
247 public String
fieldPrevComm() {
248 return "prev_comm"; //$NON-NLS-1$
252 public String
fieldFilename() {
253 return "filename"; //$NON-NLS-1$
257 public String
fieldHRtimer() {
258 return "hrtimer"; //$NON-NLS-1$
262 public String
fieldHRtimerFunction() {
263 return "function"; //$NON-NLS-1$
267 public String
fieldHRtimerExpires() {
268 return "expires"; //$NON-NLS-1$
272 public String
fieldHRtimerSoftexpires() {
273 return "softexpires"; //$NON-NLS-1$
277 public String
fieldHRtimerNow() {
278 return "now"; //$NON-NLS-1$