Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGeneviève Bastien2017-06-01 20:26:26 +0000
committerGenevieve Bastien2017-06-12 19:18:16 +0000
commit53ea60bb9238a83ee70c089c0121d7648a76923e (patch)
tree05244c21e4e6c5b100b39707ac28d9e9e858c165 /vm/org.eclipse.tracecompass.incubator.virtual.machine.analysis.ui/src/org/eclipse/tracecompass/incubator/internal/virtual/machine/analysis/ui
parent1f66aba9fdff90e6fd5d6e77c591ddb0c718f3bd (diff)
downloadorg.eclipse.tracecompass.incubator-53ea60bb9238a83ee70c089c0121d7648a76923e.tar.gz
org.eclipse.tracecompass.incubator-53ea60bb9238a83ee70c089c0121d7648a76923e.tar.xz
org.eclipse.tracecompass.incubator-53ea60bb9238a83ee70c089c0121d7648a76923e.zip
vm: fixes, clean up and tests
* Add unit tests for the fused VM analysis * Fix some warnings in used handlers * View: fix the view for some use cases * Temporarily disable the selections in the view Change-Id: I7842ab8aa1c0d8a4d704b3220e3abe153743c994 Signed-off-by: Geneviève Bastien <gbastien+lttng@versatic.net> Reviewed-on: https://git.eclipse.org/r/98814 Reviewed-by: Hudson CI Reviewed-by: Matthew Khouzam <matthew.khouzam@ericsson.com>
Diffstat (limited to 'vm/org.eclipse.tracecompass.incubator.virtual.machine.analysis.ui/src/org/eclipse/tracecompass/incubator/internal/virtual/machine/analysis/ui')
-rw-r--r--vm/org.eclipse.tracecompass.incubator.virtual.machine.analysis.ui/src/org/eclipse/tracecompass/incubator/internal/virtual/machine/analysis/ui/package-info.java2
-rw-r--r--vm/org.eclipse.tracecompass.incubator.virtual.machine.analysis.ui/src/org/eclipse/tracecompass/incubator/internal/virtual/machine/analysis/ui/views/vcpuview/VirtualMachineView.java2
-rw-r--r--vm/org.eclipse.tracecompass.incubator.virtual.machine.analysis.ui/src/org/eclipse/tracecompass/incubator/internal/virtual/machine/analysis/ui/views/vresources/AggregateFusedVMViewEntry.java (renamed from vm/org.eclipse.tracecompass.incubator.virtual.machine.analysis.ui/src/org/eclipse/tracecompass/incubator/internal/virtual/machine/analysis/ui/views/fusedvmview/AggregateFusedVMViewEntry.java)4
-rw-r--r--vm/org.eclipse.tracecompass.incubator.virtual.machine.analysis.ui/src/org/eclipse/tracecompass/incubator/internal/virtual/machine/analysis/ui/views/vresources/Machine.java (renamed from vm/org.eclipse.tracecompass.incubator.virtual.machine.analysis.ui/src/org/eclipse/tracecompass/incubator/internal/virtual/machine/analysis/ui/views/fusedvmview/Machine.java)16
-rw-r--r--vm/org.eclipse.tracecompass.incubator.virtual.machine.analysis.ui/src/org/eclipse/tracecompass/incubator/internal/virtual/machine/analysis/ui/views/vresources/Messages.java (renamed from vm/org.eclipse.tracecompass.incubator.virtual.machine.analysis.ui/src/org/eclipse/tracecompass/incubator/internal/virtual/machine/analysis/ui/views/fusedvmview/Messages.java)2
-rw-r--r--vm/org.eclipse.tracecompass.incubator.virtual.machine.analysis.ui/src/org/eclipse/tracecompass/incubator/internal/virtual/machine/analysis/ui/views/vresources/Processor.java (renamed from vm/org.eclipse.tracecompass.incubator.virtual.machine.analysis.ui/src/org/eclipse/tracecompass/incubator/internal/virtual/machine/analysis/ui/views/fusedvmview/Processor.java)4
-rw-r--r--vm/org.eclipse.tracecompass.incubator.virtual.machine.analysis.ui/src/org/eclipse/tracecompass/incubator/internal/virtual/machine/analysis/ui/views/vresources/SelectMachineDialog.java (renamed from vm/org.eclipse.tracecompass.incubator.virtual.machine.analysis.ui/src/org/eclipse/tracecompass/incubator/internal/virtual/machine/analysis/ui/views/fusedvmview/SelectMachineDialog.java)14
-rw-r--r--vm/org.eclipse.tracecompass.incubator.virtual.machine.analysis.ui/src/org/eclipse/tracecompass/incubator/internal/virtual/machine/analysis/ui/views/vresources/VirtualResourceEntry.java (renamed from vm/org.eclipse.tracecompass.incubator.virtual.machine.analysis.ui/src/org/eclipse/tracecompass/incubator/internal/virtual/machine/analysis/ui/views/fusedvmview/FusedVMViewEntry.java)25
-rw-r--r--vm/org.eclipse.tracecompass.incubator.virtual.machine.analysis.ui/src/org/eclipse/tracecompass/incubator/internal/virtual/machine/analysis/ui/views/vresources/VirtualResourcePresentationProvider.java (renamed from vm/org.eclipse.tracecompass.incubator.virtual.machine.analysis.ui/src/org/eclipse/tracecompass/incubator/internal/virtual/machine/analysis/ui/views/fusedvmview/FusedVMViewPresentationProvider.java)510
-rw-r--r--vm/org.eclipse.tracecompass.incubator.virtual.machine.analysis.ui/src/org/eclipse/tracecompass/incubator/internal/virtual/machine/analysis/ui/views/vresources/VirtualResourcesView.java (renamed from vm/org.eclipse.tracecompass.incubator.virtual.machine.analysis.ui/src/org/eclipse/tracecompass/incubator/internal/virtual/machine/analysis/ui/views/fusedvmview/FusedVirtualMachineView.java)365
-rw-r--r--vm/org.eclipse.tracecompass.incubator.virtual.machine.analysis.ui/src/org/eclipse/tracecompass/incubator/internal/virtual/machine/analysis/ui/views/vresources/messages.properties (renamed from vm/org.eclipse.tracecompass.incubator.virtual.machine.analysis.ui/src/org/eclipse/tracecompass/incubator/internal/virtual/machine/analysis/ui/views/fusedvmview/messages.properties)0
11 files changed, 454 insertions, 490 deletions
diff --git a/vm/org.eclipse.tracecompass.incubator.virtual.machine.analysis.ui/src/org/eclipse/tracecompass/incubator/internal/virtual/machine/analysis/ui/package-info.java b/vm/org.eclipse.tracecompass.incubator.virtual.machine.analysis.ui/src/org/eclipse/tracecompass/incubator/internal/virtual/machine/analysis/ui/package-info.java
index 185d48247..045388dfb 100644
--- a/vm/org.eclipse.tracecompass.incubator.virtual.machine.analysis.ui/src/org/eclipse/tracecompass/incubator/internal/virtual/machine/analysis/ui/package-info.java
+++ b/vm/org.eclipse.tracecompass.incubator.virtual.machine.analysis.ui/src/org/eclipse/tracecompass/incubator/internal/virtual/machine/analysis/ui/package-info.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2017 École Polytechnique de Montréal
+ * Copyright (c) 2017 É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
diff --git a/vm/org.eclipse.tracecompass.incubator.virtual.machine.analysis.ui/src/org/eclipse/tracecompass/incubator/internal/virtual/machine/analysis/ui/views/vcpuview/VirtualMachineView.java b/vm/org.eclipse.tracecompass.incubator.virtual.machine.analysis.ui/src/org/eclipse/tracecompass/incubator/internal/virtual/machine/analysis/ui/views/vcpuview/VirtualMachineView.java
index b83ddaca6..787078481 100644
--- a/vm/org.eclipse.tracecompass.incubator.virtual.machine.analysis.ui/src/org/eclipse/tracecompass/incubator/internal/virtual/machine/analysis/ui/views/vcpuview/VirtualMachineView.java
+++ b/vm/org.eclipse.tracecompass.incubator.virtual.machine.analysis.ui/src/org/eclipse/tracecompass/incubator/internal/virtual/machine/analysis/ui/views/vcpuview/VirtualMachineView.java
@@ -56,7 +56,7 @@ import com.google.common.collect.Multimap;
public class VirtualMachineView extends AbstractTimeGraphView {
/** View ID. */
- public static final String ID = "org.eclipse.tracecompass.lttng2.analysis.vm.ui.vmview"; //$NON-NLS-1$
+ public static final String ID = "org.eclipse.tracecompass.incubator.internal.virtual.machine.analysis.vm.ui.vmview"; //$NON-NLS-1$
private static final String[] COLUMN_NAMES = new String[] {
Messages.VmView_stateTypeName
diff --git a/vm/org.eclipse.tracecompass.incubator.virtual.machine.analysis.ui/src/org/eclipse/tracecompass/incubator/internal/virtual/machine/analysis/ui/views/fusedvmview/AggregateFusedVMViewEntry.java b/vm/org.eclipse.tracecompass.incubator.virtual.machine.analysis.ui/src/org/eclipse/tracecompass/incubator/internal/virtual/machine/analysis/ui/views/vresources/AggregateFusedVMViewEntry.java
index faa2326d3..e9a263de5 100644
--- a/vm/org.eclipse.tracecompass.incubator.virtual.machine.analysis.ui/src/org/eclipse/tracecompass/incubator/internal/virtual/machine/analysis/ui/views/fusedvmview/AggregateFusedVMViewEntry.java
+++ b/vm/org.eclipse.tracecompass.incubator.virtual.machine.analysis.ui/src/org/eclipse/tracecompass/incubator/internal/virtual/machine/analysis/ui/views/vresources/AggregateFusedVMViewEntry.java
@@ -7,7 +7,7 @@
* http://www.eclipse.org/legal/epl-v10.html
*******************************************************************************/
-package org.eclipse.tracecompass.incubator.internal.virtual.machine.analysis.ui.views.fusedvmview;
+package org.eclipse.tracecompass.incubator.internal.virtual.machine.analysis.ui.views.vresources;
import java.util.ArrayList;
import java.util.Comparator;
@@ -25,7 +25,7 @@ import org.eclipse.tracecompass.tmf.ui.widgets.timegraph.model.TimeEvent;
/**
* @author Cédric Biancheri
*/
-public class AggregateFusedVMViewEntry extends FusedVMViewEntry {
+public class AggregateFusedVMViewEntry extends VirtualResourceEntry {
private final @NonNull List<ITimeGraphEntry> fContributors = new ArrayList<>();
private static final Comparator<ITimeEvent> COMPARATOR = new Comparator<ITimeEvent>() {
diff --git a/vm/org.eclipse.tracecompass.incubator.virtual.machine.analysis.ui/src/org/eclipse/tracecompass/incubator/internal/virtual/machine/analysis/ui/views/fusedvmview/Machine.java b/vm/org.eclipse.tracecompass.incubator.virtual.machine.analysis.ui/src/org/eclipse/tracecompass/incubator/internal/virtual/machine/analysis/ui/views/vresources/Machine.java
index 0eb30e721..d58c32439 100644
--- a/vm/org.eclipse.tracecompass.incubator.virtual.machine.analysis.ui/src/org/eclipse/tracecompass/incubator/internal/virtual/machine/analysis/ui/views/fusedvmview/Machine.java
+++ b/vm/org.eclipse.tracecompass.incubator.virtual.machine.analysis.ui/src/org/eclipse/tracecompass/incubator/internal/virtual/machine/analysis/ui/views/vresources/Machine.java
@@ -7,7 +7,7 @@
* http://www.eclipse.org/legal/epl-v10.html
*******************************************************************************/
-package org.eclipse.tracecompass.incubator.internal.virtual.machine.analysis.ui.views.fusedvmview;
+package org.eclipse.tracecompass.incubator.internal.virtual.machine.analysis.ui.views.vresources;
import java.util.HashSet;
import java.util.List;
@@ -40,14 +40,14 @@ public class Machine {
public Machine(String name, @NonNull ITmfStateValue type) {
machineName = name;
highlighted = true;
- heightFactory = FusedVMViewPresentationProvider.FULL_HEIGHT;
+ heightFactory = VirtualResourcePresentationProvider.FULL_HEIGHT;
typeMachine = type;
}
public Machine(String name, Integer nbCPUs, @NonNull ITmfStateValue type) {
machineName = name;
highlighted = true;
- heightFactory = FusedVMViewPresentationProvider.FULL_HEIGHT;
+ heightFactory = VirtualResourcePresentationProvider.FULL_HEIGHT;
typeMachine = type;
for (Integer i = 0; i < nbCPUs; i++) {
cpus.add(new Processor(i.toString(), this));
@@ -57,7 +57,7 @@ public class Machine {
public Machine(String name, @NonNull ITmfStateValue type, List<String> pcpus) {
machineName = name;
highlighted = true;
- heightFactory = FusedVMViewPresentationProvider.FULL_HEIGHT;
+ heightFactory = VirtualResourcePresentationProvider.FULL_HEIGHT;
typeMachine = type;
for (String pcpu : pcpus) {
this.pcpus.add(new Processor(pcpu, this));
@@ -127,9 +127,9 @@ public class Machine {
public void setHighlightedWithAllCpu(Boolean b) {
highlighted = b;
if (b) {
- heightFactory = FusedVMViewPresentationProvider.FULL_HEIGHT;
+ heightFactory = VirtualResourcePresentationProvider.FULL_HEIGHT;
} else {
- heightFactory = FusedVMViewPresentationProvider.REDUCED_HEIGHT;
+ heightFactory = VirtualResourcePresentationProvider.REDUCED_HEIGHT;
}
for (Processor p : cpus) {
p.setHighlighted(b);
@@ -139,9 +139,9 @@ public class Machine {
public void setHighlightedWithAllContainers(Boolean b) {
highlighted = b;
if (b){
- heightFactory = FusedVMViewPresentationProvider.FULL_HEIGHT;
+ heightFactory = VirtualResourcePresentationProvider.FULL_HEIGHT;
} else {
- heightFactory = FusedVMViewPresentationProvider.REDUCED_HEIGHT;
+ heightFactory = VirtualResourcePresentationProvider.REDUCED_HEIGHT;
}
for (Machine c : containers) {
c.setHighlighted(b);
diff --git a/vm/org.eclipse.tracecompass.incubator.virtual.machine.analysis.ui/src/org/eclipse/tracecompass/incubator/internal/virtual/machine/analysis/ui/views/fusedvmview/Messages.java b/vm/org.eclipse.tracecompass.incubator.virtual.machine.analysis.ui/src/org/eclipse/tracecompass/incubator/internal/virtual/machine/analysis/ui/views/vresources/Messages.java
index 5e7b6c9b1..8bb214bf0 100644
--- a/vm/org.eclipse.tracecompass.incubator.virtual.machine.analysis.ui/src/org/eclipse/tracecompass/incubator/internal/virtual/machine/analysis/ui/views/fusedvmview/Messages.java
+++ b/vm/org.eclipse.tracecompass.incubator.virtual.machine.analysis.ui/src/org/eclipse/tracecompass/incubator/internal/virtual/machine/analysis/ui/views/vresources/Messages.java
@@ -7,7 +7,7 @@
* http://www.eclipse.org/legal/epl-v10.html
*******************************************************************************/
-package org.eclipse.tracecompass.incubator.internal.virtual.machine.analysis.ui.views.fusedvmview;
+package org.eclipse.tracecompass.incubator.internal.virtual.machine.analysis.ui.views.vresources;
import org.eclipse.osgi.util.NLS;
diff --git a/vm/org.eclipse.tracecompass.incubator.virtual.machine.analysis.ui/src/org/eclipse/tracecompass/incubator/internal/virtual/machine/analysis/ui/views/fusedvmview/Processor.java b/vm/org.eclipse.tracecompass.incubator.virtual.machine.analysis.ui/src/org/eclipse/tracecompass/incubator/internal/virtual/machine/analysis/ui/views/vresources/Processor.java
index 777528975..1b7646d3c 100644
--- a/vm/org.eclipse.tracecompass.incubator.virtual.machine.analysis.ui/src/org/eclipse/tracecompass/incubator/internal/virtual/machine/analysis/ui/views/fusedvmview/Processor.java
+++ b/vm/org.eclipse.tracecompass.incubator.virtual.machine.analysis.ui/src/org/eclipse/tracecompass/incubator/internal/virtual/machine/analysis/ui/views/vresources/Processor.java
@@ -7,7 +7,7 @@
* http://www.eclipse.org/legal/epl-v10.html
*******************************************************************************/
-package org.eclipse.tracecompass.incubator.internal.virtual.machine.analysis.ui.views.fusedvmview;
+package org.eclipse.tracecompass.incubator.internal.virtual.machine.analysis.ui.views.vresources;
/**
* @author Cedric Biancheri
@@ -21,7 +21,7 @@ public class Processor {
public Processor(String p, Machine m){
n = p;
highlighted = true;
- heightFactory = FusedVMViewPresentationProvider.FULL_HEIGHT;
+ heightFactory = VirtualResourcePresentationProvider.FULL_HEIGHT;
machine = m;
}
diff --git a/vm/org.eclipse.tracecompass.incubator.virtual.machine.analysis.ui/src/org/eclipse/tracecompass/incubator/internal/virtual/machine/analysis/ui/views/fusedvmview/SelectMachineDialog.java b/vm/org.eclipse.tracecompass.incubator.virtual.machine.analysis.ui/src/org/eclipse/tracecompass/incubator/internal/virtual/machine/analysis/ui/views/vresources/SelectMachineDialog.java
index ea65be29e..fd1ac7b63 100644
--- a/vm/org.eclipse.tracecompass.incubator.virtual.machine.analysis.ui/src/org/eclipse/tracecompass/incubator/internal/virtual/machine/analysis/ui/views/fusedvmview/SelectMachineDialog.java
+++ b/vm/org.eclipse.tracecompass.incubator.virtual.machine.analysis.ui/src/org/eclipse/tracecompass/incubator/internal/virtual/machine/analysis/ui/views/vresources/SelectMachineDialog.java
@@ -7,7 +7,7 @@
* http://www.eclipse.org/legal/epl-v10.html
*******************************************************************************/
-package org.eclipse.tracecompass.incubator.internal.virtual.machine.analysis.ui.views.fusedvmview;
+package org.eclipse.tracecompass.incubator.internal.virtual.machine.analysis.ui.views.vresources;
import java.util.ArrayList;
import java.util.List;
@@ -30,7 +30,7 @@ import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Tree;
-import org.eclipse.tracecompass.incubator.internal.virtual.machine.analysis.core.data.Attributes;
+import org.eclipse.tracecompass.incubator.internal.virtual.machine.analysis.core.fused.FusedAttributes;
import org.eclipse.tracecompass.tmf.ui.project.model.TmfNavigatorContentProvider;
import org.eclipse.tracecompass.tmf.ui.project.model.TmfNavigatorLabelProvider;
import org.eclipse.ui.dialogs.FilteredTree;
@@ -41,7 +41,7 @@ import org.eclipse.ui.dialogs.PatternFilter;
*/
public class SelectMachineDialog extends TitleAreaDialog {
- private final FusedVMViewPresentationProvider provider;
+ private final VirtualResourcePresentationProvider provider;
private CheckboxTreeViewer fCheckboxTreeViewer;
private TmfNavigatorContentProvider fContentProvider;
private TmfNavigatorLabelProvider fLabelProvider;
@@ -54,7 +54,7 @@ public class SelectMachineDialog extends TitleAreaDialog {
* @param provider
* The presentation provider
*/
- public static void open(Shell parent, FusedVMViewPresentationProvider provider) {
+ public static void open(Shell parent, VirtualResourcePresentationProvider provider) {
(new SelectMachineDialog(parent, provider)).open();
}
@@ -66,7 +66,7 @@ public class SelectMachineDialog extends TitleAreaDialog {
* @param provider
* The presentation provider
*/
- public SelectMachineDialog(Shell parent, FusedVMViewPresentationProvider provider) {
+ public SelectMachineDialog(Shell parent, VirtualResourcePresentationProvider provider) {
super(parent);
this.provider = provider;
this.setShellStyle(getShellStyle() | SWT.RESIZE);
@@ -155,9 +155,9 @@ public class SelectMachineDialog extends TitleAreaDialog {
if (!set.isEmpty()) {
for (Object o : set) {
if (o instanceof Machine) {
- return Attributes.CONTAINERS;
+ return FusedAttributes.CONTAINERS;
} else if (o instanceof Processor) {
- return Attributes.CPUS;
+ return FusedAttributes.CPUS;
}
}
}
diff --git a/vm/org.eclipse.tracecompass.incubator.virtual.machine.analysis.ui/src/org/eclipse/tracecompass/incubator/internal/virtual/machine/analysis/ui/views/fusedvmview/FusedVMViewEntry.java b/vm/org.eclipse.tracecompass.incubator.virtual.machine.analysis.ui/src/org/eclipse/tracecompass/incubator/internal/virtual/machine/analysis/ui/views/vresources/VirtualResourceEntry.java
index e258a40bc..0625cd1ff 100644
--- a/vm/org.eclipse.tracecompass.incubator.virtual.machine.analysis.ui/src/org/eclipse/tracecompass/incubator/internal/virtual/machine/analysis/ui/views/fusedvmview/FusedVMViewEntry.java
+++ b/vm/org.eclipse.tracecompass.incubator.virtual.machine.analysis.ui/src/org/eclipse/tracecompass/incubator/internal/virtual/machine/analysis/ui/views/vresources/VirtualResourceEntry.java
@@ -7,7 +7,7 @@
* http://www.eclipse.org/legal/epl-v10.html
*******************************************************************************/
-package org.eclipse.tracecompass.incubator.internal.virtual.machine.analysis.ui.views.fusedvmview;
+package org.eclipse.tracecompass.incubator.internal.virtual.machine.analysis.ui.views.vresources;
import java.util.Iterator;
@@ -21,7 +21,7 @@ import org.eclipse.tracecompass.tmf.ui.widgets.timegraph.model.TimeGraphEntry;
/**
* @author Cedric Biancheri
*/
-public class FusedVMViewEntry extends TimeGraphEntry implements Comparable<ITimeGraphEntry> {
+public class VirtualResourceEntry extends TimeGraphEntry implements Comparable<ITimeGraphEntry> {
/** Type of resource */
public static enum Type {
@@ -75,7 +75,7 @@ public class FusedVMViewEntry extends TimeGraphEntry implements Comparable<ITime
* @param id
* The id of this entry
*/
- public FusedVMViewEntry(int quark, @NonNull ITmfTrace trace, String name,
+ public VirtualResourceEntry(int quark, @NonNull ITmfTrace trace, String name,
long startTime, long endTime, Type type, int id) {
super(name, startTime, endTime);
fId = id;
@@ -98,12 +98,12 @@ public class FusedVMViewEntry extends TimeGraphEntry implements Comparable<ITime
* @param id
* The id of this entry
*/
- public FusedVMViewEntry(@NonNull ITmfTrace trace, String name,
+ public VirtualResourceEntry(@NonNull ITmfTrace trace, String name,
long startTime, long endTime, int id) {
this(-1, trace, name, startTime, endTime, Type.NULL, id);
}
- public FusedVMViewEntry(@NonNull ITmfTrace trace, String name,
+ public VirtualResourceEntry(@NonNull ITmfTrace trace, String name,
long startTime, long endTime, Type type, int id) {
this(-1, trace, name, startTime, endTime, type, id);
}
@@ -124,7 +124,7 @@ public class FusedVMViewEntry extends TimeGraphEntry implements Comparable<ITime
* @param id
* The id of this entry
*/
- public FusedVMViewEntry(int quark, @NonNull ITmfTrace trace,
+ public VirtualResourceEntry(int quark, @NonNull ITmfTrace trace,
long startTime, long endTime, Type type, int id) {
this(quark, trace, computeEntryName(type, id), startTime, endTime, type, id);
}
@@ -180,15 +180,24 @@ public class FusedVMViewEntry extends TimeGraphEntry implements Comparable<ITime
return true;
}
+ /**
+ * Get the default expanded state of this entry
+ *
+ * @return The default expanded state of the entry
+ */
+ public boolean getDefaultExpandedState() {
+ return fType != Type.CPU;
+ }
+
@Override
public int compareTo(ITimeGraphEntry other) {
- if (!(other instanceof FusedVMViewEntry)) {
+ if (!(other instanceof VirtualResourceEntry)) {
/*
* Should not happen, but if it does, put those entries at the end
*/
return -1;
}
- FusedVMViewEntry o = (FusedVMViewEntry) other;
+ VirtualResourceEntry o = (VirtualResourceEntry) other;
/*
* Resources entry names should all be of type "ABC 123"
diff --git a/vm/org.eclipse.tracecompass.incubator.virtual.machine.analysis.ui/src/org/eclipse/tracecompass/incubator/internal/virtual/machine/analysis/ui/views/fusedvmview/FusedVMViewPresentationProvider.java b/vm/org.eclipse.tracecompass.incubator.virtual.machine.analysis.ui/src/org/eclipse/tracecompass/incubator/internal/virtual/machine/analysis/ui/views/vresources/VirtualResourcePresentationProvider.java
index 664039a34..e48eaca06 100644
--- a/vm/org.eclipse.tracecompass.incubator.virtual.machine.analysis.ui/src/org/eclipse/tracecompass/incubator/internal/virtual/machine/analysis/ui/views/fusedvmview/FusedVMViewPresentationProvider.java
+++ b/vm/org.eclipse.tracecompass.incubator.virtual.machine.analysis.ui/src/org/eclipse/tracecompass/incubator/internal/virtual/machine/analysis/ui/views/vresources/VirtualResourcePresentationProvider.java
@@ -7,7 +7,7 @@
* http://www.eclipse.org/legal/epl-v10.html
*******************************************************************************/
-package org.eclipse.tracecompass.incubator.internal.virtual.machine.analysis.ui.views.fusedvmview;
+package org.eclipse.tracecompass.incubator.internal.virtual.machine.analysis.ui.views.vresources;
import java.util.HashMap;
import java.util.LinkedHashMap;
@@ -21,13 +21,13 @@ import org.eclipse.swt.graphics.RGB;
import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.tracecompass.analysis.os.linux.core.trace.IKernelAnalysisEventLayout;
import org.eclipse.tracecompass.analysis.os.linux.core.trace.IKernelTrace;
-import org.eclipse.tracecompass.incubator.internal.virtual.machine.analysis.core.data.Attributes;
+import org.eclipse.tracecompass.incubator.internal.virtual.machine.analysis.core.fused.FusedAttributes;
import org.eclipse.tracecompass.incubator.internal.virtual.machine.analysis.core.fused.FusedVMInformationProvider;
import org.eclipse.tracecompass.incubator.internal.virtual.machine.analysis.core.fused.FusedVirtualMachineAnalysis;
import org.eclipse.tracecompass.incubator.internal.virtual.machine.analysis.core.module.StateValues;
import org.eclipse.tracecompass.incubator.internal.virtual.machine.analysis.core.trace.VirtualMachineExperiment;
import org.eclipse.tracecompass.incubator.internal.virtual.machine.analysis.ui.Activator;
-import org.eclipse.tracecompass.incubator.internal.virtual.machine.analysis.ui.views.fusedvmview.FusedVMViewEntry.Type;
+import org.eclipse.tracecompass.incubator.internal.virtual.machine.analysis.ui.views.vresources.VirtualResourceEntry.Type;
import org.eclipse.tracecompass.statesystem.core.ITmfStateSystem;
import org.eclipse.tracecompass.statesystem.core.exceptions.AttributeNotFoundException;
import org.eclipse.tracecompass.statesystem.core.exceptions.StateSystemDisposedException;
@@ -40,7 +40,6 @@ import org.eclipse.tracecompass.tmf.core.trace.ITmfTrace;
import org.eclipse.tracecompass.tmf.ui.widgets.timegraph.StateItem;
import org.eclipse.tracecompass.tmf.ui.widgets.timegraph.TimeGraphPresentationProvider;
import org.eclipse.tracecompass.tmf.ui.widgets.timegraph.model.ITimeEvent;
-import org.eclipse.tracecompass.tmf.ui.widgets.timegraph.model.ITimeEventStyleStrings;
import org.eclipse.tracecompass.tmf.ui.widgets.timegraph.model.ITimeGraphEntry;
import org.eclipse.tracecompass.tmf.ui.widgets.timegraph.model.NullTimeEvent;
import org.eclipse.tracecompass.tmf.ui.widgets.timegraph.model.TimeEvent;
@@ -49,13 +48,11 @@ import org.eclipse.tracecompass.tmf.ui.widgets.timegraph.widgets.Utils;
import org.eclipse.tracecompass.tmf.ui.widgets.timegraph.widgets.Utils.Resolution;
import org.eclipse.tracecompass.tmf.ui.widgets.timegraph.widgets.Utils.TimeFormat;
-import com.google.common.collect.ImmutableMap;
-
/**
* @author Cedric Biancheri
*
*/
-public class FusedVMViewPresentationProvider extends TimeGraphPresentationProvider {
+public class VirtualResourcePresentationProvider extends TimeGraphPresentationProvider {
static final float FULL_HEIGHT = 1.0f;
static final float REDUCED_HEIGHT = 0.25f;
@@ -139,9 +136,9 @@ public class FusedVMViewPresentationProvider extends TimeGraphPresentationProvid
return threadName;
}
- public float getHeightFactory() {
- return fHeight;
- }
+// public float getHeightFactor() {
+// return fHeight;
+// }
}
private enum State {
@@ -165,7 +162,7 @@ public class FusedVMViewPresentationProvider extends TimeGraphPresentationProvid
/**
* Default constructor
*/
- public FusedVMViewPresentationProvider() {
+ public VirtualResourcePresentationProvider() {
super();
}
@@ -175,7 +172,7 @@ public class FusedVMViewPresentationProvider extends TimeGraphPresentationProvid
static private State getEventState(TimeEvent event) {
if (event.hasValue()) {
- FusedVMViewEntry entry = (FusedVMViewEntry) event.getEntry();
+ VirtualResourceEntry entry = (VirtualResourceEntry) event.getEntry();
int value = event.getValue();
if (entry.getType() == Type.CPU || entry.getType() == Type.PCPU_VM || entry.getType() == Type.PCPU_CONTAINER) {
@@ -259,7 +256,7 @@ public class FusedVMViewPresentationProvider extends TimeGraphPresentationProvid
if (event instanceof TimeEvent && ((TimeEvent) event).hasValue()) {
TimeEvent tcEvent = (TimeEvent) event;
- FusedVMViewEntry entry = (FusedVMViewEntry) event.getEntry();
+ VirtualResourceEntry entry = (VirtualResourceEntry) event.getEntry();
if (tcEvent.hasValue()) {
ITmfTrace exp = entry.getTrace();
@@ -273,18 +270,18 @@ public class FusedVMViewPresentationProvider extends TimeGraphPresentationProvid
String machineName = null;
try {
ITmfStateInterval interval;
- int machineNameQuark = ss.getQuarkRelative(cpuQuark, Attributes.MACHINE_NAME);
+ int machineNameQuark = ss.getQuarkRelative(cpuQuark, FusedAttributes.MACHINE_NAME);
interval = ss.querySingleState(hoverTime, machineNameQuark);
ITmfStateValue value = interval.getStateValue();
machineName = value.unboxStr();
retMap.put("Virtual Machine", machineName);
- int conditionQuark = ss.getQuarkRelative(cpuQuark, Attributes.CONDITION);
+ int conditionQuark = ss.getQuarkRelative(cpuQuark, FusedAttributes.CONDITION);
interval = ss.querySingleState(hoverTime, conditionQuark);
value = interval.getStateValue();
int condition = value.unboxInt();
if (condition == StateValues.CONDITION_IN_VM) {
- int machineVCpuQuark = ss.getQuarkRelative(cpuQuark, Attributes.VIRTUAL_CPU);
+ int machineVCpuQuark = ss.getQuarkRelative(cpuQuark, FusedAttributes.VIRTUAL_CPU);
interval = ss.querySingleState(hoverTime, machineVCpuQuark);
value = interval.getStateValue();
int vcpu = value.unboxInt();
@@ -318,7 +315,7 @@ public class FusedVMViewPresentationProvider extends TimeGraphPresentationProvid
try {
List<ITmfStateInterval> fullState = ss.queryFullState(event.getTime());
- List<Integer> irqQuarks = ss.getQuarks(Attributes.CPUS, Integer.toString(cpu), Attributes.IRQS, "*"); //$NON-NLS-1$
+ List<Integer> irqQuarks = ss.getQuarks(FusedAttributes.CPUS, Integer.toString(cpu), FusedAttributes.IRQS, "*"); //$NON-NLS-1$
for (int irqQuark : irqQuarks) {
if (fullState.get(irqQuark).getStateValue().unboxInt() == cpu) {
@@ -342,7 +339,7 @@ public class FusedVMViewPresentationProvider extends TimeGraphPresentationProvid
try {
List<ITmfStateInterval> fullState = ss.queryFullState(event.getTime());
- List<Integer> softIrqQuarks = ss.getQuarks(Attributes.CPUS, Integer.toString(cpu), Attributes.SOFT_IRQS, "*"); //$NON-NLS-1$
+ List<Integer> softIrqQuarks = ss.getQuarks(FusedAttributes.CPUS, Integer.toString(cpu), FusedAttributes.SOFT_IRQS, "*"); //$NON-NLS-1$
for (int softIrqQuark : softIrqQuarks) {
if (fullState.get(softIrqQuark).getStateValue().unboxInt() == cpu) {
@@ -365,7 +362,7 @@ public class FusedVMViewPresentationProvider extends TimeGraphPresentationProvid
try {
retMap.put(Messages.FusedVMView_attributeHoverTime, Utils.formatTime(hoverTime, TimeFormat.CALENDAR, Resolution.NANOSEC));
cpuQuark = entry.getQuark();
- int currentThreadQuark = ss.getQuarkRelative(cpuQuark, Attributes.CURRENT_THREAD);
+ int currentThreadQuark = ss.getQuarkRelative(cpuQuark, FusedAttributes.CURRENT_THREAD);
ITmfStateInterval interval = ss.querySingleState(hoverTime, currentThreadQuark);
if (!interval.getStateValue().isNull()) {
ITmfStateValue value = interval.getStateValue();
@@ -381,33 +378,33 @@ public class FusedVMViewPresentationProvider extends TimeGraphPresentationProvid
if (currentThreadId == 0) {
currentThreadId++;
}
- int nsMaxLevelQuark = ss.getQuarkAbsolute(Attributes.THREADS, machineName, Integer.toString(currentThreadId), Attributes.NS_MAX_LEVEL);
+ int nsMaxLevelQuark = ss.getQuarkAbsolute(FusedAttributes.THREADS, machineName, Integer.toString(currentThreadId), FusedAttributes.NS_MAX_LEVEL);
currentThreadId = saveTID;
interval = ss.querySingleState(hoverTime, nsMaxLevelQuark);
int nsMaxLevel = interval.getStateValue().unboxInt();
if (nsMaxLevel != 1) {
int actualLevel = 1;
- int virtualTIDQuark = ss.getQuarkAbsolute(Attributes.THREADS, machineName, Integer.toString(currentThreadId), Attributes.VTID);
+ int virtualTIDQuark = ss.getQuarkAbsolute(FusedAttributes.THREADS, machineName, Integer.toString(currentThreadId), FusedAttributes.VTID);
actualLevel++;
while (actualLevel < nsMaxLevel) {
- virtualTIDQuark = ss.getQuarkRelative(virtualTIDQuark, Attributes.VTID);
+ virtualTIDQuark = ss.getQuarkRelative(virtualTIDQuark, FusedAttributes.VTID);
actualLevel++;
}
int vtid = ss.querySingleState(hoverTime, virtualTIDQuark).getStateValue().unboxInt();
- int namespaceIDQuark = ss.getQuarkRelative(virtualTIDQuark, Attributes.NS_INUM);
+ int namespaceIDQuark = ss.getQuarkRelative(virtualTIDQuark, FusedAttributes.NS_INUM);
long namespaceID = ss.querySingleState(hoverTime, namespaceIDQuark).getStateValue().unboxLong();
retMap.put("> vTID", Integer.toString(vtid));
retMap.put("> Container", Long.toString(namespaceID));
}
- int execNameQuark = ss.getQuarkAbsolute(Attributes.THREADS, machineName, Integer.toString(currentThreadId), Attributes.EXEC_NAME);
+ int execNameQuark = ss.getQuarkAbsolute(FusedAttributes.THREADS, machineName, Integer.toString(currentThreadId), FusedAttributes.EXEC_NAME);
interval = ss.querySingleState(hoverTime, execNameQuark);
if (!interval.getStateValue().isNull()) {
value = interval.getStateValue();
retMap.put(Messages.FusedVMView_attributeProcessName, value.unboxStr());
}
if (status == StateValues.CPU_STATUS_RUN_SYSCALL) {
- int syscallQuark = ss.getQuarkAbsolute(Attributes.THREADS, machineName, Integer.toString(currentThreadId), Attributes.SYSTEM_CALL);
+ int syscallQuark = ss.getQuarkAbsolute(FusedAttributes.THREADS, machineName, Integer.toString(currentThreadId), FusedAttributes.SYSTEM_CALL);
interval = ss.querySingleState(hoverTime, syscallQuark);
if (!interval.getStateValue().isNull()) {
value = interval.getStateValue();
@@ -455,7 +452,7 @@ public class FusedVMViewPresentationProvider extends TimeGraphPresentationProvid
return;
}
- FusedVMViewEntry entry = (FusedVMViewEntry) event.getEntry();
+ VirtualResourceEntry entry = (VirtualResourceEntry) event.getEntry();
if (!(entry.getType().equals(Type.CPU) || entry.getType().equals(Type.PCPU_VM) || entry.getType().equals(Type.PCPU_CONTAINER))) {
return;
}
@@ -477,7 +474,7 @@ public class FusedVMViewPresentationProvider extends TimeGraphPresentationProvid
String machineName = null;
try {
ITmfStateInterval interval;
- int machineNameQuark = ss.getQuarkRelative(cpuQuark, Attributes.MACHINE_NAME);
+ int machineNameQuark = ss.getQuarkRelative(cpuQuark, FusedAttributes.MACHINE_NAME);
interval = ss.querySingleState(time, machineNameQuark);
ITmfStateValue value = interval.getStateValue();
machineName = value.unboxStr();
@@ -490,7 +487,7 @@ public class FusedVMViewPresentationProvider extends TimeGraphPresentationProvid
try {
while (time < event.getTime() + event.getDuration()) {
cpuQuark = entry.getQuark();
- int currentThreadQuark = ss.getQuarkRelative(cpuQuark, Attributes.CURRENT_THREAD);
+ int currentThreadQuark = ss.getQuarkRelative(cpuQuark, FusedAttributes.CURRENT_THREAD);
ITmfStateInterval tidInterval = ss.querySingleState(time, currentThreadQuark);
long startTime = Math.max(tidInterval.getStartTime(), event.getTime());
int x = Math.max(drawingHelper.getXForTime(startTime), bounds.x);
@@ -508,9 +505,9 @@ public class FusedVMViewPresentationProvider extends TimeGraphPresentationProvid
String attribute = null;
int beginIndex = 0;
if (status == StateValues.CPU_STATUS_RUN_USERMODE && currentThreadId != fLastThreadId) {
- attribute = Attributes.EXEC_NAME;
+ attribute = FusedAttributes.EXEC_NAME;
} else if (status == StateValues.CPU_STATUS_RUN_SYSCALL) {
- attribute = Attributes.SYSTEM_CALL;
+ attribute = FusedAttributes.SYSTEM_CALL;
/*
* Remove the "sys_" or "syscall_entry_" or
* similar from what we draw in the rectangle.
@@ -526,7 +523,7 @@ public class FusedVMViewPresentationProvider extends TimeGraphPresentationProvid
}
}
if (attribute != null) {
- int quark = ss.getQuarkAbsolute(Attributes.THREADS, machineName, Integer.toString(currentThreadId), attribute);
+ int quark = ss.getQuarkAbsolute(FusedAttributes.THREADS, machineName, Integer.toString(currentThreadId), attribute);
ITmfStateInterval interval = ss.querySingleState(time, quark);
if (!interval.getStateValue().isNull()) {
value = interval.getStateValue();
@@ -566,209 +563,209 @@ public class FusedVMViewPresentationProvider extends TimeGraphPresentationProvid
/**
* Says for a specific event if the related machine is highlighted
*/
- private boolean isMachineHighlighted(ITimeEvent event) {
- Map<String, Machine> map = getHighlightedMachines();
- boolean allDim = true;
- boolean allHighlighted = true;
- for (Machine m : map.values()) {
- if (m.isHighlighted()) {
- allDim = false;
- } else {
- allHighlighted = false;
- }
- }
- if (allDim) {
- return false;
- } else if (allHighlighted) {
- return true;
- }
- FusedVMViewEntry entry = (FusedVMViewEntry) event.getEntry();
- ITmfTrace trace = entry.getTrace();
- ITmfStateSystem ss = TmfStateSystemAnalysisModule.getStateSystem(trace, FusedVirtualMachineAnalysis.ID);
- int cpuQuark = entry.getQuark();
- long time = event.getTime();
- if (ss == null) {
- return false;
- }
-
- String machineName = null;
- try {
- ITmfStateInterval interval;
- int machineNameQuark = ss.getQuarkRelative(cpuQuark, Attributes.MACHINE_NAME);
- interval = ss.querySingleState(time, machineNameQuark);
- ITmfStateValue value = interval.getStateValue();
- machineName = value.unboxStr();
- } catch (AttributeNotFoundException e) {
-// Activator.getDefault().logError("Error in FusedVMViewPresentationProvider, timestamp: " + FusedVMInformationProvider.formatTime(event.getTime()), e); //$NON-NLS-1$
- /* Can happen for events at the beginning of the trace */
- } catch (StateSystemDisposedException e) {
- /* Ignored */
- }
-
- Machine machine = map.get(machineName);
- if (machine == null) {
- return false;
- }
- return machine.isHighlighted();
- }
-
- /**
- * Says for a specific event if the related cpu is highlighted
- */
- private boolean isCpuHighlighted(ITimeEvent event) {
- Map<String, Machine> map = getHighlightedMachines();
- FusedVMViewEntry entry = (FusedVMViewEntry) event.getEntry();
- ITmfTrace trace = entry.getTrace();
- ITmfStateSystem ss = TmfStateSystemAnalysisModule.getStateSystem(trace, FusedVirtualMachineAnalysis.ID);
- int cpuQuark = entry.getQuark();
- long time = event.getTime();
- if (ss == null) {
- return false;
- }
-
- try {
- ITmfStateInterval interval;
- int machineNameQuark = ss.getQuarkRelative(cpuQuark, Attributes.MACHINE_NAME);
- interval = ss.querySingleState(time, machineNameQuark);
- ITmfStateValue value = interval.getStateValue();
- String machineName = value.unboxStr();
-
- int conditionQuark = ss.getQuarkRelative(cpuQuark, Attributes.CONDITION);
- interval = ss.querySingleState(time, conditionQuark);
- if (!interval.getStateValue().isNull()) {
- ITmfStateValue valueInVM = interval.getStateValue();
- int cpu;
- int inVM = valueInVM.unboxInt();
- switch (inVM) {
- case StateValues.CONDITION_IN_VM:
- int machineVCpuQuark = ss.getQuarkRelative(cpuQuark, Attributes.VIRTUAL_CPU);
- interval = ss.querySingleState(time, machineVCpuQuark);
- value = interval.getStateValue();
- cpu = value.unboxInt();
- break;
- case StateValues.CONDITION_OUT_VM:
- cpu = Integer.parseInt(ss.getAttributeName(cpuQuark));
- break;
- default:
- return true;
- }
- Machine machine = map.get(machineName);
- if (machine != null) {
- return machine.isCpuHighlighted(Integer.toString(cpu));
- }
- }
- } catch (AttributeNotFoundException e) {
-// Activator.getDefault().logError("Error in FusedVMViewPresentationProvider, timestamp: " + FusedVMInformationProvider.formatTime(event.getTime()), e); //$NON-NLS-1$
- /* Can happen for events at the beginning of the trace */
- } catch (StateSystemDisposedException e) {
- /* Ignored */
- }
- return false;
- }
-
- private boolean isContainerHighlighted(ITimeEvent event) {
- Map<String, Machine> map = getHighlightedMachines();
- FusedVMViewEntry entry = (FusedVMViewEntry) event.getEntry();
- ITmfTrace trace = entry.getTrace();
- ITmfStateSystem ss = TmfStateSystemAnalysisModule.getStateSystem(trace, FusedVirtualMachineAnalysis.ID);
- int cpuQuark = entry.getQuark();
- long time = event.getTime();
- if (ss == null) {
- return false;
- }
- String machineName = null;
- String nsID = null;
- try {
- ITmfStateInterval interval;
- int machineNameQuark = ss.getQuarkRelative(cpuQuark, Attributes.MACHINE_NAME);
- interval = ss.querySingleState(time, machineNameQuark);
- ITmfStateValue value = interval.getStateValue();
- machineName = value.unboxStr();
- int quark = ss.getQuarkRelative(cpuQuark, Attributes.CURRENT_THREAD);
- interval = ss.querySingleState(time, quark);
- int tid = interval.getStateValue().unboxInt();
- // quark =
- // ss.getQuarkRelative(FusedVMInformationProvider.getNodeThreads(ss),
- // machineName, Integer.toString(tid), "ns_max_level");
- // interval = ss.querySingleState(time, quark);
- // quark =
- // ss.getQuarkRelative(FusedVMInformationProvider.getNodeThreads(ss),
- // machineName, Integer.toString(tid));
- // int nsMaxLevel = interval.getStateValue().unboxInt();
- // for (int i = 1; i < nsMaxLevel; i++) {
- // quark = ss.getQuarkRelative(quark, "VTID");
- // }
- // quark = ss.getQuarkRelative(quark, "ns_inum");
- if (tid == 0) {
- /* We don't have infos about nsInum for tid 0 so we look at 1 */
- tid = 1;
- }
- quark = FusedVMInformationProvider.getNodeNsInum(ss, time, machineName, tid);
- nsID = Long.toString(ss.querySingleState(time, quark).getStateValue().unboxLong());
- } catch (AttributeNotFoundException e) {
-// Activator.getDefault().logError("Error in FusedVMViewPresentationProvider, timestamp: " + FusedVMInformationProvider.formatTime(event.getTime()), e); //$NON-NLS-1$
- /* Can happen for events at the beginning of the trace */
- } catch (StateSystemDisposedException e) {
- /* Ignored */
- }
- Machine machine = map.get(machineName);
- if (machine == null || nsID == null) {
- return false;
- }
- if (machine.isContainerHighlighted(nsID)) {
- return true;
- }
- return false;
- }
-
- /**
- * Says for a specific event if the related process is highlighted
- */
- private float isProcessHighlighted(ITimeEvent event) {
- if (highlightedTreads.isEmpty()) {
- // return false;
- return REDUCED_HEIGHT;
- }
-
- FusedVMViewEntry entry = (FusedVMViewEntry) event.getEntry();
- ITmfTrace trace = entry.getTrace();
- ITmfStateSystem ss = TmfStateSystemAnalysisModule.getStateSystem(trace, FusedVirtualMachineAnalysis.ID);
- int cpuQuark = entry.getQuark();
- long time = event.getTime();
- if (ss == null) {
- // return false;
- return REDUCED_HEIGHT;
- }
- try {
- ITmfStateInterval interval;
- int machineNameQuark = ss.getQuarkRelative(cpuQuark, Attributes.MACHINE_NAME);
- int currentThreadQuark = ss.getQuarkRelative(cpuQuark, Attributes.CURRENT_THREAD);
- interval = ss.querySingleState(time, machineNameQuark);
- ITmfStateValue value = interval.getStateValue();
- String machineName = value.unboxStr();
-
- interval = ss.querySingleState(time, currentThreadQuark);
- value = interval.getStateValue();
- int currentThreadID = value.unboxInt();
-
- // return highlightedTreads.containsValue(new Thread(machineName,
- // currentThreadID));
- Thread t = highlightedTreads.get(new Thread(machineName, currentThreadID));
- if (t != null) {
- return t.getHeightFactory();
- }
- return REDUCED_HEIGHT;
-
- } catch (AttributeNotFoundException e) {
-// Activator.getDefault().logError("Error in FusedVMViewPresentationProvider, timestamp: " + FusedVMInformationProvider.formatTime(event.getTime()), e); //$NON-NLS-1$
- /* Can happen for events at the beginning of the trace */
- } catch (StateSystemDisposedException e) {
- /* Ignored */
- }
-
- // return false;
- return REDUCED_HEIGHT;
- }
+// private boolean isMachineHighlighted(ITimeEvent event) {
+// Map<String, Machine> map = getHighlightedMachines();
+// boolean allDim = true;
+// boolean allHighlighted = true;
+// for (Machine m : map.values()) {
+// if (m.isHighlighted()) {
+// allDim = false;
+// } else {
+// allHighlighted = false;
+// }
+// }
+// if (allDim) {
+// return false;
+// } else if (allHighlighted) {
+// return true;
+// }
+// VirtualResourceEntry entry = (VirtualResourceEntry) event.getEntry();
+// ITmfTrace trace = entry.getTrace();
+// ITmfStateSystem ss = TmfStateSystemAnalysisModule.getStateSystem(trace, FusedVirtualMachineAnalysis.ID);
+// int cpuQuark = entry.getQuark();
+// long time = event.getTime();
+// if (ss == null) {
+// return false;
+// }
+//
+// String machineName = null;
+// try {
+// ITmfStateInterval interval;
+// int machineNameQuark = ss.getQuarkRelative(cpuQuark, FusedAttributes.MACHINE_NAME);
+// interval = ss.querySingleState(time, machineNameQuark);
+// ITmfStateValue value = interval.getStateValue();
+// machineName = value.unboxStr();
+// } catch (AttributeNotFoundException e) {
+//// Activator.getDefault().logError("Error in FusedVMViewPresentationProvider, timestamp: " + FusedVMInformationProvider.formatTime(event.getTime()), e); //$NON-NLS-1$
+// /* Can happen for events at the beginning of the trace */
+// } catch (StateSystemDisposedException e) {
+// /* Ignored */
+// }
+//
+// Machine machine = map.get(machineName);
+// if (machine == null) {
+// return false;
+// }
+// return machine.isHighlighted();
+// }
+//
+// /**
+// * Says for a specific event if the related cpu is highlighted
+// */
+// private boolean isCpuHighlighted(ITimeEvent event) {
+// Map<String, Machine> map = getHighlightedMachines();
+// VirtualResourceEntry entry = (VirtualResourceEntry) event.getEntry();
+// ITmfTrace trace = entry.getTrace();
+// ITmfStateSystem ss = TmfStateSystemAnalysisModule.getStateSystem(trace, FusedVirtualMachineAnalysis.ID);
+// int cpuQuark = entry.getQuark();
+// long time = event.getTime();
+// if (ss == null) {
+// return false;
+// }
+//
+// try {
+// ITmfStateInterval interval;
+// int machineNameQuark = ss.getQuarkRelative(cpuQuark, FusedAttributes.MACHINE_NAME);
+// interval = ss.querySingleState(time, machineNameQuark);
+// ITmfStateValue value = interval.getStateValue();
+// String machineName = value.unboxStr();
+//
+// int conditionQuark = ss.getQuarkRelative(cpuQuark, FusedAttributes.CONDITION);
+// interval = ss.querySingleState(time, conditionQuark);
+// if (!interval.getStateValue().isNull()) {
+// ITmfStateValue valueInVM = interval.getStateValue();
+// int cpu;
+// int inVM = valueInVM.unboxInt();
+// switch (inVM) {
+// case StateValues.CONDITION_IN_VM:
+// int machineVCpuQuark = ss.getQuarkRelative(cpuQuark, FusedAttributes.VIRTUAL_CPU);
+// interval = ss.querySingleState(time, machineVCpuQuark);
+// value = interval.getStateValue();
+// cpu = value.unboxInt();
+// break;
+// case StateValues.CONDITION_OUT_VM:
+// cpu = Integer.parseInt(ss.getAttributeName(cpuQuark));
+// break;
+// default:
+// return true;
+// }
+// Machine machine = map.get(machineName);
+// if (machine != null) {
+// return machine.isCpuHighlighted(Integer.toString(cpu));
+// }
+// }
+// } catch (AttributeNotFoundException e) {
+//// Activator.getDefault().logError("Error in FusedVMViewPresentationProvider, timestamp: " + FusedVMInformationProvider.formatTime(event.getTime()), e); //$NON-NLS-1$
+// /* Can happen for events at the beginning of the trace */
+// } catch (StateSystemDisposedException e) {
+// /* Ignored */
+// }
+// return false;
+// }
+//
+// private boolean isContainerHighlighted(ITimeEvent event) {
+// Map<String, Machine> map = getHighlightedMachines();
+// VirtualResourceEntry entry = (VirtualResourceEntry) event.getEntry();
+// ITmfTrace trace = entry.getTrace();
+// ITmfStateSystem ss = TmfStateSystemAnalysisModule.getStateSystem(trace, FusedVirtualMachineAnalysis.ID);
+// int cpuQuark = entry.getQuark();
+// long time = event.getTime();
+// if (ss == null) {
+// return false;
+// }
+// String machineName = null;
+// String nsID = null;
+// try {
+// ITmfStateInterval interval;
+// int machineNameQuark = ss.getQuarkRelative(cpuQuark, FusedAttributes.MACHINE_NAME);
+// interval = ss.querySingleState(time, machineNameQuark);
+// ITmfStateValue value = interval.getStateValue();
+// machineName = value.unboxStr();
+// int quark = ss.getQuarkRelative(cpuQuark, FusedAttributes.CURRENT_THREAD);
+// interval = ss.querySingleState(time, quark);
+// int tid = interval.getStateValue().unboxInt();
+// // quark =
+// // ss.getQuarkRelative(FusedVMInformationProvider.getNodeThreads(ss),
+// // machineName, Integer.toString(tid), "ns_max_level");
+// // interval = ss.querySingleState(time, quark);
+// // quark =
+// // ss.getQuarkRelative(FusedVMInformationProvider.getNodeThreads(ss),
+// // machineName, Integer.toString(tid));
+// // int nsMaxLevel = interval.getStateValue().unboxInt();
+// // for (int i = 1; i < nsMaxLevel; i++) {
+// // quark = ss.getQuarkRelative(quark, "VTID");
+// // }
+// // quark = ss.getQuarkRelative(quark, "ns_inum");
+// if (tid == 0) {
+// /* We don't have infos about nsInum for tid 0 so we look at 1 */
+// tid = 1;
+// }
+// quark = FusedVMInformationProvider.getNodeNsInum(ss, time, machineName, tid);
+// nsID = Long.toString(ss.querySingleState(time, quark).getStateValue().unboxLong());
+// } catch (AttributeNotFoundException e) {
+//// Activator.getDefault().logError("Error in FusedVMViewPresentationProvider, timestamp: " + FusedVMInformationProvider.formatTime(event.getTime()), e); //$NON-NLS-1$
+// /* Can happen for events at the beginning of the trace */
+// } catch (StateSystemDisposedException e) {
+// /* Ignored */
+// }
+// Machine machine = map.get(machineName);
+// if (machine == null || nsID == null) {
+// return false;
+// }
+// if (machine.isContainerHighlighted(nsID)) {
+// return true;
+// }
+// return false;
+// }
+//
+// /**
+// * Says for a specific event if the related process is highlighted
+// */
+// private float isProcessHighlighted(ITimeEvent event) {
+// if (highlightedTreads.isEmpty()) {
+// // return false;
+// return REDUCED_HEIGHT;
+// }
+//
+// VirtualResourceEntry entry = (VirtualResourceEntry) event.getEntry();
+// ITmfTrace trace = entry.getTrace();
+// ITmfStateSystem ss = TmfStateSystemAnalysisModule.getStateSystem(trace, FusedVirtualMachineAnalysis.ID);
+// int cpuQuark = entry.getQuark();
+// long time = event.getTime();
+// if (ss == null) {
+// // return false;
+// return REDUCED_HEIGHT;
+// }
+// try {
+// ITmfStateInterval interval;
+// int machineNameQuark = ss.getQuarkRelative(cpuQuark, FusedAttributes.MACHINE_NAME);
+// int currentThreadQuark = ss.getQuarkRelative(cpuQuark, FusedAttributes.CURRENT_THREAD);
+// interval = ss.querySingleState(time, machineNameQuark);
+// ITmfStateValue value = interval.getStateValue();
+// String machineName = value.unboxStr();
+//
+// interval = ss.querySingleState(time, currentThreadQuark);
+// value = interval.getStateValue();
+// int currentThreadID = value.unboxInt();
+//
+// // return highlightedTreads.containsValue(new Thread(machineName,
+// // currentThreadID));
+// Thread t = highlightedTreads.get(new Thread(machineName, currentThreadID));
+// if (t != null) {
+// return t.getHeightFactory();
+// }
+// return REDUCED_HEIGHT;
+//
+// } catch (AttributeNotFoundException e) {
+//// Activator.getDefault().logError("Error in FusedVMViewPresentationProvider, timestamp: " + FusedVMInformationProvider.formatTime(event.getTime()), e); //$NON-NLS-1$
+// /* Can happen for events at the beginning of the trace */
+// } catch (StateSystemDisposedException e) {
+// /* Ignored */
+// }
+//
+// // return false;
+// return REDUCED_HEIGHT;
+// }
//
// Getters, setter, and some short useful methods
@@ -879,13 +876,11 @@ public class FusedVMViewPresentationProvider extends TimeGraphPresentationProvid
* the machine name
* @param threadID
* the tid of the thread
- * @param threadName
- * the name of the thread
*
*/
- public void setSelectedThread(String machineName, int threadID, String threadName) {
+ public void setSelectedThread(String machineName, int threadID) {
// selectedThread = new Thread(machineName, threadID, threadName);
- Thread t = new Thread(machineName, threadID, threadName);
+ Thread t = new Thread(machineName, threadID, String.valueOf(threadID));
selectedThread = highlightedTreads.get(t);
if (selectedThread == null) {
selectedThread = t;
@@ -958,25 +953,26 @@ public class FusedVMViewPresentationProvider extends TimeGraphPresentationProvid
fTimeEventHighlight.clear();
}
- @Override
- public Map<String, Object> getSpecificEventStyle(ITimeEvent event) {
- float heightFactor = FULL_HEIGHT;
- Float b = fTimeEventHighlight.get(event);
- if (b != null) {
- return ImmutableMap.of(ITimeEventStyleStrings.heightFactor(), b);
- }
- Type typeEntry = ((FusedVMViewEntry) event.getEntry()).getType();
- if (typeEntry == Type.IRQ || typeEntry == Type.SOFT_IRQ) {
- heightFactor = FULL_HEIGHT;
- } else {
- heightFactor = isProcessHighlighted(event);
- if ((isMachineHighlighted(event) && isCpuHighlighted(event)) || isContainerHighlighted(event)) {
- heightFactor = FULL_HEIGHT;
- }
- }
- fTimeEventHighlight.put(event, heightFactor);
- return ImmutableMap.of(ITimeEventStyleStrings.heightFactor(), heightFactor);
- }
+ // TODO: Uncomment this
+// @Override
+// public Map<String, Object> getSpecificEventStyle(ITimeEvent event) {
+// float heightFactor = FULL_HEIGHT;
+// Float b = fTimeEventHighlight.get(event);
+// if (b != null) {
+// return ImmutableMap.of(ITimeEventStyleStrings.heightFactor(), b);
+// }
+// Type typeEntry = ((VirtualResourceEntry) event.getEntry()).getType();
+// if (typeEntry == Type.IRQ || typeEntry == Type.SOFT_IRQ) {
+// heightFactor = FULL_HEIGHT;
+// } else {
+// heightFactor = isProcessHighlighted(event);
+// if ((isMachineHighlighted(event) && isCpuHighlighted(event)) || isContainerHighlighted(event)) {
+// heightFactor = FULL_HEIGHT;
+// }
+// }
+// fTimeEventHighlight.put(event, heightFactor);
+// return ImmutableMap.of(ITimeEventStyleStrings.heightFactor(), heightFactor);
+// }
public void modifySelectedThreadAlpha(int delta) {
if (selectedThread != null) {
diff --git a/vm/org.eclipse.tracecompass.incubator.virtual.machine.analysis.ui/src/org/eclipse/tracecompass/incubator/internal/virtual/machine/analysis/ui/views/fusedvmview/FusedVirtualMachineView.java b/vm/org.eclipse.tracecompass.incubator.virtual.machine.analysis.ui/src/org/eclipse/tracecompass/incubator/internal/virtual/machine/analysis/ui/views/vresources/VirtualResourcesView.java
index c6e3656f8..a30d37314 100644
--- a/vm/org.eclipse.tracecompass.incubator.virtual.machine.analysis.ui/src/org/eclipse/tracecompass/incubator/internal/virtual/machine/analysis/ui/views/fusedvmview/FusedVirtualMachineView.java
+++ b/vm/org.eclipse.tracecompass.incubator.virtual.machine.analysis.ui/src/org/eclipse/tracecompass/incubator/internal/virtual/machine/analysis/ui/views/vresources/VirtualResourcesView.java
@@ -7,7 +7,7 @@
* http://www.eclipse.org/legal/epl-v10.html
*******************************************************************************/
-package org.eclipse.tracecompass.incubator.internal.virtual.machine.analysis.ui.views.fusedvmview;
+package org.eclipse.tracecompass.incubator.internal.virtual.machine.analysis.ui.views.vresources;
import java.util.ArrayList;
import java.util.Collections;
@@ -26,28 +26,27 @@ import org.eclipse.jdt.annotation.Nullable;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.events.MouseWheelListener;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
-import org.eclipse.tracecompass.incubator.internal.virtual.machine.analysis.core.data.Attributes;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.tracecompass.analysis.os.linux.core.signals.TmfThreadSelectedSignal;
+import org.eclipse.tracecompass.incubator.internal.virtual.machine.analysis.core.fused.FusedAttributes;
import org.eclipse.tracecompass.incubator.internal.virtual.machine.analysis.core.fused.FusedVMInformationProvider;
import org.eclipse.tracecompass.incubator.internal.virtual.machine.analysis.core.fused.FusedVirtualMachineAnalysis;
+import org.eclipse.tracecompass.incubator.internal.virtual.machine.analysis.core.model.IVirtualMachineModel;
import org.eclipse.tracecompass.incubator.internal.virtual.machine.analysis.core.module.StateValues;
import org.eclipse.tracecompass.incubator.internal.virtual.machine.analysis.core.trace.VirtualMachineExperiment;
import org.eclipse.tracecompass.incubator.internal.virtual.machine.analysis.ui.Activator;
-import org.eclipse.tracecompass.incubator.internal.virtual.machine.analysis.ui.views.fusedvmview.FusedVMViewEntry.Type;
-import org.eclipse.tracecompass.internal.analysis.os.linux.ui.views.controlflow.ControlFlowEntry;
-import org.eclipse.tracecompass.internal.analysis.os.linux.ui.views.controlflow.ControlFlowView;
+import org.eclipse.tracecompass.incubator.internal.virtual.machine.analysis.ui.views.vresources.VirtualResourceEntry.Type;
import org.eclipse.tracecompass.statesystem.core.ITmfStateSystem;
import org.eclipse.tracecompass.statesystem.core.exceptions.AttributeNotFoundException;
import org.eclipse.tracecompass.statesystem.core.exceptions.StateSystemDisposedException;
import org.eclipse.tracecompass.statesystem.core.interval.ITmfStateInterval;
import org.eclipse.tracecompass.statesystem.core.statevalue.ITmfStateValue;
+import org.eclipse.tracecompass.tmf.core.signal.TmfSignalHandler;
import org.eclipse.tracecompass.tmf.core.statesystem.TmfStateSystemAnalysisModule;
import org.eclipse.tracecompass.tmf.core.trace.ITmfTrace;
import org.eclipse.tracecompass.tmf.ui.views.timegraph.AbstractStateSystemTimeGraphView;
@@ -64,21 +63,17 @@ import org.eclipse.tracecompass.tmf.ui.widgets.timegraph.model.TimeGraphEntry;
import org.eclipse.tracecompass.tmf.ui.widgets.timegraph.widgets.Utils;
import org.eclipse.tracecompass.tmf.ui.widgets.timegraph.widgets.Utils.Resolution;
import org.eclipse.tracecompass.tmf.ui.widgets.timegraph.widgets.Utils.TimeFormat;
-import org.eclipse.ui.ISelectionListener;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
/**
+ * A view showing the virtual resources / CPUs for traces and their contained
+ * traces and containers
+ *
* @author Cedric Biancheri
*/
-public class FusedVirtualMachineView extends AbstractStateSystemTimeGraphView {
+public class VirtualResourcesView extends AbstractStateSystemTimeGraphView {
/** View ID. */
- public static final String ID = "org.eclipse.tracecompass.internal.lttng2.kernel.ui.views.vm.fusedvmview"; //$NON-NLS-1$
+ public static final @NonNull String ID = "org.eclipse.tracecompass.incubator.internal.virtual.machine.analysis.ui.views.virtualresources"; //$NON-NLS-1$
private static final String[] FILTER_COLUMN_NAMES = new String[] {
Messages.FusedVMView_stateTypeName
@@ -91,7 +86,7 @@ public class FusedVirtualMachineView extends AbstractStateSystemTimeGraphView {
private final Action fHighlightMachine = new Action(Messages.FusedVMView_ButtonMachineSelected, IAction.AS_CHECK_BOX) {
@Override
public void run() {
- FusedVMViewPresentationProvider presentationProvider = getFusedVMViewPresentationProvider();
+ VirtualResourcePresentationProvider presentationProvider = getFusedVMViewPresentationProvider();
Map<String, Machine> highlightedMachines = presentationProvider.getHighlightedMachines();
Machine machine = highlightedMachines.get(presentationProvider.getSelectedMachine());
if (machine == null) {
@@ -111,7 +106,7 @@ public class FusedVirtualMachineView extends AbstractStateSystemTimeGraphView {
private final Action fHighlightCPU = new Action(Messages.FusedVMView_ButtonCPUSelected, IAction.AS_CHECK_BOX) {
@Override
public void run() {
- FusedVMViewPresentationProvider presentationProvider = getFusedVMViewPresentationProvider();
+ VirtualResourcePresentationProvider presentationProvider = getFusedVMViewPresentationProvider();
Map<String, Machine> highlightedMachines = presentationProvider.getHighlightedMachines();
Machine machine = highlightedMachines.get(presentationProvider.getSelectedMachine());
if (machine == null) {
@@ -129,7 +124,7 @@ public class FusedVirtualMachineView extends AbstractStateSystemTimeGraphView {
private final Action fHighlightProcess = new Action(Messages.FusedVMView_ButtonProcessSelected, IAction.AS_CHECK_BOX) {
@Override
public void run() {
- FusedVMViewPresentationProvider presentationProvider = getFusedVMViewPresentationProvider();
+ VirtualResourcePresentationProvider presentationProvider = getFusedVMViewPresentationProvider();
if (isChecked()) {
presentationProvider.addHighlightedThread();
} else {
@@ -144,7 +139,7 @@ public class FusedVirtualMachineView extends AbstractStateSystemTimeGraphView {
private final Action fHighlightContainer = new Action(Messages.FusedVMView_ButtonContainerSelected, IAction.AS_CHECK_BOX) {
@Override
public void run() {
- FusedVMViewPresentationProvider presentationProvider = getFusedVMViewPresentationProvider();
+ VirtualResourcePresentationProvider presentationProvider = getFusedVMViewPresentationProvider();
Map<String, Machine> highlightedMachines = presentationProvider.getHighlightedMachines();
Machine machine = highlightedMachines.get(presentationProvider.getSelectedMachine());
String container = presentationProvider.getSelectedContainer();
@@ -179,15 +174,15 @@ public class FusedVirtualMachineView extends AbstractStateSystemTimeGraphView {
long begin = getBeginSelectedTime();
long end = getEndSelectedTime();
if (begin == end) {
- FusedVMViewPresentationProvider presentationProvider = getFusedVMViewPresentationProvider();
+ VirtualResourcePresentationProvider presentationProvider = getFusedVMViewPresentationProvider();
Object o = presentationProvider.getSelectedFusedVMViewEntry();
if (o == null) {
return;
}
- if (!(o instanceof FusedVMViewEntry)) {
+ if (!(o instanceof VirtualResourceEntry)) {
return;
}
- FusedVMViewEntry entry = (FusedVMViewEntry) o;
+ VirtualResourceEntry entry = (VirtualResourceEntry) o;
int cpuQuark = entry.getQuark();
ITmfTrace trace = getTrace();
if (trace == null) {
@@ -200,30 +195,24 @@ public class FusedVirtualMachineView extends AbstractStateSystemTimeGraphView {
String machineName = null;
try {
ITmfStateInterval interval;
- int machineNameQuark = ssq.getQuarkRelative(cpuQuark, Attributes.MACHINE_NAME);
+ int machineNameQuark = ssq.getQuarkRelative(cpuQuark, FusedAttributes.MACHINE_NAME);
interval = ssq.querySingleState(begin, machineNameQuark);
ITmfStateValue value = interval.getStateValue();
machineName = value.unboxStr();
presentationProvider.setSelectedMachine(machineName);
- int threadQuark = ssq.getQuarkRelative(cpuQuark, Attributes.CURRENT_THREAD);
+ int threadQuark = ssq.getQuarkRelative(cpuQuark, FusedAttributes.CURRENT_THREAD);
interval = ssq.querySingleState(begin, threadQuark);
value = interval.getStateValue();
int threadID = value.unboxInt();
- String threadAttributeName = FusedVMInformationProvider.buildThreadAttributeName(threadID, Integer.parseInt(ssq.getAttributeName(cpuQuark)));
- int execNameQuark = ssq.getQuarkAbsolute(Attributes.THREADS, machineName, threadAttributeName, Attributes.EXEC_NAME);
- interval = ssq.querySingleState(begin, execNameQuark);
- value = interval.getStateValue();
- String threadName = value.unboxStr();
-
- presentationProvider.setSelectedThread(machineName, threadID, threadName);
+ presentationProvider.setSelectedThread(machineName, threadID);
- int conditionQuark = ssq.getQuarkRelative(cpuQuark, Attributes.CONDITION);
+ int conditionQuark = ssq.getQuarkRelative(cpuQuark, FusedAttributes.CONDITION);
interval = ssq.querySingleState(begin, conditionQuark);
value = interval.getStateValue();
int condition = value.unboxInt();
- List<Integer> list = ssq.getQuarks(cpuQuark, Attributes.VIRTUAL_CPU);
+ List<Integer> list = ssq.getQuarks(cpuQuark, FusedAttributes.VIRTUAL_CPU);
if (condition == StateValues.CONDITION_IN_VM && !list.isEmpty()) {
/*
* Trick to get the quark and don't generate an
@@ -251,7 +240,7 @@ public class FusedVirtualMachineView extends AbstractStateSystemTimeGraphView {
presentationProvider.setSelectedContainer(container);
} catch (AttributeNotFoundException e) {
- Activator.getDefault().logError("Error in FusedVirtualMachineView, timestamp: " + FusedVMInformationProvider.formatTime(event.getBeginTime()), e); //$NON-NLS-1$
+ Activator.getDefault().logError("Error in FusedVirtualMachineView, timestamp: " + FusedVMInformationProvider.formatTime(event.getBeginTime()), e); //$NON-NLS-1$
} catch (StateSystemDisposedException e) {
/* Ignored */
}
@@ -271,45 +260,20 @@ public class FusedVirtualMachineView extends AbstractStateSystemTimeGraphView {
@Override
public void selectionChanged(TimeGraphSelectionEvent event) {
ITimeGraphEntry entry = event.getSelection();
- if (entry instanceof FusedVMViewEntry) {
- FusedVMViewPresentationProvider presentationProvider = getFusedVMViewPresentationProvider();
+ if (entry instanceof VirtualResourceEntry) {
+ VirtualResourcePresentationProvider presentationProvider = getFusedVMViewPresentationProvider();
presentationProvider.setSelectedFusedVMViewEntry(entry);
}
}
};
- /** Listener that handles a click on an entry in the Control Flow View */
- private final ISelectionListener fSelListenerControlFlowView = new ISelectionListener() {
- @Override
- public void selectionChanged(IWorkbenchPart part, ISelection selection) {
- if (selection instanceof IStructuredSelection) {
- Object element = ((IStructuredSelection) selection).getFirstElement();
- if (element instanceof ControlFlowEntry) {
- FusedVMViewPresentationProvider presentationProvider = getFusedVMViewPresentationProvider();
- ControlFlowEntry entry = (ControlFlowEntry) element;
- String machineName = entry.getTrace().getName();
- String threadName = entry.getName();
- int threadID = entry.getThreadId();
- presentationProvider.setSelectedControlFlowViewEntry(element);
- presentationProvider.setSelectedMachine(machineName);
- // TODO: Find a way to access to the id of the cpu running
- // the process
- presentationProvider.setSelectedThread(machineName, threadID, threadName);
-
- updateButtonsSelection();
- updateToolTipTexts();
- }
- }
- }
- };
-
private final MouseWheelListener fWheelListener = new MouseWheelListener() {
@Override
public void mouseScrolled(MouseEvent e) {
if ((e.stateMask & SWT.SHIFT) != 0) {
- FusedVMViewPresentationProvider presentationProvider = getFusedVMViewPresentationProvider();
+ VirtualResourcePresentationProvider presentationProvider = getFusedVMViewPresentationProvider();
presentationProvider.modifySelectedThreadAlpha(e.count);
presentationProvider.destroyTimeEventHighlight();
refresh();
@@ -317,8 +281,8 @@ public class FusedVirtualMachineView extends AbstractStateSystemTimeGraphView {
}
};
- private Machine machineHierarchy;
- private HashMap<String, Machine> machines;
+ private Machine fPhysicalMachine;
+ private HashMap<String, Machine> fMachines;
// ------------------------------------------------------------------------
// Constructors
@@ -327,21 +291,18 @@ public class FusedVirtualMachineView extends AbstractStateSystemTimeGraphView {
/**
* Default constructor
*/
- public FusedVirtualMachineView() {
- super(ID, new FusedVMViewPresentationProvider());
+ public VirtualResourcesView() {
+ super(ID, new VirtualResourcePresentationProvider());
setFilterColumns(FILTER_COLUMN_NAMES);
setFilterLabelProvider(new FusedVMFilterLabelProvider());
setEntryComparator(new FusedVMViewEntryComparator());
- registerListener();
- setAutoExpandLevel(1);
-
}
private static class FusedVMViewEntryComparator implements Comparator<ITimeGraphEntry> {
@Override
public int compare(ITimeGraphEntry o1, ITimeGraphEntry o2) {
- FusedVMViewEntry entry1 = (FusedVMViewEntry) o1;
- FusedVMViewEntry entry2 = (FusedVMViewEntry) o2;
+ VirtualResourceEntry entry1 = (VirtualResourceEntry) o1;
+ VirtualResourceEntry entry2 = (VirtualResourceEntry) o2;
Type typeE1 = entry1.getType();
Type typeE2 = entry2.getType();
if ((typeE1 == Type.VM || typeE1 == Type.CONTAINER) && (typeE2 == Type.VM || typeE2 == Type.CONTAINER)) {
@@ -352,13 +313,13 @@ public class FusedVirtualMachineView extends AbstractStateSystemTimeGraphView {
if (entry1.getName() == Messages.FusedVMView_PhysicalCpusEntry) {
return -1;
}
- if(entry2.getName() == Messages.FusedVMView_PhysicalCpusEntry) {
+ if (entry2.getName() == Messages.FusedVMView_PhysicalCpusEntry) {
return 1;
}
- if(entry1.getName() == Messages.FusedVMView_ContainersEntry) {
+ if (entry1.getName() == Messages.FusedVMView_ContainersEntry) {
return 1;
}
- if(entry2.getName() == Messages.FusedVMView_ContainersEntry) {
+ if (entry2.getName() == Messages.FusedVMView_ContainersEntry) {
return -1;
}
}
@@ -370,7 +331,7 @@ public class FusedVirtualMachineView extends AbstractStateSystemTimeGraphView {
private static class FusedVMFilterLabelProvider extends TreeLabelProvider {
@Override
public String getColumnText(Object element, int columnIndex) {
- FusedVMViewEntry entry = (FusedVMViewEntry) element;
+ VirtualResourceEntry entry = (VirtualResourceEntry) element;
if (columnIndex == 0) {
return entry.getName();
}
@@ -379,6 +340,16 @@ public class FusedVirtualMachineView extends AbstractStateSystemTimeGraphView {
}
+ private static final Comparator<ITimeGraphEntry> ENTRY_COMPARATOR = new Comparator<ITimeGraphEntry>() {
+ @Override
+ public int compare(ITimeGraphEntry o1, ITimeGraphEntry o2) {
+ if (!((o1 instanceof VirtualResourceEntry) && (o2 instanceof VirtualResourceEntry))) {
+ return 0;
+ }
+ return ((VirtualResourceEntry) o1).compareTo(o2);
+ }
+ };
+
// ------------------------------------------------------------------------
// Internal
// ------------------------------------------------------------------------
@@ -416,41 +387,24 @@ public class FusedVirtualMachineView extends AbstractStateSystemTimeGraphView {
if (ssq == null) {
return;
}
- Comparator<ITimeGraphEntry> comparator = new Comparator<ITimeGraphEntry>() {
- @Override
- public int compare(ITimeGraphEntry o1, ITimeGraphEntry o2) {
- return ((FusedVMViewEntry) o1).compareTo(o2);
- }
- };
- /* IF we don't wait we might don't see some machines */
+ /* if we don't wait we might don't see some machines */
+ /* TODO: make the view built incrementally with the analysis */
ssq.waitUntilBuilt();
- machines = new HashMap<>();
- machineHierarchy = createHierarchy(ssq);
- if (machineHierarchy == null) {
- return;
- }
- FusedVMViewPresentationProvider presentationProvider = getFusedVMViewPresentationProvider();
-
- /* All traces are highlighted by default. */
+ /* All machines should are highlighted by default. */
/* Remove highlighted machines from other analysis. */
+ VirtualResourcePresentationProvider presentationProvider = getFusedVMViewPresentationProvider();
presentationProvider.destroyHightlightedMachines();
- // TODO: do this part in createHierarchy
- for (String machineName : FusedVMInformationProvider.getMachinesTraced(ssq)) {
- ITmfStateValue machineType = FusedVMInformationProvider.getTypeMachine(ssq, machineName);
- if (machineType == null) {
- continue;
- }
- Machine machine = new Machine(machineName, FusedVMInformationProvider.getNbCPUs(ssq, machineName), machineType);
- /* Get all the containers for this machine */
- for (String containerID : FusedVMInformationProvider.getMachineContainers(ssq, machineName)) {
- machine.addContainer(Machine.createContainer(containerID, machine));
- }
- presentationProvider.getHighlightedMachines().put(machine.getMachineName(), machine);
+
+ fMachines = new HashMap<>();
+ fPhysicalMachine = createHierarchy(ssq);
+
+ if (fPhysicalMachine == null) {
+ return;
}
- Map<Integer, FusedVMViewEntry> entryMap = new HashMap<>();
+ Map<Integer, VirtualResourceEntry> entryMap = new HashMap<>();
TimeGraphEntry traceEntry = null;
long startTime = ssq.getStartTime();
@@ -473,7 +427,7 @@ public class FusedVirtualMachineView extends AbstractStateSystemTimeGraphView {
long endTime = end + 1;
setEndTime(Math.max(getEndTime(), endTime));
- List<Integer> machinesQuarks = ssq.getQuarks(Attributes.MACHINES, "*"); //$NON-NLS-1$
+ List<Integer> machinesQuarks = ssq.getQuarks(FusedAttributes.MACHINES, "*"); //$NON-NLS-1$
String hostName = null;
for (int quark : machinesQuarks) {
try {
@@ -486,19 +440,20 @@ public class FusedVirtualMachineView extends AbstractStateSystemTimeGraphView {
}
if (traceEntry == null) {
- traceEntry = new FusedVMViewEntry(trace, hostName, startTime, endTime, Type.VM, 0);
- traceEntry.sortChildren(comparator);
+ traceEntry = new VirtualResourceEntry(trace, hostName, startTime, endTime, Type.VM, 0);
+ traceEntry.sortChildren(ENTRY_COMPARATOR);
List<TimeGraphEntry> entryList = Collections.singletonList(traceEntry);
addToEntryList(parentTrace, ssq, entryList);
} else {
traceEntry.updateEndTime(endTime);
}
- List<Integer> cpuQuarks = ssq.getQuarks(Attributes.CPUS, "*"); //$NON-NLS-1$
+ List<Integer> cpuQuarks = ssq.getQuarks(FusedAttributes.CPUS, "*"); //$NON-NLS-1$
+ getFusedVMViewPresentationProvider().getHighlightedMachines().put(fPhysicalMachine.getMachineName(), fPhysicalMachine);
createCpuEntriesWithQuark(trace, ssq, entryMap, traceEntry, startTime, endTime, cpuQuarks);
/* Create entries for machines and containers */
- createMachineAndContainerEntries(trace, ssq, entryMap, machineHierarchy, traceEntry, startTime, endTime);
+ createMachineAndContainerEntries(trace, ssq, entryMap, fPhysicalMachine, traceEntry, startTime, endTime);
if (parentTrace.equals(getTrace())) {
refresh();
@@ -545,11 +500,11 @@ public class FusedVirtualMachineView extends AbstractStateSystemTimeGraphView {
}
- private static void createCpuEntriesWithQuark(@NonNull ITmfTrace trace, final ITmfStateSystem ssq, Map<Integer, FusedVMViewEntry> entryMap, TimeGraphEntry traceEntry, long startTime, long endTime, List<Integer> cpuQuarks) {
- Integer cpusQuark = ssq.getQuarks(Attributes.CPUS).get(0);
- FusedVMViewEntry physicalCpusEntry = entryMap.get(cpusQuark);
+ private void createCpuEntriesWithQuark(@NonNull ITmfTrace trace, final ITmfStateSystem ssq, Map<Integer, VirtualResourceEntry> entryMap, TimeGraphEntry traceEntry, long startTime, long endTime, List<Integer> cpuQuarks) {
+ Integer cpusQuark = ssq.getQuarks(FusedAttributes.CPUS).get(0);
+ VirtualResourceEntry physicalCpusEntry = entryMap.get(cpusQuark);
if (physicalCpusEntry == null) {
- physicalCpusEntry = new FusedVMViewEntry(cpusQuark, trace, Messages.FusedVMView_PhysicalCpusEntry, startTime, endTime, Type.NULL, cpusQuark);
+ physicalCpusEntry = new VirtualResourceEntry(cpusQuark, trace, Messages.FusedVMView_PhysicalCpusEntry, startTime, endTime, Type.NULL, cpusQuark);
entryMap.put(cpusQuark, physicalCpusEntry);
traceEntry.addChild(physicalCpusEntry);
} else {
@@ -558,39 +513,44 @@ public class FusedVirtualMachineView extends AbstractStateSystemTimeGraphView {
for (Integer cpuQuark : cpuQuarks) {
final @NonNull String cpuName = ssq.getAttributeName(cpuQuark);
int cpu = Integer.parseInt(cpuName);
- FusedVMViewEntry cpuEntry = entryMap.get(cpuQuark);
+ VirtualResourceEntry cpuEntry = entryMap.get(cpuQuark);
if (cpuEntry == null) {
- cpuEntry = new FusedVMViewEntry(cpuQuark, trace, startTime, endTime, Type.CPU, cpu);
+ VirtualResourceEntry newCpuEntry = new VirtualResourceEntry(cpuQuark, trace, startTime, endTime, Type.CPU, cpu);
+ cpuEntry = newCpuEntry;
entryMap.put(cpuQuark, cpuEntry);
physicalCpusEntry.addChild(cpuEntry);
+ Display.getDefault().asyncExec(() -> {
+ getTimeGraphViewer().setExpandedState(newCpuEntry, false);
+ });
} else {
cpuEntry.updateEndTime(endTime);
}
- List<Integer> irqQuarks = ssq.getQuarks(Attributes.CPUS, cpuName, Attributes.IRQS, "*"); //$NON-NLS-1$
+ List<Integer> irqQuarks = ssq.getQuarks(FusedAttributes.CPUS, cpuName, FusedAttributes.IRQS, "*"); //$NON-NLS-1$
createCpuInterruptEntryWithQuark(trace, ssq, entryMap, startTime, endTime, physicalCpusEntry, cpuEntry, irqQuarks, Type.IRQ);
- List<Integer> softIrqQuarks = ssq.getQuarks(Attributes.CPUS, cpuName, Attributes.SOFT_IRQS, "*"); //$NON-NLS-1$
+ List<Integer> softIrqQuarks = ssq.getQuarks(FusedAttributes.CPUS, cpuName, FusedAttributes.SOFT_IRQS, "*"); //$NON-NLS-1$
createCpuInterruptEntryWithQuark(trace, ssq, entryMap, startTime, endTime, physicalCpusEntry, cpuEntry, softIrqQuarks, Type.SOFT_IRQ);
}
}
- private static void createMachineAndContainerEntries(@NonNull ITmfTrace trace, final ITmfStateSystem ssq, Map<Integer, FusedVMViewEntry> entryMap, Machine machine, TimeGraphEntry machineEntry, long startTime, long endTime) {
+ private void createMachineAndContainerEntries(@NonNull ITmfTrace trace, final ITmfStateSystem ssq, Map<Integer, VirtualResourceEntry> entryMap, Machine machine, TimeGraphEntry machineEntry, long startTime, long endTime) {
Set<Machine> vms = machine.getVirtualMachines();
Set<Machine> containers = machine.getContainers();
Set<Processor> pcpus = machine.getPCpus();
if (!vms.isEmpty()) {
- FusedVMViewEntry virtualMachinesEntry = entryMap.get(3 * vms.hashCode());
+ VirtualResourceEntry virtualMachinesEntry = entryMap.get(3 * vms.hashCode());
if (virtualMachinesEntry == null) {
- virtualMachinesEntry = new FusedVMViewEntry(0, trace, Messages.FusedVMView_VirtualMachinesEntry, startTime, endTime, Type.NULL, 3 * vms.hashCode());
+ virtualMachinesEntry = new VirtualResourceEntry(0, trace, Messages.FusedVMView_VirtualMachinesEntry, startTime, endTime, Type.NULL, 3 * vms.hashCode());
entryMap.put(3 * vms.hashCode(), virtualMachinesEntry);
machineEntry.addChild(virtualMachinesEntry);
} else {
virtualMachinesEntry.updateEndTime(endTime);
}
for (Machine vm : vms) {
- FusedVMViewEntry virtualMachineEntry = entryMap.get(vm.hashCode());
+ VirtualResourceEntry virtualMachineEntry = entryMap.get(vm.hashCode());
if (virtualMachineEntry == null) {
- virtualMachineEntry = new FusedVMViewEntry(0, trace, vm.getMachineName(), startTime, endTime, Type.VM, vm.hashCode());
+ virtualMachineEntry = new VirtualResourceEntry(0, trace, vm.getMachineName(), startTime, endTime, Type.VM, vm.hashCode());
+ getFusedVMViewPresentationProvider().getHighlightedMachines().put(vm.getMachineName(), vm);
entryMap.put(vm.hashCode(), virtualMachineEntry);
virtualMachinesEntry.addChild(virtualMachineEntry);
} else {
@@ -600,19 +560,21 @@ public class FusedVirtualMachineView extends AbstractStateSystemTimeGraphView {
}
}
- if(!containers.isEmpty()) {
- FusedVMViewEntry containersEntry = entryMap.get(3 * containers.hashCode());
+ if (!containers.isEmpty()) {
+ VirtualResourceEntry containersEntry = entryMap.get(3 * containers.hashCode());
if (containersEntry == null) {
- containersEntry = new FusedVMViewEntry(0, trace, Messages.FusedVMView_ContainersEntry, startTime, endTime, Type.NULL, 3 * containers.hashCode());
+ containersEntry = new VirtualResourceEntry(0, trace, Messages.FusedVMView_ContainersEntry, startTime, endTime, Type.NULL, 3 * containers.hashCode());
+
entryMap.put(3 * containers.hashCode(), containersEntry);
machineEntry.addChild(containersEntry);
} else {
containersEntry.updateEndTime(endTime);
}
for (Machine container : containers) {
- FusedVMViewEntry containerEntry = entryMap.get(container.hashCode());
+ VirtualResourceEntry containerEntry = entryMap.get(container.hashCode());
if (containerEntry == null) {
- containerEntry = new FusedVMViewEntry(0, trace, container.getMachineName(), startTime, endTime, Type.CONTAINER, container.hashCode());
+ containerEntry = new VirtualResourceEntry(0, trace, container.getMachineName(), startTime, endTime, Type.CONTAINER, container.hashCode());
+ getFusedVMViewPresentationProvider().getHighlightedMachines().put(container.getMachineName(), container);
entryMap.put(container.hashCode(), containerEntry);
containersEntry.addChild(containerEntry);
} else {
@@ -622,31 +584,31 @@ public class FusedVirtualMachineView extends AbstractStateSystemTimeGraphView {
}
}
- if (!pcpus.isEmpty()) {
- FusedVMViewEntry pCpusEntry = entryMap.get(3 * pcpus.hashCode());
+ if (!pcpus.isEmpty() && !(machine == fPhysicalMachine)) {
+ VirtualResourceEntry pCpusEntry = entryMap.get(3 * pcpus.hashCode());
if (pCpusEntry == null) {
- pCpusEntry = new FusedVMViewEntry(0, trace, Messages.FusedVMView_PhysicalCpusEntry, startTime, endTime, Type.NULL, 3 * pcpus.hashCode());
+ pCpusEntry = new VirtualResourceEntry(0, trace, Messages.FusedVMView_PhysicalCpusEntry, startTime, endTime, Type.NULL, 3 * pcpus.hashCode());
entryMap.put(3 * pcpus.hashCode(), pCpusEntry);
machineEntry.addChild(pCpusEntry);
} else {
pCpusEntry.updateEndTime(endTime);
}
for (Processor p : pcpus) {
- FusedVMViewEntry pCpuEntry = entryMap.get(p.hashCode());
+ VirtualResourceEntry pCpuEntry = entryMap.get(p.hashCode());
if (pCpuEntry == null) {
- List<Integer> list = ssq.getQuarks(Attributes.CPUS, p.getNumber());
+ List<Integer> list = ssq.getQuarks(FusedAttributes.CPUS, p.getNumber());
if (list.isEmpty()) {
return;
}
int pCpuQuark = list.get(0);
Type type = Type.NULL;
- Type typeMachine = ((FusedVMViewEntry) machineEntry).getType();
+ Type typeMachine = ((VirtualResourceEntry) machineEntry).getType();
if (typeMachine == Type.VM) {
type = Type.PCPU_VM;
} else if (typeMachine == Type.CONTAINER) {
type = Type.PCPU_CONTAINER;
}
- pCpuEntry = new FusedVMViewEntry(pCpuQuark, trace, startTime, endTime, type, Integer.parseInt(p.getNumber()));
+ pCpuEntry = new VirtualResourceEntry(pCpuQuark, trace, startTime, endTime, type, Integer.parseInt(p.getNumber()));
entryMap.put(p.hashCode(), pCpuEntry);
pCpusEntry.addChild(pCpuEntry);
} else {
@@ -684,16 +646,16 @@ public class FusedVirtualMachineView extends AbstractStateSystemTimeGraphView {
* the type of entry being added
*/
private static void createCpuInterruptEntryWithQuark(@NonNull ITmfTrace trace,
- final ITmfStateSystem ssq, Map<Integer, FusedVMViewEntry> entryMap,
+ final ITmfStateSystem ssq, Map<Integer, VirtualResourceEntry> entryMap,
long startTime, long endTime,
- TimeGraphEntry traceEntry, FusedVMViewEntry cpuEntry,
+ TimeGraphEntry traceEntry, VirtualResourceEntry cpuEntry,
List<Integer> childrenQuarks, Type type) {
for (Integer quark : childrenQuarks) {
final @NonNull String resourceName = ssq.getAttributeName(quark);
int resourceId = Integer.parseInt(resourceName);
- FusedVMViewEntry interruptEntry = entryMap.get(quark);
+ VirtualResourceEntry interruptEntry = entryMap.get(quark);
if (interruptEntry == null) {
- interruptEntry = new FusedVMViewEntry(quark, trace, startTime, endTime, type, resourceId);
+ interruptEntry = new VirtualResourceEntry(quark, trace, startTime, endTime, type, resourceId);
entryMap.put(quark, interruptEntry);
cpuEntry.addChild(interruptEntry);
} else {
@@ -705,7 +667,7 @@ public class FusedVirtualMachineView extends AbstractStateSystemTimeGraphView {
@Override
protected @Nullable List<ITimeEvent> getEventList(@NonNull TimeGraphEntry entry, ITmfStateSystem ssq,
@NonNull List<List<ITmfStateInterval>> fullStates, @Nullable List<ITmfStateInterval> prevFullState, @NonNull IProgressMonitor monitor) {
- FusedVMViewEntry fusedVMViewEntry = (FusedVMViewEntry) entry;
+ VirtualResourceEntry fusedVMViewEntry = (VirtualResourceEntry) entry;
int quark = fusedVMViewEntry.getQuark();
if (fusedVMViewEntry.getType().equals(Type.CPU)) {
@@ -728,9 +690,9 @@ public class FusedVirtualMachineView extends AbstractStateSystemTimeGraphView {
int currentThreadQuark;
String machineName = null;
try {
- statusQuark = ssq.getQuarkRelative(quark, Attributes.STATUS);
- machineQuark = ssq.getQuarkRelative(quark, Attributes.MACHINE_NAME);
- currentThreadQuark = ssq.getQuarkRelative(quark, Attributes.CURRENT_THREAD);
+ statusQuark = ssq.getQuarkRelative(quark, FusedAttributes.STATUS);
+ machineQuark = ssq.getQuarkRelative(quark, FusedAttributes.MACHINE_NAME);
+ currentThreadQuark = ssq.getQuarkRelative(quark, FusedAttributes.CURRENT_THREAD);
} catch (AttributeNotFoundException e) {
/*
* The sub-attribute "status" is not available. May happen if the
@@ -772,16 +734,18 @@ public class FusedVirtualMachineView extends AbstractStateSystemTimeGraphView {
} else if (type.equals(Type.PCPU_VM)) {
// TODO: support vm's vms
machineName = entry.getParent().getParent().getName();
-// if (!machineInterval.getStateValue().unboxStr().equals(machineName)) {
+ // if
+ // (!machineInterval.getStateValue().unboxStr().equals(machineName))
+ // {
if (!isInsideVM(machineInterval.getStateValue().unboxStr(), machineName)) {
/* Skip that interval, it's not related to the machine */
continue;
}
} else if (type.equals(Type.PCPU_CONTAINER)) {
/* Get the entry of the machine containing the container */
- FusedVMViewEntry machineEntry = (FusedVMViewEntry) entry.getParent();
+ VirtualResourceEntry machineEntry = (VirtualResourceEntry) entry.getParent();
while (machineEntry.getType() != Type.VM) {
- machineEntry = (FusedVMViewEntry) machineEntry.getParent();
+ machineEntry = (VirtualResourceEntry) machineEntry.getParent();
}
machineName = machineEntry.getName();
if (machineName == null || !machineInterval.getStateValue().unboxStr().equals(machineName)) {
@@ -794,7 +758,7 @@ public class FusedVirtualMachineView extends AbstractStateSystemTimeGraphView {
}
int containerQuark = FusedVMInformationProvider.getContainerQuark(ssq, machineName, containerID);
int threadID = currentThreadInterval.getStateValue().unboxInt();
- List<Integer> threadsQuarks = ssq.getQuarks(containerQuark, Attributes.THREADS, "*"); //$NON-NLS-1$
+ List<Integer> threadsQuarks = ssq.getQuarks(containerQuark, FusedAttributes.THREADS, "*"); //$NON-NLS-1$
boolean foundThread = false;
for (Integer threadQuark : threadsQuarks) {
if (Integer.parseInt(ssq.getAttributeName(threadQuark)) == threadID) {
@@ -859,7 +823,7 @@ public class FusedVirtualMachineView extends AbstractStateSystemTimeGraphView {
if (machine1.equals(machine2)) {
return true;
}
- Machine m2 = machines.get(machine2);
+ Machine m2 = fMachines.get(machine2);
if (m2 == null) {
return false;
}
@@ -920,13 +884,12 @@ public class FusedVirtualMachineView extends AbstractStateSystemTimeGraphView {
IAction selectMachineAction = getSelectMachineAction();
selectMachineAction.setText(Messages.FusedVMView_selectMachineText);
selectMachineAction.setToolTipText(Messages.FusedVMView_selectMachineText);
- manager.add(selectMachineAction);
- manager.add(new Separator());
- manager.add(fHighlightMachine);
- manager.add(fHighlightCPU);
- manager.add(fHighlightProcess);
- manager.add(fHighlightContainer);
-
+// manager.add(selectMachineAction);
+// manager.add(new Separator());
+// manager.add(fHighlightMachine);
+// manager.add(fHighlightCPU);
+// manager.add(fHighlightProcess);
+// manager.add(fHighlightContainer);
}
@@ -983,12 +946,12 @@ public class FusedVirtualMachineView extends AbstractStateSystemTimeGraphView {
*
* @return the FusedVMViewProvider
*/
- public FusedVMViewPresentationProvider getFusedVMViewPresentationProvider() {
+ public VirtualResourcePresentationProvider getFusedVMViewPresentationProvider() {
ITimeGraphPresentationProvider2 pp = getPresentationProvider();
- if (!(pp instanceof FusedVMViewPresentationProvider)) {
+ if (!(pp instanceof VirtualResourcePresentationProvider)) {
return null;
}
- return (FusedVMViewPresentationProvider) pp;
+ return (VirtualResourcePresentationProvider) pp;
}
private void printInformations() {
@@ -1002,39 +965,11 @@ public class FusedVirtualMachineView extends AbstractStateSystemTimeGraphView {
}
/**
- * Registers the listener that handles the click on a Control Flow View
- * entry
- */
- private void registerListener() {
- if (!PlatformUI.isWorkbenchRunning()) {
- return;
- }
- IWorkbench wb = PlatformUI.getWorkbench();
- if (wb == null) {
- return;
- }
- IWorkbenchWindow wbw = wb.getActiveWorkbenchWindow();
- if (wbw == null) {
- return;
- }
- final IWorkbenchPage activePage = wbw.getActivePage();
- if (activePage == null) {
- return;
- }
-
- /* Add the listener to the control flow view */
- IViewPart view = activePage.findView(ControlFlowView.ID);
- if (view != null) {
- view.getSite().getWorkbenchWindow().getSelectionService().addPostSelectionListener(fSelListenerControlFlowView);
- }
- }
-
- /**
* Updates the tooltip text of the buttons so it corresponds to the machine,
* cpu and process selected
*/
private void updateToolTipTexts() {
- FusedVMViewPresentationProvider presentationProvider = getFusedVMViewPresentationProvider();
+ VirtualResourcePresentationProvider presentationProvider = getFusedVMViewPresentationProvider();
fHighlightMachine.setToolTipText(presentationProvider.getSelectedMachine());
fHighlightCPU.setToolTipText(Integer.toString((presentationProvider.getSelectedCpu())));
fHighlightProcess.setToolTipText(Messages.FusedVMView_ButtonProcessSelected + ": " + //$NON-NLS-1$
@@ -1048,7 +983,7 @@ public class FusedVirtualMachineView extends AbstractStateSystemTimeGraphView {
* Sets the checked state of the buttons
*/
private void updateButtonsSelection() {
- FusedVMViewPresentationProvider presentationProvider = getFusedVMViewPresentationProvider();
+ VirtualResourcePresentationProvider presentationProvider = getFusedVMViewPresentationProvider();
Map<String, Machine> highlightedMachines = presentationProvider.getHighlightedMachines();
Machine machine = highlightedMachines.get(presentationProvider.getSelectedMachine());
if (machine == null) {
@@ -1063,6 +998,7 @@ public class FusedVirtualMachineView extends AbstractStateSystemTimeGraphView {
/**
* Get the select machine action.
+ *
* @return The select machine action
*/
public Action getSelectMachineAction() {
@@ -1071,7 +1007,7 @@ public class FusedVirtualMachineView extends AbstractStateSystemTimeGraphView {
@Override
public void run() {
selectMachine();
- FusedVMViewPresentationProvider presentationProvider = (FusedVMViewPresentationProvider) getPresentationProvider();
+ VirtualResourcePresentationProvider presentationProvider = (VirtualResourcePresentationProvider) getPresentationProvider();
presentationProvider.destroyTimeEventHighlight();
redraw();
}
@@ -1107,22 +1043,30 @@ public class FusedVirtualMachineView extends AbstractStateSystemTimeGraphView {
for (String machineName : FusedVMInformationProvider.getMachinesTraced(ssq)) {
ITmfStateValue typeMachine = FusedVMInformationProvider.getTypeMachine(ssq, machineName);
- if (typeMachine != null) {
- if ((typeMachine.unboxInt() & StateValues.MACHINE_GUEST) == StateValues.MACHINE_GUEST) {
- Machine machine = new Machine(machineName, typeMachine, FusedVMInformationProvider.getPCpusUsedByMachine(ssq, machineName));
- machines.put(machine.getMachineName(), machine);
- guests.add(machine);
- } else if (typeMachine.unboxInt() == StateValues.MACHINE_HOST) {
- Machine machine = new Machine(machineName, typeMachine);
- machines.put(machine.getMachineName(), machine);
- host = machine;
+ if (typeMachine == null) {
+ continue;
+ }
+ Machine machine = null;
+ if ((typeMachine.unboxInt() & StateValues.MACHINE_GUEST) == StateValues.MACHINE_GUEST) {
+ machine = new Machine(machineName, typeMachine, FusedVMInformationProvider.getPhysicalCpusUsedByMachine(ssq, machineName));
+ fMachines.put(machine.getMachineName(), machine);
+ guests.add(machine);
+ } else if (typeMachine.unboxInt() == StateValues.MACHINE_HOST) {
+ machine = new Machine(machineName, typeMachine);
+ for (String cpus : FusedVMInformationProvider.getCpusUsedByMachine(ssq, machineName)) {
+ machine.addPCpu(cpus);
}
+ fMachines.put(machine.getMachineName(), machine);
+ host = machine;
+ }
+ if (machine == null) {
+ continue;
}
}
if (host == null) {
return null;
}
- /* Complete construction for the host*/
+ /* Complete construction for the host */
createContainersHierarchyForMachine(ssq, host);
createMachineHierarchy(ssq, host, guests);
/* Create container hierarchy for guests and add them to the host */
@@ -1135,13 +1079,13 @@ public class FusedVirtualMachineView extends AbstractStateSystemTimeGraphView {
private static void createMachineHierarchy(@NonNull ITmfStateSystem ssq, Machine host, List<Machine> guests) {
for (Machine m : guests) {
String parentName = FusedVMInformationProvider.getParentMachineName(ssq, m.getMachineName());
- if (parentName.equals(host.getMachineName())){
+ if (parentName.equals(host.getMachineName())) {
m.setHost(host);
host.addVirtualMachine(m);
}
for (Machine m2 : guests) {
parentName = FusedVMInformationProvider.getParentMachineName(ssq, m2.getMachineName());
- if (parentName.equals(m.getMachineName())){
+ if (parentName.equals(m.getMachineName())) {
m2.setHost(m);
m.addVirtualMachine(m2);
}
@@ -1158,8 +1102,7 @@ public class FusedVirtualMachineView extends AbstractStateSystemTimeGraphView {
/* Look for not nested containers */
for (Integer quark : containersQuarks) {
Long parentContainer = FusedVMInformationProvider.getParentContainer(ssq, quark);
- /* TODO: Externalize the root namespace ID */
- if (parentContainer.toString().equals("4026531836")) { //$NON-NLS-1$
+ if (parentContainer == IVirtualMachineModel.ROOT_NAMESPACE) {
String containerName = ssq.getAttributeName(quark);
List<String> pCpus = FusedVMInformationProvider.getPCpusUsedByContainer(ssq, quark);
Machine container = new Machine(containerName, StateValues.MACHINE_CONTAINER_VALUE, pCpus);
@@ -1184,4 +1127,20 @@ public class FusedVirtualMachineView extends AbstractStateSystemTimeGraphView {
}
}
}
+
+ /**
+ * Update the view when a thread is selected
+ *
+ * @param signal
+ * The thread selected signal
+ */
+ @TmfSignalHandler
+ public void threadSelected(TmfThreadSelectedSignal signal) {
+ signal.getThreadId();
+ VirtualResourcePresentationProvider presentationProvider = getFusedVMViewPresentationProvider();
+ presentationProvider.setSelectedThread(signal.getHostId(), signal.getThreadId());
+
+ updateButtonsSelection();
+ updateToolTipTexts();
+ }
}
diff --git a/vm/org.eclipse.tracecompass.incubator.virtual.machine.analysis.ui/src/org/eclipse/tracecompass/incubator/internal/virtual/machine/analysis/ui/views/fusedvmview/messages.properties b/vm/org.eclipse.tracecompass.incubator.virtual.machine.analysis.ui/src/org/eclipse/tracecompass/incubator/internal/virtual/machine/analysis/ui/views/vresources/messages.properties
index 067df3438..067df3438 100644
--- a/vm/org.eclipse.tracecompass.incubator.virtual.machine.analysis.ui/src/org/eclipse/tracecompass/incubator/internal/virtual/machine/analysis/ui/views/fusedvmview/messages.properties
+++ b/vm/org.eclipse.tracecompass.incubator.virtual.machine.analysis.ui/src/org/eclipse/tracecompass/incubator/internal/virtual/machine/analysis/ui/views/vresources/messages.properties

Back to the top