03512c2b429e00e507f51eda294e2de1b1c296be
[deliverable/tracecompass.git] / 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 // ------------------------------------------------------------------------
128 // Field names
129 // ------------------------------------------------------------------------
130
131 @Override
132 public String fieldIrq() {
133 return "irq"; //$NON-NLS-1$
134 }
135
136 @Override
137 public String fieldVec() {
138 return "vec"; //$NON-NLS-1$
139 }
140
141 @Override
142 public String fieldTid() {
143 return "pid"; //$NON-NLS-1$
144 }
145
146 @Override
147 public String fieldPrevTid() {
148 return "prev_pid"; //$NON-NLS-1$
149 }
150
151 @Override
152 public String fieldPrevState() {
153 return "prev_state"; //$NON-NLS-1$
154 }
155
156 @Override
157 public String fieldNextComm() {
158 return "next_comm"; //$NON-NLS-1$
159 }
160
161 @Override
162 public String fieldNextTid() {
163 return "next_pid"; //$NON-NLS-1$
164 }
165
166 @Override
167 public String fieldChildComm() {
168 return "child_comm"; //$NON-NLS-1$
169 }
170
171 @Override
172 public String fieldParentTid() {
173 return "parent_pid"; //$NON-NLS-1$
174 }
175
176 @Override
177 public String fieldChildTid() {
178 return "child_pid"; //$NON-NLS-1$
179 }
180
181 @Override
182 public String fieldPrio() {
183 return "prio"; //$NON-NLS-1$
184 }
185
186 @Override
187 public String fieldNewPrio() {
188 return "newprio"; //$NON-NLS-1$
189 }
190
191 @Override
192 public String fieldNextPrio() {
193 return "next_prio"; //$NON-NLS-1$
194 }
195
196 }
This page took 0.035045 seconds and 4 git commands to generate.