Skip to content

Instantly share code, notes, and snippets.

@derkling
Last active June 5, 2018 14:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save derkling/fe01e5ddf639e18b5d85a3b1d2e84b7d to your computer and use it in GitHub Desktop.
Save derkling/fe01e5ddf639e18b5d85a3b1d2e84b7d to your computer and use it in GitHub Desktop.
20180531_UtilEst_RunningAvg
Display the source blob
Display the rendered blob
Raw
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"metadata": {},
"cell_type": "markdown",
"source": "# RT-PELT Validation Mainline v4.17"
},
{
"metadata": {
"collapsed": true,
"trusted": true
},
"cell_type": "code",
"source": "USE_UTIL_EST = True\nKERNEL_DIR = '/data/Code/linux-kernel'",
"execution_count": 1,
"outputs": []
},
{
"metadata": {},
"cell_type": "markdown",
"source": "# Imports"
},
{
"metadata": {
"collapsed": true,
"run_control": {
"frozen": false,
"read_only": false,
"marked": false
},
"trusted": true
},
"cell_type": "code",
"source": "import logging\nreload(logging)\nlogging.basicConfig(\n format='%(asctime)-9s %(levelname)-8s: %(message)s',\n datefmt='%I:%M:%S')\n\n# Enable logging at INFO level\nlogging.getLogger().setLevel(logging.INFO)\n# Comment the follwing line to disable devlib debugging statements\n#logging.getLogger('ssh').setLevel(logging.DEBUG)",
"execution_count": 2,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# Generate plots inline\n%pylab inline",
"execution_count": 3,
"outputs": [
{
"output_type": "stream",
"text": "Populating the interactive namespace from numpy and matplotlib\n",
"name": "stdout"
}
]
},
{
"metadata": {
"collapsed": true,
"run_control": {
"frozen": false,
"read_only": false,
"marked": false
},
"trusted": true
},
"cell_type": "code",
"source": "import json\nimport os\nimport subprocess\nimport time\n\nimport devlib\nimport trappy\nimport pandas as pd\n\nfrom env import TestEnv\nfrom git import Git\nfrom trace import Trace\nfrom wlgen import RTA, Periodic, Ramp, PerfMessaging",
"execution_count": 4,
"outputs": []
},
{
"metadata": {
"run_control": {
"frozen": false,
"read_only": false
}
},
"cell_type": "markdown",
"source": "# Utility Functions"
},
{
"metadata": {
"collapsed": true,
"run_control": {
"frozen": false,
"read_only": false,
"marked": false
},
"trusted": true
},
"cell_type": "code",
"source": "def run(wload, collect='ftrace', governor='schedutil',\n use_util_est=False, trace_name=None):\n \n # Run workload on target\n if not trace_name:\n logging.info(\"#### Set [%s] CPUFreq governor\", governor)\n te.target.cpufreq.set_all_governors(governor)\n if governor == 'schedutil':\n for cpu_id in range(te.platform['cpus_count']):\n if 'up_rate_limit_us' in te.target.cpufreq.get_governor_tunables(0):\n te.target.cpufreq.set_governor_tunables(\n cpu_id, 'schedutil', **{\n 'up_rate_limit_us' : '10000',\n 'down_rate_limit_us' : '10000'\n })\n else:\n te.target.cpufreq.set_governor_tunables(\n cpu_id, 'schedutil', **{\n 'rate_limit_us' : '5000',\n }) \n\n# feats = te.target.execute('cat /sys/kernel/debug/sched_features')\n# if 'UTIL_EST' in feats:\n# logging.info(\"#### Enable Utilization estimation\")\n# feature = 'UTIL_EST' if use_util_est else 'NO_UTIL_EST'\n# te.target.execute(\"echo {} > /sys/kernel/debug/sched_features\"\\\n# .format(feature))\n# else:\n# logging.warning(\"### Kernel missing UtilEst support (i.e. sched_feat(UTIL_EST) no available)\")\n\n if 'trace' in collect:\n logging.info('#### Setup FTrace')\n te.ftrace.start()\n if 'energy' in collect:\n logging.info('#### Start energy sampling')\n te.emeter.reset()\n\n logging.info('#### Start RTApp execution')\n wload.run(out_dir=te.res_dir)\n\n if 'energy' in collect:\n logging.info('#### Read energy consumption: %s/energy.json', te.res_dir)\n (nrg, nrg_file) = te.emeter.report(out_dir=te.res_dir)\n if 'trace' in collect:\n logging.info('#### Stop FTrace')\n te.ftrace.stop()\n \n trace_name = 'trace_{}.dat'.format(wload.name)\n trace_file = os.path.join(te.res_dir, trace_name)\n logging.info('#### Save FTrace: %s', trace_file)\n te.ftrace.get_trace(trace_file)\n \n # Reset governor to ondemand\n te.target.cpufreq.set_all_governors('ondemand')\n\n logging.info('#### Save platform description: %s/platform.json', te.res_dir)\n (plt, plt_file) = te.platform_dump(te.res_dir)\n \n platform = te.platform\n \n # Load specified trace\n else:\n results_dir = os.path.join(\n os.environ.get('LISA_HOME'), 'results',\n my_conf['results_dir'])\n trace_file = os.path.join(results_dir,\n 'trace_{}.dat'.format(trace_name))\n logging.info('#### Using trace_file: %s', trace_file)\n \n platform_file = os.path.join(results_dir, 'platform.json')\n with open(platform_file, 'r') as fh:\n platform = json.load(fh)\n \n logging.info('#### Parse trace')\n events_to_parse = my_conf['ftrace']['events']\n trace = Trace(platform, trace_file, events_to_parse)\n\n return trace_file, trace\n\ndef plot_signals(trace, tasks, cpus,\n additional_signals=[], #'last', 'ewma',\n x_min=0, x_max=None):\n \n trace.setXTimeRange(x_min, x_max)\n \n # Add additional signals\n signals = ['residencies'] + additional_signals\n \n trace.analysis.tasks.plotTasks(tasks, signals)\n trace.analysis.frequency.plotCPUFrequencies(cpus)\n trace.analysis.frequency.plotCPUFrequencyResidency(cpus, pct=True)\n",
"execution_count": 5,
"outputs": []
},
{
"metadata": {
"run_control": {
"frozen": false,
"read_only": false
}
},
"cell_type": "markdown",
"source": "# Target Connection"
},
{
"metadata": {
"collapsed": true,
"run_control": {
"marked": false
},
"trusted": true
},
"cell_type": "code",
"source": "# Setup a target configuration\nmy_conf = {\n \n # Define the kind of target platform to use for the experiments\n \"platform\" : 'linux', # Linux system, valid other options are:\n # android - access via ADB\n # linux - access via SSH\n # host - direct access\n \n # Preload settings for a specific target\n \"board\" : 'juno', # load JUNO specific settings, e.g.\n # - HWMON based energy sampling\n # - Juno energy model\n # valid options are:\n # - juno - JUNO Development Board\n # - tc2 - TC2 Development Board\n # - oak - Mediatek MT63xx based target\n\n # Define devlib module to load\n \"exclude_modules\" : [\n 'hwmon', # do not load HWMON, we do not need to measure NRG\n ],\n\n # Account to access the remote target\n \"host\" : '192.168.90.1',\n \"username\" : 'root',\n \"password\" : '',\n\n # Comment the following line to force rt-app calibration on your target\n \"rtapp-calib\" : {\n \"0\": 584, \"1\": 262, \"2\": 262, \"3\": 584, \"4\": 584, \"5\": 584 \n },\n\n # Binary tools required to run this experiment\n # These tools must be present in the tools/ folder for the architecture\n \"tools\" : ['rt-app', 'taskset', 'trace-cmd'],\n \n # FTrace events end buffer configuration\n \"ftrace\" : {\n \"events\" : [\n \"cpu_idle\",\n \"cpu_frequency\",\n \"sched_load_se\",\n \"sched_load_cfs_rq\",\n \"sched_util_est_task\",\n \"sched_util_est_cpu\",\n \"sched_switch\",\n \"sched_wakeup\",\n ],\n \"buffsize\" : 10240\n },\n \n \"results_dir\" : time.strftime(\"%Y%m%d\") + \"_RT-PELT_JunoR2\",\n\n}",
"execution_count": 6,
"outputs": []
},
{
"metadata": {
"scrolled": false,
"run_control": {
"frozen": false,
"read_only": false
},
"trusted": true
},
"cell_type": "code",
"source": "te = TestEnv(my_conf, force_new=True)\ntarget = te.target",
"execution_count": 7,
"outputs": [
{
"output_type": "stream",
"text": "03:12:37 INFO : Using base path: /data/Code/lisa\n03:12:37 INFO : Loading custom (inline) target configuration\n03:12:37 WARNING : Wipe previous contents of the results folder:\n03:12:37 WARNING : /data/Code/lisa/results/20180605_RT-PELT_JunoR2\n03:12:37 INFO : Devlib modules to load: ['bl', 'cpufreq']\n03:12:37 INFO : Connecting linux target:\n03:12:37 INFO : username : root\n03:12:37 INFO : host : 192.168.90.1\n03:12:37 INFO : password : \n03:12:37 INFO : Connection settings:\n03:12:37 INFO : {'username': 'root', 'host': '192.168.90.1', 'password': ''}\n03:12:54 INFO : Initializing target workdir:\n03:12:54 INFO : /root/devlib-target\n03:12:57 INFO : Topology:\n03:12:57 INFO : [[0, 3, 4, 5], [1, 2]]\n03:12:57 INFO : Loading default EM:\n03:12:57 INFO : /data/Code/lisa/libs/utils/platforms/juno.json\n03:13:02 INFO : Enabled tracepoints:\n03:13:02 INFO : cpu_frequency\n03:13:02 INFO : cpu_idle\n03:13:02 INFO : sched_load_cfs_rq\n03:13:02 INFO : sched_load_se\n03:13:02 INFO : sched_switch\n03:13:02 INFO : sched_util_est_cpu\n03:13:02 INFO : sched_util_est_task\n03:13:02 INFO : sched_wakeup\n03:13:02 INFO : Using configuration provided RTApp calibration\n03:13:02 INFO : Using RT-App calibration values:\n03:13:02 INFO : {\"0\": 584, \"1\": 262, \"2\": 262, \"3\": 584, \"4\": 584, \"5\": 584}\n03:13:02 INFO : HWMON module not enabled\n03:13:02 WARNING : Energy sampling disabled by configuration\n03:13:02 INFO : Set results folder to:\n03:13:02 INFO : /data/Code/lisa/results/20180605_RT-PELT_JunoR2\n03:13:02 INFO : Experiment results available also in:\n03:13:02 INFO : /data/Code/lisa/results_latest\n",
"name": "stderr"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "te.target.kernel_version",
"execution_count": 8,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 8,
"data": {
"text/plain": "4.17.0-rc6-00226-g37fbd3297cea-dirty 173 SMP PREEMPT Tue Jun 5 15:07:16 BST 2018"
},
"metadata": {}
}
]
},
{
"metadata": {
"collapsed": true,
"trusted": true
},
"cell_type": "code",
"source": "big_cpu = target.core_cpus(target.big_core)[-1]",
"execution_count": 9,
"outputs": []
},
{
"metadata": {},
"cell_type": "markdown",
"source": "# CFS Task Running Alone"
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "rtapp = RTA(target, 'alone', calibration=te.calibration())\nrtapp.conf(\n kind='profile',\n params={\n 'task_p60': Periodic(\n period_ms=100, # period\n duty_cycle_pct=60, # duty cycle\n duration_s=2, # duration \n cpus=str(big_cpu) # pinned on last big CPU\n ).get(),\n# 'task_p20': Periodic(\n# period_ms=10, # period\n# duty_cycle_pct=20, # duty cycle\n# duration_s=2, # duration \n# delay_s=0.020, # delay (20ms)\n# cpus=str(big_cpu), # pinned on last big CPU,\n# sched={\n# 'policy': 'FIFO',\n# 'prio': 10,\n# }\n# ).get(),\n },\n run_dir=target.working_directory\n);",
"execution_count": 10,
"outputs": [
{
"output_type": "stream",
"text": "03:13:02 INFO : Setup new workload alone\n03:13:02 INFO : Workload duration defined by longest task\n03:13:02 INFO : Default policy: SCHED_OTHER\n03:13:02 INFO : ------------------------\n03:13:02 INFO : task [task_p60], sched: using default policy\n03:13:02 INFO : | loops count: 1\n03:13:02 INFO : + phase_000001: duration 2.000000 [s] (20 loops)\n03:13:02 INFO : | period 100000 [us], duty_cycle 60 %\n03:13:02 INFO : | run_time 60000 [us], sleep_time 40000 [us]\n03:13:02 INFO : | CPUs affinity: 2\n",
"name": "stderr"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "tracefile, trace = run(rtapp, use_util_est=USE_UTIL_EST)\n# tracefile, trace = run(None, use_util_est=USE_UTIL_EST, trace_name=test_id)",
"execution_count": 11,
"outputs": [
{
"output_type": "stream",
"text": "03:13:03 INFO : #### Set [schedutil] CPUFreq governor\n03:13:09 INFO : #### Setup FTrace\n03:13:14 INFO : #### Start RTApp execution\n03:13:14 INFO : Workload execution START:\n03:13:14 INFO : /root/devlib-target/bin/rt-app /root/devlib-target/alone_00.json 2>&1\n03:13:17 INFO : #### Stop FTrace\n03:13:17 INFO : #### Save FTrace: /data/Code/lisa/results/20180605_RT-PELT_JunoR2/trace_alone.dat\n03:13:22 INFO : #### Save platform description: /data/Code/lisa/results/20180605_RT-PELT_JunoR2/platform.json\n03:13:22 INFO : #### Parse trace\n03:13:23 INFO : Platform clusters verified to be Frequency coherent\n",
"name": "stderr"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "df = trace.data_frame.trace_event('sched_util_est_task')\ndf[df.pid == trace.getTaskByName('task_p60')[0]][['util_avg', 'util_est_enqueued', 'util_est_ewma']].plot(figsize=(16,8), drawstyle='steps-post');\nlogging.info(\"Task Utilization\")",
"execution_count": 12,
"outputs": [
{
"output_type": "stream",
"text": "03:13:23 INFO : Task Utilization\n",
"name": "stderr"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\nBQkqAAAwadx44435/ve/v/39u9/97qxcuTJJMmvWrDzxxBP9Co1IUAEAgEnkpQnqDTfckDlz5vQx\nInbkMTMAAMCY+b2/+2ZWfn9TT5c559UH5IMXzN3td9auXZuf+7mfywMPPJAkueaaa3LjjTdm7dq1\nede73pVp06Zl6dKledvb3pZrrrkm8+bN2+Pv/vzP/3wefvjhbN68Oe9///tzxRVX5Nprr833vve9\n/Mmf/EmSwQR4+fLl+cQnPpE/+IM/yKc+9akceuihOeqoo3LKKafkN3/zN7svgAlMCyoAADApXHLJ\nJZk3b14+/elPZ8WKFZk2bdqI5v/kJz+Ze++9N8uXL8/HP/7xbNiwIRdffHE++9nPbv/OzTffnMsu\nuyxf+9rX8td//de577778oUvfCHLly/v9Z8zIWlBBQAAxsyeWjrb5OMf//j2ZPThhx/Od77znZx2\n2mk55phjcs899+TYY4/Nt771rZx++un52Mc+lgsvvDD77rtv9t1331xwwQV9jr4dJKgAAMCEs/fe\ne2fbtm3b32/evLmr5d1111350pe+lKVLl2b69Ok566yzti/zsssuyy233JLjjjsuF110kWfAdkEX\nXwAAYMI57LDD8thjj2XDhg157rnn8vnPfz5Jsv/+++epp54a8fKefPLJHHzwwZk+fXq+9a1v5Z57\n7tn+2UUXXZTbb789n/nMZ3LZZZclSU4//fT83d/9XTZv3pynn356+++ze1pQAQCACWfKlCm5+uqr\nM3/+/BxxxBE57rjjkiQLFy7Me97znu2DJA3Xeeedl2uvvTbHH398BgYGctppp23/7OCDD87xxx+f\nlStXZv78+UmSU089Ne94xzty0kkn5bDDDsuJJ56YAw88sLd/5ARUmqbpdwyZN29e46bhZNGNgyOH\nLV6oLAAAaK9Vq1bl+OOP73cYfff0009nv/32yzPPPJMzzzwz119/fd74xjf2O6wxt7P1X0q5t2ma\nPQ6VrAUVAABgDFxxxRVZuXJlNm/enMsvv3xSJKfdkqACAAB0bNiwIWefffbLpt95552ZOXPmiJZ1\n00039SqsSUOCCgAA0DFz5sysWLGi32FMWkbxBQAAoAoSVAAAAKogQQUAAKAKElQAAACqIEEFAAAm\njRtvvDHf//73t79/97vfnZUrVyZJZs2alSeeeGJMfmeiufHGG/Prv/7rPV+uUXwBAICx84XfTv7t\nG71d5k+dmLztj0c164033pgTTjghr371q5MkN9xwQy8j2+XvMDxaUAEAgAln7dq1OeGEE7a/v+aa\na3LCCSdk+fLlede73pWTTz45zz77bM4666wsX758WMv81Kc+lfnz5+fkk0/OlVdema1bt2br1q1Z\nuHBhTjjhhJx44on56Ec/mttuu+1lv7Mz9957b372Z382p5xySs4999ysX78+SXLWWWflt37rtzJ/\n/vy87nWvy1e/+tUkybPPPpvLLrssxx9/fC666KIsWLBge+z77bff9uXedtttWbhwYZLk8ccfz8UX\nX5xTTz01p556au6+++4kyYc+9KFcc8012+c54YQTsnbt2l3+nUmyePHivO51r8v8+fO3L6fXtKAC\nAABjZ5QtnWPhkksuyV133ZVrrrkm8+bNG9G8q1atys0335y77747U6ZMya/+6q/m05/+dObOnZtH\nH300DzzwQJLkRz/6UQ466KB84hOf2O3vvPDCC7nqqqty++2359BDD83NN9+c3/3d380nP/nJJMmW\nLVvyL//yL1myZEl+7/d+L1/60pfyZ3/2Z5k+fXpWrVqV+++/P2984xv3GPf73//+/MZv/EbOOOOM\nrFu3Lueee25WrVo14r/zrW99az74wQ/m3nvvzYEHHpi3vOUtecMb3jCiMhwOCSoAAMAe3Hnnnbn3\n3ntz6qmnJhlszXzVq16VCy64IGvWrMlVV12Vt7/97TnnnHOGtbzVq1fngQceyFvf+tYkydatW3P4\n4Ydv//wXfuEXkiSnnHLK9pbNr3zlK3nf+96XJDnppJNy0kkn7fF3vvSlL22/xzZJNm3alKeffnrE\nf+eyZcty1lln5dBDD02SXHrppfn2t789rL91JCSoAADAhLP33ntn27Zt299v3ry5q+U1TZPLL788\nf/RHf/Syz+6777588YtfzLXXXptbbrlleyvonpY3d+7cLF26dKef77PPPkmSvfbaK1u2bNnj8kop\n21/v+Ldu27Yt99xzT/bdd98XfX9X5bOrv/Nv//Zv9xhDL7gHFQAAmHAOO+ywPPbYY9mwYUOee+65\nfP7zn0+S7L///nnqqadGvLyzzz47t912Wx577LEkycaNG/PQQw/liSeeyLZt23LxxRfnwx/+cL7+\n9a8P63cGBgby+OOPb09QX3jhhXzzm9/cbQxnnnlmbrrppiTJAw88kPvvv/9Ff++qVauybdu2fPaz\nn90+/Zxzzsn/+B//Y/v7FStWJBkcsXgo1q9//et58MEHd/t3LliwIP/0T/+UDRs25IUXXsitt946\njFIbOS2oAADAhDNlypRcffXVmT9/fo444ogcd9xxSZKFCxfmPe95T6ZNm7bL1sudmTNnTj784Q/n\nnHPOybZt2zJlypT86Z/+aaZNm5ZFixZtb40canl86e9MmzbtRcubOnVqbrvttrzvfe/Lk08+mS1b\ntuQDH/hA5s6du8sY3vve92bRokU5/vjjc/zxx+eUU07Z/tkf//Ef5+d+7udy6KGHZt68edu78X78\n4x/Pr/3ar+Wkk07Kli1bcuaZZ+baa6/NxRdfnL/8y7/M3Llzs2DBgrzuda/b7d952mmn5UMf+lDe\n9KY35aCDDsrJJ5887LIbidI0zZgseCTmzZvXDHfkrIls0Y2DN1AvXqgsAABor1WrVuX444/vdxgT\n3llnnTWqAZ/G2s7Wfynl3qZp9hioLr4AAABUQRdfAACAjg0bNuTss89+2fQ777wzM2fOHNUyL7ro\nou33eA75yEc+knPPPXdUyxty1113dTV/jcYkQS2lnJfkY0n2SnJD0zT1PPwIAABgF2bOnLl9IKFe\n2XHQInav5118Syl7JfnTJG9LMifJfyylzOn17wAAADCxjEUL6vwk322aZk2SlFL+KsmFSVbudq6K\nfeSWC/KtZ9aP+e+sbjZnoOy75y8CAABMQGMxSNIRSR7e4f0jnWkvUkq5opSyvJSy/PHHHx+DMNpn\noOyb81/9M/0OAwAAoC/6NkhS0zTXJ7k+GXzMTL/iGI7f+g9/1+8QAAAAJryxaEF9NMlRO7w/sjMN\nAACgr2688cZ8//vf3/7+3e9+d1auHLwbcdasWXniiSfG5HcYnrFoQf1akmNLKbMzmJheluSdY/A7\nAABA5T7yLx/JtzZ+q6fLPG7Gcfmt+b81qnlvvPHGnHDCCXn1q1+dJLnhhht6Gdouf4fh6XkLatM0\nW5L8epIvJlmV5Jamab7Z698BAADYlbVr1+aEE07Y/v6aa67JCSeckOXLl+dd73pXTj755Dz77LM5\n66yzsnz58mEt81Of+lTmz5+fk08+OVdeeWW2bt2arVu3ZuHChTnhhBNy4okn5qMf/Whuu+22l/3O\nztx777352Z/92Zxyyik599xzs379+jz22GM55ZRTkiT33XdfSilZt25dkuS1r31tnnnmmSxcuDDv\nfe97c9ppp+WYY47JXXfdlf/8n/9zjj/++CxcuHD78t/73vdm3rx5mTt3bj74wQ+OsiTH15jcg9o0\nzZIkS8Zi2QAAQHuMtqVzLFxyySW56667cs0112TevHkjmnfVqlW5+eabc/fdd2fKlCn51V/91Xz6\n05/O3Llz8+ijj+aBBx5IkvzoRz/KQQcdlE984hO7/Z0XXnghV111VW6//fYceuihufnmm/O7v/u7\n+eQnP5nNmzdn06ZN+epXv5p58+blq1/9as4444y86lWvyvTp05MkP/zhD7N06dJ87nOfyzve8Y7c\nfffdueGGG3LqqadmxYoVOfnkk/OHf/iHmTFjRrZu3Zqzzz47999/f0466aTuCnGM9W2QJAAAgLa4\n8847c++99+bUU09Nkjz77LN51atelQsuuCBr1qzJVVddlbe//e0555xzhrW81atX54EHHshb3/rW\nJMnWrVtz+OGHJ0ne/OY35+67785XvvKV/M7v/E7uuOOONE2Tn/mZnzzx44ILLkgpJSeeeGIOO+yw\nnHjiiUmSuXPnZu3atTn55JNzyy235Prrr8+WLVuyfv36rFy5UoIKAAAw3vbee+9s27Zt+/vNmzd3\ntbymaXL55Zfnj/7oj1722X333ZcvfvGLufbaa3PLLbfkk5/85LCWN3fu3CxduvRln5155pn56le/\nmoceeigXXnhhPvKRj6SUkre//e3bv7PPPvskSV7xildsfz30fsuWLXnwwQdzzTXX5Gtf+1oOPvjg\nLFy4sOsyGA9jMYovAABAXx122GF57LHHsmHDhjz33HP5/Oc/nyTZf//989RTT414eWeffXZuu+22\nPPbYY0mSjRs35qGHHsoTTzyRbdu25eKLL86HP/zhfP3rXx/W7wwMDOTxxx/fnqC+8MIL+eY3B4fu\n+Zmf+Zl86lOfyrHHHptXvOIVmTFjRpYsWZIzzjhj2PFu2rQpr3zlK3PggQfmBz/4Qb7whS+M+G/u\nBy2oAADAhDNlypRcffXVmT9/fo444ogcd9xxSZKFCxfmPe95T6ZNm7bT1stdmTNnTj784Q/nnHPO\nybZt2zJlypT86Z/+aaZNm5ZFixZtb60damF96e9MmzbtRcubOnVqbrvttrzvfe/Lk08+mS1btuQD\nH/hA5s6dm1mzZqVpmpx55plJkjPOOCOPPPJIDj744GHH+/rXvz5veMMbctxxx+Woo47K6aefPux5\n+6k0TdPvGDJv3rxmuCNnAQAAdVu1alWOP/74fodBn+xs/ZdS7m2aZo8jU+niCwAAQBV08QUAAOjY\nsGFDzj777JdNv/POOzNz5sxRLfOiiy7Kgw8++KJpH/nIR3LuueeOankTmQQVAADouaZpUkrpdxgj\nNnPmzKxYsaKny/zsZz/b0+XVrNtbSHXxBQAAemrffffNhg0buk5WaJemabJhw4bsu+++o16GFlQA\nAKCnjjzyyDzyyCN5/PHH+x0K42zffffNkUceOer5JagAAEBPTZkyJbNnz+53GLSQLr4AAABUQYIK\nAABAFSSoAAAAVKHUMLJWKeXxJA/1YFGHJHmiB8uhd6yTOlkv9bFO6mOd1Mc6qY91UifrpT7WSfKa\npmkO3dOXqkhQe6WUsrxpmnn9joOfsE7qZL3Uxzqpj3VSH+ukPtZJnayX+lgnw6eLLwAAAFWQoAIA\nAFCFiZagXt/vAHgZ66RO1kt9rJP6WCf1sU7qY53UyXqpj3UyTBPqHlQAAADaa6K1oAIAANBSElQA\nAACq0JoEtZRyXilldSnlu6WU397J5wtLKY+XUlZ0/r17h88uL6V8p/Pv8vGNfOIaxjr56A7r49ul\nlB/t8NnWHT773PhGPnGVUj5ZSnmslPLALj4vpZSPd9bZ/aWUN+7wme1kDAxjnbyrsy6+UUr551LK\n63f4bG1n+opSyvLxi3piG8Y6OauU8uQO+6ird/hst/s9RmcY6+S/7rA+HugcQ2Z0PrOdjIFSylGl\nlC+XUlaWUr5ZSnn/Tr7jmDKOhrlOHFPG2TDXi+PKSDRNU/2/JHsl+V6SY5JMTXJfkjkv+c7CJJ/Y\nybwzkqzp/H9w5/XB/f6b2v5vOOvkJd+/Ksknd3j/dL//hon4L8mZSd6Y5IFdfH5+ki8kKUlOS7Ks\nM9120r918uahsk7ytqF10nm/Nskh/f4bJtq/YayTs5J8fifTR7Tf86936+Ql370gyT/u8N52Mjbr\n5PAkb+y83j/Jt3dy7uWYUt86cUypc704rozgX1taUOcn+W7TNGuapnk+yV8luXCY856b5B+aptnY\nNM0Pk/xDkvPGKM7JZKTr5D8m+cy4RDaJNU3zlSQbd/OVC5P8ZTPoniQHlVIOj+1kzOxpnTRN88+d\nMk+Se5IcOS6BTWLD2E52pZtjEbsxwnXieDIOmqZZ3zTN1zuvn0qyKskRL/maY8o4Gs46cUwZf8Pc\nVnbFcWUn2pKgHpHk4R3eP5Kdr/iLO90abiulHDXCeRmZYZdrKeU1SWYn+ccdJu9bSlleSrmnlPLz\nYxcmL7Gr9WY7qcOvZLA1YkiT5O9LKfeWUq7oU0yT1ZtKKfeVUr5QSpnbmWY76bNSyvQMJjp/vcNk\n28kYK6XMSvKGJMte8pFjSp/sZp3syDFlnO1hvTiuDNPe/Q6gh/4uyWeapnmulHJlkr9I8u/6HBOD\nLktyW9M0W3eY9pqmaR4tpRyT5B9LKd9omuZ7fYoP+q6U8pYMnkycscPkMzrbyauS/EMp5VudlibG\n1tczuI96upRyfpK/TXJsn2Ni0AVJ7m6aZsfWVtvJGCql7JfBCwIfaJpmU7/jYXjrxDFl/O1hvTiu\njEBbWlAfTXLUDu+P7EzbrmmaDU3TPNd5e0OSU4Y7L6MyknK9LC/pjtU0zaOd/9ckuSuDV5sYe7ta\nb7aTPiqlnJTB/daFTdNsGJq+w3byWJLPZrArEGOsaZpNTdM83Xm9JMmUUsohsZ3UYHfHE9tJj5VS\npmTwhPvTTdP8zU6+4pgyzoaxThxT+mBP68VxZWTakqB+LcmxpZTZpZSpGTxAvWjk1849D0PekcH+\n30nyxSTnlFIOLqUcnOSczjS6s8d1kiSllOMyOEDC0h2mHVxK2afz+pAkpydZOS5R87kkv9wZefG0\nJE82TbM+tpO+KaUcneRvkvxS0zTf3mH6K0sp+w+9zuA62ekIp/RWKeWnSiml83p+Bo+VGzLM/R5j\no5RyYJKfTXL7DtNsJ2Oksw38eZJVTdP89118zTFlHA1nnTimjL9hrhfHlRFoRRffpmm2lFJ+PYM7\nt70yOBrsN0spv59kedM0n0vyvlLKO5JsyeBACws7824spfxBBitAkvz+S7oGMQrDXCfJ4Ib2V00z\nOFRZx/FJriulbMvgBvrHTdNIUHuglPKZDI4Ud0gp5ZEkH0wyJUmaprk2yZIMjrr43STPJFnU+cx2\nMkaGsU6uTjIzyf/TOXZtaZpmXpLDkny2M23vJDc1TXPHuP8BE9Aw1sklSd5bStmS5Nkkl3X2YTvd\n7/XhT5hwhrFOkuSiJH/fNM2Pd5jVdjJ2Tk/yS0m+UUpZ0Zn2O0mOThxT+mQ468QxZfwNZ704roxA\neXHeAAAAAP3Rli6+AAAATHASVAAAAKogQQUAAKAKElQAAACqIEEFAACgCq14zAwA1KyUMjPJnZ23\nP5Vka5LHO++faZrmzX0JDABaxmNmAKCHSikfSvJ00zTX9DsWAGgbXXwBYAyVUp7u/H9WKeWfSim3\nl1LWlFL+uJTyrlLKv5RSvlFKeW3ne4eWUv66lPK1zr/T+/sXAMD4kaACwPh5fZL3JDk+yS8leV3T\nNPOT3JDkqs53Ppbko03TnJrk4s5nADApuAcVAMbP15qmWZ8kpZTvJfn7zvRvJHlL5/W/TzKnlDI0\nzwGllP2apnl6XCMFgD6QoALA+Hluh9fbdni/LT85Jr8iyWlN02wez8AAoAa6+AJAXf4+P+num1LK\nyX2MBQDGlQQVAOryviTzSin3l1JWZvCeVQCYFDxmBgAAgCpoQQUAAKAKElQAAACqIEEFAACgChJU\nAAAAqiBBBQAAoAoSVAAAAKogQQUAAKAK/z/FmzxqTCXYkQAAAABJRU5ErkJggg==\n",
"text/plain": "<matplotlib.figure.Figure at 0x7f76a343c950>"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "df = trace.data_frame.trace_event('sched_load_se')\ndf[df.pid == trace.getTaskByName('task_p60')[0]][['util', 'running']][2.5:3].plot(figsize=(16,8), drawstyle='steps-post');\nlogging.info(\"Task Utilization\")",
"execution_count": 13,
"outputs": [
{
"output_type": "stream",
"text": "03:13:23 INFO : Task Utilization\n",
"name": "stderr"
},
{
"output_type": "display_data",
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA6gAAAHjCAYAAAAuQTKuAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAH+BJREFUeJzt3X+wX3V95/HXm/wg/MZCNiBRg61b\nCc2Iehfjxnas9IdYKsxsWn9gi4wOuqMtXZe1dKejdmeccTvMit3d0SoqOP5eLIYiurKIu2sXqYlG\ngcSOyAZJDBKzCvJLQD77Rw4YMCQ3ufd7v5977+Mxk7nne77n3Pv+Zs7c8OSc7/lWay0AAAAwbgeN\newAAAABIBCoAAACdEKgAAAB0QaACAADQBYEKAABAFwQqAAAAXRCoAAAAdEGgAgAA0AWBCgAAQBcW\njnuAJDn22GPbihUrxj0GAAAAI7Bhw4YfttaW7mu7LgJ1xYoVWb9+/bjHAAAAYASq6rbJbOcSXwAA\nALogUAEAAOiCQAUAAKALXbwHdU8eeuihbN26NQ888MC4R+nakiVLsnz58ixatGjcowAAAExJt4G6\ndevWHHHEEVmxYkWqatzjdKm1lp07d2br1q058cQTxz0OAADAlHR7ie8DDzyQY445RpzuRVXlmGOO\ncZYZAACYE7oN1CTidBL8HQEAAHNF14EKAADA/CFQD8Cll16a73//+489fv3rX59NmzYlSVasWJEf\n/vCH4xoNAABg1hKoB+CJgXrJJZdk5cqVY5wIAABg9uv2Lr67+6u/vzmbvn/3tH7PlU89Mm///ZP3\nus2WLVtyxhln5KabbkqSXHTRRbn00kuzZcuWnH322TnkkENy/fXX5/TTT89FF12UiYmJaZ0RAABg\nPnEGdT+tXbs2ExMT+djHPpaNGzfmkEMOGfdIAAAAc8KsOIO6rzOdAAAAzH7OoO7FwoUL88gjjzz2\n2OeNAgAAjI5A3Ytly5blzjvvzM6dO/PTn/40V111VZLkiCOOyE9+8pMxTwcAADC3zIpLfMdl0aJF\nedvb3pZTTz01J5xwQp797GcnSV772tfmjW9842M3SQIAAGDqqrU27hkyMTHR1q9f/7h1mzdvzkkn\nnTSmiWYXf1cAAEDPqmpDa22fH3viDCrAiHz8hu9l3cZt4x4DABijM085Ia9+wdPHPcas4T2oACOy\nbuO2bNo+vZ/hDADMHpu23+1/Vu8nZ1ABRmjl8UfmU2944bjHAADG4BV/6341+8sZVAAAALogUAEA\nAOiCQAUAAKALAnVMXv/612fTpk3jHgMAAKAbbpI0Sa21tNZy0EHT0/SXXHLJtHwfoF+n3Xd11tx/\nXfLho8Y9CgAwBm/bedeuhVH/t8CqtcnEuaP9GTNkdgTq5y9M7rhxer/ncauS09+11022bNmS3/3d\n380LXvCCbNiwIZs2bUprLUly+eWX56qrrsqll16a1772tTnyyCOzfv363HHHHfnrv/7rrF27Nl/+\n8pfzjne8I8cee2xuuummPP/5z89HP/rRVFVe/OIX56KLLsrExEQOP/zwnH/++bnqqqtyyCGHZN26\ndVm2bFm++93v5uyzz869996bM888MxdffHHuueee6f17AEZmzf3XZcVDtyZ57rhHAQDmqkc7SaDO\nD9/5zndy2WWXZfXq1Tn88MOfdLvt27fnK1/5Sr797W/n5S9/edauXZsk+cY3vpGbb745T33qU7Nm\nzZr8wz/8Q170ohc9bt977703q1evzjvf+c689a1vzQc+8IH85V/+Zc4///ycf/75edWrXpX3ve99\nI32dwGhsWfTMnHzu58Y9BgAwBv9h+JiZT507wo+c+/Dvje57j8HsCNR9nOkcpWc84xlZvXr1Prc7\n66yzctBBB2XlypX5wQ9+8Nj6U089NcuXL0+SnHLKKdmyZcsvBOrixYtzxhlnJEme//zn55prrkmS\nXH/99fnsZz+bJHn1q1+dCy64YFpeEwAAQI/cJGkfDjvssMeWq+qx5QceeOBx2x188MGPLT96GfAT\n1y9YsCAPP/zwL/yMRYsWPfa9n2wbAACAuU6g7odly5Zl8+bNeeSRR3LFFVeM/OetXr06n/nMZ5Ik\nn/zkJ0f+8wAAAMZpdlzi24l3vetdOeOMM7J06dJMTEyM/IZFF198cV7zmtfkne98Z1760pfmqKPc\nCZS56eM3fC/rNm4b9xjT7oIHf5ZDFy8Y9xgAALNG7X456rhMTEy09evXP27d5s2bc9JJJ41poj7c\nd999OeSQQ1JV+eQnP5lPfOITWbdu3S9s5++K2e4Vf3t9Nm2/OyuPP3Lco0yrt+38dzn28IOz7E+v\nHfcoAMAYvOLRmyS9YQZuktT5TRmrakNrbWJf2zmD2rENGzbkzW9+c1prOfroo/OhD31o3CPByKw8\n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\ngg==\n",
"text/plain": "<matplotlib.figure.Figure at 0x7f76a34d3b10>"
},
"metadata": {}
}
]
},
{
"metadata": {
"collapsed": true,
"trusted": true
},
"cell_type": "code",
"source": "#!kernelshark $trace.ftrace.trace_path",
"execution_count": 14,
"outputs": []
},
{
"metadata": {},
"cell_type": "markdown",
"source": "# CFS Task Preempted by RT Task"
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "rtapp = RTA(target, 'preempted', calibration=te.calibration())\nrtapp.conf(\n kind='profile',\n params={\n 'task_p60': Periodic(\n period_ms=100, # period\n duty_cycle_pct=60, # duty cycle\n duration_s=2, # duration \n cpus=str(big_cpu) # pinned on last big CPU\n ).get(),\n 'task_p20': Periodic(\n period_ms=10, # period\n duty_cycle_pct=20, # duty cycle\n duration_s=2, # duration \n delay_s=0.020, # delay (20ms)\n cpus=str(big_cpu), # pinned on last big CPU,\n sched={\n 'policy': 'FIFO',\n 'prio': 10,\n }\n ).get(),\n },\n run_dir=target.working_directory\n)",
"execution_count": 15,
"outputs": [
{
"output_type": "stream",
"text": "03:13:23 INFO : Setup new workload preempted\n03:13:23 INFO : Workload duration defined by longest task\n03:13:23 INFO : Default policy: SCHED_OTHER\n03:13:23 INFO : ------------------------\n03:13:23 INFO : task [task_p20], sched: {'policy': 'FIFO', 'prio': 10}\n03:13:23 INFO : | start delay: 0.020000 [s]\n03:13:23 INFO : | loops count: 1\n03:13:23 INFO : + phase_000001: duration 2.000000 [s] (200 loops)\n03:13:23 INFO : | period 10000 [us], duty_cycle 20 %\n03:13:23 INFO : | run_time 2000 [us], sleep_time 8000 [us]\n03:13:23 INFO : | CPUs affinity: 2\n03:13:23 INFO : ------------------------\n03:13:23 INFO : task [task_p60], sched: using default policy\n03:13:23 INFO : | loops count: 1\n03:13:23 INFO : + phase_000001: duration 2.000000 [s] (20 loops)\n03:13:23 INFO : | period 100000 [us], duty_cycle 60 %\n03:13:23 INFO : | run_time 60000 [us], sleep_time 40000 [us]\n03:13:23 INFO : | CPUs affinity: 2\n",
"name": "stderr"
},
{
"output_type": "execute_result",
"execution_count": 15,
"data": {
"text/plain": "'preempted_00'"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "tracefile, trace = run(rtapp, use_util_est=USE_UTIL_EST)\n# tracefile, trace = run(None, use_util_est=USE_UTIL_EST, trace_name=test_id)",
"execution_count": 16,
"outputs": [
{
"output_type": "stream",
"text": "03:13:24 INFO : #### Set [schedutil] CPUFreq governor\n03:13:30 INFO : #### Setup FTrace\n03:13:35 INFO : #### Start RTApp execution\n03:13:35 INFO : Workload execution START:\n03:13:35 INFO : /root/devlib-target/bin/rt-app /root/devlib-target/preempted_00.json 2>&1\n03:13:38 INFO : #### Stop FTrace\n03:13:39 INFO : #### Save FTrace: /data/Code/lisa/results/20180605_RT-PELT_JunoR2/trace_preempted.dat\n03:13:52 INFO : #### Save platform description: /data/Code/lisa/results/20180605_RT-PELT_JunoR2/platform.json\n03:13:52 INFO : #### Parse trace\n03:13:53 INFO : Platform clusters verified to be Frequency coherent\n",
"name": "stderr"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "df = trace.data_frame.trace_event('sched_util_est_task')\ndf[df.pid == trace.getTaskByName('task_p60')[0]][['util_avg', 'util_est_enqueued', 'util_est_ewma']].plot(figsize=(16,8), drawstyle='steps-post');\nlogging.info(\"Task Utilization\")",
"execution_count": 17,
"outputs": [
{
"output_type": "stream",
"text": "03:13:53 INFO : Task Utilization\n",
"name": "stderr"
},
{
"output_type": "display_data",
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA6gAAAHjCAYAAAAuQTKuAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAIABJREFUeJzs3Xd4W+XZBvD7aHjvvVeWs/eehABJ\nGCl7F8poC6UtlBYKbSm0fHSXQhmF0rJHKaOMsDIgIXs7iZ04sR3vvW3J2uf7Q5ZHJNlOcPS+cu7f\ndXHZ1jmOH2RZ5zzveB5FVVUQERERERERiaYRHQARERERERERwASViIiIiIiIJMEElYiIiIiIiKTA\nBJWIiIiIiIikwASViIiIiIiIpMAElYiIiIiIiKTABJWIiIiIiIikwASViIiIiIiIpMAElYiIiIiI\niKSgEx0AAMTFxalZWVmiwyAiIiIiIqIzYO/evY2qqsYPdp4UCWpWVhb27NkjOgwiIiIiIiI6AxRF\nKRvKeVziS0RERERERFJggkpERERERERSYIJKREREREREUmCCSkRERERERFJggkpERERERERSYIJK\nREREREREUmCCSkRERERERFJggkpERERERERSYIJKREREREREUmCCSkRERERERFJggkpERERERERS\nYIJKREREREREUmCCSkRERERERFJggkpERERERERSYIJKREREREREUmCCSkRERERERFLQiQ6ACABg\nMQB2q/fjgRGAhuMpREREREQjGRNUEq98B/DiKkB1DHzetOt9E48nGfOBGTeK+/lERERERGcBJqgk\nXnu1MzldeDcQluh+/MDrgLEZOLHZ97EBgLEJOPE1E1QiIiIiojOMCSrJY+q1QEKu++Pz7/R9LH29\nfwdQukVsDEREREREZwFu6iMiIiIiIiIpMEElIiIiIiIiKTBBJSIiIiIiIikwQSUiIiIiIiIpsEgS\nEREREdFgzB3A138BLEbRkRC5i84SX1h0mDBBJSIiov66WoG6w96Ph8YD8eN8Fw+RDMp3AlseBwLC\nAY1WdDREvWwm538zbwYCQkRH840xQSUiIqL+PvkZcOjtgc+JzgICw30Sjht9CHDZP4HoTDE/n85S\nqvPDt/8HpM0SGwpRX1ufANY9hJ7XqJ9jgko0FKY2YNOfvB+feCkQkey7ePxFRy3w0kWApVPe0eao\n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\nrkJggg==\n",
"text/plain": "<matplotlib.figure.Figure at 0x7f76a37262d0>"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "df = trace.data_frame.trace_event('sched_load_se')\ndf[df.pid == trace.getTaskByName('task_p60')[0]][['util', 'running']][1.5:1.8].plot(figsize=(16,8), drawstyle='steps-post');\nlogging.info(\"Task Utilization\")",
"execution_count": 18,
"outputs": [
{
"output_type": "stream",
"text": "03:13:54 INFO : Task Utilization\n",
"name": "stderr"
},
{
"output_type": "display_data",
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA6gAAAHjCAYAAAAuQTKuAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAIABJREFUeJzt3X+UnXddL/r3p21KWyCApTYhJaQ9\nF3+EM5ojOU0R9BRREcQTXTfXYrgKEU7xCsrS61kU/wAPLNbiuKqAy7WQwiGVqwisKBZbRJAr51y5\npZpiYNpBDqWEkpCUtnoJpbSU8r1/zJ52ksyPPcme2c/e+/VaK2v2fp5nz3ynPDzzvJ/v9/v5Vmst\nAAAAMGxnDLsBAAAAkAioAAAAdISACgAAQCcIqAAAAHSCgAoAAEAnCKgAAAB0goAKAABAJwioAAAA\ndIKACgAAQCecNewGJMkTn/jEtmXLlmE3AwAAgFVw8803391au2C54zoRULds2ZL9+/cPuxkAAACs\ngqr6Uj/HGeILAABAJwioAAAAdIKACgAAQCd0Yg7qQh588MEcOnQo999//7Cb0mnnnHNOLrrooqxb\nt27YTQEAADgtnQ2ohw4dymMf+9hs2bIlVTXs5nRSay333HNPDh06lIsvvnjYzQEAADgtnR3ie//9\n9+f8888XTpdQVTn//PP1MgMAAGOhswE1iXDaB/+NAACAcdHpgAoAAMDkEFBPwbXXXpuvfOUrD79/\n2ctelpmZmSTJli1bcvfddw+raQAAACNLQD0FJwbUd77zndm6desQWwQAADD6OlvFd77/8le3ZuYr\nxwb6Pbc+aX1e9zNPW/KYgwcP5gUveEFuueWWJMnVV1+da6+9NgcPHsyLXvSinHvuubnxxhvzvOc9\nL1dffXW2b98+0DYCAABMEj2oK7Rr165s3749f/qnf5oDBw7k3HPPHXaTAAAAxsJI9KAu19MJAADA\n6NODuoSzzjor3/nOdx5+b71RAACA1SOgLuHCCy/MV7/61dxzzz154IEHcv311ydJHvvYx+brX//6\nkFsHAAAwXkZiiO+wrFu3Lq997Wtz6aWXZtOmTfm+7/u+JMlLXvKS/Mqv/MrDRZIAAAA4fdVaG3Yb\nsn379rZ///7jtn32s5/N93//9w+pRaPFfysAAKDLqurm1tqyy57oQQUARtP+vcn0vmG3Ym1M7Uq2\n7xl2KwBWnTmoAMBomt6XHJ0editW39HpyQniwMTTgwoAjK4NU8meG4bditW196eH3QKANaMHFQAA\ngE7QgwoAAEyWcZvDvmEqed6bht2KgRBQgbUzbn8MVkKBEwDojrk57Bumht0STiCgDsnLXvay/OZv\n/ma2bt067KbA2pnUPwZzRVwEVADojkmYwz6CBNQ+tdbSWssZZwxm2u473/nOgXwfGDmT+MdAgRMA\ngL6MRkD966sGX0a+j3HaBw8ezHOf+9zs2LEjN998c2ZmZtJaS5Ls27cv119/fa699tq85CUvyfr1\n67N///4cPXo0v/u7v5tdu3bl4x//eH7nd34nT3ziE3PLLbfk6U9/ev7kT/4kVZXLL788V199dbZv\n357HPOYxedWrXpXrr78+5557bq677rpceOGF+cIXvpAXvehF+cY3vpGdO3fmLW95S+69997B/ncA\nAADoCFV8l/H5z38+v/qrv5pbb701j370oxc97siRI/n7v//7XH/99bnqqqse3v5P//RPectb3pKZ\nmZncfvvt+cQnPnHSZ7/xjW/ksssuy6c//en86I/+aN7xjnckSV71qlflVa96Vaanp3PRRRcN/pcD\nAADokNHoQR1iRaqnPOUpueyyy5Y97md/9mdzxhlnZOvWrbnzzjsf3n7ppZc+HC63bduWgwcP5lnP\netZxnz377LPzghe8IEny9Kc/PR/96EeTJDfeeGP+8i//Mkmye/fu/NZv/dZAficAAIAu0oO6jPm9\nplX18Ov777//uOMe9ahHPfx6bhjwidvPPPPMfPvb3z7pZ6xbt+7h773YMQAAAONOQF2BCy+8MJ/9\n7Gfzne98Jx/4wAdW/edddtll+fM///MkyXvf+95V/3kAAADDJKCuwJve9Ka84AUvyA//8A9n48aN\nq/7z3vKWt+T3f//38wM/8AO57bbb8rjHPW7VfyYAAMCwjMYc1CHZsmVLbrnlloff79q1K7t27Trp\nuGuvvfa493OVdi+//PJcfvnlD2//wz/8w4dff/zjHz/p+BN/xqZNm/LJT34yVZX3vve9+dznPnc6\nvw6svf17Z9c+nTOJa6ACANA3AbXDbr755rzyla9May2Pf/zj8653vWvYTYKVmd53fCjdMJVMnfyQ\nBwBg4E58UD6fh+adJaB22I/8yI/k05/+9LCbAadnw1Sy54ZhtwIAmDQnPiifz0Pzzup0QG2tHVc5\n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\nlUneNqjGAgAAML7OOo3P7kxyee/1Hyf5eJJX97a/u7XWknyyqh5fVRtba0dOp6EAXTZz5FiuePuN\ni+7bunH9GrcIAGD09NuD2pJ8pKpurqore9sunBc6jya5sPd6U5Ivz/vsod6241TVlVW1v6r233XX\nXafQdIBu2Llt05IBdOvG9dm57aTLIAAAJ+i3B/VZrbXDVfXdST5aVf88f2drrVVVW8kPbq1dk+Sa\nJNm+ffuKPgvQJbt3bM7uHZuH3QwAgJHXV0BtrR3uff1qVX0gyaVJ7pwbultVG5N8tXf44SRPnvfx\ni3rbAFjGUkOFFzrW0GEAYJwsO8S3qh5dVY+de53kJ5PckuSDSV7cO+zFSa7rvf5gkl/qVfO9LMnX\nzD8FWN5yQ4VPZOgwADBu+ulBvTDJB6pq7vj3tNY+XFX/mOT9VfXSJF9K8vO94z+U5PlJbktyX5I9\nA281wBgyVBgAmHTLBtTW2u1JfnCB7fckec4C21uSVwykdQAAAEyMlayDCgAAAKtGQAUAAKATBFQA\nAAA6QUAFAACgEwRUAAAAOkFABQAAoBMEVAAAADpBQAUAAKATBFQAAAA6QUAFAACgEwRUAAAAOkFA\nBQAAoBMEVAAAADpBQAUAAKATBFQAAAA6QUAFAACgEwRUAAAAOqFaa8NuQ6rqriRfGnY7FvHEJHcP\nuxF0mnOEpTg/WI5zhKU4P1iOc4SldOn8eEpr7YLlDupEQO2yqtrfWts+7HbQXc4RluL8YDnOEZbi\n/GA5zhGWMornhyG+AAAAdIKACgAAQCcIqMu7ZtgNoPOcIyzF+cFynCMsxfnBcpwjLGXkzg9zUAEA\nAOgEPagAAAB0goAKAABAJ0xsQK2qd1XVV6vqlkX2X15VX6uqA71/r52376eq6nNVdVtVXbV2rWYt\nneY5crCqpnvb969dq1kry50fvWMu750Dt1bVf5+33TVkApzmOeIaMub6+Bvzn+f9fbmlqh6qqu/q\n7XMNmQCneY64hoy5Ps6Px1XVX1XVp3t/Y/bM2/fiqvp879+L167V/ZnYOahV9aNJ7k3y7tbav11g\n/+VJfqu19oITtp+Z5H8m+Ykkh5L8Y5JfaK3NrHqjWVOneo709h1Msr211pWFkRmwPs6Pxyf5f5P8\nVGvtjqr67tbaV11DJsepniO9fQfjGjLWljs/Tjj2Z5L8Rmvtx1xDJsepniO99wfjGjLW+vgb89tJ\nHtdae3VVXZDkc0k2JHlMkv1JtidpSW5O8vTW2r+uWeOXMbE9qK21/5HkX07ho5cmua21dntr7VtJ\n3ptk50AbRyecxjnCBOjj/Nid5C9aa3f0jv9qb7tryIQ4jXOECbDCvzG/kOTPeq9dQybEaZwjTIA+\nzo+W5LFVVZkNpf+S5NtJnpvko621f+mF0o8m+anVbu9KTGxA7dMzet3if11VT+tt25Tky/OOOdTb\nxmRa6BxJZi8KH6mqm6vqymE1jqH6niRPqKqP986DX+ptdw1hzmLnSOIaQk9VnZfZm8c/721yDeE4\nC5wjiWsIyR8m+f4kX0kyneRVrbXvZASuIWcNuwEd9qkkT2mt3VtVz0/yl0meOuQ20S1LnSPPaq0d\nrqrvTvLRqvrn3pMuJsdZSZ6e5DlJzk1yY1V9crhNomMWPEdaa/8zriE84meSfKK1ZkQPi1noHHEN\n4blJDiT5sST/JrPnwf8z3Cb1Rw/qIlprx1pr9/ZefyjJuqp6YpLDSZ4879CLetuYMEucI2mtHe59\n/WqSD2R2SBaT5VCSv2mtfaM3B+h/JPnBuIbwiMXOEdcQ5nthjh+66RrCiU48R1xDSJI9mZ1G0lpr\ntyX5YpLvywhcQwTURVTVht6Y7VTVpZn9b3VPZosRPLWqLq6qszN7Ufjg8FrKsCx2jlTVo6vqsb3t\nj07yk0kWreLJ2LouybOq6qze8KsdST4b1xAeseA54hrCnKp6XJL/kNlzZY5rCA9b6BxxDaHnjsyO\n0ElVXZjke5PcnuRvkvxkVT2hqp6Q2fPjb4bWygVM7BDfqvqzJJcneWJVHUryuiTrkqS19kdJdiX5\nP6rq20m+meSFbbbk8ber6pWZ/R/yzCTvaq3dOoRfgVV2qudI7yLwgV52PSvJe1prHx7Cr8AqWu78\naK19tqo+nOQzSb6T5J2ttVt6n3UNmQCneo5U1SVxDRl7ffyNSZKfS/KR1to35j7XWnMfMiFO9RxJ\n4j5kAvRxfrwhybVVNZ2kkrx6rqpzVb0hsw+7kuT1XZtCMLHLzAAAANAthvgCAADQCQIqAAAAnSCg\nAgAA0AkCKgAAAJ0goAIAANAJE7vMDAAMSlWdn+RjvbcbkjyU5K7e+/taaz88lIYBwIixzAwADFBV\n/U6Se1trVw+7LQAwagzxBYBVVFX39r5eXlX/vaquq6rbq+pNVfWiqvqHqpquqn/TO+6CqvrzqvrH\n3r9nDvc3AIC1I6ACwNr5wSS/kuT7k/xiku9prV2a5J1Jfq13zFuTvLm19u+T/K+9fQAwEcxBBYC1\n84+ttSNJUlVfSPKR3vbpJM/uvf7xJFurau4z66vqMa21e9e0pQAwBAIqAKydB+a9/s6899/JI3+T\nz0hyWWvt/rVsGAB0gSG+ANAtH8kjw31TVduG2BYAWFMCKgB0y68n2V5Vn6mqmczOWQWAiWCZGQAA\nADpBDyoAAACdIKACAADQCQIqAAAAnSCgAgAA0AkCKgAAAJ0goAIAANAJAioAAACd8P8DVsaZf/NV\nVCkAAAAASUVORK5CYII=\n",
"text/plain": "<matplotlib.figure.Figure at 0x7f76a36eddd0>"
},
"metadata": {}
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "# Bigger RT task preemption"
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "rtapp = RTA(target, 'preempted_big', calibration=te.calibration())\nrtapp.conf(\n kind='profile',\n params={\n 'task_p60': Periodic(\n period_ms=100, # period\n duty_cycle_pct=60, # duty cycle\n duration_s=2, # duration \n cpus=str(big_cpu) # pinned on last big CPU\n ).get(),\n 'task_p20': Periodic(\n period_ms=10, # period\n duty_cycle_pct=80, # duty cycle\n duration_s=2, # duration \n delay_s=0.020, # delay (20ms)\n cpus=str(big_cpu), # pinned on last big CPU,\n sched={\n 'policy': 'FIFO',\n 'prio': 10,\n }\n ).get(),\n },\n run_dir=target.working_directory\n)",
"execution_count": 19,
"outputs": [
{
"output_type": "stream",
"text": "03:13:54 INFO : Setup new workload preempted_big\n03:13:54 INFO : Workload duration defined by longest task\n03:13:54 INFO : Default policy: SCHED_OTHER\n03:13:54 INFO : ------------------------\n03:13:54 INFO : task [task_p20], sched: {'policy': 'FIFO', 'prio': 10}\n03:13:54 INFO : | start delay: 0.020000 [s]\n03:13:54 INFO : | loops count: 1\n03:13:54 INFO : + phase_000001: duration 2.000000 [s] (200 loops)\n03:13:54 INFO : | period 10000 [us], duty_cycle 80 %\n03:13:54 INFO : | run_time 8000 [us], sleep_time 2000 [us]\n03:13:54 INFO : | CPUs affinity: 2\n03:13:54 INFO : ------------------------\n03:13:54 INFO : task [task_p60], sched: using default policy\n03:13:54 INFO : | loops count: 1\n03:13:54 INFO : + phase_000001: duration 2.000000 [s] (20 loops)\n03:13:54 INFO : | period 100000 [us], duty_cycle 60 %\n03:13:54 INFO : | run_time 60000 [us], sleep_time 40000 [us]\n03:13:54 INFO : | CPUs affinity: 2\n",
"name": "stderr"
},
{
"output_type": "execute_result",
"execution_count": 19,
"data": {
"text/plain": "'preempted_big_00'"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "tracefile, trace = run(rtapp, use_util_est=USE_UTIL_EST)\n# tracefile, trace = run(None, use_util_est=USE_UTIL_EST, trace_name=test_id)",
"execution_count": 20,
"outputs": [
{
"output_type": "stream",
"text": "03:13:54 INFO : #### Set [schedutil] CPUFreq governor\n03:14:01 INFO : #### Setup FTrace\n03:14:05 INFO : #### Start RTApp execution\n03:14:05 INFO : Workload execution START:\n03:14:05 INFO : /root/devlib-target/bin/rt-app /root/devlib-target/preempted_big_00.json 2>&1\n03:14:10 INFO : #### Stop FTrace\n03:14:11 INFO : #### Save FTrace: /data/Code/lisa/results/20180605_RT-PELT_JunoR2/trace_preempted_big.dat\n03:14:14 INFO : #### Save platform description: /data/Code/lisa/results/20180605_RT-PELT_JunoR2/platform.json\n03:14:14 INFO : #### Parse trace\n03:14:16 INFO : Platform clusters verified to be Frequency coherent\n",
"name": "stderr"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "df = trace.data_frame.trace_event('sched_util_est_task')\ndf[df.pid == trace.getTaskByName('task_p60')[0]][['util_avg', 'util_est_enqueued', 'util_est_ewma']].plot(figsize=(16,8), drawstyle='steps-post');\nlogging.info(\"Task Utilization\")",
"execution_count": 21,
"outputs": [
{
"output_type": "stream",
"text": "03:14:16 INFO : Task Utilization\n",
"name": "stderr"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\nSY9vAAAAAElFTkSuQmCC\n",
"text/plain": "<matplotlib.figure.Figure at 0x7f76a356acd0>"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "df = trace.data_frame.trace_event('sched_load_se')\ndf[df.pid == trace.getTaskByName('task_p60')[0]][['util', 'running']][1.5:1.8].plot(figsize=(16,8), drawstyle='steps-post');\nlogging.info(\"Task Utilization\")",
"execution_count": 22,
"outputs": [
{
"output_type": "stream",
"text": "03:14:16 INFO : Task Utilization\n",
"name": "stderr"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\nqAAAAHRBoAIAANAFgQoAAEAXBCoAAABdEKgAAAB0QaACAADQBYEKAABAFwQqAAAAXVgz7QEAAAD0\n7mtf+1r27t2bxx57bNpD6dq6deuyadOmrF279qieL1ABAAAWsHfv3px88snZvHlzqmraw+lSay37\n9+/P3r17c8455xzV93CKLwAAwAIee+yxnH766eL0aVRVTj/99GM6yixQAQAAFkGcLuxY/40EKgAA\nAF0QqAAAACvYLbfcks985jNP3r/mmmuyc+fOJMnmzZvzuc99blpDO2ICFQAAYAU7NFBvvvnmbNmy\nZYojOno+xRcAAOAI/NIf3Jedn/nSkn7PLd96Sn7x5d/9tPPs2bMnl156ae69994kyY033phbbrkl\ne/bsyZVXXpkTTzwxd955Zy655JLceOONmZmZWdIxToIjqAAAACvUFVdckZmZmbzrXe/K3XffnRNP\nPHHaQzomjqACAAAcgYWOdHL0HEEFAABYAdasWZMnnnjiyfvH8vdGeyVQAQAAVoANGzbk4Ycfzv79\n+/PVr341t99+e5Lk5JNPzpe//OUpj25pOMUXAABgBVi7dm3e+MY35vzzz8/GjRvz3Oc+N0nyqle9\nKq95zWue/JCklaxaa9MeQ2ZmZtrs7Oy0hwEAADCvXbt25dxzz532MFaE+f6tqmp7a23BjxV2ii8A\nAABdEKgAAAB0QaACAADQBYEKAABAFwQqAAAAXRCoAAAAdEGgAgAArHLXXHNNdu7cOe1hZM20BwAA\nAMCRaa2ltZbjjluaY44333zzknyfYyVQAQAAjsQfXZ88tGNpv+eZz0suueFpZ9mzZ09e8pKX5IIL\nLsj27duzc+fOtNaSJLfddltuv/323HLLLXnVq16VU045JbOzs3nooYfyq7/6q7niiivyoQ99KG96\n05tyxhln5N577815552Xd77znamqXHTRRbnxxhszMzOTZz7zmbnuuuty++2358QTT8y2bduyYcOG\nfOITn8iVV16ZRx99NJdddlluuummPPLII0v6z+AUXwAAgBXi4x//eH76p3869913X0466aTDzvfg\ngw/mwx/+cG6//fZcf/31T07/6Ec/mptuuik7d+7M/fffn4985CPf8NxHH300W7duzT333JMXvehF\n+c3f/M0kyXXXXZfrrrsuO3bsyKZNm5Z+4eIIKgAAwJFZ4Ejncjr77LOzdevWBee7/PLLc9xxx2XL\n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\nXfj/6woQLdOEeqEAAAAASUVORK5CYII=\n",
"text/plain": "<matplotlib.figure.Figure at 0x7f76a369d9d0>"
},
"metadata": {}
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "# One small task"
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "rtapp = RTA(target, 'one_small', calibration=te.calibration())\nrtapp.conf(\n kind='profile',\n params={\n 'task_p40_1': Periodic(\n period_ms=10, # period\n duty_cycle_pct=10, # duty cycle\n duration_s=2, # duration \n cpus=str(big_cpu) # pinned on last big CPU\n ).get(),\n },\n run_dir=target.working_directory\n)",
"execution_count": 56,
"outputs": [
{
"output_type": "stream",
"text": "03:20:13 INFO : Setup new workload one_small\n03:20:13 INFO : Workload duration defined by longest task\n03:20:13 INFO : Default policy: SCHED_OTHER\n03:20:13 INFO : ------------------------\n03:20:13 INFO : task [task_p40_1], sched: using default policy\n03:20:13 INFO : | loops count: 1\n03:20:13 INFO : + phase_000001: duration 2.000000 [s] (200 loops)\n03:20:13 INFO : | period 10000 [us], duty_cycle 10 %\n03:20:13 INFO : | run_time 1000 [us], sleep_time 9000 [us]\n03:20:13 INFO : | CPUs affinity: 2\n",
"name": "stderr"
},
{
"output_type": "execute_result",
"execution_count": 56,
"data": {
"text/plain": "'one_small_00'"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "tracefile, trace = run(rtapp, use_util_est=USE_UTIL_EST)\n# tracefile, trace = run(None, use_util_est=USE_UTIL_EST, trace_name=test_id)",
"execution_count": 57,
"outputs": [
{
"output_type": "stream",
"text": "03:20:13 INFO : #### Set [schedutil] CPUFreq governor\n03:20:20 INFO : #### Setup FTrace\n03:20:24 INFO : #### Start RTApp execution\n03:20:24 INFO : Workload execution START:\n03:20:24 INFO : /root/devlib-target/bin/rt-app /root/devlib-target/one_small_00.json 2>&1\n03:20:27 INFO : #### Stop FTrace\n03:20:27 INFO : #### Save FTrace: /data/Code/lisa/results/20180605_RT-PELT_JunoR2/trace_one_small.dat\n03:20:32 INFO : #### Save platform description: /data/Code/lisa/results/20180605_RT-PELT_JunoR2/platform.json\n03:20:32 INFO : #### Parse trace\n03:20:33 INFO : Platform clusters verified to be Frequency coherent\n",
"name": "stderr"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "df = trace.data_frame.trace_event('sched_util_est_task')\ndf[df.pid == trace.getTaskByName('task_p40_1')[0]][['util_avg', 'util_est_enqueued', 'util_est_ewma']].plot(figsize=(16,8), drawstyle='steps-post');\nlogging.info(\"Task Utilization\")",
"execution_count": 58,
"outputs": [
{
"output_type": "stream",
"text": "03:20:33 INFO : Task Utilization\n",
"name": "stderr"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\nrEvA5w4AAAAASUVORK5CYII=\n",
"text/plain": "<matplotlib.figure.Figure at 0x7f76a35f2450>"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "df[df.pid == trace.getTaskByName('task_p40_1')[0]][1:].describe().T",
"execution_count": 59,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 59,
"data": {
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>count</th>\n <th>mean</th>\n <th>std</th>\n <th>min</th>\n <th>25%</th>\n <th>50%</th>\n <th>75%</th>\n <th>max</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>__cpu</th>\n <td>504.0</td>\n <td>2.000000</td>\n <td>0.000000</td>\n <td>2.0</td>\n <td>2.0</td>\n <td>2.0</td>\n <td>2.0</td>\n <td>2.0</td>\n </tr>\n <tr>\n <th>__line</th>\n <td>504.0</td>\n <td>8302.365079</td>\n <td>1042.566510</td>\n <td>6520.0</td>\n <td>7380.5</td>\n <td>8313.5</td>\n <td>9181.5</td>\n <td>10191.0</td>\n </tr>\n <tr>\n <th>__pid</th>\n <td>504.0</td>\n <td>1022.809524</td>\n <td>1327.365898</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>2742.0</td>\n <td>2742.0</td>\n </tr>\n <tr>\n <th>cpu</th>\n <td>504.0</td>\n <td>2.000000</td>\n <td>0.000000</td>\n <td>2.0</td>\n <td>2.0</td>\n <td>2.0</td>\n <td>2.0</td>\n <td>2.0</td>\n </tr>\n <tr>\n <th>pid</th>\n <td>504.0</td>\n <td>2742.000000</td>\n <td>0.000000</td>\n <td>2742.0</td>\n <td>2742.0</td>\n <td>2742.0</td>\n <td>2742.0</td>\n <td>2742.0</td>\n </tr>\n <tr>\n <th>running_avg</th>\n <td>504.0</td>\n <td>113.478175</td>\n <td>8.405215</td>\n <td>100.0</td>\n <td>103.0</td>\n <td>119.0</td>\n <td>120.0</td>\n <td>123.0</td>\n </tr>\n <tr>\n <th>util_avg</th>\n <td>504.0</td>\n <td>109.263889</td>\n <td>8.261134</td>\n <td>102.0</td>\n <td>103.0</td>\n <td>104.0</td>\n <td>121.0</td>\n <td>124.0</td>\n </tr>\n <tr>\n <th>util_est_enqueued</th>\n <td>504.0</td>\n <td>118.049603</td>\n <td>0.308140</td>\n <td>118.0</td>\n <td>118.0</td>\n <td>118.0</td>\n <td>118.0</td>\n <td>120.0</td>\n </tr>\n <tr>\n <th>util_est_ewma</th>\n <td>504.0</td>\n <td>126.071429</td>\n <td>0.457820</td>\n <td>126.0</td>\n <td>126.0</td>\n <td>126.0</td>\n <td>126.0</td>\n <td>129.0</td>\n </tr>\n </tbody>\n</table>\n</div>",
"text/plain": " count mean std min 25% 50% \\\n__cpu 504.0 2.000000 0.000000 2.0 2.0 2.0 \n__line 504.0 8302.365079 1042.566510 6520.0 7380.5 8313.5 \n__pid 504.0 1022.809524 1327.365898 0.0 0.0 0.0 \ncpu 504.0 2.000000 0.000000 2.0 2.0 2.0 \npid 504.0 2742.000000 0.000000 2742.0 2742.0 2742.0 \nrunning_avg 504.0 113.478175 8.405215 100.0 103.0 119.0 \nutil_avg 504.0 109.263889 8.261134 102.0 103.0 104.0 \nutil_est_enqueued 504.0 118.049603 0.308140 118.0 118.0 118.0 \nutil_est_ewma 504.0 126.071429 0.457820 126.0 126.0 126.0 \n\n 75% max \n__cpu 2.0 2.0 \n__line 9181.5 10191.0 \n__pid 2742.0 2742.0 \ncpu 2.0 2.0 \npid 2742.0 2742.0 \nrunning_avg 120.0 123.0 \nutil_avg 121.0 124.0 \nutil_est_enqueued 118.0 120.0 \nutil_est_ewma 126.0 129.0 "
},
"metadata": {}
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "# Two small tasks synched"
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "rtapp = RTA(target, 'two_synched', calibration=te.calibration())\nrtapp.conf(\n kind='profile',\n params={\n 'task_p40_1': Periodic(\n period_ms=10, # period\n duty_cycle_pct=40, # duty cycle\n duration_s=2, # duration \n cpus=str(big_cpu) # pinned on last big CPU\n ).get(),\n 'task_p40_2': Periodic(\n period_ms=10, # period\n duty_cycle_pct=10, # duty cycle\n duration_s=2, # duration \n cpus=str(big_cpu) # pinned on last big CPU\n ).get(),\n },\n run_dir=target.working_directory\n)",
"execution_count": 49,
"outputs": [
{
"output_type": "stream",
"text": "03:18:58 INFO : Setup new workload two_synched\n03:18:59 INFO : Workload duration defined by longest task\n03:18:59 INFO : Default policy: SCHED_OTHER\n03:18:59 INFO : ------------------------\n03:18:59 INFO : task [task_p40_1], sched: using default policy\n03:18:59 INFO : | loops count: 1\n03:18:59 INFO : + phase_000001: duration 2.000000 [s] (200 loops)\n03:18:59 INFO : | period 10000 [us], duty_cycle 40 %\n03:18:59 INFO : | run_time 4000 [us], sleep_time 6000 [us]\n03:18:59 INFO : | CPUs affinity: 2\n03:18:59 INFO : ------------------------\n03:18:59 INFO : task [task_p40_2], sched: using default policy\n03:18:59 INFO : | loops count: 1\n03:18:59 INFO : + phase_000001: duration 2.000000 [s] (200 loops)\n03:18:59 INFO : | period 10000 [us], duty_cycle 10 %\n03:18:59 INFO : | run_time 1000 [us], sleep_time 9000 [us]\n03:18:59 INFO : | CPUs affinity: 2\n",
"name": "stderr"
},
{
"output_type": "execute_result",
"execution_count": 49,
"data": {
"text/plain": "'two_synched_00'"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "tracefile, trace = run(rtapp, use_util_est=USE_UTIL_EST)\n# tracefile, trace = run(None, use_util_est=USE_UTIL_EST, trace_name=test_id)",
"execution_count": 50,
"outputs": [
{
"output_type": "stream",
"text": "03:19:07 INFO : #### Set [schedutil] CPUFreq governor\n03:19:13 INFO : #### Setup FTrace\n03:19:17 INFO : #### Start RTApp execution\n03:19:17 INFO : Workload execution START:\n03:19:17 INFO : /root/devlib-target/bin/rt-app /root/devlib-target/two_synched_00.json 2>&1\n03:19:20 INFO : #### Stop FTrace\n03:19:21 INFO : #### Save FTrace: /data/Code/lisa/results/20180605_RT-PELT_JunoR2/trace_two_synched.dat\n03:19:25 INFO : #### Save platform description: /data/Code/lisa/results/20180605_RT-PELT_JunoR2/platform.json\n03:19:25 INFO : #### Parse trace\n03:19:27 INFO : Platform clusters verified to be Frequency coherent\n",
"name": "stderr"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "df = trace.data_frame.trace_event('sched_util_est_task')\ndf[df.pid == trace.getTaskByName('task_p40_1')[0]][['util_avg', 'util_est_enqueued', 'util_est_ewma']].plot(figsize=(16,8), drawstyle='steps-post');\nlogging.info(\"Task Utilization\")",
"execution_count": 51,
"outputs": [
{
"output_type": "stream",
"text": "03:19:27 INFO : Task Utilization\n",
"name": "stderr"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n/LW7mPWehMrU25v3qrowotqS5EWMf3zJLP3lrS3685tb+vydb/zuTUmxBbo3t/QNNH/w8LsZ99/2\n9HsZ99943989v6Mk/a8H31I0p+8C7Yk92tNHFum6xWP0g4ffjf+9RBOrovrqWRN0y69f67Pv/R37\ndeeO95UVDKgg0jc57tzXoVsfW6WAkUry+g733rr3gK68Y3nG73DF7cvjQ7XTufrnL2rdrv2e+z9z\n18sZW3K//OvX0lakXN/9w9tJQ9BT/eiJVRpZ4r2w9X0vrtfrG1s89z+5YrtaMny/d7bs1fV3v+y5\nf/f+Tl1+2wue+yXpyjuWZ2wIGYjLjqvXjJFFSenE9XtntILXffovf3434+LhP/3bGo0u816E/rev\nbIw3IKXz3Jqd+sr/9L0/XWu279Onf+l9Dvd3dOvy/34+Y3B15R3Lta31gOf+T/3iJW3a7d2Y9IV7\nX0lbUXN9/YE30j4r7/rXv6xQdYbRJbc/856aVuV77v/D65u1fpd3I8LLa3fr5l9lzk+kWH73yFtb\n9cc3NvfZ119+98O/ZM7vPv3Ll7Ujwzm+8f7Mx/ed36fP71y3Pr5StQlrbKe66/m1enntLs/9j7y9\nNeM98PqGFt1w76ue+7e3HtCVd7zouV+Srrj9hYyjFa6580Wt3emd33327pczfv6W32TO7773h7dV\nkn9oj9k0VeTr62dP0rcefKPPvg272/TfT72nUMCoMM212tvepX97ZIWMiY1wSrWnrVOX/ffzGf/+\nJ29fnjRpYqprfv6S1mU4h5+7+2W1d3k3LP/j/7yunAyN5//y53dVEfXO73721HtqyJDf/e7VjRlH\nZz2/Zqe+8hvv/O69HfuTGuRTtXXG8ruODD1XV96xXNv2Zs7v0qXhRBfNHakFjWVpj+VPb8TqS155\nwVMrd0iKNaCnS3N3PPu+nl290/Nv//GNzRl78l9Zt1tfypCfbNzTrmt+7p1Wu3usPnHbC9rfkaFu\ncufyjA23n7nr5YxB+k33/13GeKfV7/z+rbRpyPVfj69SbXGm/G6dXl6723P/o29vzZgfv7mpRV/I\nkN+lau/sSfv3vr1skrbtPaD2vw74Vx0VeAb1CHpn5zua/fPZmnL7FE25fYo+9cinJElBc/hbuYrz\nsnTqpErlORW282fW6s1vnaY3vnmaZteXaMGYMs2pL9HicRWH5e/VFicHGDedNi7p9dTaIkmxTEuS\nZowsiu87dVKlcrNC2r2/Uw+9Fqu0JbYGPf7FRbpk/ihJ0r4DfTOze66apxtOHStJaYOIf//YDP3z\nBVMlSVtbkjOL7a0HlJMV0JlTq9J+r70HutTdY3Xu9Oqk7YlL9cipM5emBGEHumIzH0fCAR3XWKaO\nrh799pWN2uUU/J1O4ZabFdTfv3GqGsvz9fqGFvWkjIcuiIT05reWan5jqVanGc7x5Irtah5VrOZR\nxWm/w6Nvb9WEqqiO92jgeHXdbtUW5+ik8envhbU796s4N0unOc8lp9q5r0PhoPc53NfRrY6uHp0/\noybt/s5uq537OnTmlCrP4dLrdu7XonHlqvGoHL+9qUXHjylTU0X6AOP593Zq7ugSTa1NP+nY4+9s\n08yRRZpTX5J2/5MrtmvsiAKd0DSwRiK3oSKQcB9PqyuMB+LpCt3PnzxW910zX5L03vbkoaBtnd1q\n6+zWh2bWSpLe3bI3vq+zu0fdPVbbWw/otEkjVJSbXOC6Md172/dp4dhy1ZWkP4dvbGjRcY2lGl9Z\nkHb/M6t3aM7oEk2vK0q7/7F3tml6XZHmNaQ/h8+u3qnG8nwtHFuedv+7W1pVEc3WKRPT32dbWg4o\nNyukM6ZUpt2/t71LVuqTVl0dXT1qPdCl82bUpG1ttjY2FPvkCSPSVuyl2MzmJzSVqb40fYPKK+t2\na35DqSZURZO2J6bpUydVKjc7qD1tnfGesmBCJeqxLy7Sx4+L5XetafK7u6+apy86+Wtqfrdm+z6V\nFfSew3T5XSTcf353nkda7ejq0Z62Tp09rVrZofTVhw2723TS+ApVRtM3Bry7Za9OaCpTY3n6AOPF\ntbs0r6FEk2uiafc/8e42NY8q1uz69PndY+9s0/iqAu/8bv2ejPndup1tKs7N0tJJ6e8zN787e1r6\n+2xfR7cOdHrnd6lue/q9+CMwbsATDBgd31Smrm6rP76xOR6AuHfRyJJcvf7N0zSxOqo3NrTEH7lx\nZQUDevObS7VwbLk27G6LlzWu/vK7v63crqYR+Z753VubWlRZGNHJE9Kfw4172lUQCXmewz1tnQoG\njOc5bOvs1r4Dvfldqu4eq21Oflecmz7AeG/7Pp2YIb97vZ/87ulV/ed30zLkd8+v2amGDPndiq2t\nqijom981JpRhU2sKNcZ57ZYpiXnFdYsb9cCnF0hS2scHLpwVW+feWuntzb2NvN3dVtZKm/a0pc3v\n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\ncO8PosIAAAAASUVORK5CYII=\n",
"text/plain": "<matplotlib.figure.Figure at 0x7f76a358b210>"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "df[df.pid == trace.getTaskByName('task_p40_1')[0]][1:].describe().T",
"execution_count": 55,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 55,
"data": {
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>count</th>\n <th>mean</th>\n <th>std</th>\n <th>min</th>\n <th>25%</th>\n <th>50%</th>\n <th>75%</th>\n <th>max</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>__cpu</th>\n <td>786.0</td>\n <td>2.000000</td>\n <td>0.000000</td>\n <td>2.0</td>\n <td>2.0</td>\n <td>2.0</td>\n <td>2.0</td>\n <td>2.0</td>\n </tr>\n <tr>\n <th>__line</th>\n <td>786.0</td>\n <td>10459.643766</td>\n <td>2240.352728</td>\n <td>6516.0</td>\n <td>8531.5</td>\n <td>10460.0</td>\n <td>12380.0</td>\n <td>14464.0</td>\n </tr>\n <tr>\n <th>__pid</th>\n <td>786.0</td>\n <td>1606.734097</td>\n <td>1304.393416</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>2664.0</td>\n <td>2664.0</td>\n <td>2665.0</td>\n </tr>\n <tr>\n <th>cpu</th>\n <td>786.0</td>\n <td>2.000000</td>\n <td>0.000000</td>\n <td>2.0</td>\n <td>2.0</td>\n <td>2.0</td>\n <td>2.0</td>\n <td>2.0</td>\n </tr>\n <tr>\n <th>pid</th>\n <td>786.0</td>\n <td>2664.000000</td>\n <td>0.000000</td>\n <td>2664.0</td>\n <td>2664.0</td>\n <td>2664.0</td>\n <td>2664.0</td>\n <td>2664.0</td>\n </tr>\n <tr>\n <th>running_avg</th>\n <td>786.0</td>\n <td>437.450382</td>\n <td>19.456323</td>\n <td>410.0</td>\n <td>418.0</td>\n <td>439.0</td>\n <td>456.0</td>\n <td>470.0</td>\n </tr>\n <tr>\n <th>util_avg</th>\n <td>786.0</td>\n <td>427.944020</td>\n <td>15.240139</td>\n <td>409.0</td>\n <td>421.0</td>\n <td>421.0</td>\n <td>441.0</td>\n <td>456.0</td>\n </tr>\n <tr>\n <th>util_est_enqueued</th>\n <td>786.0</td>\n <td>458.053435</td>\n <td>8.044126</td>\n <td>411.0</td>\n <td>452.0</td>\n <td>452.0</td>\n <td>468.0</td>\n <td>470.0</td>\n </tr>\n <tr>\n <th>util_est_ewma</th>\n <td>786.0</td>\n <td>460.348601</td>\n <td>0.780726</td>\n <td>448.0</td>\n <td>460.0</td>\n <td>460.0</td>\n <td>461.0</td>\n <td>462.0</td>\n </tr>\n </tbody>\n</table>\n</div>",
"text/plain": " count mean std min 25% 50% \\\n__cpu 786.0 2.000000 0.000000 2.0 2.0 2.0 \n__line 786.0 10459.643766 2240.352728 6516.0 8531.5 10460.0 \n__pid 786.0 1606.734097 1304.393416 0.0 0.0 2664.0 \ncpu 786.0 2.000000 0.000000 2.0 2.0 2.0 \npid 786.0 2664.000000 0.000000 2664.0 2664.0 2664.0 \nrunning_avg 786.0 437.450382 19.456323 410.0 418.0 439.0 \nutil_avg 786.0 427.944020 15.240139 409.0 421.0 421.0 \nutil_est_enqueued 786.0 458.053435 8.044126 411.0 452.0 452.0 \nutil_est_ewma 786.0 460.348601 0.780726 448.0 460.0 460.0 \n\n 75% max \n__cpu 2.0 2.0 \n__line 12380.0 14464.0 \n__pid 2664.0 2665.0 \ncpu 2.0 2.0 \npid 2664.0 2664.0 \nrunning_avg 456.0 470.0 \nutil_avg 441.0 456.0 \nutil_est_enqueued 468.0 470.0 \nutil_est_ewma 461.0 462.0 "
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "df[df.pid == trace.getTaskByName('task_p40_2')[0]][['util_avg', 'util_est_enqueued', 'util_est_ewma']].plot(figsize=(16,8), drawstyle='steps-post');\nlogging.info(\"Task Utilization\")",
"execution_count": 53,
"outputs": [
{
"output_type": "stream",
"text": "03:19:27 INFO : Task Utilization\n",
"name": "stderr"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\nD3expaKrXf3N7wDVKzLERWpsODHOQVq4O5jU2HDiwu12My4jjrWLZnHXXPtKkqSoUNYumsUDV9tn\nRoyBtYtm8c8bJjrtpOu9PZZFWnw4axfN4rVvnuF7vKa5nepGO+a8n6+myf65sr4rFnftb/Kdje+K\nxa4rPFaV1naLxY+27+e55V2JzLbKRv6zas8nYtHbrnrG4upSu132bFfeet9cUc/f39/ZLYF79IOd\nrC6toaa53feFiTcWdzn9lbcdlR6wt1furvG1K48F6/3a1eL1FSzbecD3/ovXV/DWZru/2t/Yxusb\nK3lrS9cldu9s2cfrGyupbrTLqKSqkfqWDl+72lzRQGuHh4q6Fqed1OKx7INnex/s20TiI0JIjQ0n\n9BCX+ceGu0mNDfcl2t+ZncfaRbO4dlIWAAvOzGHtoll8xfkS6ZpJWaxdNItvz8oDYM6YQaxdNItF\nzu0k/u3kyY93+WJxtxOLW/0uPf/3ijI+3G6X6d7aFlo7PGx06qiyvpXGtk5KusViq92PO7FYUddK\nZX0rB/xi8VW/K0w+2mHHoreM1pfX0dbZFYuresTiR854stOJvfedLyj8Y/GfH3b1V01tnTz6QfdY\nfOid7d3K9+F3d/j6L+9nf3tLVbc+/p2t+7r18R867Wq3066W77Lb1Z6aZl5eu5c1ZV3j4kury3lv\nm/37VfWt1Drt1duuqv1jsbnrqork6FBSY7smt0mOsbddh1hxISnKft77hbKXd/y4Z/5Y1i6aRYFz\nFdZP55zC2kWzOHN4MmB/EbJ20SyuPNX+svKr0+12ddPp9sSV/rH4yPs7aWn3i8UPPxmL723rEYs7\numLRsuyz/d5Y7PRY3fr4xesrWLqz69jh1fV7WeLE4oEmOxbf9Lvc9Z2t+3htQ1csbqtqpL61w9eu\nNlXU09bhYW+tE4u7a7D8YtEb97v3+42LH3eNixX1rTyzvJRtVXZ/5b2Nx9uu1jr17T122LjX7r/W\nOscKW5xx8X2nHWyrauBfy0qpcG4VA3hy6W6W7+yKxf+uLveNp17BQeYTxw6pseG+L5y82wP9toNO\nkqsldAZVDur2c4bT1uE5ZhP6eA9WRvzof8fk/aRvOghmQsXT8POnuR64Pgx+nXYP3z4nhVfW1fHH\nN0oYOSiGO+ek8vbWRn71vxISI0N4eE4qy3a2sPA/JbiC4bk5U1hfXsd3nykhqjocIuyzLOnNmzkj\n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\niArFwu6vosPc5AyIItgYLi20YzE6zEVjayfzijJIigolIyGClvZO5k6wYzEy1EV1QyvzizIY7Hzm\nyrpWrpxot6uYMLfTx2cxdEAU0WFuKutaufH0IaR4x0WnnY0cFOv0by3cMm0omYmRdruqaeGisYMY\nn5lAeEgwVfUtzBiewqShibiD7XY1aWii78qa5rZOcgZE+drRwY4NDnfsMDknqdsYUZRtHzvEO1dv\njcmI55pJWSQ7X2KOHBTLtZOzSHWWAcwbaB87RDtn8iNCu/r41NhwUmPDqGvp4MpT7XE1KtRFZX0r\nV0/MJCspkuhwN3tr7VjLTbH7+D21zXxxSjbDB8b4+virJmUyOi3Otz13QjpjnVjcW9vCLdOHkpMc\nTZgrmKqGVqY7sRgcZPfxcyd0xWJbh4cRqTHMdmIx2BjSE8LtPj7IEBniYkB0KJeMT8MVFERiVCi5\nyVG+28ZSYsIIcQUxb0IG4SHB5CRHER3q5sIx9hiREBFCe6fH7r8i3MSEuWls7WB+USZJUaFEhgRT\n29zOvKIMkmPCSIuLoKG1g3kTMogKc/mOt66cmElGQgSJUSFUN7Zx/ZQsEqNCfe3muilZDEuJJibc\n3r552pBusXipE3vQ/Vii53ZQkOHS8elMzum/qwaPlUWLFpUvXLjwgd5eZ6w+3Pjm3IP6omVZpzjb\nvwaqLcu60xhzO5BgWdZ3jDHnAV8DzgVOBe62LKuot/cvLCy0li5d2ut+nAiezg5GPzqWW2JH8ZU5\n/zzRuyMiIiIiIvKZY4xZZllWYW+v6/WaBGPM49gTIiUZY0qBHwN3Ak8ZY74E7AQud17+EnZyuhVo\nAq4/qr0XERERERGRz52+zOI7/xBPzTjIay3gq592p0REREREROTz5/jdkSwiIiIiIiJyGEpQRURE\nREREJCAoQRUREREREZGAoARVREREREREAoISVBEREREREQkISlBFREREREQkIChBFRERERERkYCg\nBFVEREREREQCghJUERERERERCQhKUEVERERERCQgKEEVERERERGRgKAEVURERERERAKCElQRERER\nEREJCEpQRUREREREJCAoQRUREREREZGAoARVREREREREAoISVBEREREREQkISlBFREREREQkIChB\nFRERERERkYCgBFVEREREREQCghJUERERERERCQhKUEVERERERCQgKEEVERERERGRgKAEVURERERE\nRAKCElQREREREREJCEpQRUREREREJCAoQRUREREREZGAoARVREREREREAoISVBEREREREQkISlBF\nREREREQkIChBFRERERERkYCgBFVEREREREQCghJUERERERERCQhKUEVERERERCQgKEEVERERERGR\ngKAEVURERERERAKCElQREREREREJCEpQRUREREREJCAoQRUREREREZGAoARVREREREREAoISVBER\nEREREQkISlBFREREREQkIChBFRERERERkYCgBFVEREREREQCghJUERERERERCQhKUEVERERERCQg\nKEEVERERERGRgKAEVURERERERAKCElQREREREREJCEpQRUREREREJCAoQRUREREREZGAoARVRERE\nREREAoISVBEREREREQkISlBFREREREQkIChBFRERERERkYCgBFVEREREREQCghJUERERERERCQhK\nUEVERERERCQgKEEVERERERGRgKAEVURERERERAKCElQREREREREJCEpQRUREREREJCAoQRURERER\nEZGAoARVREREREREAoISVBEREREREQkISlBFREREREQkIChBFRERERERkYCgBFVEREREREQCghJU\nERERERERCQhKUEVERERERCQgKEEVERERERGRgKAEVURERERERAKCElQREREREREJCEpQRURERERE\nJCAoQRUREREREZGA0C8JqjFmtjFmkzFmqzHm9v74GyIiIiIiInJyOeYJqjEmGLgXOAfIB+YbY/KP\n9d8RERERERGRk0t/nEEtArZallViWVYb8ARwYT/8neOitnbnid4FERERERGRz4X+SFAHA7v9tkud\nx7oxxtxojFlqjFlaVVXVD7txbBgTxBjLzanZs070roiIiIiIiJzUXCfqD1uW9QDwAEBhYaF1ovaj\nN3Hx2fzjuuUnejdEREREREROev1xBrUMSPfbTnMeExERERERETmk/khQPwZyjTHZxpgQYB7wQj/8\nHRERERERETmJHPNLfC3L6jDGfA14BQgGHrIsa92x/jsiIiIiIiJycumXe1Aty3oJeKk/3ltERERE\nREROTv1xia+IiIiIiIjIEVOCKiIiIiIiIgFBCaqIiIiIiIgEBCWoIiIiIiIiEhCUoIqIiIiIiEhA\nUIIqIiIiIiIiAUEJqoiIiIiIiAQEJagiIiIiIiISEJSgioiIiIiISEBQgioiIiIiIiIBQQmqiIiI\n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\n",
"text/plain": "<matplotlib.figure.Figure at 0x7f76a2d07550>"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "df[df.pid == trace.getTaskByName('task_p40_2')[0]][1:].describe().T",
"execution_count": 54,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 54,
"data": {
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>count</th>\n <th>mean</th>\n <th>std</th>\n <th>min</th>\n <th>25%</th>\n <th>50%</th>\n <th>75%</th>\n <th>max</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>__cpu</th>\n <td>487.0</td>\n <td>2.000000</td>\n <td>0.000000</td>\n <td>2.0</td>\n <td>2.0</td>\n <td>2.0</td>\n <td>2.0</td>\n <td>2.0</td>\n </tr>\n <tr>\n <th>__line</th>\n <td>487.0</td>\n <td>10484.607803</td>\n <td>2255.762730</td>\n <td>6509.0</td>\n <td>8550.5</td>\n <td>10479.0</td>\n <td>12438.0</td>\n <td>14396.0</td>\n </tr>\n <tr>\n <th>__pid</th>\n <td>487.0</td>\n <td>935.759754</td>\n <td>1273.374635</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>2665.0</td>\n <td>2665.0</td>\n </tr>\n <tr>\n <th>cpu</th>\n <td>487.0</td>\n <td>2.000000</td>\n <td>0.000000</td>\n <td>2.0</td>\n <td>2.0</td>\n <td>2.0</td>\n <td>2.0</td>\n <td>2.0</td>\n </tr>\n <tr>\n <th>pid</th>\n <td>487.0</td>\n <td>2665.000000</td>\n <td>0.000000</td>\n <td>2665.0</td>\n <td>2665.0</td>\n <td>2665.0</td>\n <td>2665.0</td>\n <td>2665.0</td>\n </tr>\n <tr>\n <th>running_avg</th>\n <td>487.0</td>\n <td>109.121150</td>\n <td>8.733815</td>\n <td>96.0</td>\n <td>98.0</td>\n <td>115.0</td>\n <td>116.0</td>\n <td>120.0</td>\n </tr>\n <tr>\n <th>util_avg</th>\n <td>487.0</td>\n <td>104.188912</td>\n <td>8.342047</td>\n <td>98.0</td>\n <td>98.0</td>\n <td>98.0</td>\n <td>117.0</td>\n <td>119.0</td>\n </tr>\n <tr>\n <th>util_est_enqueued</th>\n <td>487.0</td>\n <td>114.000000</td>\n <td>0.000000</td>\n <td>114.0</td>\n <td>114.0</td>\n <td>114.0</td>\n <td>114.0</td>\n <td>114.0</td>\n </tr>\n <tr>\n <th>util_est_ewma</th>\n <td>487.0</td>\n <td>122.000000</td>\n <td>0.000000</td>\n <td>122.0</td>\n <td>122.0</td>\n <td>122.0</td>\n <td>122.0</td>\n <td>122.0</td>\n </tr>\n </tbody>\n</table>\n</div>",
"text/plain": " count mean std min 25% 50% \\\n__cpu 487.0 2.000000 0.000000 2.0 2.0 2.0 \n__line 487.0 10484.607803 2255.762730 6509.0 8550.5 10479.0 \n__pid 487.0 935.759754 1273.374635 0.0 0.0 0.0 \ncpu 487.0 2.000000 0.000000 2.0 2.0 2.0 \npid 487.0 2665.000000 0.000000 2665.0 2665.0 2665.0 \nrunning_avg 487.0 109.121150 8.733815 96.0 98.0 115.0 \nutil_avg 487.0 104.188912 8.342047 98.0 98.0 98.0 \nutil_est_enqueued 487.0 114.000000 0.000000 114.0 114.0 114.0 \nutil_est_ewma 487.0 122.000000 0.000000 122.0 122.0 122.0 \n\n 75% max \n__cpu 2.0 2.0 \n__line 12438.0 14396.0 \n__pid 2665.0 2665.0 \ncpu 2.0 2.0 \npid 2665.0 2665.0 \nrunning_avg 116.0 120.0 \nutil_avg 117.0 119.0 \nutil_est_enqueued 114.0 114.0 \nutil_est_ewma 122.0 122.0 "
},
"metadata": {}
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "# Trace inspection"
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "os.popen(\"kernelshark {}\".format(trace.ftrace.trace_path))",
"execution_count": 30,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 30,
"data": {
"text/plain": "<open file 'kernelshark /data/Code/lisa/results/20180605_RT-PELT_JunoR2/trace_two_synched.dat', mode 'r' at 0x7f0ae8871f60>"
},
"metadata": {}
}
]
}
],
"metadata": {
"kernelspec": {
"name": "python2",
"display_name": "Python 2",
"language": "python"
},
"language_info": {
"mimetype": "text/x-python",
"nbconvert_exporter": "python",
"name": "python",
"pygments_lexer": "ipython2",
"version": "2.7.12",
"file_extension": ".py",
"codemirror_mode": {
"version": 2,
"name": "ipython"
}
},
"gist": {
"id": "fe01e5ddf639e18b5d85a3b1d2e84b7d",
"data": {
"description": "20180531_UtilEst_RunningAvg",
"public": false
}
},
"toc": {
"threshold": 4,
"number_sections": true,
"toc_cell": false,
"toc_window_display": false,
"toc_section_display": "block",
"sideBar": true,
"navigate_menu": true,
"moveMenuLeft": true,
"colors": {
"hover_highlight": "#DAA520",
"selected_highlight": "#FFD700",
"running_highlight": "#FF0000"
},
"nav_menu": {
"width": "252px",
"height": "367px"
}
},
"_draft": {
"nbviewer_url": "https://gist.github.com/fe01e5ddf639e18b5d85a3b1d2e84b7d"
},
"hide_input": false
},
"nbformat": 4,
"nbformat_minor": 1
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment