Skip to content

Commit a0c8f83

Browse files
committed
profiling.core: make callstack api
This commit makes the new callstack api, moving necessary classes to provisional packages and adding it to the API. Signed-off-by: Arnaud Fiorini <fiorini.arnaud@gmail.com>
1 parent 791195f commit a0c8f83

82 files changed

Lines changed: 323 additions & 329 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

analysis/org.eclipse.tracecompass.analysis.os.linux.core/META-INF/MANIFEST.MF

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,8 @@ Export-Package: org.eclipse.tracecompass.analysis.os.linux.core.contextswitch,
4747
x-friends:="org.eclipse.tracecompass.analysis.os.linux.core.tests,
4848
org.eclipse.tracecompass.analysis.os.linux.ui,
4949
org.eclipse.tracecompass.lttng2.kernel.core.tests,
50-
org.eclipse.tracecompass.analysis.profiling.core.tests",
50+
org.eclipse.tracecompass.analysis.profiling.core.tests,
51+
org.eclipse.tracecompass.analysis.profiling.core",
5152
org.eclipse.tracecompass.internal.analysis.os.linux.core.kernel.handlers;x-friends:="org.eclipse.tracecompass.analysis.os.linux.core.tests",
5253
org.eclipse.tracecompass.internal.analysis.os.linux.core.kernelmemoryusage;x-friends:="org.eclipse.tracecompass.analysis.os.linux.ui",
5354
org.eclipse.tracecompass.internal.analysis.os.linux.core.latency;

analysis/org.eclipse.tracecompass.analysis.profiling.core.tests/src/org/eclipse/tracecompass/analysis/profiling/core/tests/CallStackStateSystemTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,12 @@
2222
import java.util.Arrays;
2323
import java.util.List;
2424

25+
import org.eclipse.tracecompass.analysis.profiling.core.base.ICallStackGroupDescriptor;
2526
import org.eclipse.tracecompass.analysis.profiling.core.callstack.CallStackStateProvider;
27+
import org.eclipse.tracecompass.analysis.profiling.core.callstack2.CallStackSeries;
28+
import org.eclipse.tracecompass.analysis.profiling.core.instrumented.InstrumentedCallStackAnalysis;
2629
import org.eclipse.tracecompass.analysis.profiling.core.tests.stubs2.CallStackAnalysisStub;
27-
import org.eclipse.tracecompass.internal.analysis.profiling.core.callstack.CallStackSeries;
28-
import org.eclipse.tracecompass.internal.analysis.profiling.core.instrumented.InstrumentedCallStackAnalysis;
2930
import org.eclipse.tracecompass.internal.analysis.profiling.core.instrumented.InstrumentedGroupDescriptor;
30-
import org.eclipse.tracecompass.internal.provisional.analysis.profiling.core.base.ICallStackGroupDescriptor;
3131
import org.eclipse.tracecompass.statesystem.core.ITmfStateSystem;
3232
import org.eclipse.tracecompass.statesystem.core.exceptions.AttributeNotFoundException;
3333
import org.eclipse.tracecompass.statesystem.core.interval.ITmfStateInterval;

analysis/org.eclipse.tracecompass.analysis.profiling.core.tests/src/org/eclipse/tracecompass/analysis/profiling/core/tests/CallStackTest.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,15 +25,15 @@
2525
import org.eclipse.core.runtime.NullProgressMonitor;
2626
import org.eclipse.jdt.annotation.NonNull;
2727
import org.eclipse.tracecompass.analysis.os.linux.core.model.HostThread;
28+
import org.eclipse.tracecompass.analysis.profiling.core.base.ICallStackElement;
29+
import org.eclipse.tracecompass.analysis.profiling.core.callgraph.ICalledFunction;
30+
import org.eclipse.tracecompass.analysis.profiling.core.callstack2.CallStack;
31+
import org.eclipse.tracecompass.analysis.profiling.core.callstack2.CallStackSeries;
32+
import org.eclipse.tracecompass.analysis.profiling.core.model.IHostModel;
2833
import org.eclipse.tracecompass.analysis.profiling.core.tests.stubs2.CallStackAnalysisStub;
2934
import org.eclipse.tracecompass.internal.analysis.profiling.core.callgraph2.CalledFunctionFactory;
30-
import org.eclipse.tracecompass.internal.analysis.profiling.core.callstack.CallStackSeries;
3135
import org.eclipse.tracecompass.internal.analysis.profiling.core.instrumented.InstrumentedCallStackElement;
3236
import org.eclipse.tracecompass.internal.analysis.profiling.core.model.ModelManager;
33-
import org.eclipse.tracecompass.internal.provisional.analysis.profiling.core.base.ICallStackElement;
34-
import org.eclipse.tracecompass.internal.provisional.analysis.profiling.core.callgraph.ICalledFunction;
35-
import org.eclipse.tracecompass.internal.provisional.analysis.profiling.core.callstack.CallStack;
36-
import org.eclipse.tracecompass.internal.provisional.analysis.profiling.core.model.IHostModel;
3737
import org.eclipse.tracecompass.tmf.core.trace.ITmfTrace;
3838
import org.junit.Test;
3939

