Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 200665 Details for
Bug 292408
[LTTng] Statistics View - Support for counters at Experiment level
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read
this important communication.
[patch]
Adding of a trace set folder
0001-Adding-a-trace-set-folder-counting-the-total-of-trac.patch (text/plain), 44.77 KB, created by
Mathieu Denis
on 2011-08-01 14:09:34 EDT
(
hide
)
Description:
Adding of a trace set folder
Filename:
MIME Type:
Creator:
Mathieu Denis
Created:
2011-08-01 14:09:34 EDT
Size:
44.77 KB
patch
obsolete
>From 13ad1924d1651ce688d15f47d4412c89f73a7a39 Mon Sep 17 00:00:00 2001 >From: ematden <mathieu.denis@ericsson.com> >Date: Fri, 29 Jul 2011 15:30:15 -0400 >Subject: [fix bug292408] -Adding a trace set folder counting the total of trace statistics in > case there is more than one traces. > >--- > .../lttng/ui/views/statistics/StatisticsView.java | 12 +- > .../statistics/model/KernelStatisticsData.java | 345 +++++++++++--------- > .../lttng/ui/views/statistics/model/Messages.java | 1 + > .../ui/views/statistics/model/messages.properties | 3 +- > 4 files changed, 206 insertions(+), 155 deletions(-) > >diff --git a/lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/statistics/StatisticsView.java b/lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/statistics/StatisticsView.java >index 809e87a..3102dcf 100644 >--- a/lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/statistics/StatisticsView.java >+++ b/lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/statistics/StatisticsView.java >@@ -154,7 +154,7 @@ public class StatisticsView extends AbsTimeUpdateView { > @Override > public String getText(Object element) { > StatisticsTreeNode node = (StatisticsTreeNode) element; >- if (folderLevels.contains(node.getKey())) { >+ if (folderLevels.contains(node.getKey()) || node.getKey() == KernelStatisticsData.HEADER_TRACE_SET_INT) { > return (KernelStatisticsData.getCategoryFromId(node.getKey().intValue())); > } else { > return node.getName(); >@@ -164,7 +164,7 @@ public class StatisticsView extends AbsTimeUpdateView { > @Override > public Image getImage(Object element) { > StatisticsTreeNode node = (StatisticsTreeNode) element; >- if (folderLevels.contains(node.getKey())) { >+ if (folderLevels.contains(node.getKey()) || node.getKey() == KernelStatisticsData.HEADER_TRACE_SET_INT) { > return PlatformUI.getWorkbench() > .getSharedImages().getImage( > ISharedImages.IMG_OBJ_FOLDER); >@@ -180,7 +180,13 @@ public class StatisticsView extends AbsTimeUpdateView { > StatisticsTreeNode n1 = (StatisticsTreeNode) e1; > StatisticsTreeNode n2 = (StatisticsTreeNode) e2; > >-// return n1.getKey().compareTo(n2.getKey()); >+ // For the total of traces, it gets displayed at the end of the column >+ if (n1.getKey() == KernelStatisticsData.HEADER_TRACE_SET_INT) { >+ return 1; >+ } else if (n2.getKey() == KernelStatisticsData.HEADER_TRACE_SET_INT) { >+ return -1; >+ } >+ > return n1.compareTo(n2); > } > }, null), >diff --git a/lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/statistics/model/KernelStatisticsData.java b/lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/statistics/model/KernelStatisticsData.java >index 52ba5ae..e4c1b5f 100644 >--- a/lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/statistics/model/KernelStatisticsData.java >+++ b/lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/statistics/model/KernelStatisticsData.java >@@ -31,6 +31,12 @@ import org.eclipse.linuxtools.lttng.state.model.LttngTraceState; > * <h4>Class that process the LTTng kernel events.</h4> > */ > public class KernelStatisticsData extends StatisticsData { >+ >+ /** >+ * <h4>Header for the trace set. Calculates the sum of all trace statistics for the experiment selected.</h4> >+ */ >+ public static final String HEADER_TRACE_SET = Messages.KernelStatisticsData_TraceSet; >+ public static final int HEADER_TRACE_SET_INT = -5; > /** > * <h4>Header for the CPU categories.</h4> > */ >@@ -94,32 +100,44 @@ public class KernelStatisticsData extends StatisticsData { > * <h4>Pre-created paths for type statistics, which will be filled for each > * relevant event.</h4> > */ >- private final FixedArray[] fTypedPaths = { new FixedArray(PLACE_HOLDER, HEADER_EVENT_TYPES_INT, PLACE_HOLDER), new FixedArray(PLACE_HOLDER, HEADER_MODES_INT, PLACE_HOLDER, HEADER_EVENT_TYPES_INT, PLACE_HOLDER), >+ private final FixedArray[] fTypedPaths = { >+ new FixedArray(PLACE_HOLDER, HEADER_EVENT_TYPES_INT, PLACE_HOLDER), >+ new FixedArray(PLACE_HOLDER, HEADER_MODES_INT, PLACE_HOLDER, HEADER_EVENT_TYPES_INT, PLACE_HOLDER), > new FixedArray(PLACE_HOLDER, HEADER_MODES_INT, PLACE_HOLDER, HEADER_SUBMODES_INT, PLACE_HOLDER, HEADER_EVENT_TYPES_INT, PLACE_HOLDER), > new FixedArray(PLACE_HOLDER, HEADER_PROCESSES_INT, PLACE_HOLDER, HEADER_EVENT_TYPES_INT, PLACE_HOLDER), > new FixedArray(PLACE_HOLDER, HEADER_PROCESSES_INT, PLACE_HOLDER, HEADER_CPUS_INT, PLACE_HOLDER, HEADER_EVENT_TYPES_INT, PLACE_HOLDER), > new FixedArray(PLACE_HOLDER, HEADER_PROCESSES_INT, PLACE_HOLDER, HEADER_CPUS_INT, PLACE_HOLDER, HEADER_FUNCTIONS_INT, PLACE_HOLDER, HEADER_EVENT_TYPES_INT, PLACE_HOLDER), >- new FixedArray(PLACE_HOLDER, HEADER_PROCESSES_INT, PLACE_HOLDER, HEADER_CPUS_INT, PLACE_HOLDER, HEADER_FUNCTIONS_INT, PLACE_HOLDER, HEADER_MODES_INT, PLACE_HOLDER, HEADER_EVENT_TYPES_INT, PLACE_HOLDER), >- new FixedArray(PLACE_HOLDER, HEADER_PROCESSES_INT, PLACE_HOLDER, HEADER_CPUS_INT, PLACE_HOLDER, HEADER_FUNCTIONS_INT, PLACE_HOLDER, HEADER_MODES_INT, PLACE_HOLDER, HEADER_SUBMODES_INT, PLACE_HOLDER, HEADER_EVENT_TYPES_INT, PLACE_HOLDER), >+ new FixedArray(PLACE_HOLDER, HEADER_PROCESSES_INT, PLACE_HOLDER, HEADER_CPUS_INT, PLACE_HOLDER, HEADER_FUNCTIONS_INT, PLACE_HOLDER, HEADER_MODES_INT, PLACE_HOLDER, HEADER_EVENT_TYPES_INT, >+ PLACE_HOLDER), >+ new FixedArray(PLACE_HOLDER, HEADER_PROCESSES_INT, PLACE_HOLDER, HEADER_CPUS_INT, PLACE_HOLDER, HEADER_FUNCTIONS_INT, PLACE_HOLDER, HEADER_MODES_INT, PLACE_HOLDER, HEADER_SUBMODES_INT, >+ PLACE_HOLDER, HEADER_EVENT_TYPES_INT, PLACE_HOLDER), > new FixedArray(PLACE_HOLDER, HEADER_PROCESSES_INT, PLACE_HOLDER, HEADER_CPUS_INT, PLACE_HOLDER, HEADER_MODES_INT, PLACE_HOLDER, HEADER_EVENT_TYPES_INT, PLACE_HOLDER), >- new FixedArray(PLACE_HOLDER, HEADER_PROCESSES_INT, PLACE_HOLDER, HEADER_CPUS_INT, PLACE_HOLDER, HEADER_MODES_INT, PLACE_HOLDER, HEADER_SUBMODES_INT, PLACE_HOLDER, HEADER_EVENT_TYPES_INT, PLACE_HOLDER), >+ new FixedArray(PLACE_HOLDER, HEADER_PROCESSES_INT, PLACE_HOLDER, HEADER_CPUS_INT, PLACE_HOLDER, HEADER_MODES_INT, PLACE_HOLDER, HEADER_SUBMODES_INT, PLACE_HOLDER, HEADER_EVENT_TYPES_INT, >+ PLACE_HOLDER), > new FixedArray(PLACE_HOLDER, HEADER_PROCESSES_INT, PLACE_HOLDER, HEADER_MODES_INT, PLACE_HOLDER, HEADER_EVENT_TYPES_INT, PLACE_HOLDER), > new FixedArray(PLACE_HOLDER, HEADER_PROCESSES_INT, PLACE_HOLDER, HEADER_MODES_INT, PLACE_HOLDER, HEADER_SUBMODES_INT, PLACE_HOLDER, HEADER_EVENT_TYPES_INT, PLACE_HOLDER), >- new FixedArray(PLACE_HOLDER, HEADER_CPUS_INT, PLACE_HOLDER, HEADER_EVENT_TYPES_INT, PLACE_HOLDER), new FixedArray(PLACE_HOLDER, HEADER_CPUS_INT, PLACE_HOLDER, HEADER_MODES_INT, PLACE_HOLDER, HEADER_EVENT_TYPES_INT, PLACE_HOLDER), >+ new FixedArray(PLACE_HOLDER, HEADER_CPUS_INT, PLACE_HOLDER, HEADER_EVENT_TYPES_INT, PLACE_HOLDER), >+ new FixedArray(PLACE_HOLDER, HEADER_CPUS_INT, PLACE_HOLDER, HEADER_MODES_INT, PLACE_HOLDER, HEADER_EVENT_TYPES_INT, PLACE_HOLDER), > new FixedArray(PLACE_HOLDER, HEADER_CPUS_INT, PLACE_HOLDER, HEADER_MODES_INT, PLACE_HOLDER, HEADER_SUBMODES_INT, PLACE_HOLDER, HEADER_EVENT_TYPES_INT, PLACE_HOLDER), }; > /** >- * <h4>Pre-created paths for other statistics, which will be filled for each >- * relevant event.</h4> >+ * <h4>Pre-created paths for other statistics, which will be filled for each relevant event.</h4> > */ >- final FixedArray[] fNormalPaths = { new FixedArray(PLACE_HOLDER), new FixedArray(PLACE_HOLDER, HEADER_MODES_INT, PLACE_HOLDER), new FixedArray(PLACE_HOLDER, HEADER_MODES_INT, PLACE_HOLDER, HEADER_SUBMODES_INT, PLACE_HOLDER), >- new FixedArray(PLACE_HOLDER, HEADER_PROCESSES_INT, PLACE_HOLDER), new FixedArray(PLACE_HOLDER, HEADER_PROCESSES_INT, PLACE_HOLDER, HEADER_CPUS_INT, PLACE_HOLDER), >+ final FixedArray[] fNormalPaths = { >+ new FixedArray(PLACE_HOLDER), >+ new FixedArray(PLACE_HOLDER, HEADER_MODES_INT, PLACE_HOLDER), >+ new FixedArray(PLACE_HOLDER, HEADER_MODES_INT, PLACE_HOLDER, HEADER_SUBMODES_INT, PLACE_HOLDER), >+ new FixedArray(PLACE_HOLDER, HEADER_PROCESSES_INT, PLACE_HOLDER), >+ new FixedArray(PLACE_HOLDER, HEADER_PROCESSES_INT, PLACE_HOLDER, HEADER_CPUS_INT, PLACE_HOLDER), > new FixedArray(PLACE_HOLDER, HEADER_PROCESSES_INT, PLACE_HOLDER, HEADER_CPUS_INT, PLACE_HOLDER, HEADER_FUNCTIONS_INT, PLACE_HOLDER), > new FixedArray(PLACE_HOLDER, HEADER_PROCESSES_INT, PLACE_HOLDER, HEADER_CPUS_INT, PLACE_HOLDER, HEADER_FUNCTIONS_INT, PLACE_HOLDER, HEADER_MODES_INT, PLACE_HOLDER), >- new FixedArray(PLACE_HOLDER, HEADER_PROCESSES_INT, PLACE_HOLDER, HEADER_CPUS_INT, PLACE_HOLDER, HEADER_FUNCTIONS_INT, PLACE_HOLDER, HEADER_MODES_INT, PLACE_HOLDER, HEADER_SUBMODES_INT, PLACE_HOLDER), >+ new FixedArray(PLACE_HOLDER, HEADER_PROCESSES_INT, PLACE_HOLDER, HEADER_CPUS_INT, PLACE_HOLDER, HEADER_FUNCTIONS_INT, PLACE_HOLDER, HEADER_MODES_INT, PLACE_HOLDER, HEADER_SUBMODES_INT, >+ PLACE_HOLDER), > new FixedArray(PLACE_HOLDER, HEADER_PROCESSES_INT, PLACE_HOLDER, HEADER_CPUS_INT, PLACE_HOLDER, HEADER_MODES_INT, PLACE_HOLDER), > new FixedArray(PLACE_HOLDER, HEADER_PROCESSES_INT, PLACE_HOLDER, HEADER_CPUS_INT, PLACE_HOLDER, HEADER_MODES_INT, PLACE_HOLDER, HEADER_SUBMODES_INT, PLACE_HOLDER), >- new FixedArray(PLACE_HOLDER, HEADER_PROCESSES_INT, PLACE_HOLDER, HEADER_MODES_INT, PLACE_HOLDER), new FixedArray(PLACE_HOLDER, HEADER_PROCESSES_INT, PLACE_HOLDER, HEADER_MODES_INT, PLACE_HOLDER, HEADER_SUBMODES_INT, PLACE_HOLDER), >- new FixedArray(PLACE_HOLDER, HEADER_CPUS_INT, PLACE_HOLDER), new FixedArray(PLACE_HOLDER, HEADER_CPUS_INT, PLACE_HOLDER, HEADER_MODES_INT, PLACE_HOLDER), >+ new FixedArray(PLACE_HOLDER, HEADER_PROCESSES_INT, PLACE_HOLDER, HEADER_MODES_INT, PLACE_HOLDER), >+ new FixedArray(PLACE_HOLDER, HEADER_PROCESSES_INT, PLACE_HOLDER, HEADER_MODES_INT, PLACE_HOLDER, HEADER_SUBMODES_INT, PLACE_HOLDER), >+ new FixedArray(PLACE_HOLDER, HEADER_CPUS_INT, PLACE_HOLDER), >+ new FixedArray(PLACE_HOLDER, HEADER_CPUS_INT, PLACE_HOLDER, HEADER_MODES_INT, PLACE_HOLDER), > new FixedArray(PLACE_HOLDER, HEADER_CPUS_INT, PLACE_HOLDER, HEADER_MODES_INT, PLACE_HOLDER, HEADER_SUBMODES_INT, PLACE_HOLDER), }; > > /** >@@ -146,12 +164,10 @@ public class KernelStatisticsData extends StatisticsData { > // //////////// Adding category sets > keys.put(HEADER_PROCESSES_INT, new HashSet<Integer>()); > keys.put(HEADER_MODES_INT, new HashSet<Integer>()); >- keys.put(HEADER_CPUS_INT, new HashSet<Integer>(4)); // Over 4 CPUs is >- // not common >+ keys.put(HEADER_CPUS_INT, new HashSet<Integer>(4)); // Over 4 CPUs is not common > keys.put(HEADER_SUBMODES_INT, new HashSet<Integer>()); > keys.put(HEADER_EVENT_TYPES_INT, new HashSet<Integer>()); >- keys.put(HEADER_FUNCTIONS_INT, new HashSet<Integer>(4)); // Seems to be >- // always one. >+ keys.put(HEADER_FUNCTIONS_INT, new HashSet<Integer>(4)); // Seems to be always one. > > // /////////// Adding value sets > // Under a trace >@@ -199,8 +215,7 @@ public class KernelStatisticsData extends StatisticsData { > /* > * (non-Javadoc) > * >- * @see >- * org.eclipse.linuxtools.lttng.ui.views.statistics.model.StatisticsData >+ * @see org.eclipse.linuxtools.lttng.ui.views.statistics.model.StatisticsData > * #endTraceset(org.eclipse.linuxtools.lttng.event.LttngEvent, > * org.eclipse.linuxtools.lttng.state.model.LttngTraceState) > */ >@@ -257,30 +272,14 @@ public class KernelStatisticsData extends StatisticsData { > result.add(node); > } > } else {// If we are at a value >- for (int value : getKeys().get((path.get(path.size() - 2) * NODE))) { // Search >- // the >- // parent >- // name >- // + >- // NODE >+ for (int value : getKeys().get((path.get(path.size() - 2) * NODE))) { // Search the parent name + NODE > StatisticsTreeNode node = getOrCreate(path.append(value)); > node.setName(getCategoryFromId(value)); > result.add(node); > } > >- if (path.size() == 5 && path.get(3) == HEADER_CPUS_INT) { // Special >- // the >- // Functions >- // is just >- // there. >- // We want >- // the >- // fourth >- // element >- // but it >- // start >- // at 0. >- // So #3 >+ if (path.size() == 5 && path.get(3) == HEADER_CPUS_INT) { // Special the Functions is just there. We want >+ // the fourth element but it start at 0. So #3 > StatisticsTreeNode node = getOrCreate(path.append(HEADER_FUNCTIONS_INT)); > node.setName(getCategoryFromId(HEADER_FUNCTIONS_INT)); > result.add(node); >@@ -299,12 +298,7 @@ public class KernelStatisticsData extends StatisticsData { > * State of the trace for this event. > * @return Array of FixedArray representing the paths. > */ >- private FixedArray[] getNormalPaths(LttngEvent event, LttngTraceState traceState) { >- int trace = (int) traceState.getContext().getIdentifier(); // No need >- // for the >- // identifier >- // (already >- // applied) >+ private FixedArray[] getNormalPaths(LttngEvent event, LttngTraceState traceState, int traceID) { > Long cpu = event.getCpuId(); > int cpus = cpu.intValue() | LttngConstants.STATS_CPU_ID; > LttngProcessState process = traceState.getRunning_process().get(cpu); >@@ -319,35 +313,35 @@ public class KernelStatisticsData extends StatisticsData { > */ > > // FixedArray(trace) >- fNormalPaths[0].set(0, trace); >+ fNormalPaths[0].set(0, traceID); > > // FixedArray(trace,HEADER_MODES_INT,mode) >- fNormalPaths[1].set(0, trace); >+ fNormalPaths[1].set(0, traceID); > fNormalPaths[1].set(2, mode); > > // FixedArray(trace,HEADER_MODES_INT,mode,HEADER_SUBMODES_INT,submode) >- fNormalPaths[2].set(0, trace); >+ fNormalPaths[2].set(0, traceID); > fNormalPaths[2].set(2, mode); > fNormalPaths[2].set(4, submode); > > // FixedArray(trace,HEADER_PROCESSES_INT,processName) >- fNormalPaths[3].set(0, trace); >+ fNormalPaths[3].set(0, traceID); > fNormalPaths[3].set(2, processName); > > // FixedArray(trace,HEADER_PROCESSES_INT,processName,HEADER_CPUS_INT,cpus) >- fNormalPaths[4].set(0, trace); >+ fNormalPaths[4].set(0, traceID); > fNormalPaths[4].set(2, processName); > fNormalPaths[4].set(4, cpus); > > // FixedArray(trace,HEADER_PROCESSES_INT,processName,HEADER_CPUS_INT,cpus,HEADER_FUNCTIONS_INT,function) >- fNormalPaths[5].set(0, trace); >+ fNormalPaths[5].set(0, traceID); > fNormalPaths[5].set(2, processName); > fNormalPaths[5].set(4, cpus); > fNormalPaths[5].set(6, function); > > // FixedArray(trace,HEADER_PROCESSES_INT,processName,HEADER_CPUS_INT,cpus,HEADER_FUNCTIONS_INT,function, > // HEADER_MODES_INT, mode) >- fNormalPaths[6].set(0, trace); >+ fNormalPaths[6].set(0, traceID); > fNormalPaths[6].set(2, processName); > fNormalPaths[6].set(4, cpus); > fNormalPaths[6].set(6, function); >@@ -355,7 +349,7 @@ public class KernelStatisticsData extends StatisticsData { > > // FixedArray(trace,HEADER_PROCESSES_INT,processName,HEADER_CPUS_INT,cpus,HEADER_FUNCTIONS_INT,function, > // HEADER_MODES_INT, mode, HEADER_SUBMODES_INT, submode) >- fNormalPaths[7].set(0, trace); >+ fNormalPaths[7].set(0, traceID); > fNormalPaths[7].set(2, processName); > fNormalPaths[7].set(4, cpus); > fNormalPaths[7].set(6, function); >@@ -363,40 +357,40 @@ public class KernelStatisticsData extends StatisticsData { > fNormalPaths[7].set(10, submode); > > // FixedArray(trace,HEADER_PROCESSES_INT,processName,HEADER_CPUS_INT,cpus,HEADER_MODES_INT,mode) >- fNormalPaths[8].set(0, trace); >+ fNormalPaths[8].set(0, traceID); > fNormalPaths[8].set(2, processName); > fNormalPaths[8].set(4, cpus); > fNormalPaths[8].set(6, mode); > > // FixedArray(trace,HEADER_PROCESSES_INT,processName,HEADER_CPUS_INT,cpus,HEADER_MODES_INT,mode,HEADER_SUBMODES_INT,submode) >- fNormalPaths[9].set(0, trace); >+ fNormalPaths[9].set(0, traceID); > fNormalPaths[9].set(2, processName); > fNormalPaths[9].set(4, cpus); > fNormalPaths[9].set(6, mode); > fNormalPaths[9].set(8, submode); > > // FixedArray(trace,HEADER_PROCESSES_INT,processName,HEADER_MODES_INT,mode) >- fNormalPaths[10].set(0, trace); >+ fNormalPaths[10].set(0, traceID); > fNormalPaths[10].set(2, processName); > fNormalPaths[10].set(4, mode); > > // FixedArray(trace,HEADER_PROCESSES_INT,processName,HEADER_MODES_INT,mode,HEADER_SUBMODES_INT,submode) >- fNormalPaths[11].set(0, trace); >+ fNormalPaths[11].set(0, traceID); > fNormalPaths[11].set(2, processName); > fNormalPaths[11].set(4, mode); > fNormalPaths[11].set(6, submode); > > // FixedArray(trace,HEADER_CPUS_INT,cpus) >- fNormalPaths[12].set(0, trace); >+ fNormalPaths[12].set(0, traceID); > fNormalPaths[12].set(2, cpus); > > // FixedArray(trace,HEADER_CPUS_INT,cpus,HEADER_MODES_INT,mode) >- fNormalPaths[13].set(0, trace); >+ fNormalPaths[13].set(0, traceID); > fNormalPaths[13].set(2, cpus); > fNormalPaths[13].set(4, mode); > > // FixedArray(trace,HEADER_CPUS_INT,cpus,HEADER_MODES_INT,mode,HEADER_SUBMODES_INT,submode) >- fNormalPaths[14].set(0, trace); >+ fNormalPaths[14].set(0, traceID); > fNormalPaths[14].set(2, cpus); > fNormalPaths[14].set(4, mode); > fNormalPaths[14].set(6, submode); >@@ -414,12 +408,7 @@ public class KernelStatisticsData extends StatisticsData { > * State of the trace for this event. > * @return Array of FixedArray representing the paths. > */ >- private FixedArray[] getTypePaths(LttngEvent event, LttngTraceState traceState) { >- int trace = (int) traceState.getContext().getIdentifier(); // No need >- // for the >- // identifier >- // (already >- // applied) >+ private FixedArray[] getTypePaths(LttngEvent event, LttngTraceState traceState, int traceID) { > Long cpu = event.getCpuId(); > int cpus = cpu.intValue() | LttngConstants.STATS_CPU_ID; > LttngProcessState process = traceState.getRunning_process().get(cpu); >@@ -435,40 +424,40 @@ public class KernelStatisticsData extends StatisticsData { > */ > > // FixedArray(trace,HEADER_EVENT_TYPES_INT,type) >- fTypedPaths[0].set(0, trace); >+ fTypedPaths[0].set(0, traceID); > fTypedPaths[0].set(2, type); > > // FixedArray(trace,HEADER_MODES_INT,mode,HEADER_EVENT_TYPES_INT,type) >- fTypedPaths[1].set(0, trace); >+ fTypedPaths[1].set(0, traceID); > fTypedPaths[1].set(2, mode); > fTypedPaths[1].set(4, type); > > // FixedArray(trace,HEADER_MODES_INT,mode,HEADER_SUBMODES_INT,submode,HEADER_EVENT_TYPES_INT,type) >- fTypedPaths[2].set(0, trace); >+ fTypedPaths[2].set(0, traceID); > fTypedPaths[2].set(2, mode); > fTypedPaths[2].set(4, submode); > fTypedPaths[2].set(6, type); > > // FixedArray(trace,HEADER_PROCESSES_INT,processName,HEADER_EVENT_TYPES_INT,type) >- fTypedPaths[3].set(0, trace); >+ fTypedPaths[3].set(0, traceID); > fTypedPaths[3].set(2, processName); > fTypedPaths[3].set(4, type); > > // FixedArray(trace,HEADER_PROCESSES_INT,processName,HEADER_CPUS_INT,cpus,HEADER_EVENT_TYPES_INT,type) >- fTypedPaths[4].set(0, trace); >+ fTypedPaths[4].set(0, traceID); > fTypedPaths[4].set(2, processName); > fTypedPaths[4].set(4, cpus); > fTypedPaths[4].set(6, type); > > // FixedArray(trace,HEADER_PROCESSES_INT,processName,HEADER_CPUS_INT,cpus,HEADER_FUNCTIONS_INT,function,HEADER_EVENT_TYPES_INT,type) >- fTypedPaths[5].set(0, trace); >+ fTypedPaths[5].set(0, traceID); > fTypedPaths[5].set(2, processName); > fTypedPaths[5].set(4, cpus); > fTypedPaths[5].set(6, function); > fTypedPaths[5].set(8, type); > > // FixedArray(trace,HEADER_PROCESSES_INT,processName,HEADER_CPUS_INT,cpus,HEADER_FUNCTIONS_INT,function,HEADER_MODES_INT,mode,HEADER_EVENT_TYPES_INT,type) >- fTypedPaths[6].set(0, trace); >+ fTypedPaths[6].set(0, traceID); > fTypedPaths[6].set(2, processName); > fTypedPaths[6].set(4, cpus); > fTypedPaths[6].set(6, function); >@@ -477,7 +466,7 @@ public class KernelStatisticsData extends StatisticsData { > > // FixedArray(trace,HEADER_PROCESSES_INT,processName,HEADER_CPUS_INT,cpus,HEADER_FUNCTIONS_INT,function, > // HEADER_MODES_INT,mode,HEADER_SUBMODES_INT,submode,HEADER_EVENT_TYPES_INT,type) >- fTypedPaths[7].set(0, trace); >+ fTypedPaths[7].set(0, traceID); > fTypedPaths[7].set(2, processName); > fTypedPaths[7].set(4, cpus); > fTypedPaths[7].set(6, function); >@@ -486,14 +475,14 @@ public class KernelStatisticsData extends StatisticsData { > fTypedPaths[7].set(12, type); > > // FixedArray(trace,HEADER_PROCESSES_INT,processName,HEADER_CPUS_INT,cpus,HEADER_MODES_INT,mode,HEADER_EVENT_TYPES_INT,type) >- fTypedPaths[8].set(0, trace); >+ fTypedPaths[8].set(0, traceID); > fTypedPaths[8].set(2, processName); > fTypedPaths[8].set(4, cpus); > fTypedPaths[8].set(6, mode); > fTypedPaths[8].set(8, type); > > // FixedArray(trace,HEADER_PROCESSES_INT,processName,HEADER_CPUS_INT,cpus,HEADER_MODES_INT,mode,HEADER_SUBMODES_INT,submode,HEADER_EVENT_TYPES_INT,type) >- fTypedPaths[9].set(0, trace); >+ fTypedPaths[9].set(0, traceID); > fTypedPaths[9].set(2, processName); > fTypedPaths[9].set(4, cpus); > fTypedPaths[9].set(6, mode); >@@ -501,31 +490,31 @@ public class KernelStatisticsData extends StatisticsData { > fTypedPaths[9].set(10, type); > > // FixedArray(trace,HEADER_PROCESSES_INT,processName,HEADER_MODES_INT,mode,HEADER_EVENT_TYPES_INT,type) >- fTypedPaths[10].set(0, trace); >+ fTypedPaths[10].set(0, traceID); > fTypedPaths[10].set(2, processName); > fTypedPaths[10].set(4, mode); > fTypedPaths[10].set(6, type); > > // FixedArray(trace,HEADER_PROCESSES_INT,processName,HEADER_MODES_INT,mode,HEADER_SUBMODES_INT,submode,HEADER_EVENT_TYPES_INT,type) >- fTypedPaths[11].set(0, trace); >+ fTypedPaths[11].set(0, traceID); > fTypedPaths[11].set(2, processName); > fTypedPaths[11].set(4, mode); > fTypedPaths[11].set(6, submode); > fTypedPaths[11].set(8, type); > > // FixedArray(trace,HEADER_CPUS_INT,cpus,HEADER_EVENT_TYPES_INT,type) >- fTypedPaths[12].set(0, trace); >+ fTypedPaths[12].set(0, traceID); > fTypedPaths[12].set(2, cpus); > fTypedPaths[12].set(4, type); > > // FixedArray(trace,HEADER_CPUS_INT,cpus,HEADER_MODES_INT,mode,HEADER_EVENT_TYPES_INT,type) >- fTypedPaths[13].set(0, trace); >+ fTypedPaths[13].set(0, traceID); > fTypedPaths[13].set(2, cpus); > fTypedPaths[13].set(4, mode); > fTypedPaths[13].set(6, type); > > // FixedArray(trace,HEADER_CPUS_INT,cpus,HEADER_MODES_INT,mode,HEADER_SUBMODES_INT,submode,HEADER_EVENT_TYPES_INT,type) >- fTypedPaths[14].set(0, trace); >+ fTypedPaths[14].set(0, traceID); > fTypedPaths[14].set(2, cpus); > fTypedPaths[14].set(4, mode); > fTypedPaths[14].set(6, submode); >@@ -533,21 +522,69 @@ public class KernelStatisticsData extends StatisticsData { > > return fTypedPaths; > } >+ >+ /** >+ * <h4>Get the event standard paths for the trace set.</h4> >+ * <p> >+ * <b>Warning!</b> This method calls the method getNormalPaths. The reference of the returned array are to the same >+ * object. Therefore, it may be necessary to perform a copy of each element if you want to call both method at the >+ * same time. >+ * </p> >+ * >+ * @see KernelStatisticsData#getNormalPaths(LttngEvent, LttngTraceState, int) >+ * @param event >+ * Event to get the path for. >+ * @param traceState >+ * State of the trace for this event. >+ * @return Array of FixedArray representing the paths. >+ */ >+ FixedArray[] getTraceSetNormalPaths(LttngEvent event, LttngTraceState traceState) { >+ FixedArray[] globalNormalPaths = getNormalPaths(event, traceState, KernelStatisticsData.HEADER_TRACE_SET_INT); >+ return globalNormalPaths; >+ } >+ >+ /** >+ * <h4>Get the event types paths for the trace set.</h4> >+ * <p> >+ * <b>Warning!</b> This method calls the method getTypePaths. The reference of the returned array are to the same >+ * object. Therefore, it may be necessary to perform a copy of each element if you want to call both method at the >+ * same time. >+ * </p> >+ * >+ * @see KernelStatisticsData#getTypePaths(LttngEvent, LttngTraceState, int) >+ * @param event >+ * Event to get the path for. >+ * @param traceState >+ * State of the trace for this event. >+ * @return Array of FixedArray representing the paths. >+ */ >+ private FixedArray[] getTraceSetTypePaths(LttngEvent event, LttngTraceState traceState) { >+ FixedArray[] globalTypePaths = getTypePaths(event, traceState, KernelStatisticsData.HEADER_TRACE_SET_INT); >+ return globalTypePaths; >+ } > > /* > * (non-Javadoc) > * >- * @see >- * org.eclipse.linuxtools.lttng.ui.views.statistics.model.StatisticsData >+ * @see org.eclipse.linuxtools.lttng.ui.views.statistics.model.StatisticsData > * #process_exit(org.eclipse.linuxtools.lttng.event.LttngEvent, > * org.eclipse.linuxtools.lttng.state.model.LttngTraceState) > */ > @Override > public void process_exit(LttngEvent event, LttngTraceState traceState) { >- FixedArray[] paths = getNormalPaths(event, traceState); > Long cpu = event.getCpuId(); > LttngProcessState process = traceState.getRunning_process().get(cpu); >+ >+ FixedArray[] paths = getNormalPaths(event, traceState, (int) traceState.getContext().getIdentifier()); >+ for (int j = 0; j < paths.length; ++j) { >+ StatisticsTreeNode node = getOrCreate(paths[j], event, traceState, j, false); > >+ if (!process.getState().getExec_mode().equals(ExecutionMode.LTTV_STATE_MODE_UNKNOWN)) { >+ node.getValue().cpuTime += event.getTimestamp().getValue() - process.getState().getChange_LttTime(); >+ } >+ } >+ >+ paths = getTraceSetNormalPaths(event, traceState); > for (int j = 0; j < paths.length; ++j) { > StatisticsTreeNode node = getOrCreate(paths[j], event, traceState, j, false); > >@@ -562,70 +599,75 @@ public class KernelStatisticsData extends StatisticsData { > /* > * (non-Javadoc) > * >- * @see >- * org.eclipse.linuxtools.lttng.ui.views.statistics.model.StatisticsData >+ * @see org.eclipse.linuxtools.lttng.ui.views.statistics.model.StatisticsData > * #increase(org.eclipse.linuxtools.lttng.event.LttngEvent, > * org.eclipse.linuxtools.lttng.state.model.LttngTraceState, int) > */ > @Override > public void increase(LttngEvent event, LttngTraceState traceState, int values) { >- FixedArray[] paths = getNormalPaths(event, traceState); >- Long cpu = event.getCpuId(); >- LttngProcessState process = traceState.getRunning_process().get(cpu); >- >- for (int j = 0; j < paths.length; ++j) { >- StatisticsTreeNode node = getOrCreate(paths[j], event, traceState, j, false); >- >- if ((values & Values.CPU_TIME) != 0) { >- // TODO Uncomment if the event after process_exit need to be >- // count. >- if ((process.getState().getProc_status().equals(ProcessStatus.LTTV_STATE_RUN) /* >- * || >- * process >- * . >- * getState >- * ( >- * ) >- * . >- * getProc_status >- * ( >- * ) >- * . >- * equals >- * ( >- * ProcessStatus >- * . >- * LTTV_STATE_EXIT >- * ) >- */) && !process.getState().getExec_mode().equals(ExecutionMode.LTTV_STATE_MODE_UNKNOWN)) { >- node.getValue().cpuTime += event.getTimestamp().getValue() - process.getState().getChange_LttTime(); >- } >+ try { >+ int j; // Increment >+ Long cpu = event.getCpuId(); >+ LttngProcessState process = traceState.getRunning_process().get(cpu); >+ >+ FixedArray[] paths = getNormalPaths(event, traceState, (int) traceState.getContext().getIdentifier()); >+ // Clone the paths to avoid conflict with the TraceSetPaths >+ FixedArray[] clonedPaths = new FixedArray[paths.length]; >+ for (j = 0; j < clonedPaths.length; ++j) { >+ clonedPaths[j] = (FixedArray) paths[j].clone(); > } >- if ((values & Values.CUMULATIVE_CPU_TIME) != 0) { >- if (!process.getState().getExec_mode().equals(ExecutionMode.LTTV_STATE_MODE_UNKNOWN)) { >- long cumulativeCpuTime = process.getState().getCum_cpu_time(); >- long delta = event.getTimestamp().getValue() - process.getState().getEntry_LttTime(); >- process.getState().setCum_cpu_time(cumulativeCpuTime + delta); >- node.getValue().cumulativeCpuTime += process.getState().getCum_cpu_time(); >- } else if (process.getState().getProc_status().equals(ProcessStatus.LTTV_STATE_RUN) && !process.getState().getExec_mode().equals(ExecutionMode.LTTV_STATE_MODE_UNKNOWN)) { >- long cumulativeCpuTime = process.getState().getCum_cpu_time(); >- long delta = event.getTimestamp().getValue() - process.getState().getChange_LttTime(); >- process.getState().setCum_cpu_time(cumulativeCpuTime + delta); >- node.getValue().cumulativeCpuTime += process.getState().getCum_cpu_time(); >+ FixedArray[] traceSetPaths = getTraceSetNormalPaths(event, traceState); >+ for (j = 0; j < clonedPaths.length; ++j) { >+ StatisticsTreeNode node = getOrCreate(clonedPaths[j], event, traceState, j, false); >+ StatisticsTreeNode traceSetNode = getOrCreate(traceSetPaths[j], event, traceState, j, false); >+ >+ if ((values & Values.CPU_TIME) != 0) { >+ // TODO Uncomment if the event after process_exit need to be count. >+ if ((process.getState().getProc_status().equals(ProcessStatus.LTTV_STATE_RUN) /* >+ * || process . >+ * getState ( ) . >+ * getProc_status ( ) >+ * . equals ( >+ * ProcessStatus . >+ * LTTV_STATE_EXIT ) >+ */) && !process.getState().getExec_mode().equals(ExecutionMode.LTTV_STATE_MODE_UNKNOWN)) { >+ node.getValue().cpuTime += event.getTimestamp().getValue() - process.getState().getChange_LttTime(); >+ traceSetNode.getValue().cpuTime += event.getTimestamp().getValue() - process.getState().getChange_LttTime(); >+ } > } >- } >- if ((values & Values.ELAPSED_TIME) != 0) { >- if (!process.getState().getExec_mode().equals(ExecutionMode.LTTV_STATE_MODE_UNKNOWN)) { >- node.getValue().elapsedTime += event.getTimestamp().getValue() - process.getState().getEntry_LttTime(); >+ if ((values & Values.CUMULATIVE_CPU_TIME) != 0) { >+ if (!process.getState().getExec_mode().equals(ExecutionMode.LTTV_STATE_MODE_UNKNOWN)) { >+ long cumulativeCpuTime = process.getState().getCum_cpu_time(); >+ long delta = event.getTimestamp().getValue() - process.getState().getEntry_LttTime(); >+ long newCumulativeCpuTime = cumulativeCpuTime + delta; >+ process.getState().setCum_cpu_time(newCumulativeCpuTime); >+ node.getValue().cumulativeCpuTime += newCumulativeCpuTime; >+ traceSetNode.getValue().cumulativeCpuTime += newCumulativeCpuTime; >+ } else if (process.getState().getProc_status().equals(ProcessStatus.LTTV_STATE_RUN) && !process.getState().getExec_mode().equals(ExecutionMode.LTTV_STATE_MODE_UNKNOWN)) { >+ long cumulativeCpuTime = process.getState().getCum_cpu_time(); >+ long delta = event.getTimestamp().getValue() - process.getState().getChange_LttTime(); >+ long newCumulativeCpuTime = cumulativeCpuTime + delta; >+ process.getState().setCum_cpu_time(newCumulativeCpuTime); >+ node.getValue().cumulativeCpuTime += newCumulativeCpuTime; >+ traceSetNode.getValue().cumulativeCpuTime += newCumulativeCpuTime; >+ } > } >- } >- if ((values & Values.STATE_CUMULATIVE_CPU_TIME) != 0) { >- if (process.getState().getProc_status().equals(ProcessStatus.LTTV_STATE_RUN) && !process.getState().getExec_mode().equals(ExecutionMode.LTTV_STATE_MODE_UNKNOWN)) { >- long cumulativeCpuTime = process.getState().getCum_cpu_time(); >- long delta = event.getTimestamp().getValue() - process.getState().getChange_LttTime(); >- process.getState().setCum_cpu_time(cumulativeCpuTime + delta); >+ if ((values & Values.ELAPSED_TIME) != 0) { >+ if (!process.getState().getExec_mode().equals(ExecutionMode.LTTV_STATE_MODE_UNKNOWN)) { >+ node.getValue().elapsedTime += event.getTimestamp().getValue() - process.getState().getEntry_LttTime(); >+ traceSetNode.getValue().elapsedTime += event.getTimestamp().getValue() - process.getState().getEntry_LttTime(); >+ } >+ } >+ if ((values & Values.STATE_CUMULATIVE_CPU_TIME) != 0) { >+ if (process.getState().getProc_status().equals(ProcessStatus.LTTV_STATE_RUN) && !process.getState().getExec_mode().equals(ExecutionMode.LTTV_STATE_MODE_UNKNOWN)) { >+ long cumulativeCpuTime = process.getState().getCum_cpu_time(); >+ long delta = event.getTimestamp().getValue() - process.getState().getChange_LttTime(); >+ process.getState().setCum_cpu_time(cumulativeCpuTime + delta); >+ } > } > } >+ } catch (Exception e) { >+ e.printStackTrace(); > } > } > >@@ -639,23 +681,28 @@ public class KernelStatisticsData extends StatisticsData { > */ > @Override > public void registerEvent(LttngEvent event, LttngTraceState traceState) { >- FixedArray[] paths = getNormalPaths(event, traceState); >+ FixedArray[] paths = getNormalPaths(event, traceState, (int) traceState.getContext().getIdentifier()); > for (int i = 0; i < paths.length; ++i) > ++(getOrCreate(paths[i], event, traceState, i, false).getValue().nbEvents); > >- paths = getTypePaths(event, traceState); >+ paths = getTypePaths(event, traceState, (int) traceState.getContext().getIdentifier()); > for (int i = 0; i < paths.length; ++i) > ++(getOrCreate(paths[i], event, traceState, i, true).getValue().nbEvents); > >+ paths = getTraceSetNormalPaths(event, traceState); >+ for (int i = 0; i < paths.length; ++i) >+ ++(getOrCreate(paths[i], event, traceState, i, false).getValue().nbEvents); >+ >+ paths = getTraceSetTypePaths(event, traceState); >+ for (int i = 0; i < paths.length; ++i) >+ ++(getOrCreate(paths[i], event, traceState, i, true).getValue().nbEvents); >+ > // last_ = event; // TODO Used by endTraceset > } > > /* > * (non-Javadoc) >- * >- * @see >- * org.eclipse.linuxtools.lttng.ui.views.statistics.model.StatisticsData >- * #registerName >+ * @see org.eclipse.linuxtools.lttng.ui.views.statistics.model.StatisticsData #registerName > * (org.eclipse.linuxtools.lttng.ui.views.statistics.model.FixedArray) > */ > @Override >@@ -708,8 +755,7 @@ public class KernelStatisticsData extends StatisticsData { > } > > /** >- * <h4>Get the name to be displayed for other statistics than type >- * statistics</h4> >+ * <h4>Get the name to be displayed for other statistics than type statistics</h4> > * > * @param event > * The current event >@@ -779,8 +825,8 @@ public class KernelStatisticsData extends StatisticsData { > * > * @param process > * The process. >- * @return The name of the process. //TODO Adding the creation time of the >- * process may be needed to differentiate two process. >+ * @return The name of the process. // TODO Adding the creation time of the process may be needed to differentiate >+ * // two process. > */ > private String getProcessName(LttngProcessState process) { > if (process.getPid() == -1) >@@ -814,13 +860,14 @@ public class KernelStatisticsData extends StatisticsData { > return KernelStatisticsData.HEADER_PROCESSES; > case KernelStatisticsData.HEADER_SUBMODES_INT: > return KernelStatisticsData.HEADER_SUBMODES; >+ case KernelStatisticsData.HEADER_TRACE_SET_INT: >+ return KernelStatisticsData.HEADER_TRACE_SET; > } > return ""; //$NON-NLS-1$ > } > > /** > * <h4>Provides unique keys for String - Integer pairs.</h4> >- * > * @author bhufmann > * > */ >@@ -887,7 +934,6 @@ public class KernelStatisticsData extends StatisticsData { > * - string -pair. It provides better performance than using a string as key > * only. However, for optimal performance the integer values should be mostly > * unique.</h4> >- * > * @author bhufmann > * > */ >@@ -901,7 +947,6 @@ public class KernelStatisticsData extends StatisticsData { > > /* > * (non-Javadoc) >- * > * @see java.lang.Object#hashCode() > */ > @Override >@@ -911,7 +956,6 @@ public class KernelStatisticsData extends StatisticsData { > > /* > * (non-Javadoc) >- * > * @see java.lang.Object#equals(java.lang.Object) > */ > @Override >@@ -924,7 +968,6 @@ public class KernelStatisticsData extends StatisticsData { > > /* > * (non-Javadoc) >- * > * @see java.lang.Object#clone() > */ > @Override >diff --git a/lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/statistics/model/Messages.java b/lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/statistics/model/Messages.java >index e699fa8..84101c8 100644 >--- a/lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/statistics/model/Messages.java >+++ b/lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/statistics/model/Messages.java >@@ -4,6 +4,7 @@ import org.eclipse.osgi.util.NLS; > > public class Messages extends NLS { > private static final String BUNDLE_NAME = "org.eclipse.linuxtools.lttng.ui.views.statistics.model.messages"; //$NON-NLS-1$ >+ public static String KernelStatisticsData_TraceSet; > public static String KernelStatisticsData_CPUs; > public static String KernelStatisticsData_EventTypes; > public static String KernelStatisticsData_Functions; >diff --git a/lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/statistics/model/messages.properties b/lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/statistics/model/messages.properties >index 7e88de5..b3b09c7 100644 >--- a/lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/statistics/model/messages.properties >+++ b/lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/statistics/model/messages.properties >@@ -1,7 +1,8 @@ >+KernelStatisticsData_TraceSet=Total of traces > KernelStatisticsData_CPUs=CPUs > KernelStatisticsData_EventTypes=Event Types > KernelStatisticsData_Functions=Functions > KernelStatisticsData_Modes=Modes > KernelStatisticsData_Processes=Processes > KernelStatisticsData_SubModes=Submodes >-StatisticsData_UnknowProcess=Unknown process >+StatisticsData_UnknowProcess=Unknown process >\ No newline at end of file >-- >1.7.4.1 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 292408
: 200665 |
200680