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