Brendan Jackman | e81fdcb | 2017-01-04 17:10:29 +0000 | [diff] [blame] | 1 | # Copyright 2015-2017 ARM Limited |
Javi Merino | 766ed3f | 2015-04-22 17:07:42 +0100 | [diff] [blame] | 2 | # |
Javi Merino | aace7c0 | 2015-08-10 14:10:47 +0100 | [diff] [blame] | 3 | # Licensed under the Apache License, Version 2.0 (the "License"); |
| 4 | # you may not use this file except in compliance with the License. |
| 5 | # You may obtain a copy of the License at |
| 6 | # |
| 7 | # http://www.apache.org/licenses/LICENSE-2.0 |
| 8 | # |
| 9 | # Unless required by applicable law or agreed to in writing, software |
| 10 | # distributed under the License is distributed on an "AS IS" BASIS, |
| 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| 12 | # See the License for the specific language governing permissions and |
| 13 | # limitations under the License. |
| 14 | # |
| 15 | |
Javi Merino | 766ed3f | 2015-04-22 17:07:42 +0100 | [diff] [blame] | 16 | |
| 17 | """Process the output of the devfreq_cooling devices in the current |
| 18 | directory's trace.dat""" |
| 19 | |
Javi Merino | 9c9867d | 2015-06-24 13:24:41 +0100 | [diff] [blame] | 20 | import pandas as pd |
| 21 | |
Javi Merino | 435457c | 2015-08-10 15:59:10 +0100 | [diff] [blame] | 22 | from trappy.base import Base |
Javi Merino | 094e742 | 2016-03-22 11:53:55 +0000 | [diff] [blame] | 23 | from trappy.dynamic import register_ftrace_parser |
Javi Merino | 766ed3f | 2015-04-22 17:07:42 +0100 | [diff] [blame] | 24 | |
| 25 | |
| 26 | class DevfreqInPower(Base): |
| 27 | """Process de devfreq cooling device data regarding get_power in an |
Kapileshwar Singh | 95985b5 | 2015-09-09 14:50:37 +0100 | [diff] [blame] | 28 | FTrace dump""" |
Javi Merino | 766ed3f | 2015-04-22 17:07:42 +0100 | [diff] [blame] | 29 | |
| 30 | name = "devfreq_in_power" |
Kapileshwar Singh | 95985b5 | 2015-09-09 14:50:37 +0100 | [diff] [blame] | 31 | """The name of the :mod:`pandas.DataFrame` member that will be created in a |
Javi Merino | c26a323 | 2015-12-11 18:00:30 +0000 | [diff] [blame] | 32 | :mod:`trappy.ftrace.FTrace` object""" |
Javi Merino | 766ed3f | 2015-04-22 17:07:42 +0100 | [diff] [blame] | 33 | |
Javi Merino | dc9626d | 2015-11-26 11:08:50 +0000 | [diff] [blame] | 34 | unique_word="thermal_power_devfreq_get_power:" |
| 35 | """The event name in the trace""" |
| 36 | |
Javi Merino | 766ed3f | 2015-04-22 17:07:42 +0100 | [diff] [blame] | 37 | def get_all_freqs(self): |
Kapileshwar Singh | 95985b5 | 2015-09-09 14:50:37 +0100 | [diff] [blame] | 38 | """Return a :mod:`pandas.DataFrame` with |
| 39 | the frequencies for the devfreq device |
Javi Merino | 766ed3f | 2015-04-22 17:07:42 +0100 | [diff] [blame] | 40 | |
| 41 | The format should be the same as the one for |
Kapileshwar Singh | 95985b5 | 2015-09-09 14:50:37 +0100 | [diff] [blame] | 42 | :code:`CpuInPower().get_all_freqs()`. |
Javi Merino | 766ed3f | 2015-04-22 17:07:42 +0100 | [diff] [blame] | 43 | |
Kapileshwar Singh | 95985b5 | 2015-09-09 14:50:37 +0100 | [diff] [blame] | 44 | .. note:: Frequencies are in MHz. |
Javi Merino | 766ed3f | 2015-04-22 17:07:42 +0100 | [diff] [blame] | 45 | """ |
| 46 | |
Javi Merino | 9c9867d | 2015-06-24 13:24:41 +0100 | [diff] [blame] | 47 | return pd.DataFrame(self.data_frame["freq"] / 1000000) |
Javi Merino | 766ed3f | 2015-04-22 17:07:42 +0100 | [diff] [blame] | 48 | |
Javi Merino | 094e742 | 2016-03-22 11:53:55 +0000 | [diff] [blame] | 49 | register_ftrace_parser(DevfreqInPower, "thermal") |
Javi Merino | 766ed3f | 2015-04-22 17:07:42 +0100 | [diff] [blame] | 50 | |
| 51 | |
| 52 | class DevfreqOutPower(Base): |
| 53 | """Process de devfreq cooling device data regarding power2state in an |
| 54 | ftrace dump""" |
| 55 | |
| 56 | name = "devfreq_out_power" |
Kapileshwar Singh | 95985b5 | 2015-09-09 14:50:37 +0100 | [diff] [blame] | 57 | """The name of the :mod:`pandas.DataFrame` member that will be created in a |
Javi Merino | c26a323 | 2015-12-11 18:00:30 +0000 | [diff] [blame] | 58 | :mod:`trappy.ftrace.FTrace` object""" |
Javi Merino | 766ed3f | 2015-04-22 17:07:42 +0100 | [diff] [blame] | 59 | |
Javi Merino | dc9626d | 2015-11-26 11:08:50 +0000 | [diff] [blame] | 60 | unique_word="thermal_power_devfreq_limit:" |
| 61 | """The event name in the trace""" |
| 62 | |
Javi Merino | 766ed3f | 2015-04-22 17:07:42 +0100 | [diff] [blame] | 63 | def get_all_freqs(self): |
Kapileshwar Singh | 95985b5 | 2015-09-09 14:50:37 +0100 | [diff] [blame] | 64 | """Return a :mod:`pandas.DataFrame` with |
| 65 | the output frequencies for the devfreq device |
Javi Merino | 766ed3f | 2015-04-22 17:07:42 +0100 | [diff] [blame] | 66 | |
Kapileshwar Singh | 95985b5 | 2015-09-09 14:50:37 +0100 | [diff] [blame] | 67 | The format should be the same as the one for |
| 68 | :code:`CpuOutPower().get_all_freqs()`. |
Javi Merino | 766ed3f | 2015-04-22 17:07:42 +0100 | [diff] [blame] | 69 | |
Kapileshwar Singh | 95985b5 | 2015-09-09 14:50:37 +0100 | [diff] [blame] | 70 | .. note:: Frequencies are in MHz. |
Javi Merino | 766ed3f | 2015-04-22 17:07:42 +0100 | [diff] [blame] | 71 | """ |
| 72 | |
Javi Merino | 9c9867d | 2015-06-24 13:24:41 +0100 | [diff] [blame] | 73 | return pd.DataFrame(self.data_frame["freq"] / 1000000) |
Javi Merino | 766ed3f | 2015-04-22 17:07:42 +0100 | [diff] [blame] | 74 | |
Javi Merino | 094e742 | 2016-03-22 11:53:55 +0000 | [diff] [blame] | 75 | register_ftrace_parser(DevfreqOutPower, "thermal") |