linux.core: add kvm entry/exit events to IKernelAnalysisEventLayout
[deliverable/tracecompass.git] / lttng / org.eclipse.tracecompass.lttng2.kernel.core / src / org / eclipse / tracecompass / internal / lttng2 / kernel / core / trace / layout / Lttng27EventLayout.java
CommitLineData
ff5e31e0
SL
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
13package org.eclipse.tracecompass.internal.lttng2.kernel.core.trace.layout;
14
e8e92916
FG
15import java.util.Collection;
16
051db42f
MK
17import org.eclipse.jdt.annotation.NonNull;
18
7788722d 19import com.google.common.collect.ImmutableList;
e8e92916
FG
20import com.google.common.collect.ImmutableSet;
21
ff5e31e0
SL
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")
29public class Lttng27EventLayout extends Lttng26EventLayout {
30
e8e92916
FG
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
54 private static final Collection<String> IPI_ENTRY_SET = ImmutableSet.of(
55 X86_IRQ_VECTORS_LOCAL_TIMER_ENTRY,
56 X86_IRQ_VECTORS_RESCHEDULE_ENTRY,
57 X86_IRQ_VECTORS_SPURIOUS_ENTRY,
58 X86_IRQ_VECTORS_ERROR_APIC_ENTRY,
59 X86_IRQ_VECTORS_IPI_ENTRY,
60 X86_IRQ_VECTORS_IRQ_WORK_ENTRY,
61 X86_IRQ_VECTORS_CALL_FUNCTION_ENTRY,
62 X86_IRQ_VECTORS_CALL_FUNCTION_SINGLE_ENTRY,
63 X86_IRQ_VECTORS_THRESHOLD_APIC_ENTRY,
64 X86_IRQ_VECTORS_DEFERRED_ERROR_APIC_ENTRY,
65 X86_IRQ_VECTORS_THERMAL_APIC_ENTRY);
66
67 private static final Collection<String> IPI_EXIT_SET = ImmutableSet.of(
68 X86_IRQ_VECTORS_LOCAL_TIMER_EXIT,
69 X86_IRQ_VECTORS_RESCHEDULE_EXIT,
70 X86_IRQ_VECTORS_SPURIOUS_EXIT,
71 X86_IRQ_VECTORS_ERROR_APIC_EXIT,
72 X86_IRQ_VECTORS_IPI_EXIT,
73 X86_IRQ_VECTORS_IRQ_WORK_EXIT,
74 X86_IRQ_VECTORS_CALL_FUNCTION_EXIT,
75 X86_IRQ_VECTORS_CALL_FUNCTION_SINGLE_EXIT,
76 X86_IRQ_VECTORS_THRESHOLD_APIC_EXIT,
77 X86_IRQ_VECTORS_DEFERRED_ERROR_APIC_EXIT,
78 X86_IRQ_VECTORS_THERMAL_APIC_EXIT);
79
ff5e31e0
SL
80 /**
81 * Constructor
82 */
83 protected Lttng27EventLayout() {}
84
e8e92916
FG
85 private static final Lttng27EventLayout INSTANCE = new Lttng27EventLayout();
86
87 public static Lttng27EventLayout getInstance() {
88 return INSTANCE;
89 }
ff5e31e0
SL
90
91 // ------------------------------------------------------------------------
a8b8de05
BH
92 // New event definition in LTTng 2.7
93 // ------------------------------------------------------------------------
94
95 @Override
96 public String eventHRTimerStart() {
80986a7e 97 return "timer_hrtimer_start"; //$NON-NLS-1$
a8b8de05
BH
98 }
99
100 @Override
101 public String eventHRTimerCancel() {
80986a7e 102 return "timer_hrtimer_cancel"; //$NON-NLS-1$
a8b8de05
BH
103 }
104
105 @Override
106 public String eventHRTimerExpireEntry() {
80986a7e 107 return "timer_hrtimer_expire_entry"; //$NON-NLS-1$
a8b8de05
BH
108 }
109
110 @Override
111 public String eventHRTimerExpireExit() {
80986a7e 112 return "timer_hrtimer_expire_exit"; //$NON-NLS-1$
a8b8de05
BH
113 }
114
f8292c94
MK
115 @Override
116 public String eventSoftIrqRaise() {
117 return "irq_softirq_raise"; //$NON-NLS-1$
118 }
119
e8e92916
FG
120 @Override
121 public String eventSoftIrqEntry() {
122 return "irq_softirq_entry"; //$NON-NLS-1$
123 }
124
125 @Override
126 public String eventSoftIrqExit() {
127 return "irq_softirq_exit"; //$NON-NLS-1$
128 }
129
aa19e48b
NA
130 @Override
131 public String eventKmemPageAlloc() {
132 return "kmem_mm_page_alloc"; //$NON-NLS-1$
133 }
134
135 @Override
136 public String eventKmemPageFree() {
137 return "kmem_mm_page_free"; //$NON-NLS-1$
138 }
139
e8e92916
FG
140 public String x86IrqVectorsLocalTimerEntry() {
141 return X86_IRQ_VECTORS_LOCAL_TIMER_ENTRY;
142 }
143
144 public String x86IrqVectorsLocalTimerExit() {
145 return X86_IRQ_VECTORS_LOCAL_TIMER_EXIT;
146 }
147
148 public String x86IrqVectorsRescheduleEntry() {
149 return X86_IRQ_VECTORS_RESCHEDULE_ENTRY;
150 }
151
152 public String x86IrqVectorsRescheduleExit() {
153 return X86_IRQ_VECTORS_RESCHEDULE_EXIT;
154 }
155
156 public String x86IrqVectorsSpuriousApicEntry() {
157 return X86_IRQ_VECTORS_SPURIOUS_ENTRY;
158 }
159
160 public String x86IrqVectorsSpuriousApicExit() {
161 return X86_IRQ_VECTORS_SPURIOUS_EXIT;
162 }
163
164 public String x86IrqVectorsErrorApicEntry() {
165 return X86_IRQ_VECTORS_ERROR_APIC_ENTRY;
166 }
167
168 public String x86IrqVectorsErrorApicExit() {
169 return X86_IRQ_VECTORS_ERROR_APIC_EXIT;
170 }
171
172 public String x86IrqVectorsIpiEntry() {
173 return X86_IRQ_VECTORS_IPI_ENTRY;
174 }
175
176 public String x86IrqVectorsIpiExit() {
177 return X86_IRQ_VECTORS_IPI_EXIT;
178 }
179
180 public String x86IrqVectorsIrqWorkEntry() {
181 return X86_IRQ_VECTORS_IRQ_WORK_ENTRY;
182 }
183
184 public String x86IrqVectorsIrqWorkExit() {
185 return X86_IRQ_VECTORS_IRQ_WORK_EXIT;
186 }
187
188 public String x86IrqVectorsCallFunctionEntry() {
189 return X86_IRQ_VECTORS_CALL_FUNCTION_ENTRY;
190 }
191
192 public String x86IrqVectorsCallFunctionExit() {
193 return X86_IRQ_VECTORS_CALL_FUNCTION_EXIT;
194 }
195
196 public String x86IrqVectorsCallFunctionSingleEntry() {
197 return X86_IRQ_VECTORS_CALL_FUNCTION_SINGLE_ENTRY;
198 }
199
200 public String x86IrqVectorsCallFunctionSingleExit() {
201 return X86_IRQ_VECTORS_CALL_FUNCTION_SINGLE_EXIT;
202 }
203
204 public String x86IrqVectorsThresholdApicEntry() {
205 return X86_IRQ_VECTORS_THRESHOLD_APIC_ENTRY;
206 }
207
208 public String x86IrqVectorsThresholdApicExit() {
209 return X86_IRQ_VECTORS_THRESHOLD_APIC_EXIT;
210 }
211
212 public String x86IrqVectorsDeferredErrorApicEntry() {
213 return X86_IRQ_VECTORS_DEFERRED_ERROR_APIC_ENTRY;
214 }
215
216 public String x86IrqVectorsDeferredErrorApicExit() {
217 return X86_IRQ_VECTORS_DEFERRED_ERROR_APIC_EXIT;
218 }
219
220 public String x86IrqVectorsThermalApicEntry() {
221 return X86_IRQ_VECTORS_THERMAL_APIC_ENTRY;
222 }
223
224 public String x86IrqVectorsThermalApicExit() {
225 return X86_IRQ_VECTORS_THERMAL_APIC_EXIT;
226 }
227
051db42f
MK
228 @Override
229 public @NonNull Collection<@NonNull String> getIPIIrqVectorsEntries() {
75a2c4b3 230 return IPI_ENTRY_SET;
051db42f
MK
231 }
232
233 @Override
234 public @NonNull Collection<@NonNull String> getIPIIrqVectorsExits() {
75a2c4b3 235 return IPI_EXIT_SET;
051db42f
MK
236 }
237
a8b8de05
BH
238 // ------------------------------------------------------------------------
239 // New field definitions in LTTng 2.7
ff5e31e0
SL
240 // ------------------------------------------------------------------------
241
242 public String fieldParentNSInum() {
243 return "parent_ns_inum"; //$NON-NLS-1$
244 }
245
246 public String fieldChildNSInum() {
247 return "child_ns_inum"; //$NON-NLS-1$
248 }
249
250 public String fieldChildVTids() {
251 return "vtids"; //$NON-NLS-1$
252 }
253
254 public String fieldNSInum() {
255 return "ns_inum"; //$NON-NLS-1$
256 }
257
258 public String fieldVTid() {
259 return "vtid"; //$NON-NLS-1$
260 }
261
262 public String fieldPPid() {
263 return "ppid"; //$NON-NLS-1$
264 }
265
266 public String fieldNSLevel() {
267 return "ns_level"; //$NON-NLS-1$
268 }
269
7788722d
GB
270 @Override
271 public @NonNull Collection<@NonNull String> eventNetworkReceive() {
272 return ImmutableList.of("netif_receive_skb", "net_if_receive_skb"); //$NON-NLS-1$ //$NON-NLS-2$
273 }
274
ff5e31e0 275}
This page took 0.054078 seconds and 5 git commands to generate.