analysis/org.eclipse.tracecompass.analysis.profiling.core.tests/src/org/eclipse/tracecompass/analysis/profiling/core/tests/CallStackTestBase2.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,12 @@
1818
import org.eclipse.core.runtime.IPath;
1919
import org.eclipse.core.runtime.IStatus;
2020
import org.eclipse.jdt.annotation.NonNull;
21+
import org.eclipse.tracecompass.analysis.profiling.core.base.ICallStackSymbol;
22+
import org.eclipse.tracecompass.analysis.profiling.core.callgraph.AggregatedCallSite;
23+
import org.eclipse.tracecompass.analysis.profiling.core.instrumented.InstrumentedCallStackAnalysis;
2124
import org.eclipse.tracecompass.analysis.profiling.core.tests.stubs2.CallStackAnalysisStub;
2225
import org.eclipse.tracecompass.analysis.profiling.core.tests.stubs2.KernelAnalysisModuleStub;
23-
import org.eclipse.tracecompass.internal.analysis.profiling.core.callgraph2.AggregatedCallSite;
24-
import org.eclipse.tracecompass.internal.analysis.profiling.core.instrumented.InstrumentedCallStackAnalysis;
2526
import org.eclipse.tracecompass.internal.analysis.profiling.core.model.ModelManager;
26-
import org.eclipse.tracecompass.internal.provisional.analysis.profiling.core.base.ICallStackSymbol;
2727
import org.eclipse.tracecompass.tmf.core.event.TmfEvent;
2828
import org.eclipse.tracecompass.tmf.core.exceptions.TmfTraceException;
2929
import org.eclipse.tracecompass.tmf.core.signal.TmfTraceOpenedSignal;

analysis/org.eclipse.tracecompass.analysis.profiling.core.tests/src/org/eclipse/tracecompass/analysis/profiling/core/tests/callgraph2/AggregatedCalledFunctionStatisticsTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,13 @@
2020
import java.util.List;
2121

2222
import org.eclipse.jdt.annotation.NonNull;
23+
import org.eclipse.tracecompass.analysis.profiling.core.base.ICallStackElement;
24+
import org.eclipse.tracecompass.analysis.profiling.core.callgraph.ICallGraphProvider2;
2325
import org.eclipse.tracecompass.analysis.profiling.core.tests.CallStackTestBase2;
2426
import org.eclipse.tracecompass.analysis.profiling.core.tests.stubs2.CallGraphAnalysisStub;
2527
import org.eclipse.tracecompass.internal.analysis.profiling.core.callgraph2.AggregatedCalledFunction;
2628
import org.eclipse.tracecompass.internal.analysis.profiling.core.callgraph2.AggregatedCalledFunctionStatistics;
2729
import org.eclipse.tracecompass.internal.analysis.profiling.core.model.ModelManager;
28-
import org.eclipse.tracecompass.internal.provisional.analysis.profiling.core.base.ICallStackElement;
29-
import org.eclipse.tracecompass.internal.provisional.analysis.profiling.core.callgraph.ICallGraphProvider;
3030
import org.eclipse.tracecompass.statesystem.core.ITmfStateSystemBuilder;
3131
import org.eclipse.tracecompass.statesystem.core.StateSystemFactory;
3232
import org.eclipse.tracecompass.statesystem.core.backend.IStateHistoryBackend;
@@ -88,7 +88,7 @@ private static List<ICallStackElement> getLeafElements(ICallStackElement group)
8888
return leafGroups;
8989
}
9090

