Import lttng.kernel.core plugins from Scope
[deliverable/tracecompass.git] / lttng / org.lttng.scope.lttng.kernel.core / src / org / lttng / scope / lttng / kernel / core / trace / layout / internal / Lttng27EventLayout.java
1 /*******************************************************************************
2 * Copyright (c) 2015 Ericsson, École Polytechnique de Montréal
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 * Sebastien Lorrain - Initial API and implementation
11 ******************************************************************************/
12
13 package org.lttng.scope.lttng.kernel.core.trace.layout.internal;
14
15 import java.util.Collection;
16 import java.util.Collections;
17
18 import org.eclipse.jdt.annotation.NonNull;
19
20 import com.google.common.collect.ImmutableSet;
21
22 /**
23 * This file defines all the known event and field names for LTTng kernel
24 * traces, for versions of lttng-modules 2.7 and above.
25 *
26 * @author Sebastien Lorrain
27 */
28 @SuppressWarnings("javadoc")
29 public class Lttng27EventLayout extends Lttng26EventLayout {
30
31 private static final String X86_IRQ_VECTORS_LOCAL_TIMER_ENTRY = "x86_irq_vectors_local_timer_entry"; //$NON-NLS-1$
32 private static final String X86_IRQ_VECTORS_LOCAL_TIMER_EXIT = "x86_irq_vectors_local_timer_exit"; //$NON-NLS-1$
33 private static final String X86_IRQ_VECTORS_RESCHEDULE_ENTRY = "x86_irq_vectors_reschedule_entry"; //$NON-NLS-1$
34 private static final String X86_IRQ_VECTORS_RESCHEDULE_EXIT = "x86_irq_vectors_reschedule_exit"; //$NON-NLS-1$
35 private static final String X86_IRQ_VECTORS_SPURIOUS_ENTRY = "x86_irq_vectors_spurious_apic_entry"; //$NON-NLS-1$
36 private static final String X86_IRQ_VECTORS_SPURIOUS_EXIT = "x86_irq_vectors_spurious_apic_exit"; //$NON-NLS-1$
37 private static final String X86_IRQ_VECTORS_ERROR_APIC_ENTRY = "x86_irq_vectors_error_apic_entry"; //$NON-NLS-1$
38 private static final String X86_IRQ_VECTORS_ERROR_APIC_EXIT = "x86_irq_vectors_error_apic_exit"; //$NON-NLS-1$
39 private static final String X86_IRQ_VECTORS_IPI_ENTRY = "x86_irq_vectors_ipi_entry"; //$NON-NLS-1$
40 private static final String X86_IRQ_VECTORS_IPI_EXIT = "x86_irq_vectors_ipi_exit"; //$NON-NLS-1$
41 private static final String X86_IRQ_VECTORS_IRQ_WORK_ENTRY = "x86_irq_vectors_irq_work_entry"; //$NON-NLS-1$
42 private static final String X86_IRQ_VECTORS_IRQ_WORK_EXIT = "x86_irq_vectors_irq_work_exit"; //$NON-NLS-1$
43 private static final String X86_IRQ_VECTORS_CALL_FUNCTION_ENTRY = "x86_irq_vectors_call_function_entry"; //$NON-NLS-1$
44 private static final String X86_IRQ_VECTORS_CALL_FUNCTION_EXIT = "x86_irq_vectors_call_function_exit"; //$NON-NLS-1$
45 private static final String X86_IRQ_VECTORS_CALL_FUNCTION_SINGLE_ENTRY = "x86_irq_vectors_call_function_single_entry"; //$NON-NLS-1$
46 private static final String X86_IRQ_VECTORS_CALL_FUNCTION_SINGLE_EXIT = "x86_irq_vectors_call_function_single_exit"; //$NON-NLS-1$
47 private static final String X86_IRQ_VECTORS_THRESHOLD_APIC_ENTRY = "x86_irq_vectors_threshold_apic_entry"; //$NON-NLS-1$
48 private static final String X86_IRQ_VECTORS_THRESHOLD_APIC_EXIT = "x86_irq_vectors_threshold_apic_exit"; //$NON-NLS-1$
49 private static final String X86_IRQ_VECTORS_DEFERRED_ERROR_APIC_ENTRY = "x86_irq_vectors_deferred_error_apic_entry"; //$NON-NLS-1$
50 private static final String X86_IRQ_VECTORS_DEFERRED_ERROR_APIC_EXIT = "x86_irq_vectors_deferred_error_apic_exit"; //$NON-NLS-1$
51 private static final String X86_IRQ_VECTORS_THERMAL_APIC_ENTRY = "x86_irq_vectors_thermal_apic_entry"; //$NON-NLS-1$
52 private static final String X86_IRQ_VECTORS_THERMAL_APIC_EXIT = "x86_irq_vectors_thermal_apic_exit"; //$NON-NLS-1$
53 /* Network event */
54 private static final Collection<String> EVENTS_NETWORK_RECEIVE = Collections.singleton("net_if_receive_skb"); //$NON-NLS-1$
55 /* KVM events */
56 private static final Collection<String> KVM_ENTRY_EVENTS = Collections.singleton("kvm_x86_entry"); //$NON-NLS-1$
57 private static final Collection<String> KVM_EXIT_EVENTS = Collections.singleton("kvm_x86_exit"); //$NON-NLS-1$
58
59 private static final Collection<String> IPI_ENTRY_SET = ImmutableSet.of(
60 X86_IRQ_VECTORS_LOCAL_TIMER_ENTRY,
61 X86_IRQ_VECTORS_RESCHEDULE_ENTRY,
62 X86_IRQ_VECTORS_SPURIOUS_ENTRY,
63 X86_IRQ_VECTORS_ERROR_APIC_ENTRY,
64 X86_IRQ_VECTORS_IPI_ENTRY,
65 X86_IRQ_VECTORS_IRQ_WORK_ENTRY,
66 X86_IRQ_VECTORS_CALL_FUNCTION_ENTRY,
67 X86_IRQ_VECTORS_CALL_FUNCTION_SINGLE_ENTRY,
68 X86_IRQ_VECTORS_THRESHOLD_APIC_ENTRY,
69 X86_IRQ_VECTORS_DEFERRED_ERROR_APIC_ENTRY,
70 X86_IRQ_VECTORS_THERMAL_APIC_ENTRY);
71
72 private static final Collection<String> IPI_EXIT_SET = ImmutableSet.of(
73 X86_IRQ_VECTORS_LOCAL_TIMER_EXIT,
74 X86_IRQ_VECTORS_RESCHEDULE_EXIT,
75 X86_IRQ_VECTORS_SPURIOUS_EXIT,
76 X86_IRQ_VECTORS_ERROR_APIC_EXIT,
77 X86_IRQ_VECTORS_IPI_EXIT,
78 X86_IRQ_VECTORS_IRQ_WORK_EXIT,
79 X86_IRQ_VECTORS_CALL_FUNCTION_EXIT,
80 X86_IRQ_VECTORS_CALL_FUNCTION_SINGLE_EXIT,
81 X86_IRQ_VECTORS_THRESHOLD_APIC_EXIT,
82 X86_IRQ_VECTORS_DEFERRED_ERROR_APIC_EXIT,
83 X86_IRQ_VECTORS_THERMAL_APIC_EXIT);
84
85 /**
86 * Constructor
87 */
88 protected Lttng27EventLayout() {}
89
90 private static final Lttng27EventLayout INSTANCE = new Lttng27EventLayout();
91
92 public static Lttng27EventLayout getInstance() {
93 return INSTANCE;
94 }
95
96 // ------------------------------------------------------------------------
97 // New event definition in LTTng 2.7
98 // ------------------------------------------------------------------------
99
100 @Override
101 public String eventHRTimerStart() {
102 return "timer_hrtimer_start"; //$NON-NLS-1$
103 }
104
105 @Override
106 public String eventHRTimerCancel() {
107 return "timer_hrtimer_cancel"; //$NON-NLS-1$
108 }
109
110 @Override
111 public String eventHRTimerExpireEntry() {
112 return "timer_hrtimer_expire_entry"; //$NON-NLS-1$
113 }
114
115 @Override
116 public String eventHRTimerExpireExit() {
117 return "timer_hrtimer_expire_exit"; //$NON-NLS-1$
118 }
119
120 @Override
121 public String eventSoftIrqRaise() {
122 return "irq_softirq_raise"; //$NON-NLS-1$
123 }
124
125 @Override
126 public String eventSoftIrqEntry() {
127 return "irq_softirq_entry"; //$NON-NLS-1$
128 }
129
130 @Override
131 public String eventSoftIrqExit() {
132 return "irq_softirq_exit"; //$NON-NLS-1$
133 }
134
135 @Override
136 public String eventKmemPageAlloc() {
137 return "kmem_mm_page_alloc"; //$NON-NLS-1$
138 }
139
140 @Override
141 public String eventKmemPageFree() {
142 return "kmem_mm_page_free"; //$NON-NLS-1$
143 }
144
145 public String x86IrqVectorsLocalTimerEntry() {
146 return X86_IRQ_VECTORS_LOCAL_TIMER_ENTRY;
147 }
148
149 public String x86IrqVectorsLocalTimerExit() {
150 return X86_IRQ_VECTORS_LOCAL_TIMER_EXIT;
151 }
152
153 public String x86IrqVectorsRescheduleEntry() {
154 return X86_IRQ_VECTORS_RESCHEDULE_ENTRY;
155 }
156
157 public String x86IrqVectorsRescheduleExit() {
158 return X86_IRQ_VECTORS_RESCHEDULE_EXIT;
159 }
160
161 public String x86IrqVectorsSpuriousApicEntry() {
162 return X86_IRQ_VECTORS_SPURIOUS_ENTRY;
163 }
164
165 public String x86IrqVectorsSpuriousApicExit() {
166 return X86_IRQ_VECTORS_SPURIOUS_EXIT;
167 }
168
169 public String x86IrqVectorsErrorApicEntry() {
170 return X86_IRQ_VECTORS_ERROR_APIC_ENTRY;
171 }
172
173 public String x86IrqVectorsErrorApicExit() {
174 return X86_IRQ_VECTORS_ERROR_APIC_EXIT;
175 }
176
177 public String x86IrqVectorsIpiEntry() {
178 return X86_IRQ_VECTORS_IPI_ENTRY;
179 }
180
181 public String x86IrqVectorsIpiExit() {
182 return X86_IRQ_VECTORS_IPI_EXIT;
183 }
184
185 public String x86IrqVectorsIrqWorkEntry() {
186 return X86_IRQ_VECTORS_IRQ_WORK_ENTRY;
187 }
188
189 public String x86IrqVectorsIrqWorkExit() {
190 return X86_IRQ_VECTORS_IRQ_WORK_EXIT;
191 }
192
193 public String x86IrqVectorsCallFunctionEntry() {
194 return X86_IRQ_VECTORS_CALL_FUNCTION_ENTRY;
195 }
196
197 public String x86IrqVectorsCallFunctionExit() {
198 return X86_IRQ_VECTORS_CALL_FUNCTION_EXIT;
199 }
200
201 public String x86IrqVectorsCallFunctionSingleEntry() {
202 return X86_IRQ_VECTORS_CALL_FUNCTION_SINGLE_ENTRY;
203 }
204
205 public String x86IrqVectorsCallFunctionSingleExit() {
206 return X86_IRQ_VECTORS_CALL_FUNCTION_SINGLE_EXIT;
207 }
208
209 public String x86IrqVectorsThresholdApicEntry() {
210 return X86_IRQ_VECTORS_THRESHOLD_APIC_ENTRY;
211 }
212
213 public String x86IrqVectorsThresholdApicExit() {
214 return X86_IRQ_VECTORS_THRESHOLD_APIC_EXIT;
215 }
216
217 public String x86IrqVectorsDeferredErrorApicEntry() {
218 return X86_IRQ_VECTORS_DEFERRED_ERROR_APIC_ENTRY;
219 }
220
221 public String x86IrqVectorsDeferredErrorApicExit() {
222 return X86_IRQ_VECTORS_DEFERRED_ERROR_APIC_EXIT;
223 }
224
225 public String x86IrqVectorsThermalApicEntry() {
226 return X86_IRQ_VECTORS_THERMAL_APIC_ENTRY;
227 }
228
229 public String x86IrqVectorsThermalApicExit() {
230 return X86_IRQ_VECTORS_THERMAL_APIC_EXIT;
231 }
232
233 @Override
234 public @NonNull Collection<@NonNull String> eventsKVMEntry() {
235 return KVM_ENTRY_EVENTS;
236 }
237
238 @Override
239 public @NonNull Collection<@NonNull String> eventsKVMExit() {
240 return KVM_EXIT_EVENTS;
241 }
242
243 @Override
244 public @NonNull Collection<@NonNull String> getIPIIrqVectorsEntries() {
245 return IPI_ENTRY_SET;
246 }
247
248 @Override
249 public @NonNull Collection<@NonNull String> getIPIIrqVectorsExits() {
250 return IPI_EXIT_SET;
251 }
252
253 // ------------------------------------------------------------------------
254 // New field definitions in LTTng 2.7
255 // ------------------------------------------------------------------------
256
257 public String fieldParentNSInum() {
258 return "parent_ns_inum"; //$NON-NLS-1$
259 }
260
261 public String fieldChildNSInum() {
262 return "child_ns_inum"; //$NON-NLS-1$
263 }
264
265 public String fieldChildVTids() {
266 return "vtids"; //$NON-NLS-1$
267 }
268
269 public String fieldNSInum() {
270 return "ns_inum"; //$NON-NLS-1$
271 }
272
273 public String fieldVTid() {
274 return "vtid"; //$NON-NLS-1$
275 }
276
277 public String fieldPPid() {
278 return "ppid"; //$NON-NLS-1$
279 }
280
281 public String fieldNSLevel() {
282 return "ns_level"; //$NON-NLS-1$
283 }
284
285 @Override
286 public Collection<String> eventsNetworkReceive() {
287 return EVENTS_NETWORK_RECEIVE;
288 }
289
290 }
This page took 0.036267 seconds and 5 git commands to generate.