os.linux: Create PPID and SYSTEM_CALL attributes on demand
[deliverable/tracecompass.git] / analysis / org.eclipse.tracecompass.analysis.os.linux.core / src / org / eclipse / tracecompass / internal / analysis / os / linux / core / kernel / KernelStateProvider.java
index 9ceba92b9bbf8b40c2de94669774a5ae3f1e057b..4d2d1a192becf7766b18ecb3d9f3f15fcab16d1a 100644 (file)
@@ -18,6 +18,8 @@ import org.eclipse.jdt.annotation.Nullable;
 import org.eclipse.tracecompass.analysis.os.linux.core.trace.IKernelAnalysisEventLayout;
 import org.eclipse.tracecompass.common.core.NonNullUtils;
 import org.eclipse.tracecompass.internal.analysis.os.linux.core.Activator;
+import org.eclipse.tracecompass.internal.analysis.os.linux.core.kernel.handlers.IPIEntryHandler;
+import org.eclipse.tracecompass.internal.analysis.os.linux.core.kernel.handlers.IPIExitHandler;
 import org.eclipse.tracecompass.internal.analysis.os.linux.core.kernel.handlers.IrqEntryHandler;
 import org.eclipse.tracecompass.internal.analysis.os.linux.core.kernel.handlers.IrqExitHandler;
 import org.eclipse.tracecompass.internal.analysis.os.linux.core.kernel.handlers.KernelEventHandler;
@@ -44,10 +46,8 @@ import org.eclipse.tracecompass.tmf.core.trace.ITmfTrace;
 import com.google.common.collect.ImmutableMap;
 
 /**
- * This is the state change input plugin for TMF's state system which handles
- * the LTTng 2.0 kernel traces in CTF format.
- *
- * It uses the reference handler defined in CTFKernelHandler.java.
+ * This is the state change input plugin for the state system which handles the
+ * kernel traces.
  *
  * @author Alexandre Montplaisir
  */
@@ -61,7 +61,7 @@ public class KernelStateProvider extends AbstractTmfStateProvider {
      * Version number of this state provider. Please bump this if you modify the
      * contents of the generated state history in some way.
      */
-    private static final int VERSION = 10;
+    private static final int VERSION = 21;
 
     // ------------------------------------------------------------------------
     // Fields
@@ -112,6 +112,12 @@ public class KernelStateProvider extends AbstractTmfStateProvider {
         builder.put(layout.eventSchedProcessFork(), new ProcessForkHandler(layout));
         builder.put(layout.eventSchedProcessExit(), new ProcessExitHandler(layout));
         builder.put(layout.eventSchedProcessFree(), new ProcessFreeHandler(layout));
+        for( String s : layout.getIPIIrqVectorsEntries()) {
+            builder.put(s, new IPIEntryHandler(layout));
+        }
+        for( String s : layout.getIPIIrqVectorsExits()) {
+            builder.put(s, new IPIExitHandler(layout));
+        }
 
         final String eventStatedumpProcessState = layout.eventStatedumpProcessState();
         if (eventStatedumpProcessState != null) {
@@ -122,7 +128,7 @@ public class KernelStateProvider extends AbstractTmfStateProvider {
             builder.put(eventSchedWakeup, new SchedWakeupHandler(layout));
         }
 
-        return NonNullUtils.checkNotNull(builder.build());
+        return builder.build();
     }
 
     // ------------------------------------------------------------------------
@@ -189,13 +195,14 @@ public class KernelStateProvider extends AbstractTmfStateProvider {
         }
     }
 
-    private boolean isSyscallEntry(@Nullable String eventName) {
-        return (eventName != null) && (eventName.startsWith(fLayout.eventSyscallEntryPrefix())
+    private boolean isSyscallEntry(String eventName) {
+        return (eventName.startsWith(fLayout.eventSyscallEntryPrefix())
                 || eventName.startsWith(fLayout.eventCompatSyscallEntryPrefix()));
     }
 
-    private boolean isSyscallExit(@Nullable String eventName) {
-        return (eventName != null) && (eventName.startsWith(fLayout.eventSyscallExitPrefix()));
+    private boolean isSyscallExit(String eventName) {
+        return (eventName.startsWith(fLayout.eventSyscallExitPrefix()) ||
+                eventName.startsWith(fLayout.eventCompatSyscallExitPrefix()));
     }
 
 }
This page took 0.028014 seconds and 5 git commands to generate.