91-
private static @NonNull List<ICallStackElement> getLeafElements(ICallGraphProvider cga) {
91+
private static @NonNull List<ICallStackElement> getLeafElements(ICallGraphProvider2 cga) {
9292
@SuppressWarnings("null")
9393
Collection<ICallStackElement> elements = cga.getCallGraph().getElements();
9494
List<ICallStackElement> leafGroups = new ArrayList<>();

analysis/org.eclipse.tracecompass.analysis.profiling.core.tests/src/org/eclipse/tracecompass/analysis/profiling/core/tests/callgraph2/AggregationTreeTest.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,14 @@
2424
import org.eclipse.core.runtime.IPath;
2525
import org.eclipse.core.runtime.IStatus;
2626
import org.eclipse.jdt.annotation.NonNull;
27+
import org.eclipse.tracecompass.analysis.profiling.core.base.ICallStackElement;
28+
import org.eclipse.tracecompass.analysis.profiling.core.callgraph.CallGraph;
29+
import org.eclipse.tracecompass.analysis.profiling.core.callgraph.ICallGraphProvider2;
2730
import org.eclipse.tracecompass.analysis.profiling.core.tests.ActivatorTest;
2831
import org.eclipse.tracecompass.analysis.profiling.core.tests.CallStackTestBase2;
2932
import org.eclipse.tracecompass.analysis.profiling.core.tests.stubs2.CallGraphAnalysisStub;
3033
import org.eclipse.tracecompass.internal.analysis.profiling.core.callgraph2.AggregatedCalledFunction;
3134
import org.eclipse.tracecompass.internal.analysis.profiling.core.model.ModelManager;
32-
import org.eclipse.tracecompass.internal.provisional.analysis.profiling.core.base.ICallStackElement;
33-
import org.eclipse.tracecompass.internal.provisional.analysis.profiling.core.callgraph.CallGraph;
34-
import org.eclipse.tracecompass.internal.provisional.analysis.profiling.core.callgraph.ICallGraphProvider;
3535
import org.eclipse.tracecompass.statesystem.core.ITmfStateSystemBuilder;
3636
import org.eclipse.tracecompass.statesystem.core.StateSystemFactory;
3737
import org.eclipse.tracecompass.statesystem.core.backend.IStateHistoryBackend;
@@ -106,7 +106,7 @@ private static List<ICallStackElement> getLeafElements(ICallStackElement group)
106106
return leafGroups;
107107
}
108108

109-
private static @NonNull List<ICallStackElement> getLeafElements(ICallGraphProvider cga) {
109+
private static @NonNull List<ICallStackElement> getLeafElements(ICallGraphProvider2 cga) {
110110
@SuppressWarnings("null")
111111
Collection<ICallStackElement> elements = cga.getCallGraph().getElements();
112112
List<ICallStackElement> leafGroups = new ArrayList<>();

analysis/org.eclipse.tracecompass.analysis.profiling.core.tests/src/org/eclipse/tracecompass/analysis/profiling/core/tests/callgraph2/CallGraphGroupByInstrumentedTest.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,18 +21,18 @@
2121
import java.util.Map;
2222

2323
import org.eclipse.jdt.annotation.NonNull;
24+
import org.eclipse.tracecompass.analysis.profiling.core.base.ICallStackElement;
25+
import org.eclipse.tracecompass.analysis.profiling.core.base.ICallStackSymbol;
26+
import org.eclipse.tracecompass.analysis.profiling.core.callgraph.CallGraph;
2427
import org.eclipse.tracecompass.analysis.profiling.core.tests.CallStackTestBase2;
2528
import org.eclipse.tracecompass.analysis.profiling.core.tests.stubs2.CallStackAnalysisStub;
29+
import org.eclipse.tracecompass.analysis.profiling.core.tree.ITree;
30+
import org.eclipse.tracecompass.analysis.profiling.core.tree.IWeightedTreeGroupDescriptor;
31+
import org.eclipse.tracecompass.analysis.profiling.core.tree.WeightedTree;
32+
import org.eclipse.tracecompass.analysis.profiling.core.tree.WeightedTreeGroupBy;
33+
import org.eclipse.tracecompass.analysis.profiling.core.tree.WeightedTreeSet;
2634
import org.eclipse.tracecompass.internal.analysis.profiling.core.callgraph2.AggregatedCalledFunction;
2735
import org.eclipse.tracecompass.internal.analysis.profiling.core.tree.AllGroupDescriptor;
28-
import org.eclipse.tracecompass.internal.analysis.profiling.core.tree.WeightedTree;
29-
import org.eclipse.tracecompass.internal.analysis.profiling.core.tree.WeightedTreeGroupBy;
30-
import org.eclipse.tracecompass.internal.analysis.profiling.core.tree.WeightedTreeSet;
31-
import org.eclipse.tracecompass.internal.provisional.analysis.profiling.core.base.ICallStackElement;
32-
import org.eclipse.tracecompass.internal.provisional.analysis.profiling.core.base.ICallStackSymbol;
33-
import org.eclipse.tracecompass.internal.provisional.analysis.profiling.core.callgraph.CallGraph;
34-
import org.eclipse.tracecompass.internal.provisional.analysis.profiling.core.tree.ITree;
35-
import org.eclipse.tracecompass.internal.provisional.analysis.profiling.core.tree.IWeightedTreeGroupDescriptor;
3636
import org.junit.Test;
3737

3838
import com.google.common.collect.ImmutableMap;

analysis/org.eclipse.tracecompass.analysis.profiling.core.tests/src/org/eclipse/tracecompass/analysis/profiling/core/tests/callgraph2/CallGraphWithCallStackAnalysisTest.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,18 +22,18 @@
2222
import java.util.Objects;
2323

2424
import org.eclipse.jdt.annotation.NonNull;
25+
import org.eclipse.tracecompass.analysis.profiling.core.base.ICallStackElement;
26+
import org.eclipse.tracecompass.analysis.profiling.core.callgraph.AggregatedCallSite;
27+
import org.eclipse.tracecompass.analysis.profiling.core.callgraph.CallGraph;
28+
import org.eclipse.tracecompass.analysis.profiling.core.model.ICpuTimeProvider;
29+
import org.eclipse.tracecompass.analysis.profiling.core.model.IHostModel;
2530
import org.eclipse.tracecompass.analysis.profiling.core.tests.CallStackTestBase2;
2631
import org.eclipse.tracecompass.analysis.profiling.core.tests.stubs2.CallStackAnalysisStub;
27-
import org.eclipse.tracecompass.internal.analysis.profiling.core.callgraph2.AggregatedCallSite;
2832
import org.eclipse.tracecompass.internal.analysis.profiling.core.callgraph2.AggregatedCalledFunction;
2933
import org.eclipse.tracecompass.internal.analysis.profiling.core.callgraph2.CallGraphAnalysis;
3034
import org.eclipse.tracecompass.internal.analysis.profiling.core.instrumented.InstrumentedCallStackElement;
3135
import org.eclipse.tracecompass.internal.analysis.profiling.core.model.CompositeHostModel;
3236
import org.eclipse.tracecompass.internal.analysis.profiling.core.model.ModelManager;
33-
import org.eclipse.tracecompass.internal.provisional.analysis.profiling.core.base.ICallStackElement;
34-
import org.eclipse.tracecompass.internal.provisional.analysis.profiling.core.callgraph.CallGraph;
35-
import org.eclipse.tracecompass.internal.provisional.analysis.profiling.core.model.ICpuTimeProvider;
36-
import org.eclipse.tracecompass.internal.provisional.analysis.profiling.core.model.IHostModel;
3737
import org.eclipse.tracecompass.tmf.core.exceptions.TmfAnalysisException;
3838
import org.eclipse.tracecompass.tmf.core.timestamp.TmfTimestamp;
3939
import org.junit.After;

analysis/org.eclipse.tracecompass.analysis.profiling.core.tests/src/org/eclipse/tracecompass/analysis/profiling/core/tests/callgraph2/CalledFunctionTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,12 @@
1919
import java.util.ArrayList;
2020

2121
import org.eclipse.jdt.annotation.NonNull;
22+
import org.eclipse.tracecompass.analysis.profiling.core.callgraph.ICalledFunction;
23+
import org.eclipse.tracecompass.analysis.profiling.core.model.IHostModel;
2224
import org.eclipse.tracecompass.internal.analysis.profiling.core.callgraph2.CalledFunction;
2325
import org.eclipse.tracecompass.internal.analysis.profiling.core.callgraph2.CalledFunctionFactory;
2426
import org.eclipse.tracecompass.internal.analysis.profiling.core.callgraph2.CalledStringFunction;
2527
import org.eclipse.tracecompass.internal.analysis.profiling.core.model.ModelManager;
26-
import org.eclipse.tracecompass.internal.provisional.analysis.profiling.core.callgraph.ICalledFunction;
27-
import org.eclipse.tracecompass.internal.provisional.analysis.profiling.core.model.IHostModel;
2828
import org.junit.After;
2929
import org.junit.Before;
3030
import org.junit.Test;

analysis/org.eclipse.tracecompass.analysis.profiling.core.tests/src/org/eclipse/tracecompass/analysis/profiling/core/tests/perf/CallStackAndGraphBenchmark.java

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,13 @@
2525
import org.eclipse.test.performance.Dimension;
2626
import org.eclipse.test.performance.Performance;
2727
import org.eclipse.test.performance.PerformanceMeter;
28-
import org.eclipse.tracecompass.internal.analysis.profiling.core.instrumented.InstrumentedCallStackAnalysis;
28+
import org.eclipse.tracecompass.analysis.profiling.core.callgraph.CallGraph;
29+
import org.eclipse.tracecompass.analysis.profiling.core.callgraph.ICallGraphProvider2;
30+
import org.eclipse.tracecompass.analysis.profiling.core.instrumented.IFlameChartProvider;
31+
import org.eclipse.tracecompass.analysis.profiling.core.instrumented.InstrumentedCallStackAnalysis;
32+
import org.eclipse.tracecompass.analysis.profiling.core.tree.IWeightedTreeGroupDescriptor;
33+
import org.eclipse.tracecompass.analysis.profiling.core.tree.WeightedTreeGroupBy;
2934
import org.eclipse.tracecompass.internal.analysis.profiling.core.tree.AllGroupDescriptor;
30-
import org.eclipse.tracecompass.internal.analysis.profiling.core.tree.WeightedTreeGroupBy;
31-
import org.eclipse.tracecompass.internal.provisional.analysis.profiling.core.callgraph.CallGraph;
32-
import org.eclipse.tracecompass.internal.provisional.analysis.profiling.core.callgraph.ICallGraphProvider;
33-
import org.eclipse.tracecompass.internal.provisional.analysis.profiling.core.instrumented.IFlameChartProvider;
34-
import org.eclipse.tracecompass.internal.provisional.analysis.profiling.core.tree.IWeightedTreeGroupDescriptor;
3535
import org.eclipse.tracecompass.segmentstore.core.ISegment;
3636
import org.eclipse.tracecompass.segmentstore.core.ISegmentStore;
3737
import org.eclipse.tracecompass.tmf.core.analysis.IAnalysisModule;
@@ -49,7 +49,7 @@
4949
* partial callgraph for time ranges and group by of call graph.
5050
*
5151
* This base class can be extended by any performance test for analysis that
52-
* implement {@link ICallGraphProvider}, whether or not it also implements
52+
* implement {@link ICallGraphProvider2}, whether or not it also implements
5353
* {@link IFlameChartProvider}.
5454
*
5555
* @author Geneviève Bastien
@@ -114,8 +114,8 @@ public void runCpuBenchmark() throws TmfTraceException {
114114
trace = getTrace();
115115
trace.traceOpened(new TmfTraceOpenedSignal(this, trace, null));
116116
IAnalysisModule analysisModule = TmfTraceUtils.getAnalysisModuleOfClass(trace, IAnalysisModule.class, fAnalysisId);
117-
assertTrue(analysisModule instanceof ICallGraphProvider);
118-
ICallGraphProvider callGraphModule = (ICallGraphProvider) analysisModule;
117+
assertTrue(analysisModule instanceof ICallGraphProvider2);
118+
ICallGraphProvider2 callGraphModule = (ICallGraphProvider2) analysisModule;
119119

120120
if (analysisModule instanceof IFlameChartProvider) {
121121
// Do the performance test for the instrumented call stack,
@@ -183,7 +183,7 @@ public void runCpuBenchmark() throws TmfTraceException {
183183
callgraphGroupByPm.commit();
184184
}
185185

186-
private static void benchmarkCallGraphProvider(ICallGraphProvider callGraphModule, PerformanceMeter callgraphBuildPm) {
186+
private static void benchmarkCallGraphProvider(ICallGraphProvider2 callGraphModule, PerformanceMeter callgraphBuildPm) {
187187
// Do the performance test for building the callgraph only
188188
callgraphBuildPm.start();
189189
TmfTestHelper.executeAnalysis((IAnalysisModule) callGraphModule);
@@ -219,7 +219,7 @@ private static void benchmarkInstrumented(IFlameChartProvider analysisModule, Pe
219219
// Getting the callgraph will schedule the analysis and wait for its
220220
// completion
221221
callgraphBuildPm.start();
222-
CallGraph callGraph = ((ICallGraphProvider) analysisModule).getCallGraph();
222+
CallGraph callGraph = ((ICallGraphProvider2) analysisModule).getCallGraph();
223223
callgraphBuildPm.stop();
224224

225225
assertTrue(!callGraph.getElements().isEmpty());

0 commit comments

Comments
 (0)