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