blob: 4e1ef2821a33b7c357308fe00d7d6587b9f70e3c [file] [log] [blame]
{
"metadata": {
"name": "",
"signature": "sha256:26eddef33113120cd011fe5e26150939f2cb0ccd2dc2a20dc72e6988808ee6c8"
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "heading",
"level": 1,
"metadata": {},
"source": [
"The FTrace class"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The `FTrace` class allows you to inspect the data for the run. Its main purpose is to parse the trace information into pandas DataFrames. Each tracepoint gets its own DataFrame."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"First some hacks to allow importing trappy from here"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"import sys\n",
"sys.path.append(\"..\")"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 1
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"%matplotlib inline\n",
"import trappy"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Populating the interactive namespace from numpy and matplotlib\n"
]
}
],
"prompt_number": 2
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The `FTrace` class has one mandatory parameter: the path to `trace.dat` or `trace.txt`."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"trace = trappy.FTrace(\"./trace.txt\")"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 3
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"You can access the DataFrame for each tracepoint using the `.data_frame` property. For example, the `trace_thermal` tracepoint is in the `.thermal` property of `FTrace`"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"trace.thermal.data_frame"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>__comm</th>\n",
" <th>__cpu</th>\n",
" <th>__pid</th>\n",
" <th>id</th>\n",
" <th>temp</th>\n",
" <th>temp_prev</th>\n",
" <th>thermal_zone</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Time</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0.000000</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>0</td>\n",
" <td>68786</td>\n",
" <td>68794</td>\n",
" <td>soc_thermal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>0.099539</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>0</td>\n",
" <td>68781</td>\n",
" <td>68786</td>\n",
" <td>soc_thermal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>0.199957</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>0</td>\n",
" <td>68782</td>\n",
" <td>68781</td>\n",
" <td>soc_thermal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>0.299112</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>0</td>\n",
" <td>68835</td>\n",
" <td>68782</td>\n",
" <td>soc_thermal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>0.399646</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>0</td>\n",
" <td>68882</td>\n",
" <td>68835</td>\n",
" <td>soc_thermal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>0.499651</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>0</td>\n",
" <td>68907</td>\n",
" <td>68882</td>\n",
" <td>soc_thermal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>0.609645</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>0</td>\n",
" <td>68943</td>\n",
" <td>68907</td>\n",
" <td>soc_thermal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>0.708361</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>0</td>\n",
" <td>68959</td>\n",
" <td>68943</td>\n",
" <td>soc_thermal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>0.810043</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>0</td>\n",
" <td>68947</td>\n",
" <td>68959</td>\n",
" <td>soc_thermal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>0.909460</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>0</td>\n",
" <td>68950</td>\n",
" <td>68947</td>\n",
" <td>soc_thermal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1.008723</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>0</td>\n",
" <td>68952</td>\n",
" <td>68950</td>\n",
" <td>soc_thermal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1.108719</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>0</td>\n",
" <td>68965</td>\n",
" <td>68952</td>\n",
" <td>soc_thermal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1.209270</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>0</td>\n",
" <td>68978</td>\n",
" <td>68965</td>\n",
" <td>soc_thermal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1.309819</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>0</td>\n",
" <td>68989</td>\n",
" <td>68978</td>\n",
" <td>soc_thermal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1.408818</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>0</td>\n",
" <td>69007</td>\n",
" <td>68989</td>\n",
" <td>soc_thermal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1.509182</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>0</td>\n",
" <td>69008</td>\n",
" <td>69007</td>\n",
" <td>soc_thermal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1.619889</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>0</td>\n",
" <td>68996</td>\n",
" <td>69008</td>\n",
" <td>soc_thermal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1.718734</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>0</td>\n",
" <td>68990</td>\n",
" <td>68996</td>\n",
" <td>soc_thermal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1.819079</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>0</td>\n",
" <td>69007</td>\n",
" <td>68990</td>\n",
" <td>soc_thermal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1.918692</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>0</td>\n",
" <td>69026</td>\n",
" <td>69007</td>\n",
" <td>soc_thermal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2.018747</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>0</td>\n",
" <td>69074</td>\n",
" <td>69026</td>\n",
" <td>soc_thermal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2.118722</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>0</td>\n",
" <td>69113</td>\n",
" <td>69074</td>\n",
" <td>soc_thermal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2.219281</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>0</td>\n",
" <td>69131</td>\n",
" <td>69113</td>\n",
" <td>soc_thermal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2.319764</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>0</td>\n",
" <td>69161</td>\n",
" <td>69131</td>\n",
" <td>soc_thermal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2.419244</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>0</td>\n",
" <td>69155</td>\n",
" <td>69161</td>\n",
" <td>soc_thermal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2.519402</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>0</td>\n",
" <td>69203</td>\n",
" <td>69155</td>\n",
" <td>soc_thermal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2.618870</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>0</td>\n",
" <td>69229</td>\n",
" <td>69203</td>\n",
" <td>soc_thermal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2.718664</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>0</td>\n",
" <td>69269</td>\n",
" <td>69229</td>\n",
" <td>soc_thermal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2.818393</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>0</td>\n",
" <td>69294</td>\n",
" <td>69269</td>\n",
" <td>soc_thermal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2.919531</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>0</td>\n",
" <td>69313</td>\n",
" <td>69294</td>\n",
" <td>soc_thermal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3.719973</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>0</td>\n",
" <td>69498</td>\n",
" <td>69480</td>\n",
" <td>soc_thermal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3.818846</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>0</td>\n",
" <td>69513</td>\n",
" <td>69498</td>\n",
" <td>soc_thermal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3.919578</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>0</td>\n",
" <td>69556</td>\n",
" <td>69513</td>\n",
" <td>soc_thermal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4.018333</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>0</td>\n",
" <td>69607</td>\n",
" <td>69556</td>\n",
" <td>soc_thermal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4.118291</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>0</td>\n",
" <td>69647</td>\n",
" <td>69607</td>\n",
" <td>soc_thermal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4.219773</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>0</td>\n",
" <td>69657</td>\n",
" <td>69647</td>\n",
" <td>soc_thermal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4.318951</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>0</td>\n",
" <td>69663</td>\n",
" <td>69657</td>\n",
" <td>soc_thermal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4.419577</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>0</td>\n",
" <td>69685</td>\n",
" <td>69663</td>\n",
" <td>soc_thermal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4.519842</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>0</td>\n",
" <td>69710</td>\n",
" <td>69685</td>\n",
" <td>soc_thermal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4.618309</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>0</td>\n",
" <td>69733</td>\n",
" <td>69710</td>\n",
" <td>soc_thermal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4.719834</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>0</td>\n",
" <td>69714</td>\n",
" <td>69733</td>\n",
" <td>soc_thermal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4.818769</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>0</td>\n",
" <td>69700</td>\n",
" <td>69714</td>\n",
" <td>soc_thermal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4.920188</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>0</td>\n",
" <td>69667</td>\n",
" <td>69700</td>\n",
" <td>soc_thermal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5.022114</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>0</td>\n",
" <td>69621</td>\n",
" <td>69667</td>\n",
" <td>soc_thermal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5.119599</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>0</td>\n",
" <td>69577</td>\n",
" <td>69621</td>\n",
" <td>soc_thermal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5.218946</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>0</td>\n",
" <td>69546</td>\n",
" <td>69577</td>\n",
" <td>soc_thermal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5.319060</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>0</td>\n",
" <td>69530</td>\n",
" <td>69546</td>\n",
" <td>soc_thermal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5.418773</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>0</td>\n",
" <td>69509</td>\n",
" <td>69530</td>\n",
" <td>soc_thermal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5.528891</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>0</td>\n",
" <td>69523</td>\n",
" <td>69509</td>\n",
" <td>soc_thermal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5.628737</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>0</td>\n",
" <td>69515</td>\n",
" <td>69523</td>\n",
" <td>soc_thermal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5.728319</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>0</td>\n",
" <td>69489</td>\n",
" <td>69515</td>\n",
" <td>soc_thermal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5.829462</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>0</td>\n",
" <td>69469</td>\n",
" <td>69489</td>\n",
" <td>soc_thermal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5.928346</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>0</td>\n",
" <td>69478</td>\n",
" <td>69469</td>\n",
" <td>soc_thermal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6.029079</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>0</td>\n",
" <td>69453</td>\n",
" <td>69478</td>\n",
" <td>soc_thermal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6.139673</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>0</td>\n",
" <td>69442</td>\n",
" <td>69453</td>\n",
" <td>soc_thermal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6.248760</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>0</td>\n",
" <td>69427</td>\n",
" <td>69442</td>\n",
" <td>soc_thermal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6.349737</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>0</td>\n",
" <td>69406</td>\n",
" <td>69427</td>\n",
" <td>soc_thermal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6.458919</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>0</td>\n",
" <td>69424</td>\n",
" <td>69406</td>\n",
" <td>soc_thermal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6.559456</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>0</td>\n",
" <td>69418</td>\n",
" <td>69424</td>\n",
" <td>soc_thermal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6.658977</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>0</td>\n",
" <td>69417</td>\n",
" <td>69418</td>\n",
" <td>soc_thermal</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>67 rows \u00d7 7 columns</p>\n",
"</div>"
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 4,
"text": [
" __comm __cpu __pid id temp temp_prev thermal_zone\n",
"Time \n",
"0.000000 kworker/4:1 4 51 0 68786 68794 soc_thermal\n",
"0.099539 kworker/4:1 4 51 0 68781 68786 soc_thermal\n",
"0.199957 kworker/4:1 4 51 0 68782 68781 soc_thermal\n",
"0.299112 kworker/4:1 4 51 0 68835 68782 soc_thermal\n",
"0.399646 kworker/4:1 4 51 0 68882 68835 soc_thermal\n",
"0.499651 kworker/4:1 4 51 0 68907 68882 soc_thermal\n",
"0.609645 kworker/4:1 4 51 0 68943 68907 soc_thermal\n",
"0.708361 kworker/4:1 4 51 0 68959 68943 soc_thermal\n",
"0.810043 kworker/4:1 4 51 0 68947 68959 soc_thermal\n",
"0.909460 kworker/4:1 4 51 0 68950 68947 soc_thermal\n",
"1.008723 kworker/4:1 4 51 0 68952 68950 soc_thermal\n",
"1.108719 kworker/4:1 4 51 0 68965 68952 soc_thermal\n",
"1.209270 kworker/4:1 4 51 0 68978 68965 soc_thermal\n",
"1.309819 kworker/4:1 4 51 0 68989 68978 soc_thermal\n",
"1.408818 kworker/4:1 4 51 0 69007 68989 soc_thermal\n",
"1.509182 kworker/4:1 4 51 0 69008 69007 soc_thermal\n",
"1.619889 kworker/4:1 4 51 0 68996 69008 soc_thermal\n",
"1.718734 kworker/4:1 4 51 0 68990 68996 soc_thermal\n",
"1.819079 kworker/4:1 4 51 0 69007 68990 soc_thermal\n",
"1.918692 kworker/4:1 4 51 0 69026 69007 soc_thermal\n",
"2.018747 kworker/4:1 4 51 0 69074 69026 soc_thermal\n",
"2.118722 kworker/4:1 4 51 0 69113 69074 soc_thermal\n",
"2.219281 kworker/4:1 4 51 0 69131 69113 soc_thermal\n",
"2.319764 kworker/4:1 4 51 0 69161 69131 soc_thermal\n",
"2.419244 kworker/4:1 4 51 0 69155 69161 soc_thermal\n",
"2.519402 kworker/4:1 4 51 0 69203 69155 soc_thermal\n",
"2.618870 kworker/4:1 4 51 0 69229 69203 soc_thermal\n",
"2.718664 kworker/4:1 4 51 0 69269 69229 soc_thermal\n",
"2.818393 kworker/4:1 4 51 0 69294 69269 soc_thermal\n",
"2.919531 kworker/4:1 4 51 0 69313 69294 soc_thermal\n",
"... ... ... ... .. ... ... ...\n",
"3.719973 kworker/4:1 4 51 0 69498 69480 soc_thermal\n",
"3.818846 kworker/4:1 4 51 0 69513 69498 soc_thermal\n",
"3.919578 kworker/4:1 4 51 0 69556 69513 soc_thermal\n",
"4.018333 kworker/4:1 4 51 0 69607 69556 soc_thermal\n",
"4.118291 kworker/4:1 4 51 0 69647 69607 soc_thermal\n",
"4.219773 kworker/4:1 4 51 0 69657 69647 soc_thermal\n",
"4.318951 kworker/4:1 4 51 0 69663 69657 soc_thermal\n",
"4.419577 kworker/4:1 4 51 0 69685 69663 soc_thermal\n",
"4.519842 kworker/4:1 4 51 0 69710 69685 soc_thermal\n",
"4.618309 kworker/4:1 4 51 0 69733 69710 soc_thermal\n",
"4.719834 kworker/4:1 4 51 0 69714 69733 soc_thermal\n",
"4.818769 kworker/4:1 4 51 0 69700 69714 soc_thermal\n",
"4.920188 kworker/4:1 4 51 0 69667 69700 soc_thermal\n",
"5.022114 kworker/4:1 4 51 0 69621 69667 soc_thermal\n",
"5.119599 kworker/4:1 4 51 0 69577 69621 soc_thermal\n",
"5.218946 kworker/4:1 4 51 0 69546 69577 soc_thermal\n",
"5.319060 kworker/4:1 4 51 0 69530 69546 soc_thermal\n",
"5.418773 kworker/4:1 4 51 0 69509 69530 soc_thermal\n",
"5.528891 kworker/4:1 4 51 0 69523 69509 soc_thermal\n",
"5.628737 kworker/4:1 4 51 0 69515 69523 soc_thermal\n",
"5.728319 kworker/4:1 4 51 0 69489 69515 soc_thermal\n",
"5.829462 kworker/4:1 4 51 0 69469 69489 soc_thermal\n",
"5.928346 kworker/4:1 4 51 0 69478 69469 soc_thermal\n",
"6.029079 kworker/4:1 4 51 0 69453 69478 soc_thermal\n",
"6.139673 kworker/4:1 4 51 0 69442 69453 soc_thermal\n",
"6.248760 kworker/4:1 4 51 0 69427 69442 soc_thermal\n",
"6.349737 kworker/4:1 4 51 0 69406 69427 soc_thermal\n",
"6.458919 kworker/4:1 4 51 0 69424 69406 soc_thermal\n",
"6.559456 kworker/4:1 4 51 0 69418 69424 soc_thermal\n",
"6.658977 kworker/4:1 4 51 0 69417 69418 soc_thermal\n",
"\n",
"[67 rows x 7 columns]"
]
}
],
"prompt_number": 4
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"You can use pandas' infrastructure to filter data. For example, the `cpu_in_power` trace has information for both clusters"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"trace.cpu_in_power.data_frame.head()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>__comm</th>\n",
" <th>__cpu</th>\n",
" <th>__pid</th>\n",
" <th>cpus</th>\n",
" <th>dynamic_power</th>\n",
" <th>freq</th>\n",
" <th>load0</th>\n",
" <th>load1</th>\n",
" <th>load2</th>\n",
" <th>load3</th>\n",
" <th>static_power</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Time</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0.002264</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>00000000,00000006</td>\n",
" <td>250</td>\n",
" <td>1100000</td>\n",
" <td>24</td>\n",
" <td>19</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>178</td>\n",
" </tr>\n",
" <tr>\n",
" <th>0.002279</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>00000000,00000039</td>\n",
" <td>166</td>\n",
" <td>850000</td>\n",
" <td>36</td>\n",
" <td>49</td>\n",
" <td>48</td>\n",
" <td>7</td>\n",
" <td>131</td>\n",
" </tr>\n",
" <tr>\n",
" <th>0.100949</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>00000000,00000006</td>\n",
" <td>227</td>\n",
" <td>1100000</td>\n",
" <td>28</td>\n",
" <td>11</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>178</td>\n",
" </tr>\n",
" <tr>\n",
" <th>0.100970</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>00000000,00000039</td>\n",
" <td>178</td>\n",
" <td>850000</td>\n",
" <td>32</td>\n",
" <td>28</td>\n",
" <td>46</td>\n",
" <td>44</td>\n",
" <td>131</td>\n",
" </tr>\n",
" <tr>\n",
" <th>0.200914</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>00000000,00000006</td>\n",
" <td>256</td>\n",
" <td>1100000</td>\n",
" <td>20</td>\n",
" <td>24</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>178</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 5,
"text": [
" __comm __cpu __pid cpus dynamic_power \\\n",
"Time \n",
"0.002264 kworker/4:1 4 51 00000000,00000006 250 \n",
"0.002279 kworker/4:1 4 51 00000000,00000039 166 \n",
"0.100949 kworker/4:1 4 51 00000000,00000006 227 \n",
"0.100970 kworker/4:1 4 51 00000000,00000039 178 \n",
"0.200914 kworker/4:1 4 51 00000000,00000006 256 \n",
"\n",
" freq load0 load1 load2 load3 static_power \n",
"Time \n",
"0.002264 1100000 24 19 0 0 178 \n",
"0.002279 850000 36 49 48 7 131 \n",
"0.100949 1100000 28 11 0 0 178 \n",
"0.100970 850000 32 28 46 44 131 \n",
"0.200914 1100000 20 24 0 0 178 "
]
}
],
"prompt_number": 5
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can filter it to return only the data for cpus \"00000000,00000039\":"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"trace.cpu_in_power.data_frame[trace.cpu_in_power.data_frame.cpus == \"00000000,00000039\"]"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>__comm</th>\n",
" <th>__cpu</th>\n",
" <th>__pid</th>\n",
" <th>cpus</th>\n",
" <th>dynamic_power</th>\n",
" <th>freq</th>\n",
" <th>load0</th>\n",
" <th>load1</th>\n",
" <th>load2</th>\n",
" <th>load3</th>\n",
" <th>static_power</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Time</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0.002279</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>00000000,00000039</td>\n",
" <td>166</td>\n",
" <td>850000</td>\n",
" <td>36</td>\n",
" <td>49</td>\n",
" <td>48</td>\n",
" <td>7</td>\n",
" <td>131</td>\n",
" </tr>\n",
" <tr>\n",
" <th>0.100970</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>00000000,00000039</td>\n",
" <td>178</td>\n",
" <td>850000</td>\n",
" <td>32</td>\n",
" <td>28</td>\n",
" <td>46</td>\n",
" <td>44</td>\n",
" <td>131</td>\n",
" </tr>\n",
" <tr>\n",
" <th>0.200929</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>00000000,00000039</td>\n",
" <td>174</td>\n",
" <td>850000</td>\n",
" <td>28</td>\n",
" <td>44</td>\n",
" <td>42</td>\n",
" <td>33</td>\n",
" <td>131</td>\n",
" </tr>\n",
" <tr>\n",
" <th>0.300253</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>00000000,00000039</td>\n",
" <td>166</td>\n",
" <td>850000</td>\n",
" <td>52</td>\n",
" <td>31</td>\n",
" <td>49</td>\n",
" <td>8</td>\n",
" <td>131</td>\n",
" </tr>\n",
" <tr>\n",
" <th>0.401033</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>00000000,00000039</td>\n",
" <td>197</td>\n",
" <td>850000</td>\n",
" <td>38</td>\n",
" <td>39</td>\n",
" <td>34</td>\n",
" <td>55</td>\n",
" <td>131</td>\n",
" </tr>\n",
" <tr>\n",
" <th>0.500595</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>00000000,00000039</td>\n",
" <td>149</td>\n",
" <td>850000</td>\n",
" <td>46</td>\n",
" <td>48</td>\n",
" <td>4</td>\n",
" <td>28</td>\n",
" <td>131</td>\n",
" </tr>\n",
" <tr>\n",
" <th>0.610771</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>00000000,00000039</td>\n",
" <td>168</td>\n",
" <td>850000</td>\n",
" <td>42</td>\n",
" <td>64</td>\n",
" <td>20</td>\n",
" <td>16</td>\n",
" <td>131</td>\n",
" </tr>\n",
" <tr>\n",
" <th>0.709190</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>00000000,00000039</td>\n",
" <td>190</td>\n",
" <td>850000</td>\n",
" <td>80</td>\n",
" <td>41</td>\n",
" <td>23</td>\n",
" <td>16</td>\n",
" <td>131</td>\n",
" </tr>\n",
" <tr>\n",
" <th>0.811388</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>00000000,00000039</td>\n",
" <td>185</td>\n",
" <td>850000</td>\n",
" <td>56</td>\n",
" <td>60</td>\n",
" <td>10</td>\n",
" <td>30</td>\n",
" <td>131</td>\n",
" </tr>\n",
" <tr>\n",
" <th>0.910507</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>00000000,00000039</td>\n",
" <td>171</td>\n",
" <td>850000</td>\n",
" <td>29</td>\n",
" <td>25</td>\n",
" <td>43</td>\n",
" <td>47</td>\n",
" <td>131</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1.009501</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>00000000,00000039</td>\n",
" <td>159</td>\n",
" <td>850000</td>\n",
" <td>33</td>\n",
" <td>29</td>\n",
" <td>52</td>\n",
" <td>20</td>\n",
" <td>131</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1.109501</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>00000000,00000039</td>\n",
" <td>208</td>\n",
" <td>850000</td>\n",
" <td>38</td>\n",
" <td>36</td>\n",
" <td>93</td>\n",
" <td>8</td>\n",
" <td>131</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1.210615</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>00000000,00000039</td>\n",
" <td>207</td>\n",
" <td>850000</td>\n",
" <td>38</td>\n",
" <td>35</td>\n",
" <td>27</td>\n",
" <td>74</td>\n",
" <td>131</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1.311017</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>00000000,00000039</td>\n",
" <td>164</td>\n",
" <td>850000</td>\n",
" <td>22</td>\n",
" <td>24</td>\n",
" <td>68</td>\n",
" <td>24</td>\n",
" <td>131</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1.409793</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>00000000,00000039</td>\n",
" <td>180</td>\n",
" <td>850000</td>\n",
" <td>48</td>\n",
" <td>30</td>\n",
" <td>7</td>\n",
" <td>67</td>\n",
" <td>137</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1.510247</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>00000000,00000039</td>\n",
" <td>195</td>\n",
" <td>850000</td>\n",
" <td>92</td>\n",
" <td>44</td>\n",
" <td>11</td>\n",
" <td>17</td>\n",
" <td>137</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1.621442</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>00000000,00000039</td>\n",
" <td>172</td>\n",
" <td>850000</td>\n",
" <td>25</td>\n",
" <td>25</td>\n",
" <td>63</td>\n",
" <td>32</td>\n",
" <td>131</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1.719513</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>00000000,00000039</td>\n",
" <td>165</td>\n",
" <td>850000</td>\n",
" <td>69</td>\n",
" <td>45</td>\n",
" <td>18</td>\n",
" <td>7</td>\n",
" <td>131</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1.820367</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>00000000,00000039</td>\n",
" <td>148</td>\n",
" <td>850000</td>\n",
" <td>41</td>\n",
" <td>37</td>\n",
" <td>40</td>\n",
" <td>7</td>\n",
" <td>137</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1.919996</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>00000000,00000039</td>\n",
" <td>111</td>\n",
" <td>850000</td>\n",
" <td>42</td>\n",
" <td>39</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>137</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2.020034</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>00000000,00000039</td>\n",
" <td>161</td>\n",
" <td>850000</td>\n",
" <td>44</td>\n",
" <td>39</td>\n",
" <td>8</td>\n",
" <td>45</td>\n",
" <td>137</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2.119842</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>00000000,00000039</td>\n",
" <td>130</td>\n",
" <td>850000</td>\n",
" <td>31</td>\n",
" <td>26</td>\n",
" <td>6</td>\n",
" <td>47</td>\n",
" <td>137</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2.220430</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>00000000,00000039</td>\n",
" <td>167</td>\n",
" <td>850000</td>\n",
" <td>61</td>\n",
" <td>57</td>\n",
" <td>17</td>\n",
" <td>6</td>\n",
" <td>137</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2.321255</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>00000000,00000039</td>\n",
" <td>166</td>\n",
" <td>850000</td>\n",
" <td>40</td>\n",
" <td>24</td>\n",
" <td>57</td>\n",
" <td>19</td>\n",
" <td>137</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2.420036</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>00000000,00000039</td>\n",
" <td>170</td>\n",
" <td>850000</td>\n",
" <td>57</td>\n",
" <td>38</td>\n",
" <td>38</td>\n",
" <td>10</td>\n",
" <td>137</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2.520509</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>00000000,00000039</td>\n",
" <td>117</td>\n",
" <td>850000</td>\n",
" <td>40</td>\n",
" <td>36</td>\n",
" <td>17</td>\n",
" <td>6</td>\n",
" <td>137</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2.620426</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>00000000,00000039</td>\n",
" <td>129</td>\n",
" <td>850000</td>\n",
" <td>56</td>\n",
" <td>25</td>\n",
" <td>22</td>\n",
" <td>6</td>\n",
" <td>137</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2.719428</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>00000000,00000039</td>\n",
" <td>173</td>\n",
" <td>850000</td>\n",
" <td>44</td>\n",
" <td>29</td>\n",
" <td>66</td>\n",
" <td>7</td>\n",
" <td>137</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2.819184</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>00000000,00000039</td>\n",
" <td>185</td>\n",
" <td>850000</td>\n",
" <td>42</td>\n",
" <td>40</td>\n",
" <td>62</td>\n",
" <td>12</td>\n",
" <td>137</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2.921334</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>00000000,00000039</td>\n",
" <td>172</td>\n",
" <td>850000</td>\n",
" <td>26</td>\n",
" <td>23</td>\n",
" <td>30</td>\n",
" <td>66</td>\n",
" <td>137</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3.721862</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>00000000,00000039</td>\n",
" <td>91</td>\n",
" <td>850000</td>\n",
" <td>33</td>\n",
" <td>29</td>\n",
" <td>9</td>\n",
" <td>6</td>\n",
" <td>137</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3.820099</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>00000000,00000039</td>\n",
" <td>142</td>\n",
" <td>850000</td>\n",
" <td>54</td>\n",
" <td>51</td>\n",
" <td>9</td>\n",
" <td>6</td>\n",
" <td>137</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3.920987</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>00000000,00000039</td>\n",
" <td>122</td>\n",
" <td>850000</td>\n",
" <td>34</td>\n",
" <td>27</td>\n",
" <td>8</td>\n",
" <td>34</td>\n",
" <td>137</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4.019102</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>00000000,00000039</td>\n",
" <td>154</td>\n",
" <td>850000</td>\n",
" <td>38</td>\n",
" <td>34</td>\n",
" <td>19</td>\n",
" <td>39</td>\n",
" <td>137</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4.119037</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>00000000,00000039</td>\n",
" <td>185</td>\n",
" <td>850000</td>\n",
" <td>36</td>\n",
" <td>29</td>\n",
" <td>79</td>\n",
" <td>12</td>\n",
" <td>137</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4.221545</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>00000000,00000039</td>\n",
" <td>119</td>\n",
" <td>850000</td>\n",
" <td>25</td>\n",
" <td>23</td>\n",
" <td>32</td>\n",
" <td>20</td>\n",
" <td>137</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4.320729</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>00000000,00000039</td>\n",
" <td>186</td>\n",
" <td>850000</td>\n",
" <td>30</td>\n",
" <td>28</td>\n",
" <td>64</td>\n",
" <td>35</td>\n",
" <td>137</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4.421109</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>00000000,00000039</td>\n",
" <td>168</td>\n",
" <td>850000</td>\n",
" <td>52</td>\n",
" <td>48</td>\n",
" <td>11</td>\n",
" <td>31</td>\n",
" <td>137</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4.521129</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>00000000,00000039</td>\n",
" <td>171</td>\n",
" <td>850000</td>\n",
" <td>28</td>\n",
" <td>23</td>\n",
" <td>10</td>\n",
" <td>83</td>\n",
" <td>137</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4.619289</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>00000000,00000039</td>\n",
" <td>179</td>\n",
" <td>850000</td>\n",
" <td>29</td>\n",
" <td>25</td>\n",
" <td>54</td>\n",
" <td>43</td>\n",
" <td>137</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4.721126</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>00000000,00000039</td>\n",
" <td>224</td>\n",
" <td>850000</td>\n",
" <td>45</td>\n",
" <td>44</td>\n",
" <td>84</td>\n",
" <td>16</td>\n",
" <td>137</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4.820703</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>00000000,00000039</td>\n",
" <td>166</td>\n",
" <td>850000</td>\n",
" <td>26</td>\n",
" <td>24</td>\n",
" <td>7</td>\n",
" <td>83</td>\n",
" <td>137</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4.921670</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>00000000,00000039</td>\n",
" <td>163</td>\n",
" <td>850000</td>\n",
" <td>44</td>\n",
" <td>22</td>\n",
" <td>7</td>\n",
" <td>64</td>\n",
" <td>137</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5.022998</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>00000000,00000039</td>\n",
" <td>216</td>\n",
" <td>850000</td>\n",
" <td>46</td>\n",
" <td>41</td>\n",
" <td>84</td>\n",
" <td>11</td>\n",
" <td>137</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5.120968</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>00000000,00000039</td>\n",
" <td>174</td>\n",
" <td>850000</td>\n",
" <td>49</td>\n",
" <td>26</td>\n",
" <td>37</td>\n",
" <td>35</td>\n",
" <td>137</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5.220168</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>00000000,00000039</td>\n",
" <td>152</td>\n",
" <td>850000</td>\n",
" <td>25</td>\n",
" <td>46</td>\n",
" <td>8</td>\n",
" <td>49</td>\n",
" <td>137</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5.320038</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>00000000,00000039</td>\n",
" <td>167</td>\n",
" <td>850000</td>\n",
" <td>78</td>\n",
" <td>31</td>\n",
" <td>28</td>\n",
" <td>4</td>\n",
" <td>137</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5.419996</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>00000000,00000039</td>\n",
" <td>190</td>\n",
" <td>850000</td>\n",
" <td>47</td>\n",
" <td>52</td>\n",
" <td>17</td>\n",
" <td>44</td>\n",
" <td>137</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5.530364</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>00000000,00000039</td>\n",
" <td>141</td>\n",
" <td>850000</td>\n",
" <td>34</td>\n",
" <td>74</td>\n",
" <td>7</td>\n",
" <td>4</td>\n",
" <td>137</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5.629523</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>00000000,00000039</td>\n",
" <td>177</td>\n",
" <td>850000</td>\n",
" <td>34</td>\n",
" <td>51</td>\n",
" <td>5</td>\n",
" <td>59</td>\n",
" <td>137</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5.729082</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>00000000,00000039</td>\n",
" <td>199</td>\n",
" <td>850000</td>\n",
" <td>40</td>\n",
" <td>52</td>\n",
" <td>26</td>\n",
" <td>50</td>\n",
" <td>137</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5.830771</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>00000000,00000039</td>\n",
" <td>155</td>\n",
" <td>850000</td>\n",
" <td>26</td>\n",
" <td>41</td>\n",
" <td>31</td>\n",
" <td>33</td>\n",
" <td>137</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5.929531</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>00000000,00000039</td>\n",
" <td>184</td>\n",
" <td>850000</td>\n",
" <td>34</td>\n",
" <td>27</td>\n",
" <td>31</td>\n",
" <td>63</td>\n",
" <td>137</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6.030359</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>00000000,00000039</td>\n",
" <td>199</td>\n",
" <td>850000</td>\n",
" <td>61</td>\n",
" <td>40</td>\n",
" <td>40</td>\n",
" <td>27</td>\n",
" <td>137</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6.141069</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>00000000,00000039</td>\n",
" <td>151</td>\n",
" <td>850000</td>\n",
" <td>43</td>\n",
" <td>22</td>\n",
" <td>38</td>\n",
" <td>24</td>\n",
" <td>137</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6.251660</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>00000000,00000039</td>\n",
" <td>201</td>\n",
" <td>850000</td>\n",
" <td>40</td>\n",
" <td>36</td>\n",
" <td>55</td>\n",
" <td>38</td>\n",
" <td>137</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6.351220</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>00000000,00000039</td>\n",
" <td>160</td>\n",
" <td>850000</td>\n",
" <td>34</td>\n",
" <td>89</td>\n",
" <td>6</td>\n",
" <td>6</td>\n",
" <td>137</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6.460227</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>00000000,00000039</td>\n",
" <td>170</td>\n",
" <td>850000</td>\n",
" <td>48</td>\n",
" <td>49</td>\n",
" <td>20</td>\n",
" <td>26</td>\n",
" <td>137</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6.560918</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>00000000,00000039</td>\n",
" <td>180</td>\n",
" <td>850000</td>\n",
" <td>64</td>\n",
" <td>37</td>\n",
" <td>42</td>\n",
" <td>9</td>\n",
" <td>137</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6.659959</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>00000000,00000039</td>\n",
" <td>164</td>\n",
" <td>850000</td>\n",
" <td>26</td>\n",
" <td>57</td>\n",
" <td>20</td>\n",
" <td>35</td>\n",
" <td>137</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>67 rows \u00d7 11 columns</p>\n",
"</div>"
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 6,
"text": [
" __comm __cpu __pid cpus dynamic_power freq \\\n",
"Time \n",
"0.002279 kworker/4:1 4 51 00000000,00000039 166 850000 \n",
"0.100970 kworker/4:1 4 51 00000000,00000039 178 850000 \n",
"0.200929 kworker/4:1 4 51 00000000,00000039 174 850000 \n",
"0.300253 kworker/4:1 4 51 00000000,00000039 166 850000 \n",
"0.401033 kworker/4:1 4 51 00000000,00000039 197 850000 \n",
"0.500595 kworker/4:1 4 51 00000000,00000039 149 850000 \n",
"0.610771 kworker/4:1 4 51 00000000,00000039 168 850000 \n",
"0.709190 kworker/4:1 4 51 00000000,00000039 190 850000 \n",
"0.811388 kworker/4:1 4 51 00000000,00000039 185 850000 \n",
"0.910507 kworker/4:1 4 51 00000000,00000039 171 850000 \n",
"1.009501 kworker/4:1 4 51 00000000,00000039 159 850000 \n",
"1.109501 kworker/4:1 4 51 00000000,00000039 208 850000 \n",
"1.210615 kworker/4:1 4 51 00000000,00000039 207 850000 \n",
"1.311017 kworker/4:1 4 51 00000000,00000039 164 850000 \n",
"1.409793 kworker/4:1 4 51 00000000,00000039 180 850000 \n",
"1.510247 kworker/4:1 4 51 00000000,00000039 195 850000 \n",
"1.621442 kworker/4:1 4 51 00000000,00000039 172 850000 \n",
"1.719513 kworker/4:1 4 51 00000000,00000039 165 850000 \n",
"1.820367 kworker/4:1 4 51 00000000,00000039 148 850000 \n",
"1.919996 kworker/4:1 4 51 00000000,00000039 111 850000 \n",
"2.020034 kworker/4:1 4 51 00000000,00000039 161 850000 \n",
"2.119842 kworker/4:1 4 51 00000000,00000039 130 850000 \n",
"2.220430 kworker/4:1 4 51 00000000,00000039 167 850000 \n",
"2.321255 kworker/4:1 4 51 00000000,00000039 166 850000 \n",
"2.420036 kworker/4:1 4 51 00000000,00000039 170 850000 \n",
"2.520509 kworker/4:1 4 51 00000000,00000039 117 850000 \n",
"2.620426 kworker/4:1 4 51 00000000,00000039 129 850000 \n",
"2.719428 kworker/4:1 4 51 00000000,00000039 173 850000 \n",
"2.819184 kworker/4:1 4 51 00000000,00000039 185 850000 \n",
"2.921334 kworker/4:1 4 51 00000000,00000039 172 850000 \n",
"... ... ... ... ... ... ... \n",
"3.721862 kworker/4:1 4 51 00000000,00000039 91 850000 \n",
"3.820099 kworker/4:1 4 51 00000000,00000039 142 850000 \n",
"3.920987 kworker/4:1 4 51 00000000,00000039 122 850000 \n",
"4.019102 kworker/4:1 4 51 00000000,00000039 154 850000 \n",
"4.119037 kworker/4:1 4 51 00000000,00000039 185 850000 \n",
"4.221545 kworker/4:1 4 51 00000000,00000039 119 850000 \n",
"4.320729 kworker/4:1 4 51 00000000,00000039 186 850000 \n",
"4.421109 kworker/4:1 4 51 00000000,00000039 168 850000 \n",
"4.521129 kworker/4:1 4 51 00000000,00000039 171 850000 \n",
"4.619289 kworker/4:1 4 51 00000000,00000039 179 850000 \n",
"4.721126 kworker/4:1 4 51 00000000,00000039 224 850000 \n",
"4.820703 kworker/4:1 4 51 00000000,00000039 166 850000 \n",
"4.921670 kworker/4:1 4 51 00000000,00000039 163 850000 \n",
"5.022998 kworker/4:1 4 51 00000000,00000039 216 850000 \n",
"5.120968 kworker/4:1 4 51 00000000,00000039 174 850000 \n",
"5.220168 kworker/4:1 4 51 00000000,00000039 152 850000 \n",
"5.320038 kworker/4:1 4 51 00000000,00000039 167 850000 \n",
"5.419996 kworker/4:1 4 51 00000000,00000039 190 850000 \n",
"5.530364 kworker/4:1 4 51 00000000,00000039 141 850000 \n",
"5.629523 kworker/4:1 4 51 00000000,00000039 177 850000 \n",
"5.729082 kworker/4:1 4 51 00000000,00000039 199 850000 \n",
"5.830771 kworker/4:1 4 51 00000000,00000039 155 850000 \n",
"5.929531 kworker/4:1 4 51 00000000,00000039 184 850000 \n",
"6.030359 kworker/4:1 4 51 00000000,00000039 199 850000 \n",
"6.141069 kworker/4:1 4 51 00000000,00000039 151 850000 \n",
"6.251660 kworker/4:1 4 51 00000000,00000039 201 850000 \n",
"6.351220 kworker/4:1 4 51 00000000,00000039 160 850000 \n",
"6.460227 kworker/4:1 4 51 00000000,00000039 170 850000 \n",
"6.560918 kworker/4:1 4 51 00000000,00000039 180 850000 \n",
"6.659959 kworker/4:1 4 51 00000000,00000039 164 850000 \n",
"\n",
" load0 load1 load2 load3 static_power \n",
"Time \n",
"0.002279 36 49 48 7 131 \n",
"0.100970 32 28 46 44 131 \n",
"0.200929 28 44 42 33 131 \n",
"0.300253 52 31 49 8 131 \n",
"0.401033 38 39 34 55 131 \n",
"0.500595 46 48 4 28 131 \n",
"0.610771 42 64 20 16 131 \n",
"0.709190 80 41 23 16 131 \n",
"0.811388 56 60 10 30 131 \n",
"0.910507 29 25 43 47 131 \n",
"1.009501 33 29 52 20 131 \n",
"1.109501 38 36 93 8 131 \n",
"1.210615 38 35 27 74 131 \n",
"1.311017 22 24 68 24 131 \n",
"1.409793 48 30 7 67 137 \n",
"1.510247 92 44 11 17 137 \n",
"1.621442 25 25 63 32 131 \n",
"1.719513 69 45 18 7 131 \n",
"1.820367 41 37 40 7 137 \n",
"1.919996 42 39 6 7 137 \n",
"2.020034 44 39 8 45 137 \n",
"2.119842 31 26 6 47 137 \n",
"2.220430 61 57 17 6 137 \n",
"2.321255 40 24 57 19 137 \n",
"2.420036 57 38 38 10 137 \n",
"2.520509 40 36 17 6 137 \n",
"2.620426 56 25 22 6 137 \n",
"2.719428 44 29 66 7 137 \n",
"2.819184 42 40 62 12 137 \n",
"2.921334 26 23 30 66 137 \n",
"... ... ... ... ... ... \n",
"3.721862 33 29 9 6 137 \n",
"3.820099 54 51 9 6 137 \n",
"3.920987 34 27 8 34 137 \n",
"4.019102 38 34 19 39 137 \n",
"4.119037 36 29 79 12 137 \n",
"4.221545 25 23 32 20 137 \n",
"4.320729 30 28 64 35 137 \n",
"4.421109 52 48 11 31 137 \n",
"4.521129 28 23 10 83 137 \n",
"4.619289 29 25 54 43 137 \n",
"4.721126 45 44 84 16 137 \n",
"4.820703 26 24 7 83 137 \n",
"4.921670 44 22 7 64 137 \n",
"5.022998 46 41 84 11 137 \n",
"5.120968 49 26 37 35 137 \n",
"5.220168 25 46 8 49 137 \n",
"5.320038 78 31 28 4 137 \n",
"5.419996 47 52 17 44 137 \n",
"5.530364 34 74 7 4 137 \n",
"5.629523 34 51 5 59 137 \n",
"5.729082 40 52 26 50 137 \n",
"5.830771 26 41 31 33 137 \n",
"5.929531 34 27 31 63 137 \n",
"6.030359 61 40 40 27 137 \n",
"6.141069 43 22 38 24 137 \n",
"6.251660 40 36 55 38 137 \n",
"6.351220 34 89 6 6 137 \n",
"6.460227 48 49 20 26 137 \n",
"6.560918 64 37 42 9 137 \n",
"6.659959 26 57 20 35 137 \n",
"\n",
"[67 rows x 11 columns]"
]
}
],
"prompt_number": 6
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"Custom trace events"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The `FTrace()` object by default parses a number of thermal and scheduler classes that are known to trappy. If you know which events you are interested in, you can create a `FTrace()` object that only parses those. For example, if you have collected your trace with\n",
"\n",
" trace-cmd -e thermal_temperature cdev_update\n",
" \n",
"you can get a custom FTrace object that only parses those:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"trace_custom = trappy.FTrace(\"./trace.txt\", scope=\"custom\", events=[\"thermal_temperature\", \"cdev_update\"])"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 7
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"trace_custom.thermal_temperature.data_frame.head()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>__comm</th>\n",
" <th>__cpu</th>\n",
" <th>__pid</th>\n",
" <th>id</th>\n",
" <th>temp</th>\n",
" <th>temp_prev</th>\n",
" <th>thermal_zone</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Time</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0.000000</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>0</td>\n",
" <td>68786</td>\n",
" <td>68794</td>\n",
" <td>soc_thermal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>0.099539</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>0</td>\n",
" <td>68781</td>\n",
" <td>68786</td>\n",
" <td>soc_thermal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>0.199957</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>0</td>\n",
" <td>68782</td>\n",
" <td>68781</td>\n",
" <td>soc_thermal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>0.299112</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>0</td>\n",
" <td>68835</td>\n",
" <td>68782</td>\n",
" <td>soc_thermal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>0.399646</th>\n",
" <td>kworker/4:1</td>\n",
" <td>4</td>\n",
" <td>51</td>\n",
" <td>0</td>\n",
" <td>68882</td>\n",
" <td>68835</td>\n",
" <td>soc_thermal</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 8,
"text": [
" __comm __cpu __pid id temp temp_prev thermal_zone\n",
"Time \n",
"0.000000 kworker/4:1 4 51 0 68786 68794 soc_thermal\n",
"0.099539 kworker/4:1 4 51 0 68781 68786 soc_thermal\n",
"0.199957 kworker/4:1 4 51 0 68782 68781 soc_thermal\n",
"0.299112 kworker/4:1 4 51 0 68835 68782 soc_thermal\n",
"0.399646 kworker/4:1 4 51 0 68882 68835 soc_thermal"
]
}
],
"prompt_number": 8
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"Writing to CSV"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"You can use the `.write_csv()` method of each tracepoint class to output the trace to CSV for analyzing with other programs. For example, let's write the `trace_thermal_power_allocator` tracepoint information (available in the `.thermal_governor` property of the `FTrace` instance) to file `thermal_power_allocator.csv`"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"trace.thermal_governor.write_csv(\"thermal_power_allocator.csv\")"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 9
}
],
"metadata": {}
}
]
}