| OLD | NEW |
| 1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
| 2 <!-- | 2 <!-- |
| 3 Copyright (c) 2012 The Chromium Authors. All rights reserved. | 3 Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 4 Use of this source code is governed by a BSD-style license that can be | 4 Use of this source code is governed by a BSD-style license that can be |
| 5 found in the LICENSE file. | 5 found in the LICENSE file. |
| 6 --> | 6 --> |
| 7 | 7 |
| 8 <link rel="import" href="/tracing/extras/importer/linux_perf/parser.html"> | 8 <link rel="import" href="/tracing/extras/importer/linux_perf/parser.html"> |
| 9 <link rel="import" href="/tracing/model/counter_series.html"> | 9 <link rel="import" href="/tracing/model/counter_series.html"> |
| 10 | 10 |
| (...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 98 targetCpu.getOrCreateCounter('', 'Clock Frequency Limits'); | 98 targetCpu.getOrCreateCounter('', 'Clock Frequency Limits'); |
| 99 if (powerCounter.numSeries === 0) { | 99 if (powerCounter.numSeries === 0) { |
| 100 powerCounter.addSeries(new tr.model.CounterSeries('Min Frequency', | 100 powerCounter.addSeries(new tr.model.CounterSeries('Min Frequency', |
| 101 ColorScheme.getColorIdForGeneralPurposeString( | 101 ColorScheme.getColorIdForGeneralPurposeString( |
| 102 powerCounter.name + '.' + 'Min Frequency'))); | 102 powerCounter.name + '.' + 'Min Frequency'))); |
| 103 powerCounter.addSeries(new tr.model.CounterSeries('Max Frequency', | 103 powerCounter.addSeries(new tr.model.CounterSeries('Max Frequency', |
| 104 ColorScheme.getColorIdForGeneralPurposeString( | 104 ColorScheme.getColorIdForGeneralPurposeString( |
| 105 powerCounter.name + '.' + 'Max Frequency'))); | 105 powerCounter.name + '.' + 'Max Frequency'))); |
| 106 } | 106 } |
| 107 powerCounter.series.forEach(function(series) { | 107 powerCounter.series.forEach(function(series) { |
| 108 if (series.name === 'Min Frequency') | 108 if (series.name === 'Min Frequency') { |
| 109 series.addCounterSample(ts, minFreq); | 109 series.addCounterSample(ts, minFreq); |
| 110 if (series.name === 'Max Frequency') | 110 } |
| 111 if (series.name === 'Max Frequency') { |
| 111 series.addCounterSample(ts, maxFreq); | 112 series.addCounterSample(ts, maxFreq); |
| 113 } |
| 112 }); | 114 }); |
| 113 }, | 115 }, |
| 114 | 116 |
| 115 /** | 117 /** |
| 116 * Parses power events and sets up state in the importer. | 118 * Parses power events and sets up state in the importer. |
| 117 */ | 119 */ |
| 118 powerStartEvent: function(eventName, cpuNumber, pid, ts, eventBase) { | 120 powerStartEvent: function(eventName, cpuNumber, pid, ts, eventBase) { |
| 119 var event = /type=(\d+) state=(\d) cpu_id=(\d+)/.exec(eventBase.details); | 121 var event = /type=(\d+) state=(\d) cpu_id=(\d+)/.exec(eventBase.details); |
| 120 if (!event) | 122 if (!event) return false; |
| 121 return false; | |
| 122 | 123 |
| 123 var targetCpuNumber = parseInt(event[3]); | 124 var targetCpuNumber = parseInt(event[3]); |
| 124 var cpuState = parseInt(event[2]); | 125 var cpuState = parseInt(event[2]); |
| 125 this.cpuStateSlice(ts, targetCpuNumber, event[1], cpuState); | 126 this.cpuStateSlice(ts, targetCpuNumber, event[1], cpuState); |
| 126 return true; | 127 return true; |
| 127 }, | 128 }, |
| 128 | 129 |
| 129 powerFrequencyEvent: function(eventName, cpuNumber, pid, ts, eventBase) { | 130 powerFrequencyEvent: function(eventName, cpuNumber, pid, ts, eventBase) { |
| 130 var event = /type=(\d+) state=(\d+) cpu_id=(\d+)/ | 131 var event = /type=(\d+) state=(\d+) cpu_id=(\d+)/ |
| 131 .exec(eventBase.details); | 132 .exec(eventBase.details); |
| 132 if (!event) | 133 if (!event) return false; |
| 133 return false; | |
| 134 | 134 |
| 135 var targetCpuNumber = parseInt(event[3]); | 135 var targetCpuNumber = parseInt(event[3]); |
| 136 var powerState = parseInt(event[2]); | 136 var powerState = parseInt(event[2]); |
| 137 this.cpuFrequencySlice(ts, targetCpuNumber, powerState); | 137 this.cpuFrequencySlice(ts, targetCpuNumber, powerState); |
| 138 return true; | 138 return true; |
| 139 }, | 139 }, |
| 140 | 140 |
| 141 cpuFrequencyEvent: function(eventName, cpuNumber, pid, ts, eventBase) { | 141 cpuFrequencyEvent: function(eventName, cpuNumber, pid, ts, eventBase) { |
| 142 var event = /state=(\d+) cpu_id=(\d+)/.exec(eventBase.details); | 142 var event = /state=(\d+) cpu_id=(\d+)/.exec(eventBase.details); |
| 143 if (!event) | 143 if (!event) return false; |
| 144 return false; | |
| 145 | 144 |
| 146 var targetCpuNumber = parseInt(event[2]); | 145 var targetCpuNumber = parseInt(event[2]); |
| 147 var powerState = parseInt(event[1]); | 146 var powerState = parseInt(event[1]); |
| 148 this.cpuFrequencySlice(ts, targetCpuNumber, powerState); | 147 this.cpuFrequencySlice(ts, targetCpuNumber, powerState); |
| 149 return true; | 148 return true; |
| 150 }, | 149 }, |
| 151 | 150 |
| 152 cpuFrequencyLimitsEvent: function(eventName, cpu, pid, ts, eventBase) { | 151 cpuFrequencyLimitsEvent: function(eventName, cpu, pid, ts, eventBase) { |
| 153 var event = /min=(\d+) max=(\d+) cpu_id=(\d+)/.exec(eventBase.details); | 152 var event = /min=(\d+) max=(\d+) cpu_id=(\d+)/.exec(eventBase.details); |
| 154 if (!event) | 153 if (!event) return false; |
| 155 return false; | |
| 156 | 154 |
| 157 var targetCpuNumber = parseInt(event[3]); | 155 var targetCpuNumber = parseInt(event[3]); |
| 158 var minFreq = parseInt(event[1]); | 156 var minFreq = parseInt(event[1]); |
| 159 var maxFreq = parseInt(event[2]); | 157 var maxFreq = parseInt(event[2]); |
| 160 this.cpuFrequencyLimitsSlice(ts, targetCpuNumber, minFreq, maxFreq); | 158 this.cpuFrequencyLimitsSlice(ts, targetCpuNumber, minFreq, maxFreq); |
| 161 return true; | 159 return true; |
| 162 }, | 160 }, |
| 163 | 161 |
| 164 cpuIdleEvent: function(eventName, cpuNumber, pid, ts, eventBase) { | 162 cpuIdleEvent: function(eventName, cpuNumber, pid, ts, eventBase) { |
| 165 var event = /state=(\d+) cpu_id=(\d+)/.exec(eventBase.details); | 163 var event = /state=(\d+) cpu_id=(\d+)/.exec(eventBase.details); |
| 166 if (!event) | 164 if (!event) return false; |
| 167 return false; | |
| 168 | 165 |
| 169 var targetCpuNumber = parseInt(event[2]); | 166 var targetCpuNumber = parseInt(event[2]); |
| 170 var cpuState = parseInt(event[1]); | 167 var cpuState = parseInt(event[1]); |
| 171 this.cpuIdleSlice(ts, targetCpuNumber, cpuState); | 168 this.cpuIdleSlice(ts, targetCpuNumber, cpuState); |
| 172 return true; | 169 return true; |
| 173 } | 170 } |
| 174 }; | 171 }; |
| 175 | 172 |
| 176 Parser.register(PowerParser); | 173 Parser.register(PowerParser); |
| 177 | 174 |
| 178 return { | 175 return { |
| 179 PowerParser, | 176 PowerParser, |
| 180 }; | 177 }; |
| 181 }); | 178 }); |
| 182 </script> | 179 </script> |
| OLD | NEW |