mali_parser_test.html revision 4a4f2fe02baf385f6c24fc98c6e17bf6ac5e0724
1<!DOCTYPE html>
2<!--
3Copyright (c) 2013 The Chromium Authors. All rights reserved.
4Use of this source code is governed by a BSD-style license that can be
5found in the LICENSE file.
6-->
7
8<link rel="import" href="/tracing/core/test_utils.html">
9<link rel="import" href="/tracing/extras/importer/linux_perf/ftrace_importer.html">
10
11<script>
12'use strict';
13
14tr.b.unittest.testSuite(function() { // @suppress longLineCheck
15  test('maliDDKImport', function() {
16    var linesNoThread = [
17      // Row 1 open
18      '           chrome-1780  [001] ...1   28.562633: tracing_mark_write: ' +
19          'mali_driver: cros_trace_print_enter: ' +
20          'gles/src/dispatch/mali_gles_dispatch_entrypoints.c992: ' +
21          'glTexSubImage2D',
22      // Row 2 open
23      '           chrome-1780  [001] ...1   28.562655: tracing_mark_write: ' +
24          'mali_driver: cros_trace_print_enter: ' +
25          'gles/src/texture/mali_gles_texture_api.c996: ' +
26          'gles_texture_tex_sub_image_2d',
27      // Row 3 open
28      '            chrome-1780  [001] ...1   28.562671: tracing_mark_write: ' +
29          'mali_driver: cros_trace_print_enter: ' +
30          'gles/src/texture/mali_gles_texture_slave.c295: ' +
31          'gles_texturep_slave_map_master',
32      // Row 3 close
33      '           chrome-1780  [001] ...1   28.562684: tracing_mark_write: ' +
34          'mali_driver: cros_trace_print_exit: ' +
35          'gles/src/texture/mali_gles_texture_slave.c295: ',
36      // Row 3 open
37      '           chrome-1780  [001] ...1   28.562700: tracing_mark_write: ' +
38          'mali_driver: cros_trace_print_enter: ' +
39          'gles/src/texture/mali_gles_texture_slave.c1505: ' +
40          'gles2_texturep_upload_2d',
41      // Row 4 open
42      '           chrome-1780  [001] ...1   28.562726: tracing_mark_write: ' +
43          'mali_driver: cros_trace_print_enter: ' +
44          'gles/src/texture/mali_gles_texture_slave.c1612: ' +
45          'gles2_texturep_upload_2d: pixel array: wait for dependencies',
46      // Row 5 open
47      '           chrome-1780  [001] ...1   28.562742: tracing_mark_write: ' +
48          'mali_driver: cros_trace_print_enter: ' +
49          'cobj/src/mali_cobj_surface_operations.c1693: ' +
50          'cobj_convert_pixels_to_surface',
51      // Row 6 open
52      '           chrome-1780  [001] ...1   28.562776: tracing_mark_write: ' +
53          'mali_driver: cros_trace_print_enter: ' +
54          'cobj/src/mali_cobj_surface_operations.c1461: ' +
55          'cobj_convert_pixels',
56      // Row 7 open
57      '           chrome-1780  [001] ...1   28.562791: tracing_mark_write: ' +
58          'mali_driver: cros_trace_print_enter: ' +
59          'cobj/src/mali_cobj_surface_operations.c1505: ' +
60          'cobj_convert_pixels: fast-path linear copy',
61      // Row 8 open
62      '           chrome-1780  [001] ...1   28.562808: tracing_mark_write: ' +
63          'mali_driver: cros_trace_print_enter: ' +
64          'cobj/src/mali_cobj_surface_operations.c1511: ' +
65          'cobj_convert_pixels: reorder-only',
66      // Row 8 close
67      '           chrome-1780  [001] ...1   28.563383: tracing_mark_write: ' +
68          'mali_driver: cros_trace_print_exit: ' +
69          'cobj/src/mali_cobj_surface_operations.c1511',
70      // Row 7 close
71      '           chrome-1780  [001] ...1   28.563397: tracing_mark_write: ' +
72          'mali_driver: cros_trace_print_exit: ' +
73          'cobj/src/mali_cobj_surface_operations.c1505',
74      // Row 6 close
75      '           chrome-1780  [001] ...1   28.563409: tracing_mark_write: ' +
76          'mali_driver: cros_trace_print_exit: ' +
77          'cobj/src/mali_cobj_surface_operations.c1461',
78      // Row 5 close
79      '           chrome-1780  [001] ...1   28.563438: tracing_mark_write: ' +
80          'mali_driver: cros_trace_print_exit: ' +
81          'cobj/src/mali_cobj_surface_operations.c1693',
82      // Row 4 close
83      '           chrome-1780  [001] ...1   28.563451: tracing_mark_write: ' +
84          'mali_driver: cros_trace_print_exit: ' +
85          'gles/src/texture/mali_gles_texture_slave.c1612',
86      // Row 3 close
87      '           chrome-1780  [001] ...1   28.563462: tracing_mark_write: ' +
88          'mali_driver: cros_trace_print_exit: ' +
89          'gles/src/texture/mali_gles_texture_slave.c1505',
90      // Row 2 close
91      '           chrome-1780  [001] ...1   28.563475: tracing_mark_write: ' +
92          'mali_driver: cros_trace_print_exit: ' +
93          'gles/src/texture/mali_gles_texture_api.c996',
94      // Row 1 close
95      '           chrome-1780  [001] ...1   28.563486: tracing_mark_write: ' +
96          'mali_driver: cros_trace_print_exit: ' +
97          'gles/src/dispatch/mali_gles_dispatch_entrypoints.c992'
98    ];
99
100    var linesWithThread = [
101      // Row 1 open
102      '           chrome-1780  [001] ...1   28.562633: tracing_mark_write: ' +
103          'mali_driver: (mali-1878934320) cros_trace_print_enter: ' +
104          'gles/src/dispatch/mali_gles_dispatch_entrypoints.c@992: ' +
105          'glTexSubImage2D',
106      // Row 2 open
107      '           chrome-1780  [001] ...1   28.562655: tracing_mark_write: ' +
108          'mali_driver: (mali-1878934320) cros_trace_print_enter: ' +
109          'gles/src/texture/mali_gles_texture_api.c@996: ' +
110          'gles_texture_tex_sub_image_2d',
111      // Row 3 open
112      '            chrome-1780  [001] ...1   28.562671: tracing_mark_write: ' +
113          'mali_driver: (mali-1878934320) cros_trace_print_enter: ' +
114          'gles/src/texture/mali_gles_texture_slave.c@295: ' +
115          'gles_texturep_slave_map_master',
116      // Row 3 close
117      '           chrome-1780  [001] ...1   28.562684: tracing_mark_write: ' +
118          'mali_driver: (mali-1878934320) cros_trace_print_exit: ' +
119          'gles/src/texture/mali_gles_texture_slave.c@295: ',
120      // Row 3 open
121      '           chrome-1780  [001] ...1   28.562700: tracing_mark_write: ' +
122          'mali_driver: (mali-1878934320) cros_trace_print_enter: ' +
123          'gles/src/texture/mali_gles_texture_slave.c@1505: ' +
124          'gles2_texturep_upload_2d',
125      // Row 4 open
126      '           chrome-1780  [001] ...1   28.562726: tracing_mark_write: ' +
127          'mali_driver: (mali-1878934320) cros_trace_print_enter: ' +
128          'gles/src/texture/mali_gles_texture_slave.c@1612: ' +
129          'gles2_texturep_upload_2d: pixel array: wait for dependencies',
130      // Row 5 open
131      '           chrome-1780  [001] ...1   28.562742: tracing_mark_write: ' +
132          'mali_driver: (mali-1878934320) cros_trace_print_enter: ' +
133          'cobj/src/mali_cobj_surface_operations.c@1693: ' +
134          'cobj_convert_pixels_to_surface',
135      // Row 6 open
136      '           chrome-1780  [001] ...1   28.562776: tracing_mark_write: ' +
137          'mali_driver: (mali-1878934320) cros_trace_print_enter: ' +
138          'cobj/src/mali_cobj_surface_operations.c@1461: ' +
139          'cobj_convert_pixels',
140      // Row 7 open
141      '           chrome-1780  [001] ...1   28.562791: tracing_mark_write: ' +
142          'mali_driver: (mali-1878934320) cros_trace_print_enter: ' +
143          'cobj/src/mali_cobj_surface_operations.c@1505: ' +
144          'cobj_convert_pixels: fast-path linear copy',
145      // Row 8 open
146      '           chrome-1780  [001] ...1   28.562808: tracing_mark_write: ' +
147          'mali_driver: (mali-1878934320) cros_trace_print_enter: ' +
148          'cobj/src/mali_cobj_surface_operations.c@1511: ' +
149          'cobj_convert_pixels: reorder-only',
150      // Row 8 close
151      '           chrome-1780  [001] ...1   28.563383: tracing_mark_write: ' +
152          'mali_driver: (mali-1878934320) cros_trace_print_exit: ' +
153          'cobj/src/mali_cobj_surface_operations.c@1511',
154      // Row 7 close
155      '           chrome-1780  [001] ...1   28.563397: tracing_mark_write: ' +
156          'mali_driver: (mali-1878934320) cros_trace_print_exit: ' +
157          'cobj/src/mali_cobj_surface_operations.c@1505',
158      // Row 6 close
159      '           chrome-1780  [001] ...1   28.563409: tracing_mark_write: ' +
160          'mali_driver: (mali-1878934320) cros_trace_print_exit: ' +
161          'cobj/src/mali_cobj_surface_operations.c@1461',
162      // Row 5 close
163      '           chrome-1780  [001] ...1   28.563438: tracing_mark_write: ' +
164          'mali_driver: (mali-1878934320) cros_trace_print_exit: ' +
165          'cobj/src/mali_cobj_surface_operations.c@1693',
166      // Row 4 close
167      '           chrome-1780  [001] ...1   28.563451: tracing_mark_write: ' +
168          'mali_driver: (mali-1878934320) cros_trace_print_exit: ' +
169          'gles/src/texture/mali_gles_texture_slave.c@1612',
170      // Row 3 close
171      '           chrome-1780  [001] ...1   28.563462: tracing_mark_write: ' +
172          'mali_driver: (mali-1878934320) cros_trace_print_exit: ' +
173          'gles/src/texture/mali_gles_texture_slave.c@1505',
174      // Row 2 close
175      '           chrome-1780  [001] ...1   28.563475: tracing_mark_write: ' +
176          'mali_driver: (mali-1878934320) cros_trace_print_exit: ' +
177          'gles/src/texture/mali_gles_texture_api.c@996',
178      // Row 1 close
179      '           chrome-1780  [001] ...1   28.563486: tracing_mark_write: ' +
180          'mali_driver: (mali-1878934320) cros_trace_print_exit: ' +
181          'gles/src/dispatch/mali_gles_dispatch_entrypoints.c@992'
182    ];
183    var traceNoThread =
184        new tr.Model(linesNoThread.join('\n'), false);
185    var traceWithThread =
186        new tr.Model(linesWithThread.join('\n'), false);
187    assert.isFalse(traceNoThread.hasImportWarnings);
188    assert.isFalse(traceWithThread.hasImportWarnings);
189
190    var threadsNoThread = traceNoThread.getAllThreads();
191    var threadsWithThread = traceWithThread.getAllThreads();
192    assert.equal(threadsNoThread.length, 1);
193    assert.equal(threadsWithThread.length, 1);
194
195    var maliThreadNoThread = threadsNoThread[0];
196    var maliThreadWithThread = threadsWithThread[0];
197    assert.equal(maliThreadNoThread.tid, 'mali');
198    assert.equal(maliThreadWithThread.tid, 'mali-1878934320');
199    assert.equal(maliThreadNoThread.sliceGroup.length, 9);
200    assert.equal(maliThreadWithThread.sliceGroup.length, 9);
201  });
202
203  test('DVFSFrequencyImport', function() {
204    var lines = [
205      '     kworker/u:0-5     [001] ....  1174.839552: mali_dvfs_set_clock: ' +
206                     'frequency=266',
207      '     kworker/u:0-5     [000] ....  1183.840486: mali_dvfs_set_clock: ' +
208                     'frequency=400'
209    ];
210    var m = new tr.Model(lines.join('\n'), false);
211    assert.isFalse(m.hasImportWarnings);
212
213    var counters = m.getAllCounters();
214    assert.equal(counters.length, 1);
215
216    var c0 = counters[0];
217    assert.equal(c0.name, 'DVFS Frequency');
218    assert.equal(c0.series[0].samples.length, 2);
219  });
220
221  test('DVFSVoltageImport', function() {
222    var lines = [
223      '    kworker/u:0-5     [001] ....  1174.839562: mali_dvfs_set_voltage: ' +
224                     'voltage=937500',
225      '    kworker/u:0-5     [000] ....  1183.840009: mali_dvfs_set_voltage: ' +
226                     'voltage=1100000'
227    ];
228    var m = new tr.Model(lines.join('\n'), false);
229    assert.isFalse(m.hasImportWarnings);
230
231    var counters = m.getAllCounters();
232    assert.equal(counters.length, 1);
233
234    var c0 = counters[0];
235    assert.equal(c0.name, 'DVFS Voltage');
236    assert.equal(c0.series[0].samples.length, 2);
237  });
238
239  test('DVFSUtilizationImport', function() {
240    var lines = [
241      '     kworker/u:0-5     [001] ....  1174.839552: mali_dvfs_event: ' +
242                     'utilization=7',
243      '     kworker/u:0-5     [000] ....  1183.840486: mali_dvfs_event: ' +
244                     'utilization=37'
245    ];
246    var m = new tr.Model(lines.join('\n'), false);
247    assert.isFalse(m.hasImportWarnings);
248
249    var counters = m.getAllCounters();
250    assert.equal(counters.length, 1);
251
252    var c0 = counters[0];
253    assert.equal(c0.name, 'DVFS Utilization');
254    assert.equal(c0.series[0].samples.length, 2);
255  });
256
257  test('maliHWCImport', function() {
258    var lines = [
259      '     kworker/u:0-5     [000] ....    78.896588: ' +
260                     'mali_hwc_ACTIVE: val=238',
261      '     kworker/u:0-5     [000] ....    79.046889: ' +
262                     'mali_hwc_ARITH_CYCLES_L0: val=1967',
263      '     kworker/u:0-5     [000] ....    79.046888: ' +
264                     'mali_hwc_ARITH_CYCLES_REG: val=136',
265      '     kworker/u:0-5     [000] ....    79.046890: ' +
266                     'mali_hwc_ARITH_FRAG_DEPEND: val=19676',
267      '     kworker/u:0-5     [000] ....    79.046886: ' +
268                     'mali_hwc_ARITH_WORDS: val=255543',
269      '     kworker/u:0-5     [000] ....    79.046920: ' +
270                     'mali_hwc_AXI_BEATS_READ: val=257053',
271      '     kworker/u:0-5     [000] ....    78.896594: ' +
272                     'mali_hwc_AXI_TLB_STALL: val=1',
273      '     kworker/u:0-5     [000] ....    78.946646: ' +
274                     'mali_hwc_AXI_TLB_TRANSACTION: val=4',
275      '     kworker/u:0-5     [000] ....    79.046853: ' +
276                     'mali_hwc_BACK_FACING: val=104',
277      '     kworker/u:0-5     [000] ....    79.046880: ' +
278                     'mali_hwc_COMPUTE_ACTIVE: val=17462',
279      '     kworker/u:0-5     [000] ....    79.046884: ' +
280                     'mali_hwc_COMPUTE_CYCLES_DESC: val=3933',
281      '     kworker/u:0-5     [000] ....    79.046881: ' +
282                     'mali_hwc_COMPUTE_TASKS: val=15',
283      '     kworker/u:0-5     [000] ....    79.046883: ' +
284                     'mali_hwc_COMPUTE_THREADS: val=60',
285      '     kworker/u:0-5     [000] ....    79.046860: ' +
286                     'mali_hwc_FRAG_ACTIVE: val=690986',
287      '     kworker/u:0-5     [000] ....    79.046864: ' +
288                     'mali_hwc_FRAG_CYCLE_DESC: val=13980',
289      '     kworker/u:0-5     [000] ....    79.046876: ' +
290                     'mali_hwc_FRAG_CYCLE_NO_TILE: val=3539',
291      '     kworker/u:0-5     [000] ....    79.046865: ' +
292                     'mali_hwc_FRAG_CYCLES_PLR: val=1499',
293      '     kworker/u:0-5     [000] ....    79.046869: ' +
294                     'mali_hwc_FRAG_CYCLES_RAST: val=1999',
295      '     kworker/u:0-5     [000] ....    79.046868: ' +
296                     'mali_hwc_FRAG_CYCLES_TRISETUP: val=22353',
297      '     kworker/u:0-5     [000] ....    79.046867: ' +
298                     'mali_hwc_FRAG_CYCLES_VERT: val=20763',
299      '     kworker/u:0-5     [000] ....    79.046872: ' +
300                     'mali_hwc_FRAG_DUMMY_THREADS: val=1968',
301      '     kworker/u:0-5     [000] ....    79.046877: ' +
302                     'mali_hwc_FRAG_NUM_TILES: val=1840',
303      '     kworker/u:0-5     [000] ....    79.046862: ' +
304                     'mali_hwc_FRAG_PRIMATIVES: val=3752',
305      '     kworker/u:0-5     [000] ....    79.046863: ' +
306                     'mali_hwc_FRAG_PRIMATIVES_DROPPED: val=18',
307      '     kworker/u:0-5     [000] ....    79.046874: ' +
308                     'mali_hwc_FRAG_QUADS_EZS_TEST: val=117925',
309      '     kworker/u:0-5     [000] ....    79.046873: ' +
310                     'mali_hwc_FRAG_QUADS_RAST: val=117889',
311      '     kworker/u:0-5     [000] ....    79.046870: ' +
312                     'mali_hwc_FRAG_THREADS: val=471507',
313      '     kworker/u:0-5     [000] ....    79.046879: ' +
314                     'mali_hwc_FRAG_TRANS_ELIM: val=687',
315      '     kworker/u:0-5     [000] ....    80.315162: ' +
316                     'mali_hwc_FRONT_FACING: val=56',
317      '     kworker/u:0-5     [000] ....    78.896582: ' +
318                     'mali_hwc_GPU_ACTIVE: val=1316',
319      '     kworker/u:0-5     [000] ....    78.896584: ' +
320                     'mali_hwc_IRQ_ACTIVE: val=17',
321      '     kworker/u:0-5     [000] ....    79.046834: ' +
322                     'mali_hwc_JS0_ACTIVE: val=709444',
323      '     kworker/u:0-5     [000] ....    79.046831: ' +
324                     'mali_hwc_JS0_JOBS: val=2',
325      '     kworker/u:0-5     [000] ....    79.046832: ' +
326                     'mali_hwc_JS0_TASKS: val=7263',
327      '     kworker/u:0-5     [000] ....    79.046836: ' +
328                     'mali_hwc_JS0_WAIT_DEPEND: val=665876',
329      '     kworker/u:0-5     [000] ....    79.046835: ' +
330                     'mali_hwc_JS0_WAIT_ISSUE: val=910',
331      '     kworker/u:0-5     [000] ....    79.046840: ' +
332                     'mali_hwc_JS1_ACTIVE: val=153980',
333      '     kworker/u:0-5     [000] ....    79.046838: ' +
334                     'mali_hwc_JS1_JOBS: val=133',
335      '     kworker/u:0-5     [000] ....    79.046839: ' +
336                     'mali_hwc_JS1_TASKS: val=128',
337      '     kworker/u:0-5     [000] ....    79.046843: ' +
338                     'mali_hwc_JS1_WAIT_FINISH: val=74404',
339      '     kworker/u:0-5     [000] ....    79.046842: ' +
340                     'mali_hwc_JS1_WAIT_ISSUE: val=10146',
341      '     kworker/u:0-5     [000] ....    78.896603: ' +
342                     'mali_hwc_L2_ANY_LOOKUP: val=22',
343      '     kworker/u:0-5     [000] ....    79.046942: ' +
344                     'mali_hwc_L2_CLEAN_MISS: val=116',
345      '     kworker/u:0-5     [000] ....    79.063515: ' +
346                     'mali_hwc_L2_EXT_AR_STALL: val=9',
347      '     kworker/u:0-5     [000] ....    78.963384: ' +
348                     'mali_hwc_L2_EXT_BARRIER: val=1',
349      '     kworker/u:0-5     [000] ....    79.063516: ' +
350                     'mali_hwc_L2_EXT_R_BUF_FULL: val=43',
351      '     kworker/u:0-5     [000] ....    78.896611: ' +
352                     'mali_hwc_L2_EXT_READ: val=4',
353      '     kworker/u:0-5     [000] ....    78.896612: ' +
354                     'mali_hwc_L2_EXT_READ_LINE: val=4',
355      '     kworker/u:0-5     [000] ....    79.046956: ' +
356                     'mali_hwc_L2_EXT_R_RAW: val=1',
357      '     kworker/u:0-5     [000] ....    79.063518: ' +
358                     'mali_hwc_L2_EXT_R_W_HAZARD: val=15',
359      '     kworker/u:0-5     [000] ....    78.963381: ' +
360                     'mali_hwc_L2_EXT_WRITE: val=25',
361      '     kworker/u:0-5     [000] ....    79.046952: ' +
362                     'mali_hwc_L2_EXT_WRITE_LINE: val=63278',
363      '     kworker/u:0-5     [000] ....    78.963382: ' +
364                     'mali_hwc_L2_EXT_WRITE_SMALL: val=1',
365      '     kworker/u:0-5     [000] ....    79.814532: ' +
366                     'mali_hwc_L2_EXT_W_STALL: val=9',
367      '     kworker/u:0-5     [000] ....    78.896602: ' +
368                     'mali_hwc_L2_READ_BEATS: val=16',
369      '     kworker/u:0-5     [000] ....    78.896607: ' +
370                     'mali_hwc_L2_READ_HIT: val=11',
371      '     kworker/u:0-5     [000] ....    78.896604: ' +
372                     'mali_hwc_L2_READ_LOOKUP: val=19',
373      '     kworker/u:0-5     [000] ....    78.896606: ' +
374                     'mali_hwc_L2_READ_REPLAY: val=2',
375      '     kworker/u:0-5     [000] ....    79.046940: ' +
376                     'mali_hwc_L2_READ_SNOOP: val=24',
377      '     kworker/u:0-5     [000] ....    79.046959: ' +
378                     'mali_hwc_L2_REPLAY_FULL: val=6629',
379      '     kworker/u:0-5     [000] .N..    80.565684: ' +
380                     'mali_hwc_L2_SNOOP_FULL: val=5',
381      '     kworker/u:0-5     [000] ....    79.046937: ' +
382                     'mali_hwc_L2_SREAD_LOOKUP: val=241',
383      '     kworker/u:0-5     [000] ....    79.046944: ' +
384                     'mali_hwc_L2_SWRITE_LOOKUP: val=133',
385      '     kworker/u:0-5     [000] ....    78.896614: ' +
386                     'mali_hwc_L2_TAG_HAZARD: val=4',
387      '     kworker/u:0-5     [000] ....    78.963368: ' +
388                     'mali_hwc_L2_WRITE_BEATS: val=96',
389      '     kworker/u:0-5     [000] ....    79.046947: ' +
390                     'mali_hwc_L2_WRITE_HIT: val=78265',
391      '     kworker/u:0-5     [000] ....    78.896608: ' +
392                     'mali_hwc_L2_WRITE_LOOKUP: val=3',
393      '     kworker/u:0-5     [000] ....    79.046946: ' +
394                     'mali_hwc_L2_WRITE_REPLAY: val=15879',
395      '     kworker/u:0-5     [000] ....    79.046912: ' +
396                     'mali_hwc_LSC_LINE_FETCHES: val=15',
397      '     kworker/u:0-5     [000] ....    79.046909: ' +
398                     'mali_hwc_LSC_READ_HITS: val=2961',
399      '     kworker/u:0-5     [000] ....    79.046911: ' +
400                     'mali_hwc_LSC_READ_MISSES: val=22',
401      '     kworker/u:0-5     [000] ....    79.046914: ' +
402                     'mali_hwc_LSC_SNOOPS: val=10',
403      '     kworker/u:0-5     [000] ....    79.046893: ' +
404                     'mali_hwc_LS_ISSUES: val=524219',
405      '     kworker/u:0-5     [000] ....    79.046894: ' +
406                     'mali_hwc_LS_REISSUES_MISS: val=439',
407      '     kworker/u:0-5     [000] ....    79.046895: ' +
408                     'mali_hwc_LS_REISSUES_VD: val=52007',
409      '     kworker/u:0-5     [000] ....    79.046919: ' +
410                     'mali_hwc_LS_TLB_HIT: val=3043',
411      '     kworker/u:0-5     [000] ....    79.046918: ' +
412                     'mali_hwc_LS_TLB_MISS: val=5',
413      '     kworker/u:0-5     [000] ....    79.046891: ' +
414                     'mali_hwc_LS_WORDS: val=471514',
415      '     kworker/u:0-5     [000] ....    79.046925: ' +
416                     'mali_hwc_MMU_HIT: val=771',
417      '     kworker/u:0-5     [000] ....    79.046924: ' +
418                     'mali_hwc_MMU_NEW_MISS: val=494',
419      '     kworker/u:0-5     [000] ....    79.046922: ' +
420                     'mali_hwc_MMU_REPLAY_MISS: val=841',
421      '     kworker/u:0-5     [000] ....    79.046921: ' +
422                     'mali_hwc_MMU_TABLE_WALK: val=3119',
423      '     kworker/u:0-5     [000] ....    79.046848: ' +
424                     'mali_hwc_POINTS: val=5',
425      '     kworker/u:0-5     [000] ....    79.046856: ' +
426                     'mali_hwc_PRIM_CLIPPED: val=70',
427      '     kworker/u:0-5     [000] ....    79.046855: ' +
428                     'mali_hwc_PRIM_CULLED: val=26',
429      '     kworker/u:0-5     [000] ....    79.046854: ' +
430                     'mali_hwc_PRIM_VISIBLE: val=109',
431      '     kworker/u:0-5     [000] ....    79.046898: ' +
432                     'mali_hwc_TEX_BUBBLES: val=24874',
433      '     kworker/u:0-5     [000] ....    79.046905: ' +
434                     'mali_hwc_TEX_RECIRC_DESC: val=5937',
435      '     kworker/u:0-5     [000] ....    79.046904: ' +
436                     'mali_hwc_TEX_RECIRC_FMISS: val=209450',
437      '     kworker/u:0-5     [000] ....    78.896592: ' +
438                     'mali_hwc_TEX_RECIRC_MULTI: val=238',
439      '     kworker/u:0-5     [000] ....    79.046908: ' +
440                     'mali_hwc_TEX_RECIRC_PMISS: val=9672',
441      '     kworker/u:0-5     [000] ....    79.046903: ' +
442                     'mali_hwc_TEX_THREADS: val=660900',
443      '     kworker/u:0-5     [000] ....    79.046897: ' +
444                     'mali_hwc_TEX_WORDS: val=471193',
445      '     kworker/u:0-5     [000] ....    79.046901: ' +
446                     'mali_hwc_TEX_WORDS_DESC: val=707',
447      '     kworker/u:0-5     [000] ....    79.046900: ' +
448                     'mali_hwc_TEX_WORDS_L0: val=32',
449      '     kworker/u:0-5     [000] ....    79.046846: ' +
450                     'mali_hwc_TRIANGLES: val=130',
451      '     kworker/u:0-5     [000] ....    79.046885: ' +
452                     'mali_hwc_TRIPIPE_ACTIVE: val=691001',
453      '     kworker/u:0-5     [000] ....    78.896600: ' +
454                     'mali_hwc_UTLB_NEW_MISS: val=6',
455      '     kworker/u:0-5     [000] ....    78.896599: ' +
456                     'mali_hwc_UTLB_REPLAY_FULL: val=248',
457      '     kworker/u:0-5     [000] ....    78.896597: ' +
458                     'mali_hwc_UTLB_REPLAY_MISS: val=1',
459      '     kworker/u:0-5     [000] ....    78.896596: ' +
460                     'mali_hwc_UTLB_STALL: val=1',
461      '     kworker/u:0-5     [000] ....    79.046850: ' +
462                     'mali_hwc_VCACHE_HIT: val=311',
463      '     kworker/u:0-5     [000] ....    79.046851: ' +
464                     'mali_hwc_VCACHE_MISS: val=70'
465    ];
466    var m = new tr.Model(lines.join('\n'), false);
467    assert.isFalse(m.hasImportWarnings);
468
469    var counters = m.getAllCounters();
470    assert.equal(counters.length, 103);
471
472    // all counters should have 1 sample
473    for (var tI = 0; tI < counters.length; tI++) {
474      var counter = counters[tI];
475      assert.equal(counter.series[0].samples.length, 1);
476    }
477    // TODO(sleffler) verify counter names? (not sure if it's worth the effort)
478  });
479});
480</script>
481
482