1 /*******************************************************************************
2 * Copyright (c) 2015 Ericsson, École Polytechnique de Montréal
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 * Sebastien Lorrain - Initial API and implementation
11 ******************************************************************************/
13 package org
.eclipse
.tracecompass
.internal
.lttng2
.kernel
.core
.trace
.layout
;
15 import java
.util
.Collection
;
17 import com
.google
.common
.collect
.ImmutableSet
;
20 * This file defines all the known event and field names for LTTng kernel
21 * traces, for versions of lttng-modules 2.7 and above.
23 * @author Sebastien Lorrain
25 @SuppressWarnings("javadoc")
26 public class Lttng27EventLayout
extends Lttng26EventLayout
{
28 private static final String X86_IRQ_VECTORS_LOCAL_TIMER_ENTRY
= "x86_irq_vectors_local_timer_entry"; //$NON-NLS-1$
29 private static final String X86_IRQ_VECTORS_LOCAL_TIMER_EXIT
= "x86_irq_vectors_local_timer_exit"; //$NON-NLS-1$
30 private static final String X86_IRQ_VECTORS_RESCHEDULE_ENTRY
= "x86_irq_vectors_reschedule_entry"; //$NON-NLS-1$
31 private static final String X86_IRQ_VECTORS_RESCHEDULE_EXIT
= "x86_irq_vectors_reschedule_exit"; //$NON-NLS-1$
32 private static final String X86_IRQ_VECTORS_SPURIOUS_ENTRY
= "x86_irq_vectors_spurious_apic_entry"; //$NON-NLS-1$
33 private static final String X86_IRQ_VECTORS_SPURIOUS_EXIT
= "x86_irq_vectors_spurious_apic_exit"; //$NON-NLS-1$
34 private static final String X86_IRQ_VECTORS_ERROR_APIC_ENTRY
= "x86_irq_vectors_error_apic_entry"; //$NON-NLS-1$
35 private static final String X86_IRQ_VECTORS_ERROR_APIC_EXIT
= "x86_irq_vectors_error_apic_exit"; //$NON-NLS-1$
36 private static final String X86_IRQ_VECTORS_IPI_ENTRY
= "x86_irq_vectors_ipi_entry"; //$NON-NLS-1$
37 private static final String X86_IRQ_VECTORS_IPI_EXIT
= "x86_irq_vectors_ipi_exit"; //$NON-NLS-1$
38 private static final String X86_IRQ_VECTORS_IRQ_WORK_ENTRY
= "x86_irq_vectors_irq_work_entry"; //$NON-NLS-1$
39 private static final String X86_IRQ_VECTORS_IRQ_WORK_EXIT
= "x86_irq_vectors_irq_work_exit"; //$NON-NLS-1$
40 private static final String X86_IRQ_VECTORS_CALL_FUNCTION_ENTRY
= "x86_irq_vectors_call_function_entry"; //$NON-NLS-1$
41 private static final String X86_IRQ_VECTORS_CALL_FUNCTION_EXIT
= "x86_irq_vectors_call_function_exit"; //$NON-NLS-1$
42 private static final String X86_IRQ_VECTORS_CALL_FUNCTION_SINGLE_ENTRY
= "x86_irq_vectors_call_function_single_entry"; //$NON-NLS-1$
43 private static final String X86_IRQ_VECTORS_CALL_FUNCTION_SINGLE_EXIT
= "x86_irq_vectors_call_function_single_exit"; //$NON-NLS-1$
44 private static final String X86_IRQ_VECTORS_THRESHOLD_APIC_ENTRY
= "x86_irq_vectors_threshold_apic_entry"; //$NON-NLS-1$
45 private static final String X86_IRQ_VECTORS_THRESHOLD_APIC_EXIT
= "x86_irq_vectors_threshold_apic_exit"; //$NON-NLS-1$
46 private static final String X86_IRQ_VECTORS_DEFERRED_ERROR_APIC_ENTRY
= "x86_irq_vectors_deferred_error_apic_entry"; //$NON-NLS-1$
47 private static final String X86_IRQ_VECTORS_DEFERRED_ERROR_APIC_EXIT
= "x86_irq_vectors_deferred_error_apic_exit"; //$NON-NLS-1$
48 private static final String X86_IRQ_VECTORS_THERMAL_APIC_ENTRY
= "x86_irq_vectors_thermal_apic_entry"; //$NON-NLS-1$
49 private static final String X86_IRQ_VECTORS_THERMAL_APIC_EXIT
= "x86_irq_vectors_thermal_apic_exit"; //$NON-NLS-1$
51 private static final Collection
<String
> IPI_ENTRY_SET
= ImmutableSet
.of(
52 X86_IRQ_VECTORS_LOCAL_TIMER_ENTRY
,
53 X86_IRQ_VECTORS_RESCHEDULE_ENTRY
,
54 X86_IRQ_VECTORS_SPURIOUS_ENTRY
,
55 X86_IRQ_VECTORS_ERROR_APIC_ENTRY
,
56 X86_IRQ_VECTORS_IPI_ENTRY
,
57 X86_IRQ_VECTORS_IRQ_WORK_ENTRY
,
58 X86_IRQ_VECTORS_CALL_FUNCTION_ENTRY
,
59 X86_IRQ_VECTORS_CALL_FUNCTION_SINGLE_ENTRY
,
60 X86_IRQ_VECTORS_THRESHOLD_APIC_ENTRY
,
61 X86_IRQ_VECTORS_DEFERRED_ERROR_APIC_ENTRY
,
62 X86_IRQ_VECTORS_THERMAL_APIC_ENTRY
);
64 private static final Collection
<String
> IPI_EXIT_SET
= ImmutableSet
.of(
65 X86_IRQ_VECTORS_LOCAL_TIMER_EXIT
,
66 X86_IRQ_VECTORS_RESCHEDULE_EXIT
,
67 X86_IRQ_VECTORS_SPURIOUS_EXIT
,
68 X86_IRQ_VECTORS_ERROR_APIC_EXIT
,
69 X86_IRQ_VECTORS_IPI_EXIT
,
70 X86_IRQ_VECTORS_IRQ_WORK_EXIT
,
71 X86_IRQ_VECTORS_CALL_FUNCTION_EXIT
,
72 X86_IRQ_VECTORS_CALL_FUNCTION_SINGLE_EXIT
,
73 X86_IRQ_VECTORS_THRESHOLD_APIC_EXIT
,
74 X86_IRQ_VECTORS_DEFERRED_ERROR_APIC_EXIT
,
75 X86_IRQ_VECTORS_THERMAL_APIC_EXIT
);
80 protected Lttng27EventLayout() {}
82 private static final Lttng27EventLayout INSTANCE
= new Lttng27EventLayout();
84 public static Lttng27EventLayout
getInstance() {
88 // ------------------------------------------------------------------------
89 // New event definition in LTTng 2.7
90 // ------------------------------------------------------------------------
93 public String
eventHRTimerStart() {
94 return "timer_hrtimer_start"; //$NON-NLS-1$
98 public String
eventHRTimerCancel() {
99 return "timer_hrtimer_cancel"; //$NON-NLS-1$
103 public String
eventHRTimerExpireEntry() {
104 return "timer_hrtimer_expire_entry"; //$NON-NLS-1$
108 public String
eventHRTimerExpireExit() {
109 return "timer_hrtimer_expire_exit"; //$NON-NLS-1$
113 public String
eventSoftIrqRaise() {
114 return "irq_softirq_raise"; //$NON-NLS-1$
118 public String
eventSoftIrqEntry() {
119 return "irq_softirq_entry"; //$NON-NLS-1$
123 public String
eventSoftIrqExit() {
124 return "irq_softirq_exit"; //$NON-NLS-1$
127 public String
x86IrqVectorsLocalTimerEntry() {
128 return X86_IRQ_VECTORS_LOCAL_TIMER_ENTRY
;
131 public String
x86IrqVectorsLocalTimerExit() {
132 return X86_IRQ_VECTORS_LOCAL_TIMER_EXIT
;
135 public String
x86IrqVectorsRescheduleEntry() {
136 return X86_IRQ_VECTORS_RESCHEDULE_ENTRY
;
139 public String
x86IrqVectorsRescheduleExit() {
140 return X86_IRQ_VECTORS_RESCHEDULE_EXIT
;
143 public String
x86IrqVectorsSpuriousApicEntry() {
144 return X86_IRQ_VECTORS_SPURIOUS_ENTRY
;
147 public String
x86IrqVectorsSpuriousApicExit() {
148 return X86_IRQ_VECTORS_SPURIOUS_EXIT
;
151 public String
x86IrqVectorsErrorApicEntry() {
152 return X86_IRQ_VECTORS_ERROR_APIC_ENTRY
;
155 public String
x86IrqVectorsErrorApicExit() {
156 return X86_IRQ_VECTORS_ERROR_APIC_EXIT
;
159 public String
x86IrqVectorsIpiEntry() {
160 return X86_IRQ_VECTORS_IPI_ENTRY
;
163 public String
x86IrqVectorsIpiExit() {
164 return X86_IRQ_VECTORS_IPI_EXIT
;
167 public String
x86IrqVectorsIrqWorkEntry() {
168 return X86_IRQ_VECTORS_IRQ_WORK_ENTRY
;
171 public String
x86IrqVectorsIrqWorkExit() {
172 return X86_IRQ_VECTORS_IRQ_WORK_EXIT
;
175 public String
x86IrqVectorsCallFunctionEntry() {
176 return X86_IRQ_VECTORS_CALL_FUNCTION_ENTRY
;
179 public String
x86IrqVectorsCallFunctionExit() {
180 return X86_IRQ_VECTORS_CALL_FUNCTION_EXIT
;
183 public String
x86IrqVectorsCallFunctionSingleEntry() {
184 return X86_IRQ_VECTORS_CALL_FUNCTION_SINGLE_ENTRY
;
187 public String
x86IrqVectorsCallFunctionSingleExit() {
188 return X86_IRQ_VECTORS_CALL_FUNCTION_SINGLE_EXIT
;
191 public String
x86IrqVectorsThresholdApicEntry() {
192 return X86_IRQ_VECTORS_THRESHOLD_APIC_ENTRY
;
195 public String
x86IrqVectorsThresholdApicExit() {
196 return X86_IRQ_VECTORS_THRESHOLD_APIC_EXIT
;
199 public String
x86IrqVectorsDeferredErrorApicEntry() {
200 return X86_IRQ_VECTORS_DEFERRED_ERROR_APIC_ENTRY
;
203 public String
x86IrqVectorsDeferredErrorApicExit() {
204 return X86_IRQ_VECTORS_DEFERRED_ERROR_APIC_EXIT
;
207 public String
x86IrqVectorsThermalApicEntry() {
208 return X86_IRQ_VECTORS_THERMAL_APIC_ENTRY
;
211 public String
x86IrqVectorsThermalApicExit() {
212 return X86_IRQ_VECTORS_THERMAL_APIC_EXIT
;
215 public Collection
<String
> getX86IrqVectorsEntry() {
216 return IPI_ENTRY_SET
;
219 public Collection
<String
> getX86IrqVectorsExit() {
223 // ------------------------------------------------------------------------
224 // New field definitions in LTTng 2.7
225 // ------------------------------------------------------------------------
227 public String
fieldParentNSInum() {
228 return "parent_ns_inum"; //$NON-NLS-1$
231 public String
fieldChildNSInum() {
232 return "child_ns_inum"; //$NON-NLS-1$
235 public String
fieldChildVTids() {
236 return "vtids"; //$NON-NLS-1$
239 public String
fieldNSInum() {
240 return "ns_inum"; //$NON-NLS-1$
243 public String
fieldVTid() {
244 return "vtid"; //$NON-NLS-1$
247 public String
fieldPPid() {
248 return "ppid"; //$NON-NLS-1$
251 public String
fieldNSLevel() {
252 return "ns_level"; //$NON-NLS-1$