3 Copyright (c) 2013 The Chromium Authors. All rights reserved.
4 Use of this source code is governed by a BSD-style license that can be
5 found in the LICENSE file.
8 <link rel="import" href="/tracing/test_utils.html">
9 <link rel="import" href="/tracing/importer/linux_perf_importer.html">
14 tvcm.unittest.testSuite(function() { // @suppress longLineCheck
15 test('maliDDKImport', function() {
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: ' +
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',
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',
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: ',
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',
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',
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',
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',
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',
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',
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',
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',
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',
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',
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',
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',
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',
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'
100 var linesWithThread = [
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: ' +
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',
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',
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: ',
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',
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',
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',
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',
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',
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',
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',
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',
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',
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',
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',
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',
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',
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'
184 new tracing.TraceModel(linesNoThread.join('\n'), false);
185 var traceWithThread =
186 new tracing.TraceModel(linesWithThread.join('\n'), false);
187 assertFalse(traceNoThread.hasImportWarnings);
188 assertFalse(traceWithThread.hasImportWarnings);
190 var threadsNoThread = traceNoThread.getAllThreads();
191 var threadsWithThread = traceWithThread.getAllThreads();
192 assertEquals(1, threadsNoThread.length);
193 assertEquals(1, threadsWithThread.length);
195 var maliThreadNoThread = threadsNoThread[0];
196 var maliThreadWithThread = threadsWithThread[0];
197 assertEquals('mali', maliThreadNoThread.tid);
198 assertEquals('mali-1878934320', maliThreadWithThread.tid);
199 assertEquals(9, maliThreadNoThread.sliceGroup.length);
200 assertEquals(9, maliThreadWithThread.sliceGroup.length);
203 test('DVFSFrequencyImport', function() {
205 ' kworker/u:0-5 [001] .... 1174.839552: mali_dvfs_set_clock: ' +
207 ' kworker/u:0-5 [000] .... 1183.840486: mali_dvfs_set_clock: ' +
210 var m = new tracing.TraceModel(lines.join('\n'), false);
211 assertFalse(m.hasImportWarnings);
213 var counters = m.getAllCounters();
214 assertEquals(1, counters.length);
216 var c0 = counters[0];
217 assertEquals(c0.name, 'DVFS Frequency');
218 assertEquals(2, c0.series[0].samples.length);
221 test('DVFSVoltageImport', function() {
223 ' kworker/u:0-5 [001] .... 1174.839562: mali_dvfs_set_voltage: ' +
225 ' kworker/u:0-5 [000] .... 1183.840009: mali_dvfs_set_voltage: ' +
228 var m = new tracing.TraceModel(lines.join('\n'), false);
229 assertFalse(m.hasImportWarnings);
231 var counters = m.getAllCounters();
232 assertEquals(1, counters.length);
234 var c0 = counters[0];
235 assertEquals(c0.name, 'DVFS Voltage');
236 assertEquals(2, c0.series[0].samples.length);
239 test('DVFSUtilizationImport', function() {
241 ' kworker/u:0-5 [001] .... 1174.839552: mali_dvfs_event: ' +
243 ' kworker/u:0-5 [000] .... 1183.840486: mali_dvfs_event: ' +
246 var m = new tracing.TraceModel(lines.join('\n'), false);
247 assertFalse(m.hasImportWarnings);
249 var counters = m.getAllCounters();
250 assertEquals(1, counters.length);
252 var c0 = counters[0];
253 assertEquals(c0.name, 'DVFS Utilization');
254 assertEquals(2, c0.series[0].samples.length);
257 test('maliHWCImport', function() {
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'
466 var m = new tracing.TraceModel(lines.join('\n'), false);
467 assertFalse(m.hasImportWarnings);
469 var counters = m.getAllCounters();
470 assertEquals(103, counters.length);
472 // all counters should have 1 sample
473 for (var tI = 0; tI < counters.length; tI++) {
474 var counter = counters[tI];
475 assertEquals(1, counter.series[0].samples.length);
477 // TODO(sleffler) verify counter names? (not sure if it's worth the effort)