blob: 887505f45274b97d61e82e7dd0438ac4e2842fe0 [file] [log] [blame]
{
"metadata": {
"name": "",
"signature": "sha256:4e50c9159c1a001f1a581f813b7e533f0ef5d8ec4220406180bad11eb9cdba5c"
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "heading",
"level": 1,
"metadata": {},
"source": [
"Registering arbitrary trace events"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"`trappy` knows about some trace events. You can add your own in the notebook without having to change any code in `trappy`. After the trace is registered, the next time you parse a trace file that information will be part of the trace object as a pandas `DataFrame` and can be analyzed like the other `DataFrame`s in the `FTrace` class.\n",
"\n",
"The trace event must follow the following format:\n",
"\n",
" title: key0=value0 key1=value1 key2=value2 ...\n",
"\n",
"The title should be something that's unique in the trace. For example, you can generate trace with the following `trace_printk()`:\n",
"\n",
" trace_printk(\"thermal_gpu_power_get: frequency=%u load=%d\\n\", freq, load);\n",
"\n",
"which will appear in the `trace.txt` as:\n",
"\n",
" kworker/6:1-457 [006] 144.439566: bprint: 0xc042f8a0f: thermal_gpu_power_get: frequency=177 load=0\n",
"\n",
"You can add this event to the trace instance using `register_dynamic_ftrace()`"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"First import trappy"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"import sys\n",
"sys.path.append(\"..\")\n",
"%matplotlib inline\n",
"import trappy"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 1
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Register it. The first argument is the name under which you will find it in the trace instance. It will be changed to lower_case_with_underscores_to_separate_words. The second argument is some unique text in the trace, usually the title:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"trappy.register_dynamic_ftrace(\"gpu_power_in\", \"thermal_gpu_power_get\")"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 2,
"text": [
"trappy.dynamic.gpu_power_in"
]
}
],
"prompt_number": 2
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now we can parse the trace"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"trace = trappy.FTrace(\"/path/to/trace\")"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 3
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"`trace` now has a `gpu_power_in` member that contains the information. We can see the first few lines of the generated dataframe:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"trace.gpu_power_in.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>frequency</th>\n",
" <th>load</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Time</th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>109.999957</th>\n",
" <td> 480</td>\n",
" <td> 96</td>\n",
" </tr>\n",
" <tr>\n",
" <th>110.099925</th>\n",
" <td> 480</td>\n",
" <td> 100</td>\n",
" </tr>\n",
" <tr>\n",
" <th>110.199930</th>\n",
" <td> 480</td>\n",
" <td> 100</td>\n",
" </tr>\n",
" <tr>\n",
" <th>110.299938</th>\n",
" <td> 480</td>\n",
" <td> 100</td>\n",
" </tr>\n",
" <tr>\n",
" <th>110.399924</th>\n",
" <td> 480</td>\n",
" <td> 100</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 5,
"text": [
" frequency load\n",
"Time \n",
"109.999957 480 96\n",
"110.099925 480 100\n",
"110.199930 480 100\n",
"110.299938 480 100\n",
"110.399924 480 100"
]
}
],
"prompt_number": 5
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can now plot it or manipulate it as any other `DataFrame` in pandas"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"figsize(18, 7)\n",
"trace.gpu_power_in.data_frame[\"frequency\"].plot()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 8,
"text": [
"<matplotlib.axes.AxesSubplot at 0x7f7766c67f50>"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\nJzTXqRdflHJ48UVZP3WqlPuYMcCxxzb7tmYNcNxxwKpVci77ddxnzBgp2y1bxMcjjhCbmzdLOft1\n+7jjJE//2rN2bbOdoSH5vuCCBoAgvR/nAw4Apk0L2hPDw+IzABx5pOw7PAwccoiUyaRJ7WXts2qV\n+N3fL75OmCB5+PVr2TK5hp94ov4o3fD1xfc/zMaNwT4nnCB1Z+NG+V65Uu4VgNxHX31V9h0aCvKa\nNAk4/PB4n8K+tea/ZInU7cmTZXloSOrQmjXBcpiXXpI0fh3bvFnqpV9Pe3rkmrl8eVCHALlnRLF1\nq+Tv+7V5c3OeZZmPoxVF6kFfn68+V+qFF5q3vfe9Su3dW4xfJ5+s1Pr10dsmTw58vv12+b744nz9\n8/nOd5T60IfM0vrHsW1b+7abbw6OcflyM/vDw5K+E3PmKHXmmc3rrr5aqenTlbrjjvb9//VfxeYl\nl8jyW96i1N13J/PnK18JjinqM29eMjs+jz+u1Omnx2//yU8C24cd1rzt0UeDbW98o1KvvRZsu/12\nOf7p05W65x49n7rxvve1H/eUKUrt2CHbr7tO8v2nf2pP63myDVDqU59S6ktfUuqv/zq6LJ96Sqlz\nzulc3p0+06YFv5VS6uijm7fv3KnU736n1EUXRR/niy8mz+vBByVNeJ1/nGef3Wz3r/9ajlsppfbt\nU+r445XaskWpO+9U6rLLgv3OOis6L5+9e5U66iil+vuV+r//V9b96ldBvv6+M2Yo9Yc/SN0EJL9f\n/lKpRYuUOu64wF7csf3FXzQv79hhHpNTTpG4rl2r1KGHSr433KDUqFH6tv7pn5SaOFGpl14KjsG/\nFxxySHD8xxwTnPPHHafUqacqtWRJdMx9/PPuvvuknvT3y/rbbpP6/8EPBn40GvJ99NFKjR5tXjaA\nUs88Y572v/6r+Xz0fx95ZPM9MuvP9OlyrfrEJ6TMFi+W9QMDck+8/HKp/379/fGPm8v+lltk/5/8\nRKne3mbbH/9483EBSn3hCxKjN7wh+vwDlDrxxOZtf/M38fX+iCPkO3yP1jn2qVPlOOP28Y8v7F+U\nz90+xxyj1Lhx7en86/706VK+rccf3ve449q3H3+8fB92mJyjn/50+/nh7+vbB5Q66ST5PvzwIP9w\nrCZPDu65rXYmTmy2o1MO3eLRuu6ww+L37e9PZte/txx7bLDuBz+Q7ygApe69N/rY/Xo2dWq031E+\n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\nrFvXvH3VqmA5SX1/7LHO+fnHq1R7/B991MOWLcH2Bx9s3t5af8LlLw9+Hp54Ivnxti6/9lrn7b6/\nSsnyyy/r2Qc8PPkkMG5ctL3W8njgAQ8bNjSnX726efvQUPP2JUuAY49tLt9GIyif7dub94+63vnL\nCxZ4mDAh3r/g+BC5fe/euP31l33/W7eH/e9m7w9/aN++YkWw3FpeSnW+XgEe5s5tTx+X/4MPSv32\ny7N1u399iipvpYBNmzzs2gUceqhsHx728OCDwDvfGW2vtb688EL79ieeAGbMEPuPP+5h8+Ygv5Ur\nm/dvLZ+9ez2sXDl///6PP+5h+fJg/wULPBx0ULD/unVy/vvHt3p1tH1/ee3a5uUtW+R4w9er8Pan\nnvJwwAHx16cXXwzqi1LA/PnB9Saq/ObPb15etszD7Nnx+z//vIe9ewP7Dz/s4bXX2o+vU3168slg\n+eWXxV5UfenpAYaGPAwMNKdfsybIv9W/8P1UKSmP8Pao63m4PaWUh3Xr5uM//mMrfvtbYO5cf0xB\ntgwAuBfAJ2O2TwGwYOT3DSMfn98COLtlf0WI6wBK/eQnRXthzvHHyzHUiUBR1v554gm7eT3xRGB7\n4cL27bfdln/5/9mfNR/zokXpbUaV5ZIlSp15Zufy7vQ55ZTgt1JKzZ7dvL0bGzYky+fxx9uP48/+\nLFg+7zy7ZZOEz31Ov17EHV/rts2bzWMSxd//vb6dq6+OttXT057PlClKfeUrsv5HP9Irkzje//7m\nfO64Q6lx45R629vMywZQaulSs3STJyv1i18Ey8uWtfv8s5+l800nxt/9rlIf+Yj8njNH1t98c7Ky\nXbZM9n/yyXbbM2cGv3/+c/m+6aYgrb/tqaeC5T//c6W2bZPfixcrdcstSn3oQ+1pAKV+/Wul7r5b\nfj/8sNmxP/+8UocfnuwcePe7Zd3FF0efa50+99+v1Le/3ZxuwoRm+7/6lazfuTPIy9/3+uvlngIo\ntWNHcK1dv16+b71VqX/7N6X+6q+abe7bJ9tf/3qlfvOb5uMClPrP/2wv27vukuvvuec22+pUPuF1\no0eb18XWdXfdFb/vgQd2t3nppUrt3h3U0c9/Xn5/+cvt8VVKqeFhpXp729f758S8efJ71So5j1v9\nHhxs92HbNjkXfv97pa69Nlh/wQXyfeWVQR1pzXPcOKXe9S6l3vIWpa64Qs6FCROU2rKlc1xuuEGp\n++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\n",
"text": [
"<matplotlib.figure.Figure at 0x7f7766c76610>"
]
}
],
"prompt_number": 8
},
{
"cell_type": "heading",
"level": 1,
"metadata": {},
"source": [
"Advanced usage"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"`register_dynamic_ftrace()` is useful for simple traces in which you don't need to do any post-processing. If you need to register a full-featured trace class you can use `trappy.register_ftrace_parser()` for this. For example, a class that parses trace for `capacity_per_group:` and wants to limit the cpumasks to 8-digit could declare it like this:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"from trappy.base import Base\n",
"class GroupCapacity(Base):\n",
"\n",
" unique_word = \"capacity_per_group:\"\n",
" name = \"group_capacity\"\n",
" _cpus_column = \"cpus\"\n",
"\n",
" def __init__(self):\n",
" super(GroupCapacity, self).__init__(\n",
" unique_word=self.unique_word,\n",
" )\n",
"\n",
" def finalize_object(self):\n",
" if self._cpus_column in self.data_frame.columns:\n",
" self.data_frame[self._cpus_column] = self.data_frame[self._cpus_column].apply('{:0>8}'.format)\n",
"\n",
"trappy.register_ftrace_parser(GroupCapacity)"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 8
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now after parsing your trace using `trappy.FTrace()` you can access it's group_capacity member. For example:\n",
"\n",
" trappy.LinePlot(trace, GroupCapacity, column=\"group_capacity\", pivot=\"cpus\", marker='.', linestyle='none', per_line=2).view()"
]
}
],
"metadata": {}
}
]
}