Support for upgrading Linux Tools features to Trace Compass
[deliverable/tracecompass.git] / org.eclipse.tracecompass.lttng2.kernel.core / src / org / eclipse / tracecompass / internal / lttng2 / kernel / core / trace / layout / PerfEventLayout.java
CommitLineData
bd0e2f70
AM
1/*******************************************************************************
2 * Copyright (c) 2012, 2014 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
13package org.eclipse.tracecompass.internal.lttng2.kernel.core.trace.layout;
14
5db5a3a4
AM
15import static org.eclipse.tracecompass.common.core.NonNullUtils.checkNotNull;
16
bd0e2f70
AM
17import java.util.Collection;
18
bd0e2f70
AM
19import org.eclipse.jdt.annotation.Nullable;
20
21import com.google.common.collect.ImmutableList;
22
23/**
24 * Event and field definitions for perf traces in CTF format.
25 *
26 * @author Alexandre Montplaisir
27 */
28public class PerfEventLayout implements IKernelAnalysisEventLayout {
29
30 private PerfEventLayout() {}
31
32 private static final PerfEventLayout INSTANCE = new PerfEventLayout();
33
34 /**
35 * Get the singleton instance of this event layout object.
36 *
37 * @return The instance
38 */
39 public static PerfEventLayout getInstance() {
40 return INSTANCE;
41 }
42
43 // ------------------------------------------------------------------------
44 // Event names
45 // ------------------------------------------------------------------------
46
47 @Override
48 public String eventIrqHandlerEntry() {
49 return "irq:irq_handler_exit"; //$NON-NLS-1$
50 }
51
52 @Override
53 public String eventIrqHandlerExit() {
54 return "irq:irq_handler_entry"; //$NON-NLS-1$
55 }
56
57 @Override
58 public String eventSoftIrqEntry() {
59 return "irq:softirq_entry"; //$NON-NLS-1$
60 }
61
62 @Override
63 public String eventSoftIrqExit() {
64 return "irq:softirq_exit"; //$NON-NLS-1$
65 }
66
67 @Override
68 public String eventSoftIrqRaise() {
69 return "irq:softirq_raise"; //$NON-NLS-1$
70 }
71
72 @Override
73 public String eventSchedSwitch() {
74 return "sched:sched_switch"; //$NON-NLS-1$
75 }
76
5db5a3a4
AM
77 private static final Collection<String> WAKEUP_EVENTS =
78 checkNotNull(ImmutableList.of("sched:sched_wakeup", "sched:sched_wakeup_new")); //$NON-NLS-1$ //$NON-NLS-2$
bd0e2f70
AM
79
80 @Override
81 public Collection<String> eventsSchedWakeup() {
82 return WAKEUP_EVENTS;
83 }
84
85 @Override
86 public String eventSchedProcessFork() {
87 return "sched:sched_process_fork"; //$NON-NLS-1$
88 }
89
90 @Override
91 public String eventSchedProcessExit() {
92 return "sched:sched_process_exit"; //$NON-NLS-1$
93 }
94
95 @Override
96 public String eventSchedProcessFree() {
97 return "sched:sched_process_free"; //$NON-NLS-1$
98 }
99
100 @Override
101 public @Nullable String eventStatedumpProcessState() {
102 /* Not present in perf traces */
103 return null;
104 }
105
106 @Override
107 public String eventSyscallEntryPrefix() {
108 return "raw_syscalls:sys_enter"; //$NON-NLS-1$
109 }
110
111 @Override
112 public String eventCompatSyscallEntryPrefix() {
113 return eventSyscallEntryPrefix();
114 }
115
116 @Override
117 public String eventSyscallExitPrefix() {
118 return "raw_syscalls:sys_exit"; //$NON-NLS-1$
119 }
120
121 // ------------------------------------------------------------------------
122 // Field names
123 // ------------------------------------------------------------------------
124
125 @Override
126 public String fieldIrq() {
127 return "irq"; //$NON-NLS-1$
128 }
129
130 @Override
131 public String fieldVec() {
132 return "vec"; //$NON-NLS-1$
133 }
134
135 @Override
136 public String fieldTid() {
137 return "pid"; //$NON-NLS-1$
138 }
139
140 @Override
141 public String fieldPrevTid() {
142 return "prev_pid"; //$NON-NLS-1$
143 }
144
145 @Override
146 public String fieldPrevState() {
147 return "prev_state"; //$NON-NLS-1$
148 }
149
150 @Override
151 public String fieldNextComm() {
152 return "next_comm"; //$NON-NLS-1$
153 }
154
155 @Override
156 public String fieldNextTid() {
157 return "next_pid"; //$NON-NLS-1$
158 }
159
160 @Override
161 public String fieldChildComm() {
162 return "child_comm"; //$NON-NLS-1$
163 }
164
165 @Override
166 public String fieldParentTid() {
167 return "parent_pid"; //$NON-NLS-1$
168 }
169
170 @Override
171 public String fieldChildTid() {
172 return "child_pid"; //$NON-NLS-1$
173 }
174
175}
This page took 0.038952 seconds and 5 git commands to generate.