Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
View | Details | Raw Unified | Return to bug 292408 | Differences between
and this patch

Collapse All | Expand All

(-)a/lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/statistics/StatisticsView.java (-3 / +9 lines)
Lines 154-160 public class StatisticsView extends AbsTimeUpdateView { Link Here
154
						@Override
154
						@Override
155
						public String getText(Object element) {
155
						public String getText(Object element) {
156
						    StatisticsTreeNode node = (StatisticsTreeNode) element;
156
						    StatisticsTreeNode node = (StatisticsTreeNode) element;
157
                            if (folderLevels.contains(node.getKey())) {
157
                            if (folderLevels.contains(node.getKey()) || node.getKey() == KernelStatisticsData.HEADER_TRACE_SET_INT) {
158
                                return (KernelStatisticsData.getCategoryFromId(node.getKey().intValue()));
158
                                return (KernelStatisticsData.getCategoryFromId(node.getKey().intValue()));
159
                            } else {
159
                            } else {
160
                                return node.getName();
160
                                return node.getName();
Lines 164-170 public class StatisticsView extends AbsTimeUpdateView { Link Here
164
						@Override
164
						@Override
165
						public Image getImage(Object element) {
165
						public Image getImage(Object element) {
166
							StatisticsTreeNode node = (StatisticsTreeNode) element;
166
							StatisticsTreeNode node = (StatisticsTreeNode) element;
167
							if (folderLevels.contains(node.getKey())) {
167
							if (folderLevels.contains(node.getKey()) || node.getKey() == KernelStatisticsData.HEADER_TRACE_SET_INT) {
168
								return PlatformUI.getWorkbench()
168
								return PlatformUI.getWorkbench()
169
										.getSharedImages().getImage(
169
										.getSharedImages().getImage(
170
												ISharedImages.IMG_OBJ_FOLDER);
170
												ISharedImages.IMG_OBJ_FOLDER);
Lines 180-186 public class StatisticsView extends AbsTimeUpdateView { Link Here
180
							StatisticsTreeNode n1 = (StatisticsTreeNode) e1;
180
							StatisticsTreeNode n1 = (StatisticsTreeNode) e1;
181
							StatisticsTreeNode n2 = (StatisticsTreeNode) e2;
181
							StatisticsTreeNode n2 = (StatisticsTreeNode) e2;
182
							
182
							
183
//							return n1.getKey().compareTo(n2.getKey());
183
							// For the total of traces, it gets displayed at the end of the column
184
							if (n1.getKey() == KernelStatisticsData.HEADER_TRACE_SET_INT) {
185
							    return 1;
186
							} else if (n2.getKey() == KernelStatisticsData.HEADER_TRACE_SET_INT) {
187
							    return -1;
188
							}
189
							
184
							return n1.compareTo(n2);
190
							return n1.compareTo(n2);
185
						}
191
						}
186
					}, null),
192
					}, null),
(-)a/lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/statistics/model/KernelStatisticsData.java (-151 / +194 lines)
Lines 31-36 import org.eclipse.linuxtools.lttng.state.model.LttngTraceState; Link Here
31
 * <h4>Class that process the LTTng kernel events.</h4>
31
 * <h4>Class that process the LTTng kernel events.</h4>
32
 */
32
 */
33
public class KernelStatisticsData extends StatisticsData {
33
public class KernelStatisticsData extends StatisticsData {
34
    
35
    /**
36
    * <h4>Header for the trace set. Calculates the sum of all trace statistics for the experiment selected.</h4>
37
    */
38
    public static final String HEADER_TRACE_SET = Messages.KernelStatisticsData_TraceSet;
39
    public static final int HEADER_TRACE_SET_INT = -5;
34
    /**
40
    /**
35
     * <h4>Header for the CPU categories.</h4>
41
     * <h4>Header for the CPU categories.</h4>
36
     */
42
     */
Lines 94-125 public class KernelStatisticsData extends StatisticsData { Link Here
94
     * <h4>Pre-created paths for type statistics, which will be filled for each
100
     * <h4>Pre-created paths for type statistics, which will be filled for each
95
     * relevant event.</h4>
101
     * relevant event.</h4>
96
     */
102
     */
97
    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),
103
    private final FixedArray[] fTypedPaths = {
104
            new FixedArray(PLACE_HOLDER, HEADER_EVENT_TYPES_INT, PLACE_HOLDER),
105
            new FixedArray(PLACE_HOLDER, HEADER_MODES_INT, PLACE_HOLDER, HEADER_EVENT_TYPES_INT, PLACE_HOLDER),
98
            new FixedArray(PLACE_HOLDER, HEADER_MODES_INT, PLACE_HOLDER, HEADER_SUBMODES_INT, PLACE_HOLDER, HEADER_EVENT_TYPES_INT, PLACE_HOLDER),
106
            new FixedArray(PLACE_HOLDER, HEADER_MODES_INT, PLACE_HOLDER, HEADER_SUBMODES_INT, PLACE_HOLDER, HEADER_EVENT_TYPES_INT, PLACE_HOLDER),
99
            new FixedArray(PLACE_HOLDER, HEADER_PROCESSES_INT, PLACE_HOLDER, HEADER_EVENT_TYPES_INT, PLACE_HOLDER),
107
            new FixedArray(PLACE_HOLDER, HEADER_PROCESSES_INT, PLACE_HOLDER, HEADER_EVENT_TYPES_INT, PLACE_HOLDER),
100
            new FixedArray(PLACE_HOLDER, HEADER_PROCESSES_INT, PLACE_HOLDER, HEADER_CPUS_INT, PLACE_HOLDER, HEADER_EVENT_TYPES_INT, PLACE_HOLDER),
108
            new FixedArray(PLACE_HOLDER, HEADER_PROCESSES_INT, PLACE_HOLDER, HEADER_CPUS_INT, PLACE_HOLDER, HEADER_EVENT_TYPES_INT, PLACE_HOLDER),
101
            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),
109
            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),
102
            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),
110
            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,
103
            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),
111
                    PLACE_HOLDER),
112
            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,
113
                    PLACE_HOLDER, HEADER_EVENT_TYPES_INT, PLACE_HOLDER),
104
            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),
114
            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),
105
            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),
115
            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,
116
                    PLACE_HOLDER),
106
            new FixedArray(PLACE_HOLDER, HEADER_PROCESSES_INT, PLACE_HOLDER, HEADER_MODES_INT, PLACE_HOLDER, HEADER_EVENT_TYPES_INT, PLACE_HOLDER),
117
            new FixedArray(PLACE_HOLDER, HEADER_PROCESSES_INT, PLACE_HOLDER, HEADER_MODES_INT, PLACE_HOLDER, HEADER_EVENT_TYPES_INT, PLACE_HOLDER),
107
            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),
118
            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),
108
            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),
119
            new FixedArray(PLACE_HOLDER, HEADER_CPUS_INT, PLACE_HOLDER, HEADER_EVENT_TYPES_INT, PLACE_HOLDER),
120
            new FixedArray(PLACE_HOLDER, HEADER_CPUS_INT, PLACE_HOLDER, HEADER_MODES_INT, PLACE_HOLDER, HEADER_EVENT_TYPES_INT, PLACE_HOLDER),
109
            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), };
121
            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), };
110
    /**
122
    /**
111
     * <h4>Pre-created paths for other statistics, which will be filled for each
123
     * <h4>Pre-created paths for other statistics, which will be filled for each relevant event.</h4>
112
     * relevant event.</h4>
113
     */
124
     */
114
    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),
