Skip to content

Instantly share code, notes, and snippets.

@qais-yousef
Created January 31, 2020 15:00
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 qais-yousef/cfe7487e3b43c3c06a152da31ae09101 to your computer and use it in GitHub Desktop.
Save qais-yousef/cfe7487e3b43c3c06a152da31ae09101 to your computer and use it in GitHub Desktop.
RT Capacity Aware Test - Pavan
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## RT Capacity Awareness Test"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"2020-01-31 14:56:26,668 INFO : root : Using LISA logging configuration: /mnt/data/src/lisa-next/logging.conf\n"
]
}
],
"source": [
"import logging\n",
"from lisa.utils import setup_logging\n",
"setup_logging()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Target configuration"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"from lisa.target import Target, TargetConf"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"2020-01-31 14:56:27,421 INFO : lisa.target.Target : Creating result directory: /mnt/data/src/lisa-next/results/Target-Juno-20200131_145627.421334\n",
"2020-01-31 14:56:27,428 INFO : lisa.target.Target : linux Juno target connection settings:\n",
" username: root\n",
" port: 22\n",
" host: 10.1.195.51\n",
"2020-01-31 14:56:31,363 INFO : lisa.platforms.platinfo.PlatformInfo : Attempting to read energy model from target\n",
"2020-01-31 14:56:31,521 INFO : lisa.energy_model.EnergyModel.from_target : Attempting to load EM using LinuxEnergyModel\n",
"2020-01-31 14:56:32,225 INFO : lisa.target.Target : Loading target devlib module cpuidle\n",
"2020-01-31 14:56:33,202 INFO : lisa.target.Target : Loading target devlib module cpufreq\n",
"2020-01-31 14:56:34,607 INFO : lisa.target.Target : Loading target devlib module sched\n",
"2020-01-31 14:56:36,310 INFO : sched : Scheduler sched_domain procfs entries found\n",
"2020-01-31 14:56:36,312 INFO : sched : Detected kernel compiled with SCHED_DEBUG=y\n",
"2020-01-31 14:56:36,313 INFO : sched : CPU capacity sysfs entries found\n",
"2020-01-31 14:56:38,988 INFO : lisa.target.Target : Effective platform information:\n",
"|- abi from target (str): arm64\n",
"+- cpu-capacities:\n",
" |- orig from target (dict): {0: 383, 1: 1024, 2: 1024, 3: 383, 4: 383, 5: 383}\n",
" |- writeable from target (bool): False\n",
" |- rtapp from target(platform-info/rtapp/calib),target(platform-info/cpu-capacities/orig),target(platform-info/cpu-capacities/writeable) (str): <depends on lazy keys: platform-info/rtapp/calib>\n",
"|- cpus-count from target (int): 6\n",
"|- freq-domains from target (list): [[0, 3, 4, 5], [1, 2]]\n",
"|- freqs from target (dict): {0: [450000, 800000, 950000], 1: [600000, 1000000, 1200000], 2: [600000, 1000000, 1200000], 3: [450000, 800000, 950000], 4: [450000, 800000, 950000], 5: [450000, 800000, 950000]}\n",
"+- kernel:\n",
" |- config from target (TypedKernelConfig): <kernel config>\n",
" |- symbols-address from target (DeferredValue): <symbols address>\n",
" |- version from target (KernelVersion): 5.5.0-05398-g39bed42de2e7 393 SMP PREEMPT Fri Jan 31 14:53:22 GMT 2020\n",
"|- name from target-conf (str): Juno\n",
"|- nrg-model from target (LinuxEnergyModel): <lisa.energy_model.LinuxEnergyModel object at 0x7f45db132080>\n",
"|- os from target (str): linux\n",
"+- rtapp:\n",
" |- calib from target (DeferredValue): <lazy value of RTA.get_cpu_calibrations>\n",
"|- capacity-classes from target(platform-info/cpu-capacities/orig) (list): [[0, 3, 4, 5], [1, 2]]\n"
]
}
],
"source": [
"target = Target(\n",
" kind='linux',\n",
" name='Juno',\n",
" host='xx.xx.xx.xx',\n",
" username='xxxx',\n",
" password='xxxx',\n",
")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Setting up an rt-app workload"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"rt-app is very convenient for scheduler experiments, and the majority of the tests within LISA rely on it. Here we're going to create a somewhat useless workload just to show off the API.\n",
"\n",
"Relevant documentation:\n",
"* **rt-app**: https://github.com/scheduler-tools/rt-app\n",
"* **rt-app LISA class**: https://lisa-linux-integrated-system-analysis.readthedocs.io/en/master/workloads.html#lisa.wlgen.rta.RTA\n",
"* **Periodic class**: https://lisa-linux-integrated-system-analysis.readthedocs.io/en/master/workloads.html#lisa.wlgen.rta.Periodic"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"from lisa.wlgen.rta import RTA, Periodic"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"rtapp_profile = {}\n",
"\n",
"for cpu in target.core_cpus(target.big_core):\n",
" #continue\n",
" rtapp_profile[\"b_{}\".format(cpu)] = Periodic(duty_cycle_pct=15, sched_policy=\"fifo\")#, uclamp_min=800, uclamp_max=1024, duration_s=3)\n",
" \n",
"for cpu in target.core_cpus(target.little_core):\n",
" #continue\n",
" rtapp_profile[\"l_{}\".format(cpu)] = Periodic(duty_cycle_pct=10, sched_policy=\"fifo\")#, uclamp_min=800, uclamp_max=1024, duration_s=3)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"def provide_calibration(calibration):\n",
" target.plat_info[\"rtapp\"].add_src(\"user\", {\"calib\" : calibration})"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"# Uncomment if you want to use this\n",
"provide_calibration({0: 556, 1: 220, 2: 217, 3: 553, 4: 553, 5: 554})"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"2020-01-31 14:56:39,361 INFO : lisa.wlgen.rta.RTA : Creating target's run directory: /root/devlib-target/lisa/wlgen/rt_cap_aware_20200131_145639_CrXVHZ\n",
"2020-01-31 14:56:39,363 INFO : lisa.target.Target : Creating result directory: /mnt/data/src/lisa-next/results/Target-Juno-20200131_145627.421334/RTA-rt_cap_aware-20200131_145639.362848\n",
"2020-01-31 14:56:40,680 INFO : lisa.wlgen.rta.RTA : Calibration value: 217\n",
"2020-01-31 14:56:40,682 INFO : lisa.wlgen.rta.RTA : Default policy: SCHED_OTHER\n",
"2020-01-31 14:56:40,683 INFO : lisa.wlgen.rta.RTA : ------------------------\n",
"2020-01-31 14:56:40,684 INFO : lisa.wlgen.rta.RTA : task [b_1], sched: FIFO\n",
"2020-01-31 14:56:40,685 INFO : lisa.wlgen.rta.RTA : | start delay: 0.000000 [s]\n",
"2020-01-31 14:56:40,686 INFO : lisa.wlgen.rta.RTA : | loops count: 1\n",
"2020-01-31 14:56:40,688 INFO : lisa.wlgen.rta.RTA : + phase_000001\n",
"2020-01-31 14:56:40,689 INFO : lisa.wlgen.rta.Phase : | duration 1.000000 [s] (10 loops)\n",
"2020-01-31 14:56:40,690 INFO : lisa.wlgen.rta.Phase : | period 100000 [us], duty_cycle 15.00 %\n",
"2020-01-31 14:56:40,692 INFO : lisa.wlgen.rta.Phase : | run_time 15000 [us], sleep_time 85000 [us]\n",
"2020-01-31 14:56:40,696 INFO : lisa.wlgen.rta.RTA : ------------------------\n",
"2020-01-31 14:56:40,697 INFO : lisa.wlgen.rta.RTA : task [b_2], sched: FIFO\n",
"2020-01-31 14:56:40,697 INFO : lisa.wlgen.rta.RTA : | start delay: 0.000000 [s]\n",
"2020-01-31 14:56:40,698 INFO : lisa.wlgen.rta.RTA : | loops count: 1\n",
"2020-01-31 14:56:40,699 INFO : lisa.wlgen.rta.RTA : + phase_000001\n",
"2020-01-31 14:56:40,700 INFO : lisa.wlgen.rta.Phase : | duration 1.000000 [s] (10 loops)\n",
"2020-01-31 14:56:40,701 INFO : lisa.wlgen.rta.Phase : | period 100000 [us], duty_cycle 15.00 %\n",
"2020-01-31 14:56:40,701 INFO : lisa.wlgen.rta.Phase : | run_time 15000 [us], sleep_time 85000 [us]\n",
"2020-01-31 14:56:40,705 INFO : lisa.wlgen.rta.RTA : ------------------------\n",
"2020-01-31 14:56:40,706 INFO : lisa.wlgen.rta.RTA : task [l_0], sched: FIFO\n",
"2020-01-31 14:56:40,706 INFO : lisa.wlgen.rta.RTA : | start delay: 0.000000 [s]\n",
"2020-01-31 14:56:40,707 INFO : lisa.wlgen.rta.RTA : | loops count: 1\n",
"2020-01-31 14:56:40,708 INFO : lisa.wlgen.rta.RTA : + phase_000001\n",
"2020-01-31 14:56:40,709 INFO : lisa.wlgen.rta.Phase : | duration 1.000000 [s] (10 loops)\n",
"2020-01-31 14:56:40,709 INFO : lisa.wlgen.rta.Phase : | period 100000 [us], duty_cycle 10.00 %\n",
"2020-01-31 14:56:40,710 INFO : lisa.wlgen.rta.Phase : | run_time 10000 [us], sleep_time 90000 [us]\n",
"2020-01-31 14:56:40,713 INFO : lisa.wlgen.rta.RTA : ------------------------\n",
"2020-01-31 14:56:40,714 INFO : lisa.wlgen.rta.RTA : task [l_3], sched: FIFO\n",
"2020-01-31 14:56:40,714 INFO : lisa.wlgen.rta.RTA : | start delay: 0.000000 [s]\n",
"2020-01-31 14:56:40,715 INFO : lisa.wlgen.rta.RTA : | loops count: 1\n",
"2020-01-31 14:56:40,715 INFO : lisa.wlgen.rta.RTA : + phase_000001\n",
"2020-01-31 14:56:40,716 INFO : lisa.wlgen.rta.Phase : | duration 1.000000 [s] (10 loops)\n",
"2020-01-31 14:56:40,717 INFO : lisa.wlgen.rta.Phase : | period 100000 [us], duty_cycle 10.00 %\n",
"2020-01-31 14:56:40,717 INFO : lisa.wlgen.rta.Phase : | run_time 10000 [us], sleep_time 90000 [us]\n",
"2020-01-31 14:56:40,721 INFO : lisa.wlgen.rta.RTA : ------------------------\n",
"2020-01-31 14:56:40,722 INFO : lisa.wlgen.rta.RTA : task [l_4], sched: FIFO\n",
"2020-01-31 14:56:40,722 INFO : lisa.wlgen.rta.RTA : | start delay: 0.000000 [s]\n",
"2020-01-31 14:56:40,723 INFO : lisa.wlgen.rta.RTA : | loops count: 1\n",
"2020-01-31 14:56:40,724 INFO : lisa.wlgen.rta.RTA : + phase_000001\n",
"2020-01-31 14:56:40,724 INFO : lisa.wlgen.rta.Phase : | duration 1.000000 [s] (10 loops)\n",
"2020-01-31 14:56:40,725 INFO : lisa.wlgen.rta.Phase : | period 100000 [us], duty_cycle 10.00 %\n",
"2020-01-31 14:56:40,726 INFO : lisa.wlgen.rta.Phase : | run_time 10000 [us], sleep_time 90000 [us]\n",
"2020-01-31 14:56:40,729 INFO : lisa.wlgen.rta.RTA : ------------------------\n",
"2020-01-31 14:56:40,730 INFO : lisa.wlgen.rta.RTA : task [l_5], sched: FIFO\n",
"2020-01-31 14:56:40,730 INFO : lisa.wlgen.rta.RTA : | start delay: 0.000000 [s]\n",
"2020-01-31 14:56:40,731 INFO : lisa.wlgen.rta.RTA : | loops count: 1\n",
"2020-01-31 14:56:40,732 INFO : lisa.wlgen.rta.RTA : + phase_000001\n",
"2020-01-31 14:56:40,732 INFO : lisa.wlgen.rta.Phase : | duration 1.000000 [s] (10 loops)\n",
"2020-01-31 14:56:40,733 INFO : lisa.wlgen.rta.Phase : | period 100000 [us], duty_cycle 10.00 %\n",
"2020-01-31 14:56:40,733 INFO : lisa.wlgen.rta.Phase : | run_time 10000 [us], sleep_time 90000 [us]\n"
]
}
],
"source": [
"wload = RTA.by_profile(target, \"rt_cap_aware\", rtapp_profile)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Running the workload"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
"import os\n",
"from lisa.trace import FtraceCollector"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"['sched:sched_wake_idle_without_ipi', 'sched:sched_swap_numa', 'sched:sched_stick_numa', 'sched:sched_move_numa', 'sched:sched_pi_setprio', 'sched:sched_stat_runtime', 'sched:sched_process_exec', 'sched:sched_process_fork', 'sched:sched_process_wait', 'sched:sched_wait_task', 'sched:sched_process_exit', 'sched:sched_process_free', 'sched:sched_migrate_task', 'sched:sched_switch', 'sched:sched_wakeup_new', 'sched:sched_wakeup', 'sched:sched_waking', 'sched:sched_kthread_stop_ret', 'sched:sched_kthread_stop']\n"
]
}
],
"source": [
"available_events = target.execute(\"cat /sys/kernel/debug/tracing/available_events\").splitlines()\n",
"\n",
"# That's gonna be a pretty big list, let's focus on the scheduler events\n",
"sched_events = [event for event in available_events if event.startswith(\"sched:\")]\n",
"print(sched_events)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's just collect the base events required to plot task scheduling:"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [],
"source": [
"events = [\n",
" \"sched_switch\",\n",
" \"sched_wakeup\",\n",
" \"sched_wakeup_new\",\n",
" \"cpu_frequency\"\n",
"]"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"2020-01-31 14:56:47,986 WARNING : lisa.wlgen.rta.RTA : CPU capacities will not be updated on this platform\n",
"2020-01-31 14:56:47,992 INFO : lisa.wlgen.rta.RTA : CPU capacities according to rt-app workload: {0: 383, 1: 1024, 2: 1024, 3: 383, 4: 383, 5: 383}\n",
"2020-01-31 14:56:47,993 INFO : lisa.wlgen.rta.RTA : Execution start: cd /root/devlib-target/lisa/wlgen/rt_cap_aware_20200131_145639_CrXVHZ && /root/devlib-target/bin/rt-app /root/devlib-target/lisa/wlgen/rt_cap_aware_20200131_145639_CrXVHZ/rt_cap_aware.json 2>&1\n",
"2020-01-31 14:56:49,154 INFO : lisa.wlgen.rta.RTA : Execution complete\n",
"2020-01-31 14:56:50,346 WARNING : py.warnings : /mnt/data/src/lisa-next/.lisa-venv-3.6/lib/python3.6/site-packages/ipykernel_launcher.py:12: DeprecationWarning: lisa.trace.CollectorBase.get_trace is deprecated and will be removed in version 2.1, use lisa.trace.CollectorBase.get_data instead\n",
" if sys.path[0] == '':\n",
"\n"
]
},
{
"data": {
"text/plain": [
"[</mnt/data/src/lisa-next/results/Target-Juno-20200131_145627.421334/RTA-rt_cap_aware-20200131_145639.362848/trace.dat (file)>]"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ftrace_coll = FtraceCollector(target, events=events, buffer_size=10240)\n",
"\n",
"# This is just nifty Python syntactic sugar that starts/stops\n",
"# the recording for us. You could just do:\n",
"# ftrace.start()\n",
"# wload.run()\n",
"# ftrace.stop()\n",
"# ftrace.get_trace(trace_path)\n",
"trace_path = os.path.join(wload.res_dir, \"trace.dat\")\n",
"with ftrace_coll:\n",
" wload.run()\n",
"ftrace_coll.get_trace(trace_path)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Loading up the trace"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [],
"source": [
"from lisa.trace import Trace"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"|- abi from target (str): arm64\n",
"+- cpu-capacities:\n",
" |- orig from target (dict): {0: 383, 1: 1024, 2: 1024, 3: 383, 4: 383, 5: 383}\n",
" |- writeable from target (bool): False\n",
" |- rtapp from user(platform-info/rtapp/calib),target(platform-info/cpu-capacities/orig),target(platform-info/cpu-capacities/writeable) (dict): {0: 383, 1: 1024, 2: 1024, 3: 383, 4: 383, 5: 383}\n",
"|- cpus-count from target (int): 6\n",
"|- freq-domains from target (list): [[0, 3, 4, 5], [1, 2]]\n",
"|- freqs from target (dict): {0: [450000, 800000, 950000], 1: [600000, 1000000, 1200000], 2: [600000, 1000000, 1200000], 3: [450000, 800000, 950000], 4: [450000, 800000, 950000], 5: [450000, 800000, 950000]}\n",
"+- kernel:\n",
" |- config from target (TypedKernelConfig): <kernel config>\n",
" |- symbols-address from target (DeferredValue): <symbols address>\n",
" |- version from target (KernelVersion): 5.5.0-05398-g39bed42de2e7 393 SMP PREEMPT Fri Jan 31 14:53:22 GMT 2020\n",
"|- name from target-conf (str): Juno\n",
"|- nrg-model from target (LinuxEnergyModel): <lisa.energy_model.LinuxEnergyModel object at 0x7f45d9b7e5c0>\n",
"|- os from target (str): linux\n",
"+- rtapp:\n",
" |- calib from user (dict): {0: 556, 1: 220, 2: 217, 3: 553, 4: 553, 5: 554}\n",
"|- capacity-classes from target(platform-info/cpu-capacities/orig) (list): [[0, 3, 4, 5], [1, 2]]\n"
]
}
],
"source": [
"print(target.plat_info)"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [],
"source": [
"trace_path = os.path.join(wload.res_dir, 'trace.dat')\n",
"#trace = Trace(trace_path, target.plat_info, events=events)"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"2020-01-31 14:56:54,285 INFO : lisa.platforms.platinfo.PlatformInfo : Attempting to read kallsyms from target\n"
]
}
],
"source": [
"plat_info_path = os.path.join(wload.res_dir, \"platinfo.yaml\")\n",
"target.plat_info.to_yaml_map(plat_info_path)"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [],
"source": [
"from lisa.platforms.platinfo import PlatformInfo"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [],
"source": [
"plat_info = PlatformInfo.from_yaml_map(plat_info_path)\n",
"trace = Trace(trace_path, plat_info, events=events)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Looking at the trace"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'/mnt/data/src/lisa-next/results/Target-Juno-20200131_145627.421334/RTA-rt_cap_aware-20200131_145639.362848/trace.dat'"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"trace_path"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [],
"source": [
"#!ln -sf {trace_path} /mnt/data/src/linux-android/trace.dat"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [],
"source": [
"df = trace.df_events(\"cpu_frequency\")\n",
"\n",
"#for cpu in df.__cpu.unique():\n",
"# df[df.__cpu == cpu].frequency.plot(figsize=(20, 6), drawstyle='steps-post', legend=True, label=cpu)"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [],
"source": [
"#!kernelshark {trace_path}"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Analysing the trace"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Reading trace events"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [],
"source": [
"df = trace.df_events(\"sched_switch\")"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Run 1 result"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 864x432 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"tasks = ['b_1-', 'b_2-', 'l_0-', 'l_3-', 'l_4-', 'l_5-']\n",
"\n",
"for task in tasks:\n",
" df[df.next_comm.str.contains(task)].__cpu.plot(figsize=(12, 6,), drawstyle='steps-post', legend=True, label=task)\n",
" plt.legend(loc='center left', bbox_to_anchor=(1.0, 0.5))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Run 2 Results"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"2020-01-31 14:57:19,466 WARNING : lisa.wlgen.rta.RTA : CPU capacities will not be updated on this platform\n",
"2020-01-31 14:57:19,473 INFO : lisa.wlgen.rta.RTA : CPU capacities according to rt-app workload: {0: 383, 1: 1024, 2: 1024, 3: 383, 4: 383, 5: 383}\n",
"2020-01-31 14:57:19,474 INFO : lisa.wlgen.rta.RTA : Execution start: cd /root/devlib-target/lisa/wlgen/rt_cap_aware_20200131_145639_CrXVHZ && /root/devlib-target/bin/rt-app /root/devlib-target/lisa/wlgen/rt_cap_aware_20200131_145639_CrXVHZ/rt_cap_aware.json 2>&1\n",
"2020-01-31 14:57:20,637 INFO : lisa.wlgen.rta.RTA : Execution complete\n",
"2020-01-31 14:57:21,590 WARNING : py.warnings : /mnt/data/src/lisa-next/.lisa-venv-3.6/lib/python3.6/site-packages/ipykernel_launcher.py:12: DeprecationWarning: lisa.trace.CollectorBase.get_trace is deprecated and will be removed in version 2.1, use lisa.trace.CollectorBase.get_data instead\n",
" if sys.path[0] == '':\n",
"\n"
]
},
{
"data": {
"text/plain": [
"[</mnt/data/src/lisa-next/results/Target-Juno-20200131_145627.421334/RTA-rt_cap_aware-20200131_145639.362848/trace.dat (file)>]"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ftrace_coll = FtraceCollector(target, events=events, buffer_size=10240)\n",
"\n",
"# This is just nifty Python syntactic sugar that starts/stops\n",
"# the recording for us. You could just do:\n",
"# ftrace.start()\n",
"# wload.run()\n",
"# ftrace.stop()\n",
"# ftrace.get_trace(trace_path)\n",
"trace_path = os.path.join(wload.res_dir, \"trace.dat\")\n",
"with ftrace_coll:\n",
" wload.run()\n",
"ftrace_coll.get_trace(trace_path)"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"2020-01-31 14:57:25,441 WARNING : py.warnings : /mnt/data/src/lisa-next/external/trappy/trappy/ftrace.py:224: UserWarning: Cached data is from another trace, invalidating cache.\n",
" warnings.warn(warnstr)\n",
"\n"
]
}
],
"source": [
"trace = Trace(trace_path, plat_info, events=events)"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [],
"source": [
"df = trace.df_events(\"sched_switch\")"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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DT8vAADslpnLSykL9vzao48+umbevHmbx2qmVnj00UePnjdvXsdg37NzDwAAlXDPPQAANNnChQtPWrt27aF7fu3aa69dd8EFFzT0dpch4z4zD4uI+yPi0IHjv1pK+WQjhwAAgJotXbr06VZcZzg7969FxLtKKS9n5iER8WBm/t9SykNNng0AABiBIeO+7HrG7e6X7jlk4NeQz8L9gy8vG91kAADAiAzrCbWZOT4zH4mITRGxtJTyvUGOuSwzezKzp9FDAgAAQxvWE2pLKTsj4q2ZeWREfC0z55ZSVr7umFsi4paIXS+F+ee/09XwYQEAYLf//rtjPcGBZ0QvhVlK2RIR/xAR5zZnHAAAOLg98cQTbbNmzTptOMcuXrx4ZkdHx9xZs2ad9t73vrfjtddey9Fce8i4z8wpAzv2kZkTI2JhRKwazUUBAICIiy+++Plnnnlm5RNPPPHYq6++mjfeeOPRoznfcG7LeVNEfCUzx8eufwz8n1LKN0ZzUQAAaLqv/+6M2LSyvaHnPGbu1jjvS2uHOqyvry8WL148c+XKle2zZ8/eduedd66ZPHly/+uPu/DCC1/c/fGCBQteWbduXdtoxhty576UsqKUcnop5S2llLmllE+N5oIAAFC7NWvWHHb55ZdveuaZZx6bPHly/w033DBlX8e/9tpreccddxz17ne/+8V9HTcU71ALAECdhrHD3izTpk3bvmjRolciIi655JLnbrrppmMi4tm9HX/ppZcef8YZZ7x87rnnvry3Y4ZD3AMAQINl5j4/39NVV131ps2bN0+45557/vFdbM8666xZmzdvPmTevHmv3HHHHT8Z7nXFPQAANNiGDRva7r333sPPOeecV26//fY3nnnmmYPuyH/uc587+r777nvDAw888MT48eP/8esPPvjgk/tz3RG9FCYAADC0jo6OV2+++eZjTjzxxNO2bNkyYcmSJb2DHXfNNdecsHnz5gkLFiw4tbOzc86SJUveNJrr2rkHAIAGOuWUU7b/+Mc/fmw4x/b19S1v5LXt3AMAQCXs3AMAQJMtXLjwpLVr1x6659euvfbadRdccMFLjbyOuAcAgCZbunTp00MfNXpuywEAgEqIewAAqIS4BwCASoh7AACohLgHAIAGam9vP31f37/55puPOuGEE+aecMIJc2+++eajGnltr5YDAAAt8uyzz46//vrr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\n",
"text/plain": [
"<Figure size 864x432 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"tasks = ['b_1-', 'b_2-', 'l_0-', 'l_3-', 'l_4-', 'l_5-']\n",
"\n",
"for task in tasks:\n",
" df[df.next_comm.str.contains(task)].__cpu.plot(figsize=(12, 6,), drawstyle='steps-post', legend=True, label=task)\n",
" plt.legend(loc='center left', bbox_to_anchor=(1.0, 0.5))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Run 3 Results"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"2020-01-31 14:57:32,449 WARNING : lisa.wlgen.rta.RTA : CPU capacities will not be updated on this platform\n",
"2020-01-31 14:57:32,457 INFO : lisa.wlgen.rta.RTA : CPU capacities according to rt-app workload: {0: 383, 1: 1024, 2: 1024, 3: 383, 4: 383, 5: 383}\n",
"2020-01-31 14:57:32,458 INFO : lisa.wlgen.rta.RTA : Execution start: cd /root/devlib-target/lisa/wlgen/rt_cap_aware_20200131_145639_CrXVHZ && /root/devlib-target/bin/rt-app /root/devlib-target/lisa/wlgen/rt_cap_aware_20200131_145639_CrXVHZ/rt_cap_aware.json 2>&1\n",
"2020-01-31 14:57:33,619 INFO : lisa.wlgen.rta.RTA : Execution complete\n",
"2020-01-31 14:57:34,440 WARNING : py.warnings : /mnt/data/src/lisa-next/.lisa-venv-3.6/lib/python3.6/site-packages/ipykernel_launcher.py:12: DeprecationWarning: lisa.trace.CollectorBase.get_trace is deprecated and will be removed in version 2.1, use lisa.trace.CollectorBase.get_data instead\n",
" if sys.path[0] == '':\n",
"\n"
]
},
{
"data": {
"text/plain": [
"[</mnt/data/src/lisa-next/results/Target-Juno-20200131_145627.421334/RTA-rt_cap_aware-20200131_145639.362848/trace.dat (file)>]"
]
},
"execution_count": 30,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ftrace_coll = FtraceCollector(target, events=events, buffer_size=10240)\n",
"\n",
"# This is just nifty Python syntactic sugar that starts/stops\n",
"# the recording for us. You could just do:\n",
"# ftrace.start()\n",
"# wload.run()\n",
"# ftrace.stop()\n",
"# ftrace.get_trace(trace_path)\n",
"trace_path = os.path.join(wload.res_dir, \"trace.dat\")\n",
"with ftrace_coll:\n",
" wload.run()\n",
"ftrace_coll.get_trace(trace_path)"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"2020-01-31 14:57:38,286 WARNING : py.warnings : /mnt/data/src/lisa-next/external/trappy/trappy/ftrace.py:224: UserWarning: Cached data is from another trace, invalidating cache.\n",
" warnings.warn(warnstr)\n",
"\n"
]
}
],
"source": [
"trace = Trace(trace_path, plat_info, events=events)"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {},
"outputs": [],
"source": [
"df = trace.df_events(\"sched_switch\")"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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WbLkhFfqj5alNP8DvC48o6s8vnVD0/sFAIDDMnNtKWXZkccee+yxzUuWLNk9XjW1w2OPPXbakiVLOod7zco9AABUwp57AABoseXLl5+zZcuWk448duutt269+uqrn2vmOCOG+8w8OSIejIiThtr/RSnld5tZBAAA1Gz16tXPtGOc0azcvxwRby2lvJCZUyPi4cz8m1LKt1pcGwAAcAJGDPdl8Irbw7fumTr0ddyrcEsejA889FuNVwcAAIzaqC6ozczJmfloROyKiNWllG8P0+b6zOzNzN7jR38AAKAVRnVBbSnlUES8ITNfExFfyMzFpZT1R7W5OyLujhi8FeZtb/qjphcLAACH/WHcPt4lTDgndCvMUsreiPjbiLiyNeUAAMAr25NPPtmxcOHCC0fTduXKlQs6OzsXL1y48MJf+qVf6nz55ZezkbFHDPeZOWtoxT4yc1pELI8In1AFAAANuvbaa/ds2rRp/ZNPPvn4Sy+9lB//+MdPa6S/0WzLeV1EfCYzJ8fgLwP/u5TyV40MCgAALffFfzc/dq2f3tQ+Zy/eF2//1JaRmvX398fKlSsXrF+/fvp55523/3Of+9zmmTNnDhzd7pprrnn28ONly5a9uHXr1o5Gyhtx5b6Usq6UclEp5fWllMWllA81MiAAANRu8+bNJ99www27Nm3a9PjMmTMH7rjjjlnHa//yyy/nZz/72VPf9ra3PXu8diPxCbUAANRpFCvsrTJ37twDK1aseDEi4rrrrvvhnXfeOTsidh6r/bvf/e4zL7nkkheuvPLKF47VZjSEewAAaLLMPO7zI918882v271795SvfOUr//gptpdddtnC3bt3T12yZMmLn/3sZ78/2nGFewAAaLLt27d33H///adcccUVL953332vvfTSS4ddkf/oRz962gMPPPDqhx566MnJkyf/4/GHH374qbGMe0K3wgQAAEbW2dn50l133TX77LPPvnDv3r1TVq1a1Tdcu1tuueWs3bt3T1m2bNkFXV1di1atWvW6Rsa1cg8AAE10/vnnH/je9773+Gja9vf3r23m2FbuAQCgElbuAQCgxZYvX37Oli1bTjry2K233rr16quvfq6Z4wj3AADQYqtXr35m5FaNsy0HAAAqIdwDAEAlhHsAAKiEcA8AAJUQ7gEAoImmT59+0fFev+uuu04966yzFp911lmL77rr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\n",
"text/plain": [
"<Figure size 864x432 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"tasks = ['b_1-', 'b_2-', 'l_0-', 'l_3-', 'l_4-', 'l_5-']\n",
"\n",
"for task in tasks:\n",
" df[df.next_comm.str.contains(task)].__cpu.plot(figsize=(12, 6,), drawstyle='steps-post', legend=True, label=task)\n",
" plt.legend(loc='center left', bbox_to_anchor=(1.0, 0.5))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# New Workload: 2 big tasks only"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {},
"outputs": [],
"source": [
"rtapp_profile = {}\n",
"\n",
"for cpu in target.core_cpus(target.big_core):\n",
" #continue\n",
" rtapp_profile[\"b_{}\".format(cpu)] = Periodic(duty_cycle_pct=15, sched_policy=\"fifo\")#, uclamp_min=800, uclamp_max=1024, duration_s=3)\n",
" \n",
"for cpu in target.core_cpus(target.little_core):\n",
" continue\n",
" rtapp_profile[\"l_{}\".format(cpu)] = Periodic(duty_cycle_pct=10, sched_policy=\"fifo\")#, uclamp_min=800, uclamp_max=1024, duration_s=3)"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {},
"outputs": [],
"source": [
"def provide_calibration(calibration):\n",
" target.plat_info[\"rtapp\"].add_src(\"user\", {\"calib\" : calibration})"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {},
"outputs": [],
"source": [
"# Uncomment if you want to use this\n",
"provide_calibration({0: 556, 1: 220, 2: 217, 3: 553, 4: 553, 5: 554})"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"2020-01-31 14:57:39,315 INFO : lisa.wlgen.rta.RTA : Creating target's run directory: /root/devlib-target/lisa/wlgen/rt_cap_aware_20200131_145739_1hKcLT\n",
"2020-01-31 14:57:39,317 INFO : lisa.target.Target : Creating result directory: /mnt/data/src/lisa-next/results/Target-Juno-20200131_145627.421334/RTA-rt_cap_aware-20200131_145739.316929\n",
"2020-01-31 14:57:39,635 INFO : lisa.wlgen.rta.RTA : Calibration value: 217\n",
"2020-01-31 14:57:39,637 INFO : lisa.wlgen.rta.RTA : Default policy: SCHED_OTHER\n",
"2020-01-31 14:57:39,638 INFO : lisa.wlgen.rta.RTA : ------------------------\n",
"2020-01-31 14:57:39,640 INFO : lisa.wlgen.rta.RTA : task [b_1], sched: FIFO\n",
"2020-01-31 14:57:39,641 INFO : lisa.wlgen.rta.RTA : | start delay: 0.000000 [s]\n",
"2020-01-31 14:57:39,642 INFO : lisa.wlgen.rta.RTA : | loops count: 1\n",
"2020-01-31 14:57:39,644 INFO : lisa.wlgen.rta.RTA : + phase_000001\n",
"2020-01-31 14:57:39,645 INFO : lisa.wlgen.rta.Phase : | duration 1.000000 [s] (10 loops)\n",
"2020-01-31 14:57:39,646 INFO : lisa.wlgen.rta.Phase : | period 100000 [us], duty_cycle 15.00 %\n",
"2020-01-31 14:57:39,647 INFO : lisa.wlgen.rta.Phase : | run_time 15000 [us], sleep_time 85000 [us]\n",
"2020-01-31 14:57:39,651 INFO : lisa.wlgen.rta.RTA : ------------------------\n",
"2020-01-31 14:57:39,652 INFO : lisa.wlgen.rta.RTA : task [b_2], sched: FIFO\n",
"2020-01-31 14:57:39,652 INFO : lisa.wlgen.rta.RTA : | start delay: 0.000000 [s]\n",
"2020-01-31 14:57:39,653 INFO : lisa.wlgen.rta.RTA : | loops count: 1\n",
"2020-01-31 14:57:39,654 INFO : lisa.wlgen.rta.RTA : + phase_000001\n",
"2020-01-31 14:57:39,655 INFO : lisa.wlgen.rta.Phase : | duration 1.000000 [s] (10 loops)\n",
"2020-01-31 14:57:39,656 INFO : lisa.wlgen.rta.Phase : | period 100000 [us], duty_cycle 15.00 %\n",
"2020-01-31 14:57:39,656 INFO : lisa.wlgen.rta.Phase : | run_time 15000 [us], sleep_time 85000 [us]\n"
]
}
],
"source": [
"wload = RTA.by_profile(target, \"rt_cap_aware\", rtapp_profile)"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"2020-01-31 14:57:46,165 WARNING : lisa.wlgen.rta.RTA : CPU capacities will not be updated on this platform\n",
"2020-01-31 14:57:46,173 INFO : lisa.wlgen.rta.RTA : CPU capacities according to rt-app workload: {0: 383, 1: 1024, 2: 1024, 3: 383, 4: 383, 5: 383}\n",
"2020-01-31 14:57:46,174 INFO : lisa.wlgen.rta.RTA : Execution start: cd /root/devlib-target/lisa/wlgen/rt_cap_aware_20200131_145739_1hKcLT && /root/devlib-target/bin/rt-app /root/devlib-target/lisa/wlgen/rt_cap_aware_20200131_145739_1hKcLT/rt_cap_aware.json 2>&1\n",
"2020-01-31 14:57:47,333 INFO : lisa.wlgen.rta.RTA : Execution complete\n",
"2020-01-31 14:57:48,147 WARNING : py.warnings : /mnt/data/src/lisa-next/.lisa-venv-3.6/lib/python3.6/site-packages/ipykernel_launcher.py:12: DeprecationWarning: lisa.trace.CollectorBase.get_trace is deprecated and will be removed in version 2.1, use lisa.trace.CollectorBase.get_data instead\n",
" if sys.path[0] == '':\n",
"\n"
]
},
{
"data": {
"text/plain": [
"[</mnt/data/src/lisa-next/results/Target-Juno-20200131_145627.421334/RTA-rt_cap_aware-20200131_145739.316929/trace.dat (file)>]"
]
},
"execution_count": 38,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ftrace_coll = FtraceCollector(target, events=events, buffer_size=10240)\n",
"\n",
"# This is just nifty Python syntactic sugar that starts/stops\n",
"# the recording for us. You could just do:\n",
"# ftrace.start()\n",
"# wload.run()\n",
"# ftrace.stop()\n",
"# ftrace.get_trace(trace_path)\n",
"trace_path = os.path.join(wload.res_dir, \"trace.dat\")\n",
"with ftrace_coll:\n",
" wload.run()\n",
"ftrace_coll.get_trace(trace_path)"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {},
"outputs": [],
"source": [
"trace_path = os.path.join(wload.res_dir, 'trace.dat')\n",
"trace = Trace(trace_path, target.plat_info, events=events)"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {},
"outputs": [],
"source": [
"plat_info_path = os.path.join(wload.res_dir, \"platinfo.yaml\")\n",
"target.plat_info.to_yaml_map(plat_info_path)"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {},
"outputs": [],
"source": [
"df = trace.df_events(\"sched_switch\")"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAwcAAAFzCAYAAABrdHWxAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAdZUlEQVR4nO3df7BfZX0n8PcHArhqSkEuoEAI2CAgCi53qavMgFPAaC3YoTvAWIpWNrOO9Keso7uMdFA77rKrFrVa1qbYLQXW+qPpFIux1iq1VoJLIWAjIWBJNpgg/gJUes2zf9wn9Wu44X6T+70/CK/XzJl7znOec76fMzxzyfs+55xvtdYCAACw13wXAAAALAzCAQAAkEQ4AAAAOuEAAABIIhwAAACdcAAAACRJFs13AVM56KCD2tKlS+e7DAAA9mC33nrrg621sfmuYyFZkOFg6dKlWbNmzXyXAQDAHqyqvj7fNSw0bisCAACSCAcAAEAnHAAAAEmEAwAAoBMOAACAJMIBAADQCQcAAEAS4QAAAOiEAwAAIMkQ4aCqjqiqv6mqu6rqzqr6jSn6VFVdVVXrq+r2qvq3A/suqqq7+3LRqC8AAAAYjUVD9JlI8qbW2leqanGSW6tqdWvtroE+r0iyrC8/m+SDSX62qg5McnmS8SStH7uqtfatkV4FAAAwY9OGg9ba5iSb+/r3quqrSQ5LMhgOzknyx621luRLVfXTVfXsJKcnWd1aeyhJqmp1kuVJrhvpVeyhPrnm/tx0x+b5LgMAgKeIXXrmoKqWJnlRkn/YYddhSe4f2N7Y23bWPtW5V1TVmqpas3Xr1l0pa4910x2bc/cD35vvMgAAeIoY5raiJElVPTPJx5L8Zmvtu6MupLV2dZKrk2R8fLyN+vxPVssOXZwPvu6U+S4DAGCP86Ffne8KFp6hZg6qap9MBoNrW2sfn6LLpiRHDGwf3tt21g4AACwww7ytqJL8YZKvttbevZNuq5L8Sn9r0YuTfKc/q3BTkrOq6oCqOiDJWb0NAABYYIa5reilSS5MckdV3dbb/kuSJUnSWvtQkhuTvDLJ+iSPJnld3/dQVb09yS39uCu2P5wMAAAsLMO8rejmJDVNn5bkjTvZtzLJyt2qDgAAmDO+IRkAAEgiHAAAAJ1wAAAAJBEOAACATjgAAACSCAcAAEAnHAAAAEmEAwAAoBMOAACAJMIBAADQCQcAAEAS4QAAAOiEAwAAIIlwAAAAdMIBAACQRDgAAAA64QAAAEgiHAAAAJ1wAAAAJBEOAACATjgAAACSCAcAAEAnHAAAAEmEAwAAoBMOAACAJMIBAADQCQcAAEAS4QAAAOgWTdehqlYmeVWSLa21E6bY/5+TvGbgfMclGWutPVRV9yX5XpIfJZlorY2PqnAAAGC0hpk5uCbJ8p3tbK1d2Vo7qbV2UpK3Jvnb1tpDA11e1vcLBgAAsIBNGw5aa59P8tB0/boLklw3o4oAAIB5MbJnDqrq6ZmcYfjYQHNL8umqurWqVozqswAAgNGb9pmDXfALSf5uh1uKTm2tbaqqg5Osrqp/6jMRj9PDw4okWbJkyQjLAgAAhjHKtxWdnx1uKWqtbeo/tyT5RJJTdnZwa+3q1tp4a218bGxshGUBAADDGEk4qKr9k5yW5M8H2p5RVYu3ryc5K8naUXweAAAwesO8yvS6JKcnOaiqNia5PMk+SdJa+1Dv9otJPt1ae2Tg0EOSfKKqtn/On7bW/mp0pQMAAKM0bThorV0wRJ9rMvnK08G2DUlO3N3CAACAueUbkgEAgCTCAQAA0AkHAABAEuEAAADohAMAACCJcAAAAHTCAQAAkEQ4AAAAOuEAAABIIhwAAACdcAAAACQRDgAAgE44AAAAkggHAABAJxwAAABJhAMAAKATDgAAgCTCAQAA0AkHAABAEuEAAADohAMAACCJcAAAAHTCAQAAkEQ4AAAAOuEAAABIIhwAAACdcAAAACQRDgAAgG7acFBVK6tqS1Wt3cn+06vqO1V1W1/eNrBveVWtq6r1VfWWURYOAACM1jAzB9ckWT5Nny+01k7qyxVJUlV7J/lAklckOT7JBVV1/EyKBQAAZs+04aC19vkkD+3GuU9Jsr61tqG19liS65OcsxvnAQAA5sConjn491X1j1X1qap6fm87LMn9A3029jYAAGABWjSCc3wlyZGttYer6pVJPplk2a6epKpWJFmRJEuWLBlBWQAAwK6Y8cxBa+27rbWH+/qNSfapqoOSbEpyxEDXw3vbzs5zdWttvLU2PjY2NtOyAACAXTTjcFBVh1ZV9fVT+jm/meSWJMuq6qiq2jfJ+UlWzfTzAACA2THtbUVVdV2S05McVFUbk1yeZJ8kaa19KMkvJXlDVU0k+X6S81trLclEVV2S5KYkeydZ2Vq7c1auAgAAmLFpw0Fr7YJp9r8/yft3su/GJDfuXmkAAMBc8g3JAABAEuEAAADohAMAACCJcAAAAHTCAQAAkEQ4AAAAOuEAAABIIhwAAACdcAAAACQRDgAAgE44AAAAkggHAABAJxwAAABJhAMAAKATDgAAgCTCAQAA0AkHAABAEuEAAADohAMAACCJcAAAAHTCAQAAkEQ4AAAAOuEAAABIIhwAAACdcAAAACQRDgAAgE44AAAAkggHAABAN204qKqVVbWlqtbuZP9rqur2qrqjqr5YVScO7Luvt99WVWtGWTgAADBaw8wcXJNk+RPsvzfJaa21FyR5e5Krd9j/stbaSa218d0rEQAAmAuLpuvQWvt8VS19gv1fHNj8UpLDZ14WAAAw10b9zMHrk3xqYLsl+XRV3VpVK0b8WQAAwAhNO3MwrKp6WSbDwakDzae21jZV1cFJVlfVP7XWPr+T41ckWZEkS5YsGVVZAADAkEYyc1BVL0zy4STntNa+ub29tbap/9yS5BNJTtnZOVprV7fWxltr42NjY6MoCwAA2AUzDgdVtSTJx5Nc2Fr72kD7M6pq8fb1JGclmfKNRwAAwPyb9raiqrouyelJDqqqjUkuT7JPkrTWPpTkbUmeleT3qypJJvqbiQ5J8onetijJn7bW/moWrgEAABiBYd5WdME0+y9OcvEU7RuSnPj4IwAAgIXINyQDAABJhAMAAKATDgAAgCTCAQAA0AkHAABAEuEAAADohAMAACCJcAAAAHTCAQAAkEQ4AAAAOuEAAABIIhwAAACdcAAAACQRDgAAgG7RfBcAAAALxa233nrwokWLPpzkhOx5f0jflmTtxMTExSeffPKWqToIBwAA0C1atOjDhx566HFjY2Pf2muvvdp81zNK27Ztq61btx7/wAMPfDjJ2VP12dPSEAAAzMQJY2Nj393TgkGS7LXXXm1sbOw7mZwVmbrPHNYDAAAL3V57YjDYrl/bTjOAcAAAACQRDgAAgE44AACABWTdunX7Llu27PnD9P3d3/3dsSVLlpxQVSdv3rx5xi8bEg4AAOBJ6rTTTnt49erVX3vOc57z2CjO51WmAAAwhXd8cu0R92z53tNHec7nHrz40ctefcL90/WbmJjI2WeffdTatWuffswxx3z/ox/96H2LFy/etmO/l770pd8fZX1mDgAAYIG57777nnbJJZds2bBhw52LFy/eduWVV47NxeeaOQAAgCkM8xf+2XLooYc+dtZZZz2SJBdeeOE3r7rqqoOTfGO2P9fMAQAALDBV9YTb0zn11FOXHXvsscefd955R+7KcWYOAABggdm8efO+n/nMZ55xxhlnPHLttdce+JKXvOThXTn+5ptvvnt3PtfMAQAALDBLly79wfve976Djz766Od/+9vfXnTppZdunarfO97xjoMPOeSQF37jG9/Y98QTT9zlmYIdDTVzUFUrk7wqyZbW2glT7K8kv5fklUkeTfLa1tpX+r6Lkly2vf7W2kdmUjAAAOzJnve85z1277333jlM38suu2zLZZddtmVUnz3szME1SZY/wf5XJFnWlxVJPpgkVXVgksuT/GySU5JcXlUH7G6xAADA7Blq5qC19vmqWvoEXc5J8settZbkS1X101X17CSnJ1ndWnsoSapqdSZDxnUzKRoAAJ5KzjzzzOfef//9+w22vfOd79x47rnnfneUnzOqB5IPSzL4qqeNvW1n7UznU7+Z33rgC5Prf7R4fmsBAGBerV69+p65+JwF80ByVa2oqjVVtWbr1imftwAAAGbRqGYONiU5YmD78N62KZO3Fg22f26qE7TWrk5ydZKMj4+3EdX15PWK9+Y9D3w5SfLB150yz8UAAOyBfnXXvjvgqWBUMwerkvxKTXpxku+01jYnuSnJWVV1QH8Q+azeBgAALDDDvsr0ukzOABxUVRsz+QaifZKktfahJDdm8jWm6zP5KtPX9X0PVdXbk9zST3XF9oeTAQCAhWXYtxVdMM3+luSNO9m3MsnKXS8NAACeetatW7fvq171qmV33333tN91cPbZZx91++23P2OfffZpJ5100iN/8id/8vX99ttvt2/RXzAPJAMAALvmNa95zUMbNmxYu27dujt/8IMf1Hvf+96DZnK+UT2QDAAAe5ZP/uoR2bL26SM958EnPJpXr7x/um4TExM5++yzj1q7du3TjznmmO9/9KMfvW/x4sXbdux33nnnfWf7+vj4+CMbN27cdyblmTkAAIAF5r777nvaJZdcsmXDhg13Ll68eNuVV1459kT9f/jDH9YNN9zwrJ//+Z//zhP1m46ZAwAAmMoQf+GfLYceeuhjZ5111iNJcuGFF37zqquuOjjJN3bW/6KLLlry4he/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\n",
"text/plain": [
"<Figure size 864x432 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"tasks = ['b_1-', 'b_2-'] #, 'l_0-', 'l_3-', 'l_4-', 'l_5-']\n",
"\n",
"for task in tasks:\n",
" df[df.next_comm.str.contains(task)].__cpu.plot(figsize=(12, 6,), drawstyle='steps-post', legend=True, label=task)\n",
" plt.legend(loc='center left', bbox_to_anchor=(1.0, 0.5))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.9"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment