lttng: Add a lttng 2.9 event layout and update network events/fields
authorGeneviève Bastien <gbastien+lttng@versatic.net>
Wed, 27 Jul 2016 17:29:34 +0000 (13:29 -0400)
committerGenevieve Bastien <gbastien+lttng@versatic.net>
Thu, 28 Jul 2016 12:50:11 +0000 (08:50 -0400)
Change-Id: Idc388cad9f9117ed2f0b4c4b1f7450c2c296fb05
Signed-off-by: Geneviève Bastien <gbastien+lttng@versatic.net>
Reviewed-on: https://git.eclipse.org/r/78007
Reviewed-by: Hudson CI
Reviewed-by: Alexandre Montplaisir <alexmonthy@efficios.com>
lttng/org.eclipse.tracecompass.lttng2.kernel.core/src/org/eclipse/tracecompass/internal/lttng2/kernel/core/trace/layout/Lttng27EventLayout.java
lttng/org.eclipse.tracecompass.lttng2.kernel.core/src/org/eclipse/tracecompass/internal/lttng2/kernel/core/trace/layout/Lttng29EventLayout.java [new file with mode: 0644]
lttng/org.eclipse.tracecompass.lttng2.kernel.core/src/org/eclipse/tracecompass/internal/lttng2/kernel/core/trace/layout/LttngEventLayout.java
lttng/org.eclipse.tracecompass.lttng2.kernel.core/src/org/eclipse/tracecompass/lttng2/kernel/core/trace/LttngKernelTrace.java

index d72dc9690e4691c750eb1fba10cdc01d523d0edd..b48435f46b0e09ed7a7a343fa5a7d0ac65cfab43 100644 (file)
@@ -16,6 +16,7 @@ import java.util.Collection;
 
 import org.eclipse.jdt.annotation.NonNull;
 
+import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableSet;
 
 /**
@@ -266,4 +267,9 @@ public class Lttng27EventLayout extends Lttng26EventLayout {
         return "ns_level"; //$NON-NLS-1$
     }
 
+    @Override
+    public @NonNull Collection<@NonNull String> eventNetworkReceive() {
+        return ImmutableList.of("netif_receive_skb", "net_if_receive_skb"); //$NON-NLS-1$ //$NON-NLS-2$
+    }
+
 }
diff --git a/lttng/org.eclipse.tracecompass.lttng2.kernel.core/src/org/eclipse/tracecompass/internal/lttng2/kernel/core/trace/layout/Lttng29EventLayout.java b/lttng/org.eclipse.tracecompass.lttng2.kernel.core/src/org/eclipse/tracecompass/internal/lttng2/kernel/core/trace/layout/Lttng29EventLayout.java
new file mode 100644 (file)
index 0000000..441e113
--- /dev/null
@@ -0,0 +1,54 @@
+/*******************************************************************************
+ * Copyright (c) 2016 École Polytechnique de Montréal
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *******************************************************************************/
+
+package org.eclipse.tracecompass.internal.lttng2.kernel.core.trace.layout;
+
+import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.tracecompass.tmf.ctf.core.event.CtfTmfEventField;
+
+/**
+ * This file defines all the known event and field names for LTTng kernel
+ * traces, for versions of lttng-modules 2.9 and above.
+ *
+ * @author Geneviève Bastien
+ */
+public class Lttng29EventLayout extends Lttng28EventLayout {
+
+    private static final String[] TCP_SEQ_FIELD = { "network_header", CtfTmfEventField.FIELD_VARIANT_SELECTED, "transport_header", "tcp", "seq" }; //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
+    private static final String[] TCP_ACK_FIELD = { "network_header", CtfTmfEventField.FIELD_VARIANT_SELECTED, "transport_header", "tcp", "ack_seq" }; //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
+    private static final String[] TCP_FLAGS_FIELD = { "network_header", CtfTmfEventField.FIELD_VARIANT_SELECTED, "transport_header", "tcp", "flags" }; //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
+
+    /**
+     * Constructor
+     */
+    protected Lttng29EventLayout() {
+    }
+
+    private static final Lttng29EventLayout INSTANCE = new Lttng29EventLayout();
+
+    public static Lttng29EventLayout getInstance() {
+        return INSTANCE;
+    }
+
+    @Override
+    public String @NonNull [] fieldPathTcpSeq() {
+        return TCP_SEQ_FIELD;
+    }
+
+    @Override
+    public String @NonNull [] fieldPathTcpAckSeq() {
+        return TCP_ACK_FIELD;
+    }
+
+    @Override
+    public String @NonNull [] fieldPathTcpFlags() {
+        return TCP_FLAGS_FIELD;
+    }
+
+}
index 40a86f5967268501a427d6dbf4b09c5ea0f7b932..1c23edb5a66d1dee6d13f28c19355ca43da44d7c 100644 (file)
@@ -13,6 +13,7 @@
 package org.eclipse.tracecompass.internal.lttng2.kernel.core.trace.layout;
 
 import java.util.Collection;