125
    final FixedArray[] fNormalPaths = {
115
            new FixedArray(PLACE_HOLDER, HEADER_PROCESSES_INT, PLACE_HOLDER), new FixedArray(PLACE_HOLDER, HEADER_PROCESSES_INT, PLACE_HOLDER, HEADER_CPUS_INT, PLACE_HOLDER),
126
            new FixedArray(PLACE_HOLDER),
127
            new FixedArray(PLACE_HOLDER, HEADER_MODES_INT, PLACE_HOLDER),
128
            new FixedArray(PLACE_HOLDER, HEADER_MODES_INT, PLACE_HOLDER, HEADER_SUBMODES_INT, PLACE_HOLDER),
129
            new FixedArray(PLACE_HOLDER, HEADER_PROCESSES_INT, PLACE_HOLDER),
130
            new FixedArray(PLACE_HOLDER, HEADER_PROCESSES_INT, PLACE_HOLDER, HEADER_CPUS_INT, PLACE_HOLDER),
116
            new FixedArray(PLACE_HOLDER, HEADER_PROCESSES_INT, PLACE_HOLDER, HEADER_CPUS_INT, PLACE_HOLDER, HEADER_FUNCTIONS_INT, PLACE_HOLDER),
131
            new FixedArray(PLACE_HOLDER, HEADER_PROCESSES_INT, PLACE_HOLDER, HEADER_CPUS_INT, PLACE_HOLDER, HEADER_FUNCTIONS_INT, PLACE_HOLDER),
117
            new FixedArray(PLACE_HOLDER, HEADER_PROCESSES_INT, PLACE_HOLDER, HEADER_CPUS_INT, PLACE_HOLDER, HEADER_FUNCTIONS_INT, PLACE_HOLDER, HEADER_MODES_INT, PLACE_HOLDER),
132
            new FixedArray(PLACE_HOLDER, HEADER_PROCESSES_INT, PLACE_HOLDER, HEADER_CPUS_INT, PLACE_HOLDER, HEADER_FUNCTIONS_INT, PLACE_HOLDER, HEADER_MODES_INT, PLACE_HOLDER),
118
            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),
133
            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,
134
                    PLACE_HOLDER),
119
            new FixedArray(PLACE_HOLDER, HEADER_PROCESSES_INT, PLACE_HOLDER, HEADER_CPUS_INT, PLACE_HOLDER, HEADER_MODES_INT, PLACE_HOLDER),
135
            new FixedArray(PLACE_HOLDER, HEADER_PROCESSES_INT, PLACE_HOLDER, HEADER_CPUS_INT, PLACE_HOLDER, HEADER_MODES_INT, PLACE_HOLDER),
120
            new FixedArray(PLACE_HOLDER, HEADER_PROCESSES_INT, PLACE_HOLDER, HEADER_CPUS_INT, PLACE_HOLDER, HEADER_MODES_INT, PLACE_HOLDER, HEADER_SUBMODES_INT, PLACE_HOLDER),
136
            new FixedArray(PLACE_HOLDER, HEADER_PROCESSES_INT, PLACE_HOLDER, HEADER_CPUS_INT, PLACE_HOLDER, HEADER_MODES_INT, PLACE_HOLDER, HEADER_SUBMODES_INT, PLACE_HOLDER),
121
            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),
137
            new FixedArray(PLACE_HOLDER, HEADER_PROCESSES_INT, PLACE_HOLDER, HEADER_MODES_INT, PLACE_HOLDER),
122
            new FixedArray(PLACE_HOLDER, HEADER_CPUS_INT, PLACE_HOLDER), new FixedArray(PLACE_HOLDER, HEADER_CPUS_INT, PLACE_HOLDER, HEADER_MODES_INT, PLACE_HOLDER),
138
            new FixedArray(PLACE_HOLDER, HEADER_PROCESSES_INT, PLACE_HOLDER, HEADER_MODES_INT, PLACE_HOLDER, HEADER_SUBMODES_INT, PLACE_HOLDER),
139
            new FixedArray(PLACE_HOLDER, HEADER_CPUS_INT, PLACE_HOLDER),
140
            new FixedArray(PLACE_HOLDER, HEADER_CPUS_INT, PLACE_HOLDER, HEADER_MODES_INT, PLACE_HOLDER),
123
            new FixedArray(PLACE_HOLDER, HEADER_CPUS_INT, PLACE_HOLDER, HEADER_MODES_INT, PLACE_HOLDER, HEADER_SUBMODES_INT, PLACE_HOLDER), };
141
            new FixedArray(PLACE_HOLDER, HEADER_CPUS_INT, PLACE_HOLDER, HEADER_MODES_INT, PLACE_HOLDER, HEADER_SUBMODES_INT, PLACE_HOLDER), };
124
142
125
    /**
143
    /**
Lines 146-157 public class KernelStatisticsData extends StatisticsData { Link Here
146
        // //////////// Adding category sets
164
        // //////////// Adding category sets
147
        keys.put(HEADER_PROCESSES_INT, new HashSet<Integer>());
165
        keys.put(HEADER_PROCESSES_INT, new HashSet<Integer>());
148
        keys.put(HEADER_MODES_INT, new HashSet<Integer>());
166
        keys.put(HEADER_MODES_INT, new HashSet<Integer>());
149
        keys.put(HEADER_CPUS_INT, new HashSet<Integer>(4)); // Over 4 CPUs is
167
        keys.put(HEADER_CPUS_INT, new HashSet<Integer>(4)); // Over 4 CPUs is not common
150
                                                            // not common
151
        keys.put(HEADER_SUBMODES_INT, new HashSet<Integer>());
168
        keys.put(HEADER_SUBMODES_INT, new HashSet<Integer>());
152
        keys.put(HEADER_EVENT_TYPES_INT, new HashSet<Integer>());
169
        keys.put(HEADER_EVENT_TYPES_INT, new HashSet<Integer>());
153
        keys.put(HEADER_FUNCTIONS_INT, new HashSet<Integer>(4)); // Seems to be
170
        keys.put(HEADER_FUNCTIONS_INT, new HashSet<Integer>(4)); // Seems to be always one.
154
                                                                 // always one.
155
171
156
        // /////////// Adding value sets
172
        // /////////// Adding value sets
157
        // Under a trace
173
        // Under a trace
Lines 199-206 public class KernelStatisticsData extends StatisticsData { Link Here
199
    /*
215
    /*
200
     * (non-Javadoc)
216
     * (non-Javadoc)
201
     * 
217
     * 
202
     * @see
218
     * @see org.eclipse.linuxtools.lttng.ui.views.statistics.model.StatisticsData
203
     * org.eclipse.linuxtools.lttng.ui.views.statistics.model.StatisticsData
204
     * #endTraceset(org.eclipse.linuxtools.lttng.event.LttngEvent,
219
     * #endTraceset(org.eclipse.linuxtools.lttng.event.LttngEvent,
205
     * org.eclipse.linuxtools.lttng.state.model.LttngTraceState)
220
     * org.eclipse.linuxtools.lttng.state.model.LttngTraceState)
206
     */
221
     */
Lines 257-286 public class KernelStatisticsData extends StatisticsData { Link Here
257
                    result.add(node);
272
                    result.add(node);
258
                }
273
                }
