Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save Leo-Yan/caf2d8745ee36dd2ed5d25f4e4af26ac to your computer and use it in GitHub Desktop.
Save Leo-Yan/caf2d8745ee36dd2ed5d25f4e4af26ac to your computer and use it in GitHub Desktop.
audio_cpu_freq_analysis
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"collapsed": true
},
"source": [
"# CPUFreq and scheduler Analysis"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"run_control": {
"marked": false
}
},
"outputs": [],
"source": [
"import logging\n",
"from conf import LisaLogging\n",
"LisaLogging.setup(level=100)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"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",
"from trace import ResidencyTime, ResidencyData\n",
"\n",
"# DataFrame support\n",
"import pandas as pd\n",
"from pandas import DataFrame\n",
"\n",
"# Trappy (plots) support\n",
"import trappy\n",
"from trappy import ILinePlot\n",
"from trappy.stats.grammar import Parser\n",
"\n",
"import matplotlib.gridspec as gridspec\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Hikey960 Platform Configurations"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [],
"source": [
"# Setup target configuration\n",
"hikey960_conf = {\n",
" \"platform\" : 'generic_linux',\n",
" \"board\" : 'hikey960',\n",
" \"results_dir\" : \"test\",\n",
" \"modules\" : [ 'cpufreq', 'cpuidle' ],\n",
" \"ftrace\" : {\n",
" \"events\" : [ \"cpu_idle\", \"cpu_frequency\" ],\n",
" \"buffsize\" : 100 * 1024,\n",
" },\n",
" \"tools\" : [ 'trace-cmd', 'taskset', 'rt-app', 'sysbench' ],\n",
"}"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [],
"source": [
"hikey960_platform = {\n",
" 'kernel': {\n",
" 'major': 4,\n",
" 'sha1': '78e8b90',\n",
" 'version': '57 SMP PREEMPT Sat Jul 1 15:42:00 CST 2017',\n",
" 'version_number': 14,\n",
" 'parts': [4, 14, 74],\n",
" 'rc': None,\n",
" 'release': '4.4.74-g78e8b90',\n",
" 'minor': 74\n",
" },\n",
" \n",
" 'freqs': {\n",
" 'little': [ 533000, 999000, 1402000, 1709000, 1844000 ],\n",
" 'big': [ 903000, 1421000, 1805000, 2112000, 2362000 ]\n",
" },\n",
" \n",
" 'nrg_model': {\n",
" 'big': {\n",
" 'cluster': {\n",
" 'nrg_max': 433\n",
" },\n",
" 'cpu': {\n",
" 'cap_max': 1024,\n",
" 'nrg_max': 2848\n",
" }\n",
" },\n",
" 'little': {\n",
" 'cluster': {\n",
" 'nrg_max': 144\n",
" },\n",
" 'cpu': {\n",
" 'cap_max': 462,\n",
" 'nrg_max': 502\n",
" }\n",
" }\n",
" },\n",
" \n",
" 'clusters': {\n",
" 'big' : [4, 5, 6, 7],\n",
" 'little' : [0, 1, 2, 3]\n",
" },\n",
" 'cpus_count': 8,\n",
" 'topology': [[0, 1, 2, 3], [4, 5, 6, 7]]\n",
"}"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Test case 1: Audio + menu governor"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Read trace data before optimization"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [],
"source": [
"res_dir = '/home/leoy/Work2/Develop/daniell'\n",
"trace_file = os.path.join(res_dir, \"trace-noeas-menu-exoplayer-audio.dat\")"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"['trace-cmd', 'report', '-r', 'sched_wakeup_new', '-r', 'sched_switch', '-r', 'sched_wakeup', '/home/leoy/Work2/Develop/daniell/trace-noeas-menu-exoplayer-audio.dat']\n"
]
}
],
"source": [
"trace = Trace(hikey960_platform, trace_file, events=hikey960_conf['ftrace']['events'], normalize_time=True)"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(0.533, 0.9643261035043477)"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7ffa9ec43810>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"trace.analysis.frequency.plotClusterFrequencies()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Test case 2: Audio + wfi"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [],
"source": [
"res_dir = '/home/leoy/Work2/Develop/daniell'\n",
"trace_file = os.path.join(res_dir, \"trace-noeas-wfi-exoplayer-audio.dat\")"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"['trace-cmd', 'report', '-r', 'sched_wakeup_new', '-r', 'sched_switch', '-r', 'sched_wakeup', '/home/leoy/Work2/Develop/daniell/trace-noeas-wfi-exoplayer-audio.dat']\n"
]
}
],
"source": [
"trace = Trace(hikey960_platform, trace_file, events=hikey960_conf['ftrace']['events'], normalize_time=True)"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(0.533, 0.9541353019141489)"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7ffa9f34bed0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"trace.analysis.frequency.plotClusterFrequencies()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"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.15rc1"
},
"toc": {
"toc_cell": false,
"toc_number_sections": true,
"toc_threshold": 6,
"toc_window_display": true
}
},
"nbformat": 4,
"nbformat_minor": 1
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment