• 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>LinuxPerfMaliParser 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('linux_perf_importer');
19
20function testMaliDDKImport() {
21  var lines = [
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  var m = new tracing.TimelineModel(lines.join('\n'), false);
105  assertEquals(0, m.importErrors.length);
106
107  var threads = m.getAllThreads();
108  assertEquals(1, threads.length);
109
110  var maliThread = threads[0];
111  assertEquals('mali_ddk', maliThread.name);
112  assertEquals(9, maliThread.slices.length);
113}
114
115function testDVFSFrequencyImport() {
116  var lines = [
117    '     kworker/u:0-5     [001] ....  1174.839552: mali_dvfs_set_clock: ' +
118                   'frequency=266',
119    '     kworker/u:0-5     [000] ....  1183.840486: mali_dvfs_set_clock: ' +
120                   'frequency=400'
121  ];
122  var m = new tracing.TimelineModel(lines.join('\n'), false);
123  assertEquals(0, m.importErrors.length);
124
125  var c0 = m.cpus[0];
126  assertEquals(0, c0.slices.length);
127  assertEquals(2, c0.counters['DVFS Frequency'].samples.length);
128}
129
130function testDVFSVoltageImport() {
131  var lines = [
132    '     kworker/u:0-5     [001] ....  1174.839562: mali_dvfs_set_voltage: ' +
133                   'voltage=937500',
134    '     kworker/u:0-5     [000] ....  1183.840009: mali_dvfs_set_voltage: ' +
135                   'voltage=1100000'
136  ];
137  var m = new tracing.TimelineModel(lines.join('\n'), false);
138  assertEquals(0, m.importErrors.length);
139
140  var c0 = m.cpus[0];
141  assertEquals(0, c0.slices.length);
142  assertEquals(2, c0.counters['DVFS Voltage'].samples.length);
143}
144
145function testDVFSUtilizationImport() {
146  var lines = [
147    '     kworker/u:0-5     [001] ....  1174.839552: mali_dvfs_event: ' +
148                   'utilization=7',
149    '     kworker/u:0-5     [000] ....  1183.840486: mali_dvfs_event: ' +
150                   'utilization=37'
151  ];
152  var m = new tracing.TimelineModel(lines.join('\n'), false);
153  assertEquals(0, m.importErrors.length);
154
155  var c0 = m.cpus[0];
156  assertEquals(0, c0.slices.length);
157  assertEquals(2, c0.counters['DVFS Utilization'].samples.length);
158}
159
160</script>
161</body>
162</html>
163