blob: eaf5af3e7f9ea53778ed55eaa2f7b7071931bac8 [file] [log] [blame]
{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"collapsed": true
},
"source": [
"# Trace Analysis Examples\n",
"\n",
"## Idle States Residency Analysis"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This notebook shows the features provided by the idle state analysis module. It will be necessary to collect the following events:\n",
"\n",
" - `cpu_idle`, to filter out intervals of time in which the CPU is idle\n",
" - `sched_switch`, to recognise tasks on kernelshark\n",
" \n",
"Details on idle states profiling ar given in **Per-CPU/Per-Cluster Idle State Residency Profiling** below."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": false,
"run_control": {
"marked": false
}
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"2016-12-07 18:19:51,925 INFO : root : Using LISA logging configuration:\n",
"2016-12-07 18:19:51,925 INFO : root : /home/vagrant/lisa/logging.conf\n"
]
}
],
"source": [
"import logging\n",
"from conf import LisaLogging\n",
"LisaLogging.setup()"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false,
"run_control": {
"marked": false
}
},
"outputs": [],
"source": [
"%matplotlib inline\n",
"\n",
"import os\n",
"\n",
"# Support to access the remote target\n",
"from env import TestEnv\n",
"\n",
"# Support to access cpuidle information from the target\n",
"from devlib import *\n",
"\n",
"# Support to configure and run RTApp based workloads\n",
"from wlgen import RTA, Ramp\n",
"\n",
"# Support for trace events analysis\n",
"from trace import Trace\n",
"\n",
"# DataFrame support\n",
"from pandas import DataFrame"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Target Configuration\n",
"The target configuration is used to describe and configure your test environment.\n",
"You can find more details in **examples/utils/testenv_example.ipynb**.\n",
"\n",
"Our target is a Juno R0 development board running Linux."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false,
"run_control": {
"marked": false
}
},
"outputs": [],
"source": [
"# Setup a target configuration\n",
"my_conf = {\n",
" \n",
" # Target platform and board\n",
" \"platform\" : 'linux',\n",
" \"board\" : 'juno',\n",
" \n",
" # Target board IP/MAC address\n",
" \"host\" : '192.168.0.1',\n",
" \n",
" # Login credentials\n",
" \"username\" : 'root',\n",
" \"password\" : 'juno',\n",
" \n",
" \"results_dir\" : \"IdleAnalysis\",\n",
" \n",
" # RTApp calibration values (comment to let LISA do a calibration run)\n",
" \"rtapp-calib\" : {\n",
" \"0\": 318, \"1\": 125, \"2\": 124, \"3\": 318, \"4\": 318, \"5\": 319\n",
" },\n",
" \n",
" # Tools required by the experiments\n",
" \"tools\" : ['rt-app', 'trace-cmd'],\n",
" \"modules\" : ['bl', 'cpufreq', 'cpuidle'],\n",
" \"exclude_modules\" : ['hwmon'],\n",
" \n",
" # FTrace events to collect for all the tests configuration which have\n",
" # the \"ftrace\" flag enabled\n",
" \"ftrace\" : {\n",
" \"events\" : [\n",
" \"cpu_idle\",\n",
" \"sched_switch\"\n",
" ],\n",
" \"buffsize\" : 10 * 1024,\n",
" },\n",
"}"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false,
"run_control": {
"marked": false
},
"scrolled": true
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"2016-12-07 18:19:55,077 INFO : TestEnv : Using base path: /home/vagrant/lisa\n",
"2016-12-07 18:19:55,078 INFO : TestEnv : Loading custom (inline) target configuration\n",
"2016-12-07 18:19:55,078 INFO : TestEnv : Devlib modules to load: ['bl', 'cpuidle', 'cpufreq']\n",
"2016-12-07 18:19:55,079 INFO : TestEnv : Connecting linux target:\n",
"2016-12-07 18:19:55,079 INFO : TestEnv : username : root\n",
"2016-12-07 18:19:55,080 INFO : TestEnv : host : 192.168.0.1\n",
"2016-12-07 18:19:55,080 INFO : TestEnv : password : juno\n",
"2016-12-07 18:19:55,081 INFO : TestEnv : Connection settings:\n",
"2016-12-07 18:19:55,081 INFO : TestEnv : {'username': 'root', 'host': '192.168.0.1', 'password': 'juno'}\n",
"2016-12-07 18:20:04,495 INFO : TestEnv : Initializing target workdir:\n",
"2016-12-07 18:20:04,497 INFO : TestEnv : /root/devlib-target\n",
"2016-12-07 18:20:28,575 INFO : TestEnv : Topology:\n",
"2016-12-07 18:20:28,576 INFO : TestEnv : [[0, 3, 4, 5], [1, 2]]\n",
"2016-12-07 18:20:30,241 INFO : TestEnv : Loading default EM:\n",
"2016-12-07 18:20:30,243 INFO : TestEnv : /home/vagrant/lisa/libs/utils/platforms/juno.json\n",
"2016-12-07 18:20:34,565 INFO : TestEnv : Enabled tracepoints:\n",
"2016-12-07 18:20:34,565 INFO : TestEnv : cpu_idle\n",
"2016-12-07 18:20:34,566 INFO : TestEnv : sched_switch\n",
"2016-12-07 18:20:34,566 WARNING : TestEnv : Using configuration provided RTApp calibration\n",
"2016-12-07 18:20:34,566 INFO : TestEnv : Using RT-App calibration values:\n",
"2016-12-07 18:20:34,567 INFO : TestEnv : {\"0\": 318, \"1\": 125, \"2\": 124, \"3\": 318, \"4\": 318, \"5\": 319}\n",
"2016-12-07 18:20:34,568 INFO : EnergyMeter : HWMON module not enabled\n",
"2016-12-07 18:20:34,570 WARNING : EnergyMeter : Energy sampling disabled by configuration\n",
"2016-12-07 18:20:34,571 INFO : TestEnv : Set results folder to:\n",
"2016-12-07 18:20:34,572 INFO : TestEnv : /home/vagrant/lisa/results/IdleAnalysis\n",
"2016-12-07 18:20:34,574 INFO : TestEnv : Experiment results available also in:\n",
"2016-12-07 18:20:34,576 INFO : TestEnv : /home/vagrant/lisa/results_latest\n"
]
}
],
"source": [
"# Initialize a test environment\n",
"te = TestEnv(my_conf, wipe=False, force_new=True)\n",
"target = te.target"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Workload configuration and execution\n",
"\n",
"Detailed information on RTApp can be found in **examples/wlgen/rtapp_example.ipynb**."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [],
"source": [
"def experiment(te):\n",
"\n",
" # Create RTApp RAMP task\n",
" rtapp = RTA(te.target, 'ramp', calibration=te.calibration())\n",
" rtapp.conf(kind='profile',\n",
" params={\n",
" 'ramp' : Ramp(\n",
" start_pct = 60,\n",
" end_pct = 20,\n",
" delta_pct = 5,\n",
" time_s = 0.5).get()\n",
" })\n",
"\n",
" # FTrace the execution of this workload\n",
" te.ftrace.start()\n",
" rtapp.run(out_dir=te.res_dir)\n",
" te.ftrace.stop()\n",
"\n",
" # Collect and keep track of the trace\n",
" trace_file = os.path.join(te.res_dir, 'trace.dat')\n",
" te.ftrace.get_trace(trace_file)\n",
"\n",
" # Dump platform descriptor\n",
" te.platform_dump(te.res_dir)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false,
"run_control": {
"marked": false
},
"scrolled": true
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"2016-12-07 18:20:39,906 INFO : Workload : Setup new workload ramp\n",
"2016-12-07 18:20:39,907 INFO : Workload : Workload duration defined by longest task\n",
"2016-12-07 18:20:39,908 INFO : Workload : Default policy: SCHED_OTHER\n",
"2016-12-07 18:20:39,908 INFO : Workload : ------------------------\n",
"2016-12-07 18:20:39,908 INFO : Workload : task [ramp], sched: using default policy\n",
"2016-12-07 18:20:39,909 INFO : Workload : | calibration CPU: 1\n",
"2016-12-07 18:20:39,909 INFO : Workload : | loops count: 1\n",
"2016-12-07 18:20:39,909 INFO : Workload : + phase_000001: duration 0.500000 [s] (5 loops)\n",
"2016-12-07 18:20:39,910 INFO : Workload : | period 100000 [us], duty_cycle 60 %\n",
"2016-12-07 18:20:39,910 INFO : Workload : | run_time 60000 [us], sleep_time 40000 [us]\n",
"2016-12-07 18:20:39,910 INFO : Workload : + phase_000002: duration 0.500000 [s] (5 loops)\n",
"2016-12-07 18:20:39,911 INFO : Workload : | period 100000 [us], duty_cycle 55 %\n",
"2016-12-07 18:20:39,911 INFO : Workload : | run_time 55000 [us], sleep_time 45000 [us]\n",
"2016-12-07 18:20:39,912 INFO : Workload : + phase_000003: duration 0.500000 [s] (5 loops)\n",
"2016-12-07 18:20:39,912 INFO : Workload : | period 100000 [us], duty_cycle 50 %\n",
"2016-12-07 18:20:39,913 INFO : Workload : | run_time 50000 [us], sleep_time 50000 [us]\n",
"2016-12-07 18:20:39,913 INFO : Workload : + phase_000004: duration 0.500000 [s] (5 loops)\n",
"2016-12-07 18:20:39,914 INFO : Workload : | period 100000 [us], duty_cycle 45 %\n",
"2016-12-07 18:20:39,914 INFO : Workload : | run_time 45000 [us], sleep_time 55000 [us]\n",
"2016-12-07 18:20:39,916 INFO : Workload : + phase_000005: duration 0.500000 [s] (5 loops)\n",
"2016-12-07 18:20:39,916 INFO : Workload : | period 100000 [us], duty_cycle 40 %\n",
"2016-12-07 18:20:39,917 INFO : Workload : | run_time 40000 [us], sleep_time 60000 [us]\n",
"2016-12-07 18:20:39,918 INFO : Workload : + phase_000006: duration 0.500000 [s] (5 loops)\n",
"2016-12-07 18:20:39,919 INFO : Workload : | period 100000 [us], duty_cycle 35 %\n",
"2016-12-07 18:20:39,919 INFO : Workload : | run_time 35000 [us], sleep_time 65000 [us]\n",
"2016-12-07 18:20:39,920 INFO : Workload : + phase_000007: duration 0.500000 [s] (5 loops)\n",
"2016-12-07 18:20:39,920 INFO : Workload : | period 100000 [us], duty_cycle 30 %\n",
"2016-12-07 18:20:39,921 INFO : Workload : | run_time 30000 [us], sleep_time 70000 [us]\n",
"2016-12-07 18:20:39,921 INFO : Workload : + phase_000008: duration 0.500000 [s] (5 loops)\n",
"2016-12-07 18:20:39,922 INFO : Workload : | period 100000 [us], duty_cycle 25 %\n",
"2016-12-07 18:20:39,923 INFO : Workload : | run_time 25000 [us], sleep_time 75000 [us]\n",
"2016-12-07 18:20:39,923 INFO : Workload : + phase_000009: duration 0.500000 [s] (5 loops)\n",
"2016-12-07 18:20:39,924 INFO : Workload : | period 100000 [us], duty_cycle 20 %\n",
"2016-12-07 18:20:39,924 INFO : Workload : | run_time 20000 [us], sleep_time 80000 [us]\n",
"2016-12-07 18:20:51,246 INFO : Workload : Workload execution START:\n",
"2016-12-07 18:20:51,247 INFO : Workload : /root/devlib-target/bin/rt-app /root/devlib-target/ramp_00.json 2>&1\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n"
]
}
],
"source": [
"experiment(te)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Parse trace and analyse data"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"2016-12-07 18:21:31,546 INFO : root : Content of the output folder /home/vagrant/lisa/results/IdleAnalysis\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"/home/vagrant/lisa/results/IdleAnalysis\r\n",
"├── cluster_idle_state_residency.png\r\n",
"├── cpu_idle_state_residency.png\r\n",
"├── output.log\r\n",
"├── platform.json\r\n",
"├── ramp_00.json\r\n",
"├── rt-app-ramp-0.log\r\n",
"├── trace.dat\r\n",
"├── trace.raw.txt\r\n",
"└── trace.txt\r\n",
"\r\n",
"0 directories, 9 files\r\n"
]
}
],
"source": [
"# Base folder where tests folder are located\n",
"res_dir = te.res_dir\n",
"logging.info('Content of the output folder %s', res_dir)\n",
"!tree {res_dir}"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false,
"run_control": {
"marked": false
}
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"2016-12-07 18:21:32,410 INFO : Trace : Parsing FTrace format...\n",
"2016-12-07 18:21:32,664 WARNING : Trace : Failed to load tasks names from trace events\n",
"2016-12-07 18:21:32,665 INFO : Trace : Collected events spans a 14.858 [s] time interval\n",
"2016-12-07 18:21:32,665 INFO : Trace : Set plots time range to (0.000000, 14.857782)[s]\n",
"2016-12-07 18:21:32,666 INFO : Analysis : Registering trace analysis modules:\n",
"2016-12-07 18:21:32,667 INFO : Analysis : tasks\n",
"2016-12-07 18:21:32,668 INFO : Analysis : status\n",
"2016-12-07 18:21:32,669 INFO : Analysis : frequency\n",
"2016-12-07 18:21:32,670 INFO : Analysis : cpus\n",
"2016-12-07 18:21:32,671 INFO : Analysis : latency\n",
"2016-12-07 18:21:32,673 INFO : Analysis : idle\n",
"2016-12-07 18:21:32,674 INFO : Analysis : functions\n",
"2016-12-07 18:21:32,675 INFO : Analysis : eas\n"
]
}
],
"source": [
"trace = Trace(te.platform, res_dir, events=my_conf['ftrace']['events'])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Per-CPU Idle State Residency Profiling"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"It is possible to get the residency in each idle state of a CPU or a cluster with the following commands:"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>time</th>\n",
" </tr>\n",
" <tr>\n",
" <th>idle_state</th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>0.009255</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>0.003381</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>14.483522</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" time\n",
"idle_state \n",
"0 0.009255\n",
"1 0.003381\n",
"2 14.483522"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Idle state residency for CPU 3\n",
"CPU=3\n",
"state_res = trace.data_frame.cpu_idle_state_residency(CPU)\n",
"state_res"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"For the translation between the idle value and its description:"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": false,
"run_control": {
"marked": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>name</th>\n",
" <th>value</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>CpuidleState(WFI, ARM64 WFI)</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>CpuidleState(cpu-sleep-0, cpu-sleep-0)</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>CpuidleState(cluster-sleep-0, cluster-sleep-0)</td>\n",
" <td>2</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" name value\n",
"0 CpuidleState(WFI, ARM64 WFI) 0\n",
"1 CpuidleState(cpu-sleep-0, cpu-sleep-0) 1\n",
"2 CpuidleState(cluster-sleep-0, cluster-sleep-0) 2"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"DataFrame(data={'value': state_res.index.values,\n",
" 'name': [te.target.cpuidle.get_state(i, cpu=CPU) for i in state_res.index.values]})"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The **IdleAnalysis** module provide methods for plotting residency data:"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"ia = trace.analysis.idle"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\n/vNI26XrXhVsQJde6r8CY5BVRiGrjEJWGYWsMgpZZRSLmNWRm5jAGj31qU+duwRYE1llFLLKKGSV\nUZHYnTEAAA5jSURBVMgqo5BVRrGIWV2k1cnXm9XJAQAAAOAEHc/q5EZiAgAAAAAbmiYmAAAAALCh\naWLCJnDTTTfNXQKsiawyClllFLLKKGSVUcgqo1jErGpiwibwmte8Zu4SYE1klVHIKqOQVUYhq4xC\nVhnFImbVwj4nbnu1Z/fu3W3btq3zzjuvrVu3zl0THNb+/fs755xz5i4DjklWGYWsMgpZZRSyyihk\nlVGMktXjWdjnrHWpaIE961nP+ubjm2++WSOTDWmEH1xQsso4ZJVRyCqjkFVGIauMYhGz6nbyk/Wk\n6uLp4W233TZrKQAAAACwiDQxT9b51T3mLgIAAAAAFpcmJmwCV1xxxdwlwJrIKqOQVUYhq4xCVhmF\nrDKKRcyqJiZsAhdeeOHcJcCayCqjkFVGIauMQlYZhawyikXMqtXJT9z2ak8XN91Ovqv27NnT9u3b\nZy4LAAAAADa+41md3EhMAAAAAGBD08QEAAAAADY0TUzYBD7xiU/MXQKsiawyClllFLLKKGSVUcgq\no1jErGpiHt7zqk9XX60+XD1u3nLg5Fx55ZVzlwBrIquMQlYZhawyClllFLLKKBYxq5qYh3pm9drq\nx6uHVx+o3l3dd86i4GRce+21c5cAayKrjEJWGYWsMgpZZRSyyigWMauamId6afUz1ZuqT1YvqT5b\nPXfOouBkXHjhhXOXAGsiq4xCVhmFrDIKWWUUssooFjGrmpgHO7vaXt24av+N1WPXvxwAAAAAQBPz\nYPeo7lR9ftX+L1T3Xv9yAAAAAABNzJP1rupXpocveclLWlpa6jGPeUw33HDDQYfdeOONLS0tHfLl\nz3/+87vuuusO2rd3796Wlpa69dZbD9p/1VVXtXPnzoP23XLLLS0tLR2y6tTrX//6rrjiioP27d+/\nv6WlpW666aaD9l9//fVdeumlh9T2zGc+03ksyHns3LlzIc6jFuPfw3kc+TwOfM3o53GA81jc81hd\nx6jnsZrzWLzzeMhDHrIQ57Eo/x7O48jnsXPnzoU4j1qMfw/nceTzOFD76OdxgPNY3PNY+X02ynns\n2LGjJz/5yS0tLX1zu+SSSw55rSM5Y81Hbg5nV1+pvrd6x4r9r6seWj1pxb7t1Z4ubhq/uav27NnT\n9u3b16tWWLOrrrqqV77ylXOXAcckq4xCVhmFrDIKWWUUssooRsnq3r1727FjR9WOau/RjtXEPNT/\nqvZUz1+x73ert1evWLFPExMAAAAATtDxNDHPWpeKxnJN9Zbqw00NzedUF1RvmLMoAAAAANisNDEP\n9YvV3asfq7ZUv1M9rfrsnEUBAAAAwGZlYZ/D+0/V/au7VI+qbjr64bCxrZ5kFzYqWWUUssooZJVR\nyCqjkFVGsYhZ1cSETeCyyy6buwRYE1llFLLKKGSVUcgqo5BVRrGIWb3T3AUMbEt1eduqc6o9dfnl\nl7dly5aZy4JDPfjBD5ZNhiCrjEJWGYWsMgpZZRSyyihGyeq+ffvatWtX1a5q39GOtTr5ibM6OQAA\nAACcoONZndzt5AAAAADAhqaJCQAAAABsaJqYsAlcd911c5cAayKrjEJWGYWsMgpZZRSyyigWMaua\nmLAJ7N171GklYMOQVUYhq4xCVhmFrDIKWWUUi5hVC/ucuGlhnydV51dvs7APAAAAAKzV8Szsc9a6\nVLTI3vuth+edd958dQAAAADAgtLEPEm7d+9u27ZtnXfeeW3dunXucgAAAABg4WhinqRt27a5hRwA\nAAAATiML+8AmsLS0NHcJsCayyihklVHIKqOQVUYhq4xiEbN6p7kLGNiW6vLLL7+8LVu2zF0LHNXd\n7373HvjAB85dBhyTrDIKWWUUssooZJVRyCqjGCWr+/bta9euXVW7qn1HO9bq5Cdue7XHiuQAAAAA\ncPyOZ3Vyt5MDAAAAABuaJiYAAAAAsKFpYsImcMMNN8xdAqyJrDIKWWUUssooZJVRyCqjWMSsamLC\nJrBz5865S4A1kVVGIauMQlYZhawyClllFIuYVU1M2ATuec97zl0CrImsMgpZZRSyyihklVHIKqNY\nxKxqYgIAAAAAG5omJgAAAACwoWliAgAAAAAb2llzFzC6j3/843OXAMf0oQ99qL17985dBhyTrDIK\nWWUUssooZJVRyCqjGCWrx9NXO+M01rHotlS/Xm2buxAAAAAAGNT7qx+o9h3tIE3Mk7NleQMAAAAA\njt++jtHABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ZZ5Xfbr6avXh6nHzlgOHeFn1W9WXqs9X\nb68eNGtFsDb/srq9eu3chcBh3KfaXd1afaX6SLV91orgUHeuXt30XnV/9fvVj1ZnzFkUVE+ofrn6\no6bf9f/gMMdcvfz3+6v3Vg9Zr+JghaNl9axqZ/Xb1ZeXj/kv1ZZ1rhHW8jP1gDcsH/OidajrtDlz\n7gIG9cymi+sfrx5efaB6d3XfOYuCVZ5Qvb76nuopTb9sb6zOmbMoOIZHVc9pelN4x8y1wGrnVx+s\n/qL6u9W26qXVn85ZFBzGy6t/2vSh+3dXV1ZXVD80Z1HQ9D70I9Xzl5+v/l3/I9WLl//+UdUfV++p\n7rpeBcKyo2X13OoR1auW/7y4abDI/1jPAqFj/0w94BlNfYHPHeUYFtj/rn561b7frf7tDLXAWt2j\n6ZMXo4bZqO5afbJ6ctPIi2vmLQcO8e+q989dBKzBL1f/edW+tzaNFIKN4vZqacXzM6p9TQ33A86u\nvtj0ASfMZXVWD+eRy8ddcPrLgcM6Uk7vU3226cP3T1cvXM+iTjUjMY/f2U23jd24av+N1WPXvxxY\ns29f/vNPZq0Cjuynq3dWv5FbHtmYlqo91S81TdOxt2m0G2w076z+drV1+fnDqr9VvWu2iuDY7l/d\nq4Ovs77W9OGR6yw2um9vGuHm7gw2kjOrt1SvqT4+cy2nxFlzFzCge1R3arp4WekL1b3XvxxYkzOa\npkD4QNOoYdhovr9peo5HLT93mwMb0QOq51Y/Uf3r6tHVTzVdZP/cjHXBam+svrNpdPs3mt67vrz6\nhRlrgmM5cC11uOusC9e5Fjged2m6W+Pnm+bIhI3iR5rep75+7kJOFU1M2Byurf56biVnY7pv9bqm\nUUNfW953RkZjsvGcWX2o+lfLzz9a/Y3qn6eJycbywurZTR8QfaxpzrafbLpVV1YZkQ832ajuXP23\n5cfPm7MQWGVH0/uB1QtQusbaZM6uvt6hqz69rmkON9hoXl/9QXW/uQuBI3h60xwuX1+x3V79ZVNT\n0y9aNorPVLtW7Xtu9YfrXwoc1ec79GL6FS3IrWQsjNXztz1ged/DVh33jupn16soOIwjzTV45+rt\nTQurnL+uFcGhVuf0xU3XU6uvsb5RfWrdqztFzIl5/L7WNB/WU1ftf0r1m+tfDhzRGU0jMJ/etFDK\nH8xbDhzRrzWNZnvY8vbw6sPV7uXHRl+wUXywaaXnlR7U1NyEjeSMpguXlW7Ph0JsbJ9uWo185XXW\n2dUTc53FxnPn6herBzbdTfTFecuBQ/xc9Tc7+Brrc03zY/6dGetiBpdUf1Fd2rTC02urLzXdEgkb\nxX9s+mX6hKY5hg5sd5mzKFij9zX9bIWN5JFNH2a+rPqu6geb5r76gTmLgsPY1bQS6dOa5sZ8RtO8\ngq+esSaoOrfpQvrhTY31Fy8/PnAddWXT+9enN33A+V+bRrufu+6VstkdLatnNY0QvqV6aAdfa915\njmLZtI71M3W14Vcn58Q9tykAf179VuYaZOM5cDvu7au2fzRnUbBG762umbsIOIy/X/129dWmuQb/\nybzlwGGdW/2Hpveq+6vfq16V+fCZ30V96z3pyvepb1pxzFVNo4W+2vR+4CHrWyJUR8/q/Q6z/8Dz\nJ8xQK5vXRR37Z+pKmpgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAFRdXX1khte9qLp9eXvbGr/m6hVf86LTUhUAAAAAsK5uP8b2puqc6vwZ\nartouYbvqu62xq85t7pXdUv1wtNTFgDA5nbW3AUAALDp3HvF4++vXlU9aMW+r1b7l7e5fKH60hqP\n/cry9penrxwAgM3tzLkLAABg0/nCiu1L1R2r9t3WobeTv7l6e/Xy6o+rL1avbPpQ/prq/1WfrZ69\n6rXuU/1C9SfLx9xQ3e8Eav7e6neaGqu3Vu9pGi0KAMA60MQEAGAUT24axfn46qXVj1bvbmp8Prp6\nQ/XG6oLl48+p3tvUKH189djqy9WvVHc+jtfdUl1f/Uz13U23nL+1OuNkTgYAAAAAGMOzm0ZVrnZ1\nh47E/NSqYz5evW/F8zObRnFesvz8suVjVjq76dbvpxyhnoua5sT8thX7ti/vu/AIX3PApzMnJgDA\naWFOTAAARvGxVc8/33SL9wG3N90y/h3Lz3c0LdBz26qv+yvVA47jdf9P9evLr/Wr1Y3Vf6/+9Di+\nBwAAJ0ETEwCAUXxj1fM7qq8fZt+BKZPOrPZUP3iY73Xrcbzu7U0jNx9bPbX6oerfVN9TfeY4vg8A\nACfInJgAACyqPdXW6v823Yq+clvryuMr/WbTbe6PqL5WPf2UVAkAwDFpYgIAMKozOvriOj/fNOLy\nHdXjqvtXT6x+smnV8rV6dNOq6Dua5sX8h9U9O3S+TQAAThO3kwMAMLc7jrDvjqM8P9K+lb5aPaHa\nWb2tOq/6o+rXOr6RmAdWN39R04I/n2laHf1Xj+N7AAAAAACcEhc1zYF5txP42s9kdXIAgNPC7eQA\nAPAtB0Z2/mHT7ehr8fKmFdAvOC0VAQBw1DmEAABgs7lL9deWH3+5+sIavub85a2mOThPZNEgAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADax/w/Tbu1e7qMEPAAAAABJ\nRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fe5e2a1f990>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Actual time spent in each idle state\n",
"ia.plotCPUIdleStateResidency([1,2])"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": false,
"run_control": {
"marked": false
}
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABT0AAAIBCAYAAACLEhtUAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAAPYQAAD2EBqD+naQAAIABJREFUeJzs3X+cX3V9J/rXINoLdFolSrV0Y1TCZQpYnbhK271V65pm\n9ZYKu4q5TVvB9u4Vsa29BdkHhiRaacOjXLkttKXA1nWDwY2LuV2rwEqxu+z6Y81gq+zQRBrwB1VJ\nopAQ8AfJ/eN8v8w3w5nJnJk5OTOfPJ+Px/cxM9/v+fE+Z86L4fHO55xPAgAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAkLEtyoPdaOumzVw18BvNhWaa+\n3o7E+szM/anO8a91XAcAAABQgGNmsc76zE9j8uAsP2vTDyf5rSR/neSbSb6XZE+S8SS3Jbk8yavz\n1PP2o6nOy7re9204EvuYiU9l4vc/+NqfZGeS/5DkF7sqbhpzvaa6uiYXg/tTf03M5LVu0racZwAA\nAGDOjp3DuqU1J16c5GNJfqL388Ekj/e+Lk/yvyZ5be+zZUm+MrDus1I1RJPkL5I83EJ9R2IfTXw/\nye6Bn5ekGgn5/CT/KsmHk6xJ8sSRL+0Q30vy96l+j9/vuJZSfSvJM2rePz7Jj/S+fyj118Le3tcv\np2qcd31dAwAAAEep9alGaM22mbVsYP2pbm8/0o2y4SRf6+37m0kuStXE6zsuyT9L8ge95SbX/fxM\nfUzz5UjsYyY+1avjrye9P5RkNMnfZGIU328e0crasSwL47wvRr8W5w4AAADowGxuby/Rm5P8eKrR\ngL+Y5JocOorxsSR3Jbk0VfPm65PWH5ri+/l0JPYxFweTjCX5pUycO89nPLotxOsUAAAAOAq01fQ8\nOcl1Sb6a5LupRkf+2yQvmodtPyPJhUnuTLIr1e3L30iyNcmqWW7zJb2v30ryucMsO3kk6qeS/EPv\n+6FUz7UcfGbhnQPLDiV5TZI/SvKZVOfle6mahJ9K8q9T/8iBJvvoa+M8zcR3kny29/2p0yy3LMnV\nSe5Jsi/Vrc339t77J9Osd1qSP0+yvbfO46mus88keV+qxxBM3s/hJiKa6/U623Pdr+vnUo02/r1U\n5+CxVNfEf0ry8hnsf2WSm5M80Ft3T5K/S3WdnTWw3M29/f3VYbZ3yqTajoT7M/VERoO1LEny/yS5\nL9WxfiXJnyQ5aWD5ZUn+NFVOHu8t84epntk7neek+h3cneo2+8dT5e6GJD/Z+IgAAACARWV9pr8F\nfTRV06XfqNiXqoFwIFVD7E2Z/e3tz0/ypYFt/6C3rycG3vuTxkdUjew8kKrJcVzDdf9jqlvi+/v/\nZpIHB14fGVh22cByT6Q6L5Pr/5sk/8sc9pG0d56SqW9vH/Tx3jK7pvj8l1Od6/552J/qOunX93Am\nnp866LWT1ns8VXNw8LgmT4yzLFNfb8ncrtdkbue6v903J9nR+/nRVM+57K//+BTnIqmemfkfcug1\n9Z1J+797YPmf6733/UzfWP6D3nLj0ywzE2/J9Odu0P29ZX+15rP+Nn4lVWP6QJJHUjU9+8d+b5IT\nUzV5d/fe+3aqJnZ/mf+aqf+h55/3lh+8th7Job+HXznMMQAAAACL2PpM3ZgcTjXa7ECqUVavGfjs\nrCRfzESDqWnT84RUTZgDSe5I8r8leXrvsx9J8tupmhSzeZbkr2aiMfKhVJMGNTHT522enOSDSV6f\n5JkD75+QaoRb/7miV81hH22ep+TwTc9npWp29vc/2WtTHcN3k/x+Dj2WU1NNgNRvOE5uzH2599kn\ncujIu2f0fn53nto0W5apz9tcr9e5nuv+Nbe7t69XDnz2soFt70z9reL9c/X9JFekekRD35Ikq5Nc\nO2mde3rrrK/ZXnr1f6O3zDunWGam3pL5a3oeSPW72Jbkn/bePzbJeaka1QeSXJ+qKfqfk4z0lvmh\nJG9PdY4OJHlrzfbPTNV4fyLJn6UaLdw/3/8kE/8o8r0kKw5zHAAAAMAitT5TNyYv6X32WJ56m3GS\n/FgmRmE1bXquzUSz7WlT1PaG3jLfmmaZOs9IdTtwv7ny3VRNrN9PNRP5T0y9apL5m+xmRSZGsf3Q\nLPfR5nlKpm56Pi1V/f8lE42410xa5phUt6UfSPLr0+xja2+Z9w+8d1Imjv/HGtS7LFOft7ler3M9\n1/3r7RtJnl2z7hkD+/6ZSZ+9ZuCzfz3Fvuu8o7feV1I/6vFf9j7fn2rk5Fy8JfPb9Hww9f8gsWFg\nmb/LRON50L/rff6faz67o/fZ701T39W9ZT46zTIAAADAIrY+Uzcmx3qffXCa9d+XqRshr5pm2/f3\nPvvfp9n2UKpbk5/IzJ6FOOjZSTbn0NuSB1/3JPmtVA3SyZZl5s2dw/lmbzuvmOU+7k+75+lTmWgM\n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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fe5e28d6610>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Percentage of time spent in each idle state\n",
"ia.plotCPUIdleStateResidency([1,2], pct=True)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Per-cluster Idle State Residency"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>time</th>\n",
" </tr>\n",
" <tr>\n",
" <th>idle_state</th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>0.022823</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>0.010507</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>7.827988</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" time\n",
"idle_state \n",
"0 0.022823\n",
"1 0.010507\n",
"2 7.827988"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Idle state residency for CPUs in the big cluster\n",
"trace.data_frame.cluster_idle_state_residency('big')"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\nrIXr9K1Mz/L8vCQ/0LPuI533h6dMlLISvpkyUrY7ovChmT0CdC7LzWvT17p7LZd67F0pk9RsSvk7\n/XRn+buz9Oe9tlH3Oq5Pub0eAAAAWINW+nbyP+68/3iSx86x/qFJXrnEfXdvcf2vSb7vKNsu5hmF\nvZ6Wo98evj5lxF9Smpmf61l3a8/n+fbT3WZd5q5/fcot2PNZzDGS1b1Oi7Uz089q3N6z/KqUW77X\npdxaf7QRk73nebRt7+j5vNAkO72Wm9cmr/WOzvsTs7R/pg6l3N6+LskvZrqBt9Ym9Fltn095vmtS\n/vm7/1G2X8pjJAAAAIAGXJgyKnCuRtHGlNt6Dyf5YmaOYnt6kk9n+jbeezI9u3PXSQvs+34pI+cO\np0zeck5mNoa6E/D8YZJ/WfzpJCkT0BxMaQz9p779bujs98OdYx9OctEc+/hKZ91vZfazHLv+rrPN\nV1JG/3VHVD4p5Rbp2zt1HE6ZBX0px1jN65SUhs/hLDyjd5K8KtPX66k9y09OGQV5OMk/dL73NihP\nTGnKfTzJ63qWn5SSn59L8vhMN+DXpczU/enOPr+cmSNVN2f+vC03r8u91t39PnuOdV1Xd7Z7wxzr\n/qiz7lspt/H33vr+4JSJen5/gX0/IdN/o8NJPrvAtktxZua/dv2uzfy5P9p12ryI45yU+f/d8sSU\n/0jQvQYTmTki+pFJ/kuSv019TV4AAABorQszfzMgKbcJdxs/h1NGLXYbczenjHrrrhukiZmUiXD+\nPjMbL99Ickvfss/N8/v5/Grf77t139y37J4k78zcDcTX9Wx3R0pz7NqU23a7xjJ9LbrbdZsnd6aM\n9Lw28zdzFnOMZPWuU7L4Jua9U2a9Ppwyo3ivF/bVclfKZEd3ZOa1/oWe3/xQX+3d39ydmef4zL5j\nbe5ZP1eDazl5TZZ3rbvrltrEvG+SP+s7zi2ZmdupBfadJB/q2fa8o2w7qDOz8LXrdW0WbmIudJ02\nL+I4J2Xhf7f8YKbz2m0MH0gZsdp7fX9voZMAAAAA1o7tWbgZkJSJUi5LabLd3nl/e8oou0f3/L6/\n4fBDOfq+j0lyWpLdKSMTb09pPH2hs+xnU2b7HtT3J3l9kvd19vXNlEbZTSmNoLcmecYCv1/XOfbH\nUhpJ3+qcR3+zb2uSy5PckNK0+0pKE7L7jMgvdX43VzNnscdIVu86XbXAMfv9fKb/nt/bt+4hKVn6\n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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fe5e26cd4d0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Actual time spent in each idle state for CPUs in the big and LITTLE clusters\n",
"ia.plotClusterIdleStateResidency(['big', 'LITTLE'])"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\npQEL0HM7duzougSgJYvP93iShRs+fXTcccfliiuuyMaNG7N27dpcdNFFWb9+fXbu3Jn169d3Xd60\nA5M8rusAGhh7AAAgAElEQVQimtm2bVve+c535mlPe1qOPfbYXHDBBRkbG+u6rAdYqU/vO97xjtx8\n8815wxvekEMPPTQ333xzzjnnnBx22GH5yEc+kiOPPHLe/f39DfWSb6ApDViAnjvzzDO7LgFoSe35\n/tCHPpSPfexj2bx58/0jXg8//PDccMMNOfnkk3P88cdnn328E3ap1qxZk1tvvTVJsn379lxwwQUd\nV1SX8847LwcddNAuy44++ug8+clPzllnnbVgA7b2fMPeTL6BpvwvXgAAWvHBD34wq1atyktf+tJd\nlp944on5+te/nn/+53/uqLL63HfffV2XUJ2ZzdckefjDH57x8fF87Wtf66AiAGCl0oAFAKAVX/jC\nFzI+Pv6AUa5PfepTkyRXXXVVF2XBkt12222ZmprKoYce2nUpAMAKogEL0HPbtm3rugSgJbXne/v2\n7Xn0ox/9gOXDZdu3b9/TJcFuee1rX5s777wzb3rTmxbctvZ8w95MvoGmNGABeu5Vr3pV1yUALZFv\nWDlOO+20vOc978nb3/72PP3pT19we/mGesk30JQGLEDPbdiwoesSgJbUnu8DDjhg1lGut9xyy/3r\nYSU488wz87a3vS1nnXVWXvOa1yxqn9rzDXsz+Qaa0oAF6LmJiYmuSwBaUnu+f+zHfixbtmzJzp07\nd1n++c9/PknylKc8pYuyoJEzzzzz/q9TTz110fvVnm/Ym8k30JQGLAAArTj22GNzxx135P3vf/8u\ny9/1rnfl8Y9/fJ71rGd1VBkszlvf+taceeaZOe2003Laaad1XQ4AsELt23UBAAAsZMuKPP/RRx+d\nF7zgBfmVX/mVfPvb386TnvSkbN68OR/96Edz0UUXZWxsbJnr3A1dvk9lN87993//9/nOd76T22+/\nPUly1VVX3d/wftGLXpSHPexhy1Hhbuny6d2dc59zzjk544wzcvTRR+eFL3xhPvOZz+yy/rDDDtu9\n4gCAvYYGLEDPXXjhhXn1q1/ddRlACxbK96pVqwY/nbBnClrAdD2L94EPfCBvetObcvrpp+eWW27J\n+Ph43vve9+bnfu7nWqiwufuv6QPd1pEs7f6+5jWvyQ033JAkGRsby8UXX5yLL744Y2Njue6667J6\n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\n5corr8z27dtzxhln5IwzzmixysVbyfc2SS699NK8+93vzqc//enceOON2X///fOMZzwjp59+upfl\nAQCNaMAC9NzGjRvzxje+sesygBYslO/pkYObkozvkZpmtyXJCUsayXjcccfliiuuyMaNG7N27dpc\ndNFFWb9+fXbu3Jn169cvf6kN3X9NxyU5sKMitiX5QBrf323btuWd73xnnva0p+XYY4/NBRdckLGx\nsXZqXILh9XT59JYnt/m9TZJ3vOMdufnmm/OGN7whhx56aG6++eacc845Oeyww/KRj3wkRx555Lz7\n+/sb6iXfQFMasAA9t2PHjq5LAFqy+HyPJ1l5I+4+9KEP5WMf+1g2b958/4jXww8/PDfccENOPvnk\nHH/88dlnn568kuDAJI/ruohm1qxZk1tvvTVJsn379lxwwQUdVzS7lfn0lpfsHHTQQbssO/roo/Pk\nJz85Z5111oINWH9/Q73k+/9v7+6j5CrrA45/J4ZUXLYikEPSKCCw1OUlkCAvp7ZYX4AYbEwOJ6iV\nIgGqTeCk1lMRjEuyRKB4hIRitL5EwSMJEgQsOZJGcaGWlhdZ5CWupmqIpknEJJhsXiSQTf/43SE3\nk2Uzszuzd+7s93POnJ17n2fu/c2c/HJ3fvvc55FUqTr5jVeS9Fra29uzDkFSjTR6ft977700Nzcz\nderUvfZPmzaNtWvX8thjj2UUWePZvXt31iE0nNLiK0BTUxOtra2sWbNmv69v9PyWhjLzW1KlLMBK\nkiSpJp577jlaW1v3GeV60kknAbBixYoswpL6bfPmzXR2dnLCCSdkHYokScoRC7CSJEmqiY0bN3LI\nIYfss7+4b+PGjYMdkjQgl19+OTt27GDWrFlZhyJJknLEAqwk1bkNGzZkHYKkGjG/pfxoa2tj0aJF\nzJs3j3Hjxu23v/ktNS7zW1KlLMBKUp275JJLsg5BUo00en4feuihvY5y3bRp06vtUh60t7dz3XXX\ncf311zNjxoyyXtPo+S0NZea3pEpZgJWkOjdnzpysQ5BUI42e32PHjqWrq4uenp699j/77LMAnHji\niVmEJVWkvb391cdVV11V9usaPb+locz8llQpC7CSVOfGjx+fdQiSaqTR83vKlCls3bqVu+++e6/9\nt912G2PGjOGMM87IKDKpPHPnzqW9vZ22tjba2toqem2j57c0lJnfkio1POsAJEmS1JgmTJjA2Wef\n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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fe5e274a210>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Percentage of time spent in each idle state for CPUs in the big and LITTLE clusters\n",
"ia.plotClusterIdleStateResidency(['big', 'LITTLE'], pct=True)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"language": "python",
"name": "python2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.6"
},
"toc": {
"toc_cell": false,
"toc_number_sections": true,
"toc_threshold": 6,
"toc_window_display": true
}
},
"nbformat": 4,
"nbformat_minor": 0
}