+import java.util.Collections;
 
 import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.tracecompass.analysis.os.linux.core.trace.IKernelAnalysisEventLayout;
@@ -105,6 +106,13 @@ public class LttngEventLayout implements IKernelAnalysisEventLayout {
     private static final String RQ_SECTOR= "rq_sector";
     private static final String NEXTRQ_SECTOR= "nextrq_sector";
 
+    /* Network events and field names */
+    private static final String EVENT_NETWORK_SEND = "net_dev_queue";
+    private static final String EVENT_NETWORK_RECEIVE = "netif_receive_skb";
+    private static final String[] TCP_SEQ_FIELD = { "transport_fields", "thtype_tcp", "seq" };
+    private static final String[] TCP_ACK_FIELD = { "transport_fields", "thtype_tcp", "ack_seq" };
+    private static final String[] TCP_FLAGS_FIELD = { "transport_fields", "thtype_tcp", "flags" };
+
     /** All instances are the same. Only provide a static instance getter */
     protected LttngEventLayout() {
     }
@@ -473,4 +481,29 @@ public class LttngEventLayout implements IKernelAnalysisEventLayout {
         return DISKNAME;
     }
 
+    @Override
+    public @NonNull String eventNetworkSend() {
+        return EVENT_NETWORK_SEND;
+    }
+
+    @Override
+    public @NonNull Collection<@NonNull String> eventNetworkReceive() {
+        return Collections.singleton(EVENT_NETWORK_RECEIVE);
+    }
+
+    @Override
+    public String @NonNull [] fieldPathTcpSeq() {
+        return TCP_SEQ_FIELD;
+    }
+
+    @Override
+    public String @NonNull [] fieldPathTcpAckSeq() {
+        return TCP_ACK_FIELD;
+    }
+
+    @Override
+    public String @NonNull [] fieldPathTcpFlags() {
+        return TCP_FLAGS_FIELD;
+    }
+
 }
index 84b3a4f9d9ee1c30cec71cf2cc40eb244f0b6fab..4509c63fa827526937c529cf996a08278088488d 100644 (file)
@@ -30,6 +30,7 @@ import org.eclipse.tracecompass.internal.lttng2.kernel.core.Activator;
 import org.eclipse.tracecompass.internal.lttng2.kernel.core.trace.layout.Lttng26EventLayout;
 import org.eclipse.tracecompass.internal.lttng2.kernel.core.trace.layout.Lttng27EventLayout;
 import org.eclipse.tracecompass.internal.lttng2.kernel.core.trace.layout.Lttng28EventLayout;
+import org.eclipse.tracecompass.internal.lttng2.kernel.core.trace.layout.Lttng29EventLayout;
 import org.eclipse.tracecompass.internal.lttng2.kernel.core.trace.layout.LttngEventLayout;
 import org.eclipse.tracecompass.internal.lttng2.kernel.core.trace.layout.PerfEventLayout;
 import org.eclipse.tracecompass.tmf.core.event.ITmfEvent;
@@ -59,6 +60,7 @@ public class LttngKernelTrace extends CtfTmfTrace implements IKernelTrace {
         LTTNG26(Lttng26EventLayout.getInstance()),
         LTTNG27(Lttng27EventLayout.getInstance()),
         LTTNG28(Lttng28EventLayout.getInstance()),
+        LTTNG29(Lttng29EventLayout.getInstance()),
         PERF(PerfEventLayout.getInstance());
 
         private final @NonNull IKernelAnalysisEventLayout fLayout;
@@ -127,7 +129,9 @@ public class LttngKernelTrace extends CtfTmfTrace implements IKernelTrace {
         } else if ("lttng-modules".equals(tracerName)) { //$NON-NLS-1$
             /* Look for specific versions of LTTng */
             if (tracerMajor >= 2) {
-                if (tracerMinor >= 8) {
+                if (tracerMinor >= 9) {
+                    return OriginTracer.LTTNG29;
+                } else if (tracerMinor >= 8) {
                     return OriginTracer.LTTNG28;
                 } else if (tracerMinor >= 7) {
                     return OriginTracer.LTTNG27;
This page took 0.028637 seconds and 5 git commands to generate.