259
        } else {// If we are at a value
274
        } else {// If we are at a value
260
            for (int value : getKeys().get((path.get(path.size() - 2) * NODE))) { // Search
275
            for (int value : getKeys().get((path.get(path.size() - 2) * NODE))) { // Search the parent name + NODE
261
                                                                                  // the
262
                                                                                  // parent
263
                                                                                  // name
264
                                                                                  // +
265
                                                                                  // NODE
266
                StatisticsTreeNode node = getOrCreate(path.append(value));
276
                StatisticsTreeNode node = getOrCreate(path.append(value));
267
                node.setName(getCategoryFromId(value));
277
                node.setName(getCategoryFromId(value));
268
                result.add(node);
278
                result.add(node);
269
            }
279
            }
270
280
271
            if (path.size() == 5 && path.get(3) == HEADER_CPUS_INT) { // Special
281
            if (path.size() == 5 && path.get(3) == HEADER_CPUS_INT) { // Special the Functions is just there. We want
272
                                                                      // the
282
                                                                      // the fourth element but it start at 0. So #3
273
                                                                      // Functions
274
                                                                      // is just
275
                                                                      // there.
276
                                                                      // We want
277
                                                                      // the
278
                                                                      // fourth
279
                                                                      // element
280
                                                                      // but it
281
                                                                      // start
282
                                                                      // at 0.
283
                                                                      // So #3
284
                StatisticsTreeNode node = getOrCreate(path.append(HEADER_FUNCTIONS_INT));
283
                StatisticsTreeNode node = getOrCreate(path.append(HEADER_FUNCTIONS_INT));
285
                node.setName(getCategoryFromId(HEADER_FUNCTIONS_INT));
284
                node.setName(getCategoryFromId(HEADER_FUNCTIONS_INT));
286
                result.add(node);
285
                result.add(node);
Lines 299-310 public class KernelStatisticsData extends StatisticsData { Link Here
299
     *            State of the trace for this event.
298
     *            State of the trace for this event.
300
     * @return Array of FixedArray representing the paths.
299
     * @return Array of FixedArray representing the paths.
301
     */
300
     */
302
    private FixedArray[] getNormalPaths(LttngEvent event, LttngTraceState traceState) {
301
    private FixedArray[] getNormalPaths(LttngEvent event, LttngTraceState traceState, int traceID) {
303
        int trace = (int) traceState.getContext().getIdentifier(); // No need
304
                                                                   // for the
305
                                                                   // identifier
306
                                                                   // (already
307
                                                                   // applied)
308
        Long cpu = event.getCpuId();
302
        Long cpu = event.getCpuId();
309
        int cpus = cpu.intValue() | LttngConstants.STATS_CPU_ID;
303
        int cpus = cpu.intValue() | LttngConstants.STATS_CPU_ID;
310
        LttngProcessState process = traceState.getRunning_process().get(cpu);
304
        LttngProcessState process = traceState.getRunning_process().get(cpu);
Lines 319-353 public class KernelStatisticsData extends StatisticsData { Link Here
319
         */
313
         */
320
314
321
        // FixedArray(trace)
315
        // FixedArray(trace)
322
        fNormalPaths[0].set(0, trace);
316
        fNormalPaths[0].set(0, traceID);
323
317
324
        // FixedArray(trace,HEADER_MODES_INT,mode)
318
        // FixedArray(trace,HEADER_MODES_INT,mode)
325
        fNormalPaths[1].set(0, trace);
319
        fNormalPaths[1].set(0, traceID);
326
        fNormalPaths[1].set(2, mode);
320
        fNormalPaths[1].set(2, mode);
327
321
328
        // FixedArray(trace,HEADER_MODES_INT,mode,HEADER_SUBMODES_INT,submode)
322
        // FixedArray(trace,HEADER_MODES_INT,mode,HEADER_SUBMODES_INT,submode)
329
        fNormalPaths[2].set(0, trace);
323
        fNormalPaths[2].set(0, traceID);
330
        fNormalPaths[2].set(2, mode);
324
        fNormalPaths[2].set(2, mode);
331
        fNormalPaths[2].set(4, submode);
325
        fNormalPaths[2].set(4, submode);
332
326
333
        // FixedArray(trace,HEADER_PROCESSES_INT,processName)
327
        // FixedArray(trace,HEADER_PROCESSES_INT,processName)
334
        fNormalPaths[3].set(0, trace);
328
        fNormalPaths[3].set(0, traceID);
335
        fNormalPaths[3].set(2, processName);
329
        fNormalPaths[3].set(2, processName);
336
330
337
        // FixedArray(trace,HEADER_PROCESSES_INT,processName,HEADER_CPUS_INT,cpus)
331
        // FixedArray(trace,HEADER_PROCESSES_INT,processName,HEADER_CPUS_INT,cpus)
338
        fNormalPaths[4].set(0, trace);
332
        fNormalPaths[4].set(0, traceID);
339
        fNormalPaths[4].set(2, processName);
333
        fNormalPaths[4].set(2, processName);
340
        fNormalPaths[4].set(4, cpus);
334
        fNormalPaths[4].set(4, cpus);
341
335
342
        // FixedArray(trace,HEADER_PROCESSES_INT,processName,HEADER_CPUS_INT,cpus,HEADER_FUNCTIONS_INT,function)
336
        // FixedArray(trace,HEADER_PROCESSES_INT,processName,HEADER_CPUS_INT,cpus,HEADER_FUNCTIONS_INT,function)
343
        fNormalPaths[5].set(0, trace);
337
        fNormalPaths[5].set(0, traceID);
344
        fNormalPaths[5].set(2, processName);
338
        fNormalPaths[5].set(2, processName);
345
        fNormalPaths[5].set(4, cpus);
339
        fNormalPaths[5].set(4, cpus);
346
        fNormalPaths[5].set(6, function);
340
        fNormalPaths[5].set(6, function);
347
341
348
        // FixedArray(trace,HEADER_PROCESSES_INT,processName,HEADER_CPUS_INT,cpus,HEADER_FUNCTIONS_INT,function,
342
        // FixedArray(trace,HEADER_PROCESSES_INT,processName,HEADER_CPUS_INT,cpus,HEADER_FUNCTIONS_INT,function,
349
        // HEADER_MODES_INT, mode)
343
        // HEADER_MODES_INT, mode)
350
        fNormalPaths[6].set(0, trace);
344
        fNormalPaths[6].set(0, traceID);
351
        fNormalPaths[6].set(2, processName);
345
        fNormalPaths[6].set(2, processName);
352
        fNormalPaths[6].set(4, cpus);
346
        fNormalPaths[6].set(4, cpus);
353
        fNormalPaths[6].set(6, function);
347
        fNormalPaths[6].set(6, function);
Lines 355-361 public class KernelStatisticsData extends StatisticsData { Link Here
355
349
356
        // FixedArray(trace,HEADER_PROCESSES_INT,processName,HEADER_CPUS_INT,cpus,HEADER_FUNCTIONS_INT,function,
350
        // FixedArray(trace,HEADER_PROCESSES_INT,processName,HEADER_CPUS_INT,cpus,HEADER_FUNCTIONS_INT,function,
357
        // HEADER_MODES_INT, mode, HEADER_SUBMODES_INT, submode)
351
        // HEADER_MODES_INT, mode, HEADER_SUBMODES_INT, submode)
358
        fNormalPaths[7].set(0, trace);
352
        fNormalPaths[7].set(0, traceID);
359
        fNormalPaths[7].set(2, processName);
353
        fNormalPaths[7].set(2, processName);
360
        fNormalPaths[7].set(4, cpus);
354
        fNormalPaths[7].set(4, cpus);
361
        fNormalPaths[7].set(6, function);
355
        fNormalPaths[7].set(6, function);
Lines 363-402 public class KernelStatisticsData extends StatisticsData { Link Here
363
        fNormalPaths[7].set(10, submode);
357
        fNormalPaths[7].set(10, submode);
364
358
365
        // FixedArray(trace,HEADER_PROCESSES_INT,processName,HEADER_CPUS_INT,cpus,HEADER_MODES_INT,mode)
359
        // FixedArray(trace,HEADER_PROCESSES_INT,processName,HEADER_CPUS_INT,cpus,HEADER_MODES_INT,mode)
366
        fNormalPaths[8].set(0, trace);
360
        fNormalPaths[8].set(0, traceID);
367
        fNormalPaths[8].set(2, processName);
361
        fNormalPaths[8].set(2, processName);
368
        fNormalPaths[8].set(4, cpus);
362
        fNormalPaths[8].set(4, cpus);
369
        fNormalPaths[8].set(6, mode);
363
        fNormalPaths[8].set(6, mode);
370
364
371
        // FixedArray(trace,HEADER_PROCESSES_INT,processName,HEADER_CPUS_INT,cpus,HEADER_MODES_INT,mode,HEADER_SUBMODES_INT,submode)
365
        // FixedArray(trace,HEADER_PROCESSES_INT,processName,HEADER_CPUS_INT,cpus,HEADER_MODES_INT,mode,HEADER_SUBMODES_INT,submode)
372
        fNormalPaths[9].set(0, trace);
366
        fNormalPaths[9].set(0, traceID);
373
        fNormalPaths[9].set(2, processName);
367
        fNormalPaths[9].set(2, processName);
374
        fNormalPaths[9].set(4, cpus);
368
        fNormalPaths[9].set(4, cpus);
375
        fNormalPaths[9].set(6, mode);
369
        fNormalPaths[9].set(6, mode);
376
        fNormalPaths[9].set(8, submode);
370
        fNormalPaths[9].set(8, submode);
377
371
378
        // FixedArray(trace,HEADER_PROCESSES_INT,processName,HEADER_MODES_INT,mode)
372
        // FixedArray(trace,HEADER_PROCESSES_INT,processName,HEADER_MODES_INT,mode)
379
        fNormalPaths[10].set(0, trace);
373
        fNormalPaths[10].set(0, traceID);
380
        fNormalPaths[10].set(2, processName);
374
        fNormalPaths[10].set(2, processName);
381
        fNormalPaths[10].set(4, mode);
375
        fNormalPaths[10].set(4, mode);
382
376
383
        // FixedArray(trace,HEADER_PROCESSES_INT,processName,HEADER_MODES_INT,mode,HEADER_SUBMODES_INT,submode)
377
        // FixedArray(trace,HEADER_PROCESSES_INT,processName,HEADER_MODES_INT,mode,HEADER_SUBMODES_INT,submode)
384
        fNormalPaths[11].set(0, trace);
378
        fNormalPaths[11].set(0, traceID);
385
        fNormalPaths[11].set(2, processName);
379
        fNormalPaths[11].set(2, processName);
386
        fNormalPaths[11].set(4, mode);
380
        fNormalPaths[11].set(4, mode);
387
        fNormalPaths[11].set(6, submode);
381
        fNormalPaths[11].set(6, submode);
388
382
389
        // FixedArray(trace,HEADER_CPUS_INT,cpus)
383
        // FixedArray(trace,HEADER_CPUS_INT,cpus)
390
        fNormalPaths[12].set(0, trace);
384
        fNormalPaths[12].set(0, traceID);
391
        fNormalPaths[12].set(2, cpus);
385
        fNormalPaths[12].set(2, cpus);
392
386
393
        // FixedArray(trace,HEADER_CPUS_INT,cpus,HEADER_MODES_INT,mode)
387
        // FixedArray(trace,HEADER_CPUS_INT,cpus,HEADER_MODES_INT,mode)
394
        fNormalPaths[13].set(0, trace);
388
        fNormalPaths[13].set(0, traceID);
395
        fNormalPaths[13].set(2, cpus);
389
        fNormalPaths[13].set(2, cpus);
396
        fNormalPaths[13].set(4, mode);
390
        fNormalPaths[13].set(4, mode);
397
391
398
        // FixedArray(trace,HEADER_CPUS_INT,cpus,HEADER_MODES_INT,mode,HEADER_SUBMODES_INT,submode)
392
        // FixedArray(trace,HEADER_CPUS_INT,cpus,HEADER_MODES_INT,mode,HEADER_SUBMODES_INT,submode)
399
        fNormalPaths[14].set(0, trace);
393
        fNormalPaths[14].set(0, traceID);
400
        fNormalPaths[14].set(2, cpus);
394
        fNormalPaths[14].set(2, cpus);
401
        fNormalPaths[14].set(4, mode);
395
        fNormalPaths[14].set(4, mode);
402
        fNormalPaths[14].set(6, submode);
396
        fNormalPaths[14].set(6, submode);
Lines 414-425 public class KernelStatisticsData extends StatisticsData { Link Here
414
     *            State of the trace for this event.
408
     *            State of the trace for this event.
415
     * @return Array of FixedArray representing the paths.
409
     * @return Array of FixedArray representing the paths.
416
     */
410
     */
417
    private FixedArray[] getTypePaths(LttngEvent event, LttngTraceState traceState) {
411
    private FixedArray[] getTypePaths(LttngEvent event, LttngTraceState traceState, int traceID) {
418
        int trace = (int) traceState.getContext().getIdentifier(); // No need
419
                                                                   // for the
420
                                                                   // identifier
421
                                                                   // (already
422
                                                                   // applied)
423
        Long cpu = event.getCpuId();
412
        Long cpu = event.getCpuId();
424
        int cpus = cpu.intValue() | LttngConstants.STATS_CPU_ID;
413
        int cpus = cpu.intValue() | LttngConstants.STATS_CPU_ID;
425
        LttngProcessState process = traceState.getRunning_process().get(cpu);
414
        LttngProcessState process = traceState.getRunning_process().get(cpu);
Lines 435-474 public class KernelStatisticsData extends StatisticsData { Link Here
435
         */
424
         */
436
425
437
        // FixedArray(trace,HEADER_EVENT_TYPES_INT,type)
426
        // FixedArray(trace,HEADER_EVENT_TYPES_INT,type)
438
        fTypedPaths[0].set(0, trace);
427
        fTypedPaths[0].set(0, traceID);
439
        fTypedPaths[0].set(2, type);
428
        fTypedPaths[0].set(2, type);
440
429
441
        // FixedArray(trace,HEADER_MODES_INT,mode,HEADER_EVENT_TYPES_INT,type)
430
        // FixedArray(trace,HEADER_MODES_INT,mode,HEADER_EVENT_TYPES_INT,type)
442
        fTypedPaths[1].set(0, trace);
431
        fTypedPaths[1].set(0, traceID);
443
        fTypedPaths[1].set(2, mode);
432
        fTypedPaths[1].set(2, mode);
444
        fTypedPaths[1].set(4, type);
433
        fTypedPaths[1].set(4, type);
445
434
446
        // FixedArray(trace,HEADER_MODES_INT,mode,HEADER_SUBMODES_INT,submode,HEADER_EVENT_TYPES_INT,type)
435
        // FixedArray(trace,HEADER_MODES_INT,mode,HEADER_SUBMODES_INT,submode,HEADER_EVENT_TYPES_INT,type)
447
        fTypedPaths[2].set(0, trace);
436
        fTypedPaths[2].set(0, traceID);
448
        fTypedPaths[2].set(2, mode);
437
        fTypedPaths[2].set(2, mode);
449
        fTypedPaths[2].set(4, submode);
438
        fTypedPaths[2].set(4, submode);
450
        fTypedPaths[2].set(6, type);
439
        fTypedPaths[2].set(6, type);
451
440
452
        // FixedArray(trace,HEADER_PROCESSES_INT,processName,HEADER_EVENT_TYPES_INT,type)
441
        // FixedArray(trace,HEADER_PROCESSES_INT,processName,HEADER_EVENT_TYPES_INT,type)
453
        fTypedPaths[3].set(0, trace);
442
        fTypedPaths[3].set(0, traceID);
454
        fTypedPaths[3].set(2, processName);
443
        fTypedPaths[3].set(2, processName);
455
        fTypedPaths[3].set(4, type);
444
        fTypedPaths[3].set(4, type);
456
445
457
        // FixedArray(trace,HEADER_PROCESSES_INT,processName,HEADER_CPUS_INT,cpus,HEADER_EVENT_TYPES_INT,type)
446
        // FixedArray(trace,HEADER_PROCESSES_INT,processName,HEADER_CPUS_INT,cpus,HEADER_EVENT_TYPES_INT,type)
458
        fTypedPaths[4].set(0, trace);
447
        fTypedPaths[4].set(0, traceID);
459
        fTypedPaths[4].set(2, processName);
448
        fTypedPaths[4].set(2, processName);
460
        fTypedPaths[4].set(4, cpus);
449
        fTypedPaths[4].set(4, cpus);
461
        fTypedPaths[4].set(6, type);
450
        fTypedPaths[4].set(6, type);
462
451
463
        // FixedArray(trace,HEADER_PROCESSES_INT,processName,HEADER_CPUS_INT,cpus,HEADER_FUNCTIONS_INT,function,HEADER_EVENT_TYPES_INT,type)
452
        // FixedArray(trace,HEADER_PROCESSES_INT,processName,HEADER_CPUS_INT,cpus,HEADER_FUNCTIONS_INT,function,HEADER_EVENT_TYPES_INT,type)
464
        fTypedPaths[5].set(0, trace);
453
        fTypedPaths[5].set(0, traceID);
465
        fTypedPaths[5].set(2, processName);
454
        fTypedPaths[5].set(2, processName);
466
        fTypedPaths[5].set(4, cpus);
455
        fTypedPaths[5].set(4, cpus);
467
        fTypedPaths[5].set(6, function);
456
        fTypedPaths[5].set(6, function);
468
        fTypedPaths[5].set(8, type);
457
        fTypedPaths[5].set(8, type);
469
458
470
        // FixedArray(trace,HEADER_PROCESSES_INT,processName,HEADER_CPUS_INT,cpus,HEADER_FUNCTIONS_INT,function,HEADER_MODES_INT,mode,HEADER_EVENT_TYPES_INT,type)
459
        // FixedArray(trace,HEADER_PROCESSES_INT,processName,HEADER_CPUS_INT,cpus,HEADER_FUNCTIONS_INT,function,HEADER_MODES_INT,mode,HEADER_EVENT_TYPES_INT,type)
471
        fTypedPaths[6].set(0, trace);
460
        fTypedPaths[6].set(0, traceID);
472
        fTypedPaths[6].set(2, processName);
461
        fTypedPaths[6].set(2, processName);
473
        fTypedPaths[6].set(4, cpus);
462
        fTypedPaths[6].set(4, cpus);
474
        fTypedPaths[6].set(6, function);
463
        fTypedPaths[6].set(6, function);
Lines 477-483 public class KernelStatisticsData extends StatisticsData { Link Here
477
466
478
        // FixedArray(trace,HEADER_PROCESSES_INT,processName,HEADER_CPUS_INT,cpus,HEADER_FUNCTIONS_INT,function,
467
        // FixedArray(trace,HEADER_PROCESSES_INT,processName,HEADER_CPUS_INT,cpus,HEADER_FUNCTIONS_INT,function,
479
        // HEADER_MODES_INT,mode,HEADER_SUBMODES_INT,submode,HEADER_EVENT_TYPES_INT,type)
468
        // HEADER_MODES_INT,mode,HEADER_SUBMODES_INT,submode,HEADER_EVENT_TYPES_INT,type)
480
        fTypedPaths[7].set(0, trace);
469
        fTypedPaths[7].set(0, traceID);
481
        fTypedPaths[7].set(2, processName);
470
        fTypedPaths[7].set(2, processName);
482
        fTypedPaths[7].set(4, cpus);
471
        fTypedPaths[7].set(4, cpus);
483
        fTypedPaths[7].set(6, function);
472
        fTypedPaths[7].set(6, function);
Lines 486-499 public class KernelStatisticsData extends StatisticsData { Link Here
486
        fTypedPaths[7].set(12, type);
475
        fTypedPaths[7].set(12, type);
487
476
488
        // FixedArray(trace,HEADER_PROCESSES_INT,processName,HEADER_CPUS_INT,cpus,HEADER_MODES_INT,mode,HEADER_EVENT_TYPES_INT,type)
477
        // FixedArray(trace,HEADER_PROCESSES_INT,processName,HEADER_CPUS_INT,cpus,HEADER_MODES_INT,mode,HEADER_EVENT_TYPES_INT,type)
489
        fTypedPaths[8].set(0, trace);
478
        fTypedPaths[8].set(0, traceID);
490
        fTypedPaths[8].set(2, processName);
479
        fTypedPaths[8].set(2, processName);
491
        fTypedPaths[8].set(4, cpus);
480
        fTypedPaths[8].set(4, cpus);
492
        fTypedPaths[8].set(6, mode);
481
        fTypedPaths[8].set(6, mode);
493
        fTypedPaths[8].set(8, type);
482
        fTypedPaths[8].set(8, type);
494
483
495
        // FixedArray(trace,HEADER_PROCESSES_INT,processName,HEADER_CPUS_INT,cpus,HEADER_MODES_INT,mode,HEADER_SUBMODES_INT,submode,HEADER_EVENT_TYPES_INT,type)
484
        // FixedArray(trace,HEADER_PROCESSES_INT,processName,HEADER_CPUS_INT,cpus,HEADER_MODES_INT,mode,HEADER_SUBMODES_INT,submode,HEADER_EVENT_TYPES_INT,type)
496
        fTypedPaths[9].set(0, trace);
485
        fTypedPaths[9].set(0, traceID);
497
        fTypedPaths[9].set(2, processName);
486
        fTypedPaths[9].set(2, processName);
498
        fTypedPaths[9].set(4, cpus);
487
        fTypedPaths[9].set(4, cpus);
499
        fTypedPaths[9].set(6, mode);
488
        fTypedPaths[9].set(6, mode);
Lines 501-531 public class KernelStatisticsData extends StatisticsData { Link Here
501
        fTypedPaths[9].set(10, type);
490
        fTypedPaths[9].set(10, type);
502
491
503
        // FixedArray(trace,HEADER_PROCESSES_INT,processName,HEADER_MODES_INT,mode,HEADER_EVENT_TYPES_INT,type)
492
        // FixedArray(trace,HEADER_PROCESSES_INT,processName,HEADER_MODES_INT,mode,HEADER_EVENT_TYPES_INT,type)
504
        fTypedPaths[10].set(0, trace);
493
        fTypedPaths[10].set(0, traceID);
505
        fTypedPaths[10].set(2, processName);
494
        fTypedPaths[10].set(2, processName);
506
        fTypedPaths[10].set(4, mode);
495
        fTypedPaths[10].set(4, mode);
507
        fTypedPaths[10].set(6, type);
496
        fTypedPaths[10].set(6, type);
508
497
509
        // FixedArray(trace,HEADER_PROCESSES_INT,processName,HEADER_MODES_INT,mode,HEADER_SUBMODES_INT,submode,HEADER_EVENT_TYPES_INT,type)
498
        // FixedArray(trace,HEADER_PROCESSES_INT,processName,HEADER_MODES_INT,mode,HEADER_SUBMODES_INT,submode,HEADER_EVENT_TYPES_INT,type)
510
        fTypedPaths[11].set(0, trace);
499
        fTypedPaths[11].set(0, traceID);
511
        fTypedPaths[11].set(2, processName);
500
        fTypedPaths[11].set(2, processName);
512
        fTypedPaths[11].set(4, mode);
501
        fTypedPaths[11].set(4, mode);
513
        fTypedPaths[11].set(6, submode);
502
        fTypedPaths[11].set(6, submode);
514
        fTypedPaths[11].set(8, type);
503
        fTypedPaths[11].set(8, type);
515
504
516
        // FixedArray(trace,HEADER_CPUS_INT,cpus,HEADER_EVENT_TYPES_INT,type)
505
        // FixedArray(trace,HEADER_CPUS_INT,cpus,HEADER_EVENT_TYPES_INT,type)
517
        fTypedPaths[12].set(0, trace);
506
        fTypedPaths[12].set(0, traceID);
518
        fTypedPaths[12].set(2, cpus);
507
        fTypedPaths[12].set(2, cpus);
519
        fTypedPaths[12].set(4, type);
508
        fTypedPaths[12].set(4, type);
520
509
521
        // FixedArray(trace,HEADER_CPUS_INT,cpus,HEADER_MODES_INT,mode,HEADER_EVENT_TYPES_INT,type)
510
        // FixedArray(trace,HEADER_CPUS_INT,cpus,HEADER_MODES_INT,mode,HEADER_EVENT_TYPES_INT,type)
522
        fTypedPaths[13].set(0, trace);
511
        fTypedPaths[13].set(0, traceID);
523
        fTypedPaths[13].set(2, cpus);
512
        fTypedPaths[13].set(2, cpus);
524
        fTypedPaths[13].set(4, mode);
513
        fTypedPaths[13].set(4, mode);
525
        fTypedPaths[13].set(6, type);
514
        fTypedPaths[13].set(6, type);
526
515
527
        // FixedArray(trace,HEADER_CPUS_INT,cpus,HEADER_MODES_INT,mode,HEADER_SUBMODES_INT,submode,HEADER_EVENT_TYPES_INT,type)
516
        // FixedArray(trace,HEADER_CPUS_INT,cpus,HEADER_MODES_INT,mode,HEADER_SUBMODES_INT,submode,HEADER_EVENT_TYPES_INT,type)
528
        fTypedPaths[14].set(0, trace);
517
        fTypedPaths[14].set(0, traceID);
529
        fTypedPaths[14].set(2, cpus);
518
        fTypedPaths[14].set(2, cpus);
530
        fTypedPaths[14].set(4, mode);
519
        fTypedPaths[14].set(4, mode);
531
        fTypedPaths[14].set(6, submode);
520
        fTypedPaths[14].set(6, submode);
Lines 533-553 public class KernelStatisticsData extends StatisticsData { Link Here
533
522
534
        return fTypedPaths;
523
        return fTypedPaths;
535
    }
524
    }
525
    
526
    /**
527
     * <h4>Get the event standard paths for the trace set.</h4>
528
     * <p>
529
     * <b>Warning!</b> This method calls the method getNormalPaths. The reference of the returned array are to the same
530
     * object. Therefore, it may be necessary to perform a copy of each element if you want to call both method at the
531
     * same time.
532
     * </p>
533
     * 
534
     * @see KernelStatisticsData#getNormalPaths(LttngEvent, LttngTraceState, int)
535
     * @param event
536
     *            Event to get the path for.
537
     * @param traceState
538
     *            State of the trace for this event.
539
     * @return Array of FixedArray representing the paths.
540
     */
541
    FixedArray[] getTraceSetNormalPaths(LttngEvent event, LttngTraceState traceState) {
542
        FixedArray[] globalNormalPaths = getNormalPaths(event, traceState, KernelStatisticsData.HEADER_TRACE_SET_INT);
543
        return globalNormalPaths;
544
    }
545
546
    /**
547
     * <h4>Get the event types paths for the trace set.</h4>
548
     * <p>
549
     * <b>Warning!</b> This method calls the method getTypePaths. The reference of the returned array are to the same
550
     * object. Therefore, it may be necessary to perform a copy of each element if you want to call both method at the
551
     * same time.
552
     * </p>
553
     * 
554
     * @see KernelStatisticsData#getTypePaths(LttngEvent, LttngTraceState, int)
555
     * @param event
556
     *            Event to get the path for.
557
     * @param traceState
558
     *            State of the trace for this event.
559
     * @return Array of FixedArray representing the paths.
560
     */
561
    private FixedArray[] getTraceSetTypePaths(LttngEvent event, LttngTraceState traceState) {
562
        FixedArray[] globalTypePaths = getTypePaths(event, traceState, KernelStatisticsData.HEADER_TRACE_SET_INT);
563
        return globalTypePaths;
564
    }
536
565
537
    /*
566
    /*
538
     * (non-Javadoc)
567
     * (non-Javadoc)
539
     * 
568
     * 
540
     * @see
569
     * @see org.eclipse.linuxtools.lttng.ui.views.statistics.model.StatisticsData
541
     * org.eclipse.linuxtools.lttng.ui.views.statistics.model.StatisticsData
542
     * #process_exit(org.eclipse.linuxtools.lttng.event.LttngEvent,
570
     * #process_exit(org.eclipse.linuxtools.lttng.event.LttngEvent,
543
     * org.eclipse.linuxtools.lttng.state.model.LttngTraceState)
571
     * org.eclipse.linuxtools.lttng.state.model.LttngTraceState)
544
     */
572
     */
545
    @Override
573
    @Override
546
    public void process_exit(LttngEvent event, LttngTraceState traceState) {
574
    public void process_exit(LttngEvent event, LttngTraceState traceState) {
547
        FixedArray[] paths = getNormalPaths(event, traceState);
548
        Long cpu = event.getCpuId();
575
        Long cpu = event.getCpuId();
549
        LttngProcessState process = traceState.getRunning_process().get(cpu);
576
        LttngProcessState process = traceState.getRunning_process().get(cpu);
577
        
578
        FixedArray[] paths = getNormalPaths(event, traceState, (int) traceState.getContext().getIdentifier());
579
        for (int j = 0; j < paths.length; ++j) {
580
            StatisticsTreeNode node = getOrCreate(paths[j], event, traceState, j, false);
550
581
582
            if (!process.getState().getExec_mode().equals(ExecutionMode.LTTV_STATE_MODE_UNKNOWN)) {
583
                node.getValue().cpuTime += event.getTimestamp().getValue() - process.getState().getChange_LttTime();
584
            }
585
        }
586
        
587
        paths = getTraceSetNormalPaths(event, traceState);
551
        for (int j = 0; j < paths.length; ++j) {
588
        for (int j = 0; j < paths.length; ++j) {
552
            StatisticsTreeNode node = getOrCreate(paths[j], event, traceState, j, false);
589
            StatisticsTreeNode node = getOrCreate(paths[j], event, traceState, j, false);
553
590
Lines 562-631 public class KernelStatisticsData extends StatisticsData { Link Here
562
    /*
599
    /*
563
     * (non-Javadoc)
600
     * (non-Javadoc)
564
     * 
601
     * 
565
     * @see
602
     * @see org.eclipse.linuxtools.lttng.ui.views.statistics.model.StatisticsData
566
     * org.eclipse.linuxtools.lttng.ui.views.statistics.model.StatisticsData
567
     * #increase(org.eclipse.linuxtools.lttng.event.LttngEvent,
603
     * #increase(org.eclipse.linuxtools.lttng.event.LttngEvent,
568
     * org.eclipse.linuxtools.lttng.state.model.LttngTraceState, int)
604
     * org.eclipse.linuxtools.lttng.state.model.LttngTraceState, int)
569
     */
605
     */
570
    @Override
606
    @Override
571
    public void increase(LttngEvent event, LttngTraceState traceState, int values) {
607
    public void increase(LttngEvent event, LttngTraceState traceState, int values) {
572
        FixedArray[] paths = getNormalPaths(event, traceState);
608
        try {
573
        Long cpu = event.getCpuId();
609
            int j; // Increment
574
        LttngProcessState process = traceState.getRunning_process().get(cpu);
610
            Long cpu = event.getCpuId();
575
611
            LttngProcessState process = traceState.getRunning_process().get(cpu);
576
        for (int j = 0; j < paths.length; ++j) {
612
577
            StatisticsTreeNode node = getOrCreate(paths[j], event, traceState, j, false);
613
            FixedArray[] paths = getNormalPaths(event, traceState, (int) traceState.getContext().getIdentifier());
578
614
            // Clone the paths to avoid conflict with the TraceSetPaths
579
            if ((values & Values.CPU_TIME) != 0) {
615
            FixedArray[] clonedPaths = new FixedArray[paths.length];
580
                // TODO Uncomment if the event after process_exit need to be
616
            for (j = 0; j < clonedPaths.length; ++j) {
581
                // count.
617
                clonedPaths[j] = (FixedArray) paths[j].clone();
582
                if ((process.getState().getProc_status().equals(ProcessStatus.LTTV_STATE_RUN) /*
583
                                                                                               * ||
584
                                                                                               * process
585
                                                                                               * .
586
                                                                                               * getState
587
                                                                                               * (
588
                                                                                               * )
589
                                                                                               * .
590
                                                                                               * getProc_status
591
                                                                                               * (
592
                                                                                               * )
593
                                                                                               * .
594
                                                                                               * equals
595
                                                                                               * (
596
                                                                                               * ProcessStatus
597
                                                                                               * .
598
                                                                                               * LTTV_STATE_EXIT
599
                                                                                               * )
600
                                                                                               */) && !process.getState().getExec_mode().equals(ExecutionMode.LTTV_STATE_MODE_UNKNOWN)) {
601
                    node.getValue().cpuTime += event.getTimestamp().getValue() - process.getState().getChange_LttTime();
602
                }
603
            }
618
            }
604
            if ((values & Values.CUMULATIVE_CPU_TIME) != 0) {
619
            FixedArray[] traceSetPaths = getTraceSetNormalPaths(event, traceState);
605
                if (!process.getState().getExec_mode().equals(ExecutionMode.LTTV_STATE_MODE_UNKNOWN)) {
620
            for (j = 0; j < clonedPaths.length; ++j) {
606
                    long cumulativeCpuTime = process.getState().getCum_cpu_time();
621
                StatisticsTreeNode node = getOrCreate(clonedPaths[j], event, traceState, j, false);
607
                    long delta = event.getTimestamp().getValue() - process.getState().getEntry_LttTime();
622
                StatisticsTreeNode traceSetNode = getOrCreate(traceSetPaths[j], event, traceState, j, false);
608
                    process.getState().setCum_cpu_time(cumulativeCpuTime + delta);
623
609
                    node.getValue().cumulativeCpuTime += process.getState().getCum_cpu_time();
624
                if ((values & Values.CPU_TIME) != 0) {
610
                } else if (process.getState().getProc_status().equals(ProcessStatus.LTTV_STATE_RUN) && !process.getState().getExec_mode().equals(ExecutionMode.LTTV_STATE_MODE_UNKNOWN)) {
625
                    // TODO Uncomment if the event after process_exit need to be count.
611
                    long cumulativeCpuTime = process.getState().getCum_cpu_time();
626
                    if ((process.getState().getProc_status().equals(ProcessStatus.LTTV_STATE_RUN) /*
612
                    long delta = event.getTimestamp().getValue() - process.getState().getChange_LttTime();
627
                                                                                                   * || process .
613
                    process.getState().setCum_cpu_time(cumulativeCpuTime + delta);
628
                                                                                                   * getState ( ) .
614
                    node.getValue().cumulativeCpuTime += process.getState().getCum_cpu_time();
629
                                                                                                   * getProc_status ( )
630
                                                                                                   * . equals (
631
                                                                                                   * ProcessStatus .
632
                                                                                                   * LTTV_STATE_EXIT )
633
                                                                                                   */) && !process.getState().getExec_mode().equals(ExecutionMode.LTTV_STATE_MODE_UNKNOWN)) {
634
                        node.getValue().cpuTime += event.getTimestamp().getValue() - process.getState().getChange_LttTime();
635
                        traceSetNode.getValue().cpuTime += event.getTimestamp().getValue() - process.getState().getChange_LttTime();
636
                    }
615
                }
637
                }
616
            }
638
                if ((values & Values.CUMULATIVE_CPU_TIME) != 0) {
617
            if ((values & Values.ELAPSED_TIME) != 0) {
639
                    if (!process.getState().getExec_mode().equals(ExecutionMode.LTTV_STATE_MODE_UNKNOWN)) {
618
                if (!process.getState().getExec_mode().equals(ExecutionMode.LTTV_STATE_MODE_UNKNOWN)) {
640
                        long cumulativeCpuTime = process.getState().getCum_cpu_time();
619
                    node.getValue().elapsedTime += event.getTimestamp().getValue() - process.getState().getEntry_LttTime();
641
                        long delta = event.getTimestamp().getValue() - process.getState().getEntry_LttTime();
642
                        long newCumulativeCpuTime = cumulativeCpuTime + delta;
643
                        process.getState().setCum_cpu_time(newCumulativeCpuTime);
644
                        node.getValue().cumulativeCpuTime += newCumulativeCpuTime;
645
                        traceSetNode.getValue().cumulativeCpuTime += newCumulativeCpuTime;
646
                    } else if (process.getState().getProc_status().equals(ProcessStatus.LTTV_STATE_RUN) && !process.getState().getExec_mode().equals(ExecutionMode.LTTV_STATE_MODE_UNKNOWN)) {
647
                        long cumulativeCpuTime = process.getState().getCum_cpu_time();
648
                        long delta = event.getTimestamp().getValue() - process.getState().getChange_LttTime();
649
                        long newCumulativeCpuTime = cumulativeCpuTime + delta;
650
                        process.getState().setCum_cpu_time(newCumulativeCpuTime);
651
                        node.getValue().cumulativeCpuTime += newCumulativeCpuTime;
652
                        traceSetNode.getValue().cumulativeCpuTime += newCumulativeCpuTime;
653
                    }
620
                }
654
                }
621
            }
655
                if ((values & Values.ELAPSED_TIME) != 0) {
622
            if ((values & Values.STATE_CUMULATIVE_CPU_TIME) != 0) {
656
                    if (!process.getState().getExec_mode().equals(ExecutionMode.LTTV_STATE_MODE_UNKNOWN)) {
623
                if (process.getState().getProc_status().equals(ProcessStatus.LTTV_STATE_RUN) && !process.getState().getExec_mode().equals(ExecutionMode.LTTV_STATE_MODE_UNKNOWN)) {
657
                        node.getValue().elapsedTime += event.getTimestamp().getValue() - process.getState().getEntry_LttTime();
624
                    long cumulativeCpuTime = process.getState().getCum_cpu_time();
658
                        traceSetNode.getValue().elapsedTime += event.getTimestamp().getValue() - process.getState().getEntry_LttTime();
625
                    long delta = event.getTimestamp().getValue() - process.getState().getChange_LttTime();
659
                    }
626
                    process.getState().setCum_cpu_time(cumulativeCpuTime + delta);
660
                }
661
                if ((values & Values.STATE_CUMULATIVE_CPU_TIME) != 0) {
662
                    if (process.getState().getProc_status().equals(ProcessStatus.LTTV_STATE_RUN) && !process.getState().getExec_mode().equals(ExecutionMode.LTTV_STATE_MODE_UNKNOWN)) {
663
                        long cumulativeCpuTime = process.getState().getCum_cpu_time();
664
                        long delta = event.getTimestamp().getValue() - process.getState().getChange_LttTime();
665
                        process.getState().setCum_cpu_time(cumulativeCpuTime + delta);
666
                    }
627
                }
667
                }
628
            }
668
            }
669
        } catch (Exception e) {
670
            e.printStackTrace();
629
        }
671
        }
630
    }
672
    }
631
673
Lines 639-661 public class KernelStatisticsData extends StatisticsData { Link Here
639
     */
681
     */
640
    @Override
682
    @Override
641
    public void registerEvent(LttngEvent event, LttngTraceState traceState) {
683
    public void registerEvent(LttngEvent event, LttngTraceState traceState) {
642
        FixedArray[] paths = getNormalPaths(event, traceState);
684
        FixedArray[] paths = getNormalPaths(event, traceState, (int) traceState.getContext().getIdentifier());
643
        for (int i = 0; i < paths.length; ++i)
685
        for (int i = 0; i < paths.length; ++i)
644
            ++(getOrCreate(paths[i], event, traceState, i, false).getValue().nbEvents);
686
            ++(getOrCreate(paths[i], event, traceState, i, false).getValue().nbEvents);
645
687
646
        paths = getTypePaths(event, traceState);
688
        paths = getTypePaths(event, traceState, (int) traceState.getContext().getIdentifier());
647
        for (int i = 0; i < paths.length; ++i)
689
        for (int i = 0; i < paths.length; ++i)
648
            ++(getOrCreate(paths[i], event, traceState, i, true).getValue().nbEvents);
690
            ++(getOrCreate(paths[i], event, traceState, i, true).getValue().nbEvents);
649
691
692
        paths = getTraceSetNormalPaths(event, traceState);
693
        for (int i = 0; i < paths.length; ++i)
694
            ++(getOrCreate(paths[i], event, traceState, i, false).getValue().nbEvents);
695
696
        paths = getTraceSetTypePaths(event, traceState);
697
        for (int i = 0; i < paths.length; ++i)
698
            ++(getOrCreate(paths[i], event, traceState, i, true).getValue().nbEvents);
699
        
650
        // last_ = event; // TODO Used by endTraceset
700
        // last_ = event; // TODO Used by endTraceset
651
    }
701
    }
652
702
653
    /*
703
    /*
654
     * (non-Javadoc)
704
     * (non-Javadoc)
655
     * 
705
     * @see org.eclipse.linuxtools.lttng.ui.views.statistics.model.StatisticsData #registerName
656
     * @see
657
     * org.eclipse.linuxtools.lttng.ui.views.statistics.model.StatisticsData
658
     * #registerName
659
     * (org.eclipse.linuxtools.lttng.ui.views.statistics.model.FixedArray)
706
     * (org.eclipse.linuxtools.lttng.ui.views.statistics.model.FixedArray)
660
     */
707
     */
661
    @Override
708
    @Override
Lines 708-715 public class KernelStatisticsData extends StatisticsData { Link Here
708
    }
755
    }
709
756
710
    /**
757
    /**
711
     * <h4>Get the name to be displayed for other statistics than type
758
     * <h4>Get the name to be displayed for other statistics than type statistics</h4>
712
     * statistics</h4>
713
     * 
759
     * 
714
     * @param event
760
     * @param event
715
     *            The current event
761
     *            The current event
Lines 779-786 public class KernelStatisticsData extends StatisticsData { Link Here
779
     * 
825
     * 
780
     * @param process
826
     * @param process
781
     *            The process.
827
     *            The process.
782
     * @return The name of the process. //TODO Adding the creation time of the
828
     * @return The name of the process. // TODO Adding the creation time of the process may be needed to differentiate
783
     *         process may be needed to differentiate two process.
829
     *                                  //     two process.
784
     */
830
     */
785
    private String getProcessName(LttngProcessState process) {
831
    private String getProcessName(LttngProcessState process) {
786
        if (process.getPid() == -1)
832
        if (process.getPid() == -1)
Lines 814-826 public class KernelStatisticsData extends StatisticsData { Link Here
814
            return KernelStatisticsData.HEADER_PROCESSES;
860
            return KernelStatisticsData.HEADER_PROCESSES;
815
        case KernelStatisticsData.HEADER_SUBMODES_INT:
861
        case KernelStatisticsData.HEADER_SUBMODES_INT:
816
            return KernelStatisticsData.HEADER_SUBMODES;
862
            return KernelStatisticsData.HEADER_SUBMODES;
863
        case KernelStatisticsData.HEADER_TRACE_SET_INT:
864
            return KernelStatisticsData.HEADER_TRACE_SET;
817
        }
865
        }
818
        return ""; //$NON-NLS-1$
866
        return ""; //$NON-NLS-1$
819
    }
867
    }
820
868
821
    /**
869
    /**
822
     * <h4>Provides unique keys for String - Integer pairs.</h4>
870
     * <h4>Provides unique keys for String - Integer pairs.</h4>
823
     * 
824
     * @author bhufmann
871
     * @author bhufmann
825
     * 
872
     * 
826
     */
873
     */
Lines 887-893 public class KernelStatisticsData extends StatisticsData { Link Here
887
     * - string -pair. It provides better performance than using a string as key
934
     * - string -pair. It provides better performance than using a string as key
888
     * only. However, for optimal performance the integer values should be mostly
935
     * only. However, for optimal performance the integer values should be mostly
889
     * unique.</h4>
936
     * unique.</h4>
890
     * 
891
     * @author bhufmann
937
     * @author bhufmann
892
     * 
938
     * 
893
     */
939
     */
Lines 901-907 public class KernelStatisticsData extends StatisticsData { Link Here
901
947
902
        /*
948
        /*
903
         * (non-Javadoc)
949
         * (non-Javadoc)
904
         * 
905
         * @see java.lang.Object#hashCode()
950
         * @see java.lang.Object#hashCode()
906
         */
951
         */
907
        @Override
952
        @Override
Lines 911-917 public class KernelStatisticsData extends StatisticsData { Link Here
911
956
912
        /*
957
        /*
913
         * (non-Javadoc)
958
         * (non-Javadoc)
914
         * 
915
         * @see java.lang.Object#equals(java.lang.Object)
959
         * @see java.lang.Object#equals(java.lang.Object)
916
         */
960
         */
917
        @Override
961
        @Override
Lines 924-930 public class KernelStatisticsData extends StatisticsData { Link Here
924
968
925
        /*
969
        /*
926
         * (non-Javadoc)
970
         * (non-Javadoc)
927
         * 
928
         * @see java.lang.Object#clone()
971
         * @see java.lang.Object#clone()
929
         */
972
         */
930
        @Override
973
        @Override
(-)a/lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/statistics/model/Messages.java (+1 lines)
Lines 4-9 import org.eclipse.osgi.util.NLS; Link Here
4
4
5
public class Messages extends NLS {
5
public class Messages extends NLS {
6
    private static final String BUNDLE_NAME = "org.eclipse.linuxtools.lttng.ui.views.statistics.model.messages"; //$NON-NLS-1$
6
    private static final String BUNDLE_NAME = "org.eclipse.linuxtools.lttng.ui.views.statistics.model.messages"; //$NON-NLS-1$
7
    public static String KernelStatisticsData_TraceSet;
7
    public static String KernelStatisticsData_CPUs;
8
    public static String KernelStatisticsData_CPUs;
8
    public static String KernelStatisticsData_EventTypes;
9
    public static String KernelStatisticsData_EventTypes;
9
    public static String KernelStatisticsData_Functions;
10
    public static String KernelStatisticsData_Functions;
(-)a/lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/statistics/model/messages.properties (-2 / +2 lines)
Lines 1-7 Link Here
1
KernelStatisticsData_TraceSet=Total of traces
1
KernelStatisticsData_CPUs=CPUs
2
KernelStatisticsData_CPUs=CPUs
2
KernelStatisticsData_EventTypes=Event Types
3
KernelStatisticsData_EventTypes=Event Types
3
KernelStatisticsData_Functions=Functions
4
KernelStatisticsData_Functions=Functions
4
KernelStatisticsData_Modes=Modes
5
KernelStatisticsData_Modes=Modes
5
KernelStatisticsData_Processes=Processes
6
KernelStatisticsData_Processes=Processes
6
KernelStatisticsData_SubModes=Submodes
7
KernelStatisticsData_SubModes=Submodes
7
StatisticsData_UnknowProcess=Unknown process
8
StatisticsData_UnknowProcess=Unknown process
8
- 

Return to bug 292408