From 09f15ee93207cfa9be9283766dbefcdba89cbfb7 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Genevi=C3=A8ve=20Bastien?= Date: Wed, 27 Apr 2016 13:34:55 -0400 Subject: [PATCH 1/1] tmf: Add the dependency level to the analyses' event requests MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Change-Id: Ib665794aaba3ff56599a2db6041c01f0ee0149f7 Signed-off-by: Geneviève Bastien Reviewed-on: https://git.eclipse.org/r/71541 Reviewed-by: Hudson CI Reviewed-by: Bernd Hufmann Tested-by: Bernd Hufmann --- .../latency/SystemCallLatencyAnalysis.java | 20 ++++++++++++++++++- ...tSegmentStoreAnalysisEventBasedModule.java | 5 +++-- .../TmfStateSystemAnalysisModule.java | 3 ++- 3 files changed, 24 insertions(+), 4 deletions(-) diff --git a/analysis/org.eclipse.tracecompass.analysis.os.linux.core/src/org/eclipse/tracecompass/analysis/os/linux/core/latency/SystemCallLatencyAnalysis.java b/analysis/org.eclipse.tracecompass.analysis.os.linux.core/src/org/eclipse/tracecompass/analysis/os/linux/core/latency/SystemCallLatencyAnalysis.java index 67ee8795d8..912a6e4f65 100644 --- a/analysis/org.eclipse.tracecompass.analysis.os.linux.core/src/org/eclipse/tracecompass/analysis/os/linux/core/latency/SystemCallLatencyAnalysis.java +++ b/analysis/org.eclipse.tracecompass.analysis.os.linux.core/src/org/eclipse/tracecompass/analysis/os/linux/core/latency/SystemCallLatencyAnalysis.java @@ -14,6 +14,7 @@ import static org.eclipse.tracecompass.common.core.NonNullUtils.checkNotNull; import java.io.IOException; import java.io.ObjectInputStream; import java.util.Collection; +import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.Map; @@ -23,15 +24,19 @@ import java.util.stream.Collectors; import org.eclipse.jdt.annotation.NonNull; import org.eclipse.jdt.annotation.Nullable; import org.eclipse.tracecompass.analysis.os.linux.core.kernel.KernelTidAspect; +import org.eclipse.tracecompass.analysis.os.linux.core.tid.TidAnalysisModule; import org.eclipse.tracecompass.analysis.os.linux.core.trace.IKernelAnalysisEventLayout; import org.eclipse.tracecompass.analysis.os.linux.core.trace.IKernelTrace; import org.eclipse.tracecompass.analysis.timing.core.segmentstore.AbstractSegmentStoreAnalysisEventBasedModule; import org.eclipse.tracecompass.segmentstore.core.ISegment; import org.eclipse.tracecompass.segmentstore.core.ISegmentStore; +import org.eclipse.tracecompass.tmf.core.analysis.IAnalysisModule; import org.eclipse.tracecompass.tmf.core.event.ITmfEvent; import org.eclipse.tracecompass.tmf.core.segment.ISegmentAspect; +import org.eclipse.tracecompass.tmf.core.trace.ITmfTrace; import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableSet; /** * @author Alexandre Montplaisir @@ -54,6 +59,19 @@ public class SystemCallLatencyAnalysis extends AbstractSegmentStoreAnalysisEvent return ID; } + @Override + protected Iterable getDependentAnalyses() { + ITmfTrace trace = getTrace(); + if (trace == null) { + throw new IllegalStateException(); + } + IAnalysisModule module = trace.getAnalysisModule(TidAnalysisModule.ID); + if (module == null) { + return Collections.EMPTY_SET; + } + return ImmutableSet.of(module); + } + @Override public Iterable getSegmentAspects() { return BASE_ASPECTS; @@ -74,7 +92,7 @@ public class SystemCallLatencyAnalysis extends AbstractSegmentStoreAnalysisEvent return checkNotNull((Object[]) ois.readObject()); } - private static class SyscallLatencyAnalysisRequest extends AbstractSegmentStoreAnalysisRequest { + private class SyscallLatencyAnalysisRequest extends AbstractSegmentStoreAnalysisRequest { private final Map fOngoingSystemCalls = new HashMap<>(); private @Nullable IKernelAnalysisEventLayout fLayout; diff --git a/analysis/org.eclipse.tracecompass.analysis.timing.core/src/org/eclipse/tracecompass/analysis/timing/core/segmentstore/AbstractSegmentStoreAnalysisEventBasedModule.java b/analysis/org.eclipse.tracecompass.analysis.timing.core/src/org/eclipse/tracecompass/analysis/timing/core/segmentstore/AbstractSegmentStoreAnalysisEventBasedModule.java index b620c75573..d66c5cc42f 100644 --- a/analysis/org.eclipse.tracecompass.analysis.timing.core/src/org/eclipse/tracecompass/analysis/timing/core/segmentstore/AbstractSegmentStoreAnalysisEventBasedModule.java +++ b/analysis/org.eclipse.tracecompass.analysis.timing.core/src/org/eclipse/tracecompass/analysis/timing/core/segmentstore/AbstractSegmentStoreAnalysisEventBasedModule.java @@ -18,6 +18,7 @@ import org.eclipse.tracecompass.tmf.core.event.ITmfEvent; import org.eclipse.tracecompass.tmf.core.exceptions.TmfAnalysisException; import org.eclipse.tracecompass.tmf.core.request.ITmfEventRequest; import org.eclipse.tracecompass.tmf.core.request.TmfEventRequest; +import org.eclipse.tracecompass.tmf.core.timestamp.TmfTimeRange; import org.eclipse.tracecompass.tmf.core.trace.ITmfTrace; /** @@ -77,7 +78,7 @@ public abstract class AbstractSegmentStoreAnalysisEventBasedModule extends Abstr /** * Abstract event request to fill a a segment store */ - protected static abstract class AbstractSegmentStoreAnalysisRequest extends TmfEventRequest { + protected abstract class AbstractSegmentStoreAnalysisRequest extends TmfEventRequest { private final ISegmentStore fSegmentStore; @@ -88,7 +89,7 @@ public abstract class AbstractSegmentStoreAnalysisEventBasedModule extends Abstr * a segment store to fill */ public AbstractSegmentStoreAnalysisRequest(ISegmentStore segmentStore) { - super(ITmfEvent.class, 0, ITmfEventRequest.ALL_DATA, ExecutionType.BACKGROUND); + super(ITmfEvent.class, TmfTimeRange.ETERNITY, 0, ITmfEventRequest.ALL_DATA, ExecutionType.BACKGROUND, AbstractSegmentStoreAnalysisEventBasedModule.this.getDependencyLevel()); /* * We do NOT make a copy here! We want to modify the list that was * passed in parameter. diff --git a/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/statesystem/TmfStateSystemAnalysisModule.java b/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/statesystem/TmfStateSystemAnalysisModule.java index b9b0ad08a9..ae98a632e1 100644 --- a/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/statesystem/TmfStateSystemAnalysisModule.java +++ b/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/statesystem/TmfStateSystemAnalysisModule.java @@ -479,7 +479,8 @@ public abstract class TmfStateSystemAnalysisModule extends TmfAbstractAnalysisMo timeRange, index, ITmfEventRequest.ALL_DATA, - ITmfEventRequest.ExecutionType.BACKGROUND); + ITmfEventRequest.ExecutionType.BACKGROUND, + TmfStateSystemAnalysisModule.this.getDependencyLevel()); this.sci = sp; trace = sci.getTrace(); -- 2.34.1