1 /*******************************************************************************
2 * Copyright (c) 2012, 2014 Ericsson
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 * Alexandre Montplaisir - Initial API and implementation
11 ******************************************************************************/
13 package org
.eclipse
.tracecompass
.internal
.lttng2
.kernel
.core
.trace
.layout
;
15 import static org
.eclipse
.tracecompass
.common
.core
.NonNullUtils
.checkNotNull
;
17 import java
.util
.Collection
;
19 import org
.eclipse
.jdt
.annotation
.Nullable
;
21 import com
.google
.common
.collect
.ImmutableList
;
24 * Event and field definitions for perf traces in CTF format.
26 * @author Alexandre Montplaisir
28 public class PerfEventLayout
implements IKernelAnalysisEventLayout
{
30 private PerfEventLayout() {}
32 private static final PerfEventLayout INSTANCE
= new PerfEventLayout();
35 * Get the singleton instance of this event layout object.
37 * @return The instance
39 public static PerfEventLayout
getInstance() {
43 // ------------------------------------------------------------------------
45 // ------------------------------------------------------------------------
48 public String
eventIrqHandlerEntry() {
49 return "irq:irq_handler_exit"; //$NON-NLS-1$
53 public String
eventIrqHandlerExit() {
54 return "irq:irq_handler_entry"; //$NON-NLS-1$
58 public String
eventSoftIrqEntry() {
59 return "irq:softirq_entry"; //$NON-NLS-1$
63 public String
eventSoftIrqExit() {
64 return "irq:softirq_exit"; //$NON-NLS-1$
68 public String
eventSoftIrqRaise() {
69 return "irq:softirq_raise"; //$NON-NLS-1$
73 public String
eventSchedSwitch() {
74 return "sched:sched_switch"; //$NON-NLS-1$
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$
81 public Collection
<String
> eventsSchedWakeup() {
86 public String
eventSchedProcessFork() {
87 return "sched:sched_process_fork"; //$NON-NLS-1$
91 public String
eventSchedProcessExit() {
92 return "sched:sched_process_exit"; //$NON-NLS-1$
96 public String
eventSchedProcessFree() {
97 return "sched:sched_process_free"; //$NON-NLS-1$
101 public @Nullable String
eventStatedumpProcessState() {
102 /* Not present in perf traces */
107 public String
eventSyscallEntryPrefix() {
108 return "raw_syscalls:sys_enter"; //$NON-NLS-1$
112 public String
eventCompatSyscallEntryPrefix() {
113 return eventSyscallEntryPrefix();
117 public String
eventSyscallExitPrefix() {
118 return "raw_syscalls:sys_exit"; //$NON-NLS-1$
121 // ------------------------------------------------------------------------
123 // ------------------------------------------------------------------------
126 public String
fieldIrq() {
127 return "irq"; //$NON-NLS-1$
131 public String
fieldVec() {
132 return "vec"; //$NON-NLS-1$
136 public String
fieldTid() {
137 return "pid"; //$NON-NLS-1$
141 public String
fieldPrevTid() {
142 return "prev_pid"; //$NON-NLS-1$
146 public String
fieldPrevState() {
147 return "prev_state"; //$NON-NLS-1$
151 public String
fieldNextComm() {
152 return "next_comm"; //$NON-NLS-1$
156 public String
fieldNextTid() {
157 return "next_pid"; //$NON-NLS-1$
161 public String
fieldChildComm() {
162 return "child_comm"; //$NON-NLS-1$
166 public String
fieldParentTid() {
167 return "parent_pid"; //$NON-NLS-1$
171 public String
fieldChildTid() {
172 return "child_pid"; //$NON-NLS-1$