Extract the linux-kernel-specific things into their own plugin
[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 19import org.eclipse.jdt.annotation.Nullable;
e363eae1 20import org.eclipse.tracecompass.analysis.os.linux.core.trace.IKernelAnalysisEventLayout;
bd0e2f70
AM
21
22import com.google.common.collect.ImmutableList;
23
24/**
25 * Event and field definitions for perf traces in CTF format.
26 *
27 * @author Alexandre Montplaisir
28 */
29public 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
5db5a3a4
AM
78 private static final Collection<String> WAKEUP_EVENTS =
79 checkNotNull(ImmutableList.of("sched:sched_wakeup", "sched:sched_wakeup_new")); //$NON-NLS-1$ //$NON-NLS-2$
bd0e2f70
AM
80
81 @Override
82 public Collection<String> eventsSchedWakeup() {
83 return WAKEUP_EVENTS;
84 }
85
86 @Override
87 public String eventSchedProcessFork() {
88 return "sched:sched_process_fork"; //$NON-NLS-1$
89 }
90
91 @Override
92 public String eventSchedProcessExit() {
93 return "sched:sched_process_exit"; //$NON-NLS-1$
94 }
95
96 @Override
97 public String eventSchedProcessFree() {
98 return "sched:sched_process_free"; //$NON-NLS-1$
99 }
100
101 @Override
102 public @Nullable String eventStatedumpProcessState() {
103 /* Not present in perf traces */
104 return null;
105 }
106
107 @Override
108 public String eventSyscallEntryPrefix() {
109 return "raw_syscalls:sys_enter"; //$NON-NLS-1$
110 }
111
112 @Override
113 public String eventCompatSyscallEntryPrefix() {
114 return eventSyscallEntryPrefix();
115 }
116
117 @Override
118 public String eventSyscallExitPrefix() {
119 return "raw_syscalls:sys_exit"; //$NON-NLS-1$
120 }
121
122 // ------------------------------------------------------------------------
123 // Field names
124 // ------------------------------------------------------------------------
125
126 @Override
127 public String fieldIrq() {
128 return "irq"; //$NON-NLS-1$
129 }
130
131 @Override
132 public String fieldVec() {
133 return "vec"; //$NON-NLS-1$
134 }
135
136 @Override
137 public String fieldTid() {
138 return "pid"; //$NON-NLS-1$
139 }
140
141 @Override
142 public String fieldPrevTid() {
143 return "prev_pid"; //$NON-NLS-1$
144 }
145
146 @Override
147 public String fieldPrevState() {
148 return "prev_state"; //$NON-NLS-1$
149 }
150
151 @Override
152 public String fieldNextComm() {
153 return "next_comm"; //$NON-NLS-1$
154 }
155
156 @Override
157 public String fieldNextTid() {
158 return "next_pid"; //$NON-NLS-1$
159 }
160
161 @Override
162 public String fieldChildComm() {
163 return "child_comm"; //$NON-NLS-1$
164 }
165
166 @Override
167 public String fieldParentTid() {
168 return "parent_pid"; //$NON-NLS-1$
169 }
170
171 @Override
172 public String fieldChildTid() {
173 return "child_pid"; //$NON-NLS-1$
174 }
175
176}
This page took 0.04549 seconds and 5 git commands to generate.