# The experiments done in notebooks are on Arm Juno r2 board. CPU0-3 are
# little cores with capacity of 383. CPU4-5 are big cores.
import logging
from lisa.utils import setup_logging
setup_logging()
from lisa.target import Target, TargetConf
from lisa.wlgen.rta import RTA
import os
from lisa.trace import FtraceCollector
from lisa.trace import Trace
import holoviews as hv
from lisa.platforms.platinfo import PlatformInfo
from lisa.trace import TaskID
2023-10-03 13:36:16,847 INFO : root : Using LISA logging configuration: /data_sda/honxia02/lisa/logging.conf
def provide_calibration(calibration):
target.plat_info["rtapp"].add_src("user", {"calib" : calibration})
def set_cas_mode():
target.cpufreq.set_all_governors('ondemand')
def create_data_frame(trace, event, task = '', cpu = '-1'):
df = trace.df_event(event)
df = df.copy()
if event.endswith('_se'):
df = df[(df['comm'] == task)]
elif event.endswith('_cfs'):
if event.startswith('sched'):
df = df[(df['path'] == '/')]
df = df[(df['cpu'] == cpu)]
elif event.endswith('cpu_frequency'):
df = df[(df['__cpu'] == cpu)]
df.state = df.state / 1000
df = df.reset_index()
df = df.set_index('Time')
return df
def grid_style():
return {'grid_line_color': 'gray', 'grid_line_width': 1.0, 'ygrid_bounds': (0,4000),
'minor_ygrid_line_color': 'lightgray',
'minor_xgrid_line_color': 'lightgray', 'xgrid_line_dash': [4, 4]}
def plot_task(trace, task):
dfs_pelt = create_data_frame(trace, 'sched_pelt_se', task)
dfs_uclamp = create_data_frame(trace, 'uclamp_util_se', task)
dfs_freq = create_data_frame(trace, 'cpu_frequency', task)
plt = hv.Curve(dfs_pelt, 'Time', 'util').relabel('util_avg').opts(interpolation='steps-pre') * \
hv.Curve(dfs_pelt, 'Time', 'state').relabel('cpu_freq').opts(interpolation='steps-pre') * \
hv.Curve(dfs_uclamp, 'Time', 'uclamp_avg').relabel('util_avg_uclamp').opts(interpolation='steps-pre')
curve_opts = hv.opts.Curve(width=1000, height=200, xlabel='time [s]', ylabel='{}_avg'.format('util'), tools=['hover'],
title='{}: {}'.format(task, 'util and util_uclamp'),
show_grid=True, gridstyle=grid_style())
return plt.opts(curve_opts)
def plot_task_overutilized(trace, comm):
task = TaskID(pid=None, comm=comm)
ana = trace.ana(tasks=[task])
util_fig = ana.load_tracking.plot_task_signals(task, signals=['util'])
return util_fig
def plot_root_cfs_rq_and_rq(trace, cpu):
dfs_pelt = create_data_frame(trace, 'sched_pelt_cfs', cpu=cpu)
dfs_uclamp = create_data_frame(trace, 'uclamp_util_cfs', cpu=cpu)
dfs_freq = create_data_frame(trace, 'cpu_frequency', cpu=cpu)
plt = hv.Curve(dfs_pelt, 'Time', 'util').relabel('util_avg').opts(interpolation='steps-pre') * \
hv.Curve(dfs_freq, 'Time', 'state').relabel('cpu_frequency').opts(interpolation='steps-pre') * \
hv.Curve(dfs_uclamp, 'Time', 'uclamp_avg').relabel('root_cfs_util_uclamp').opts(interpolation='steps-pre')
curve_opts = hv.opts.Curve(width=1000, height=200, xlabel='time [s]', ylabel='{}_avg'.format('util'), tools=['hover'],
title='root cfs_rq[{}]: {}'.format(cpu, 'util and util_uclamp'),
show_grid=True, gridstyle=grid_style())
return plt.opts(curve_opts)
def plot_trace_view(trace, comms):
tasks = [TaskID(pid=None, comm=x) for x in comms]
ana = trace.ana(tasks=tasks)
activation_fig = ana.tasks.plot_tasks_activation()
return activation_fig
hv.extension('bokeh')
target = Target.from_default_conf()
2023-09-29 11:42:28,435 INFO : lisa.target.Target : Target configuration: ├ devlib: ├ excluded-modules from default (list): [] ├ max-async from user (int): 2 └ platform: └ class from default (str): devlib.platform.Platform ├ host from user (str): 10.42.0.10 ├ kernel: ├ modules: ├ make-variables from user (dict): {'LLVM': 1} └ src from user (str): /data_nvme1n1/honxia02/linux_tip ├ kind from user (str): linux ├ lazy-platinfo from default (bool): False ├ name from user (str): Juno ├ password from user (str): <password> ├ tools from default (list): [] ├ username from user (str): root └ wait-boot: ├ enable from default (bool): True └ timeout from default (int): 10 2023-09-29 11:43:14,023 INFO : lisa.target.Target : Connected to target Juno 2023-09-29 11:43:14,025 INFO : lisa.target.Target : Creating result directory: /data_sda/honxia02/lisa/results/Target-Juno-20230929_114314.025590 2023-09-29 11:43:14,080 WARNING : lisa.target.Target : Will not load cgroups devlib module: target is using systemd, which already uses cgroups 2023-09-29 11:43:14,081 INFO : lisa.target.Target : User-defined platform information: 2023-09-29 11:43:14,166 INFO : lisa.energy_model.EnergyModel.from_target : Attempting to load EM using LinuxEnergyModel 2023-09-29 11:43:14,776 INFO : lisa.target.Target : Loading target devlib module cpuidle 2023-09-29 11:43:15,433 INFO : lisa.target.Target : Loading target devlib module cpufreq 2023-09-29 11:43:16,019 INFO : lisa.target.Target : Loading target devlib module sched 2023-09-29 11:43:16,572 INFO : sched : Scheduler sched_domain procfs entries not found 2023-09-29 11:43:16,572 INFO : sched : Detected kernel compiled with SCHED_DEBUG=n 2023-09-29 11:43:16,573 INFO : sched : CPU capacity sysfs entries found 2023-09-29 11:43:17,459 INFO : lisa.target.Target : Effective platform information: ├ abi from target (str): arm64 ├ cpu-capacities: ├ orig from target (dict): {0: 383, 1: 383, 2: 383, 3: 383, 4: 1024, 5: 1024} ├ writeable from target (bool): False └ 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> ├ cpus-count from target (int): 6 ├ freq-domains from target (list): [[0, 1, 2, 3], [4, 5]] ├ freqs from target (dict): {0: [450000, 800000, 950000], 1: [450000, 800000, 950000], 2: [450000, 800000, 950000], 3: [450000, 800000, 950000], 4: [600000, 1000000, 1200000], 5: [600000, 1000000, 1200000]} ├ kernel: ├ config from target (TypedKernelConfig): <kernel config> ├ symbols-address from target (FilteredDeferredValue): <symbols address> └ version from target (KernelVersion): 6.5.0-rc2-g022438a081b5 738 SMP PREEMPT_DYNAMIC Fri Sep 29 11:26:56 BST 2023 ├ name from target-conf (str): Juno ├ nrg-model from target (LinuxEnergyModel): <lisa.energy_model.LinuxEnergyModel object at 0x7ffe10095de0> ├ numa-nodes-count from target (int): 1 ├ os from target (str): linux ├ rtapp: └ calib from target (FilteredDeferredValue): <lazy value of FilteredDeferredValue.__init__.<locals>._callback> └ capacity-classes from target(platform-info/cpu-capacities/orig) (list): [[0, 1, 2, 3], [4, 5]] 2023-09-29 11:43:17,655 INFO : lisa._kmod._KernelBuildEnv : Toolchain detected: CC=clang, CROSS_COMPILE=aarch64-none-linux-android-, LLVM=1, ARCH=arm64
provide_calibration({0: 186, 1: 186, 2: 186, 3: 186, 4: 66, 5: 66})
events = [
'sched_switch',
'sched_wakeup',
'task_rename',
'lisa__sched_pelt_cfs',
'lisa__sched_pelt_se',
'lisa__sched_overutilized',
'lisa__uclamp_util_se',
'lisa__uclamp_util_cfs',
'cpu_frequency'
]
rtapp_str = """{
"tasks" : {
"thread0" : {
"instance" : 4,
"loop" : 1000,
"run" : 10000,
"sleep" : 1,
"util_min" : 0,
"util_max" : 200
}
},
"global" : {
"default_policy" : "SCHED_OTHER",
"calibration" : "CPU1",
"logdir" : __LOGDIR__,
"lock_pages" : true
}
}"""
wload = RTA.from_str(target, rtapp_str)
2023-09-29 11:43:39,568 INFO : lisa.target.Target : Creating result directory: /data_sda/honxia02/lisa/results/Target-Juno-20230929_114314.025590/RTA-20230929_114339.567774
trace_path = os.path.join(wload.res_dir, "trace.dat")
ftrace_coll = FtraceCollector(target, events=events, buffer_size=10240, output_path=trace_path)
2023-09-29 11:43:42,320 INFO : lisa._kmod._KernelBuildEnv : Toolchain detected: CC=clang, CROSS_COMPILE=aarch64-none-linux-android-, LLVM=1, ARCH=arm64 2023-09-29 11:43:42,398 INFO : lisa._kmod._KernelBuildEnv : Toolchain detected: CC=clang, CROSS_COMPILE=aarch64-none-linux-android-, LLVM=1, ARCH=arm64 2023-09-29 11:43:45,284 INFO : lisa.trace.FtraceCollector : Building kernel module to try to provide the following events that are not currently available on the target: lisa__sched_overutilized, lisa__sched_pelt_cfs, lisa__sched_pelt_se, lisa__uclamp_util_cfs, lisa__uclamp_util_se 2023-09-29 11:44:34,494 INFO : lisa._kmod._KernelBuildEnv : Toolchain detected: CC=clang, CROSS_COMPILE=aarch64-none-linux-android-, LLVM=1, ARCH=arm64 2023-09-29 11:44:34,563 INFO : lisa._kmod._KernelBuildEnv : Toolchain detected: CC=clang, CROSS_COMPILE=aarch64-none-linux-android-, LLVM=1, ARCH=arm64 2023-09-29 11:44:34,698 INFO : lisa._kmod._KernelBuildEnv : Preparing kernel tree for modules 2023-09-29 11:45:24,690 INFO : lisa._kmod.KmodSrc : Compiling kernel module lisa
with wload, ftrace_coll:
wload.run()
2023-09-29 11:45:46,132 INFO : lisa.wlgen.rta.RTA : Created workload's run target directory: /home/root/devlib-target/lisa/wlgen/20230929_114339_50ba722e26cf41c0a4297e95e6d5b401 2023-09-29 11:45:46,556 WARNING : lisa.wlgen.rta.RTA : CPU capacities will not be updated on this platform 2023-09-29 11:45:46,565 INFO : lisa.wlgen.rta.RTA : CPU capacities according to rt-app workload: {0: 383, 1: 383, 2: 383, 3: 383, 4: 1024, 5: 1024} 2023-09-29 11:45:51,797 INFO : lisa.wlgen.rta.RTA : Execution start: rt-app /home/root/devlib-target/lisa/wlgen/20230929_114339_50ba722e26cf41c0a4297e95e6d5b401/RTA.json 2>&1 2023-09-29 11:46:23,689 INFO : lisa.wlgen.rta.RTA : Wiping target run directory: /home/root/devlib-target/lisa/wlgen/20230929_114339_50ba722e26cf41c0a4297e95e6d5b401
trace = Trace(trace_path, target.plat_info, events=events)
2023-09-29 11:46:36,778 INFO : lisa.platforms.platinfo.PlatformInfo : Attempting to read kallsyms from target
plot_trace_view(trace, ['thread0-0', 'thread0-1', 'thread0-2', 'thread0-3'])
2023-09-29 11:47:34,787 WARNING : py.warnings : /data_sda/honxia02/lisa/.lisa-venv-3.10/lib/python3.10/site-packages/holoviews/core/util.py:1175: FutureWarning: unique with argument that is not not a Series, Index, ExtensionArray, or np.ndarray is deprecated and will raise in a future version. return pd.unique(values) 2023-09-29 11:47:34,792 WARNING : py.warnings : /data_sda/honxia02/lisa/.lisa-venv-3.10/lib/python3.10/site-packages/holoviews/core/util.py:1175: FutureWarning: unique with argument that is not not a Series, Index, ExtensionArray, or np.ndarray is deprecated and will raise in a future version. return pd.unique(values) 2023-09-29 11:47:34,795 WARNING : py.warnings : /data_sda/honxia02/lisa/.lisa-venv-3.10/lib/python3.10/site-packages/holoviews/core/util.py:1175: FutureWarning: unique with argument that is not not a Series, Index, ExtensionArray, or np.ndarray is deprecated and will raise in a future version. return pd.unique(values) 2023-09-29 11:47:34,802 WARNING : py.warnings : /data_sda/honxia02/lisa/.lisa-venv-3.10/lib/python3.10/site-packages/holoviews/core/util.py:1175: FutureWarning: unique with argument that is not not a Series, Index, ExtensionArray, or np.ndarray is deprecated and will raise in a future version. return pd.unique(values) 2023-09-29 11:47:34,805 WARNING : py.warnings : /data_sda/honxia02/lisa/.lisa-venv-3.10/lib/python3.10/site-packages/holoviews/core/util.py:1175: FutureWarning: unique with argument that is not not a Series, Index, ExtensionArray, or np.ndarray is deprecated and will raise in a future version. return pd.unique(values) 2023-09-29 11:47:34,806 WARNING : py.warnings : /data_sda/honxia02/lisa/.lisa-venv-3.10/lib/python3.10/site-packages/holoviews/core/util.py:1175: FutureWarning: unique with argument that is not not a Series, Index, ExtensionArray, or np.ndarray is deprecated and will raise in a future version. return pd.unique(values) 2023-09-29 11:47:34,812 WARNING : py.warnings : /data_sda/honxia02/lisa/.lisa-venv-3.10/lib/python3.10/site-packages/holoviews/core/util.py:1175: FutureWarning: unique with argument that is not not a Series, Index, ExtensionArray, or np.ndarray is deprecated and will raise in a future version. return pd.unique(values) 2023-09-29 11:47:34,815 WARNING : py.warnings : /data_sda/honxia02/lisa/.lisa-venv-3.10/lib/python3.10/site-packages/holoviews/core/util.py:1175: FutureWarning: unique with argument that is not not a Series, Index, ExtensionArray, or np.ndarray is deprecated and will raise in a future version. return pd.unique(values) 2023-09-29 11:47:34,817 WARNING : py.warnings : /data_sda/honxia02/lisa/.lisa-venv-3.10/lib/python3.10/site-packages/holoviews/core/util.py:1175: FutureWarning: unique with argument that is not not a Series, Index, ExtensionArray, or np.ndarray is deprecated and will raise in a future version. return pd.unique(values) 2023-09-29 11:47:34,824 WARNING : py.warnings : /data_sda/honxia02/lisa/.lisa-venv-3.10/lib/python3.10/site-packages/holoviews/core/util.py:1175: FutureWarning: unique with argument that is not not a Series, Index, ExtensionArray, or np.ndarray is deprecated and will raise in a future version. return pd.unique(values) 2023-09-29 11:47:34,827 WARNING : py.warnings : /data_sda/honxia02/lisa/.lisa-venv-3.10/lib/python3.10/site-packages/holoviews/core/util.py:1175: FutureWarning: unique with argument that is not not a Series, Index, ExtensionArray, or np.ndarray is deprecated and will raise in a future version. return pd.unique(values) 2023-09-29 11:47:34,828 WARNING : py.warnings : /data_sda/honxia02/lisa/.lisa-venv-3.10/lib/python3.10/site-packages/holoviews/core/util.py:1175: FutureWarning: unique with argument that is not not a Series, Index, ExtensionArray, or np.ndarray is deprecated and will raise in a future version. return pd.unique(values) 2023-09-29 11:47:34,870 WARNING : py.warnings : /data_sda/honxia02/lisa/.lisa-venv-3.10/lib/python3.10/site-packages/holoviews/core/data/pandas.py:39: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]` return dataset.data.dtypes[idx].type 2023-09-29 11:47:34,877 WARNING : py.warnings : /data_sda/honxia02/lisa/.lisa-venv-3.10/lib/python3.10/site-packages/holoviews/core/data/pandas.py:39: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]` return dataset.data.dtypes[idx].type
rtapp_str = """{
"tasks" : {
"thread0" : {
"instance" : 4,
"loop" : 10000,
"runtime" : 1000,
"sleep" : 1,
"util_min" : 308,
"util_max" : 309
}
},
"global" : {
"default_policy" : "SCHED_OTHER",
"calibration" : "CPU1",
"logdir" : __LOGDIR__,
"lock_pages" : true
}
}"""
wload = RTA.from_str(target, rtapp_str)
2023-09-29 12:12:49,282 INFO : lisa.target.Target : Creating result directory: /data_sda/honxia02/lisa/results/Target-Juno-20230929_114314.025590/RTA-20230929_121249.281699
trace_path = os.path.join(wload.res_dir, "trace.dat")
ftrace_coll = FtraceCollector(target, events=events, buffer_size=65536, output_path=trace_path)
2023-09-29 12:12:52,363 INFO : lisa.trace.FtraceCollector : Building kernel module to try to provide the following events that are not currently available on the target: lisa__sched_overutilized, lisa__sched_pelt_cfs, lisa__sched_pelt_se, lisa__uclamp_util_cfs, lisa__uclamp_util_se
with wload, ftrace_coll:
wload.run()
2023-09-29 12:13:20,432 INFO : lisa.wlgen.rta.RTA : Created workload's run target directory: /home/root/devlib-target/lisa/wlgen/20230929_121249_38e0c433359c484d92c8923ed1180e2a 2023-09-29 12:13:20,566 WARNING : lisa.wlgen.rta.RTA : CPU capacities will not be updated on this platform 2023-09-29 12:13:20,574 INFO : lisa.wlgen.rta.RTA : CPU capacities according to rt-app workload: {0: 383, 1: 383, 2: 383, 3: 383, 4: 1024, 5: 1024} 2023-09-29 12:13:26,291 INFO : lisa.wlgen.rta.RTA : Execution start: rt-app /home/root/devlib-target/lisa/wlgen/20230929_121249_38e0c433359c484d92c8923ed1180e2a/RTA.json 2>&1 2023-09-29 12:14:11,250 INFO : lisa.wlgen.rta.RTA : Wiping target run directory: /home/root/devlib-target/lisa/wlgen/20230929_121249_38e0c433359c484d92c8923ed1180e2a
trace = Trace(trace_path, target.plat_info, events=events)
plot_trace_view(trace, ['thread0-0', 'thread0-1', 'thread0-2', 'thread0-3'])
2023-09-29 12:18:16,879 WARNING : py.warnings : /data_sda/honxia02/lisa/.lisa-venv-3.10/lib/python3.10/site-packages/holoviews/core/util.py:1175: FutureWarning: unique with argument that is not not a Series, Index, ExtensionArray, or np.ndarray is deprecated and will raise in a future version. return pd.unique(values) 2023-09-29 12:18:16,883 WARNING : py.warnings : /data_sda/honxia02/lisa/.lisa-venv-3.10/lib/python3.10/site-packages/holoviews/core/util.py:1175: FutureWarning: unique with argument that is not not a Series, Index, ExtensionArray, or np.ndarray is deprecated and will raise in a future version. return pd.unique(values) 2023-09-29 12:18:16,885 WARNING : py.warnings : /data_sda/honxia02/lisa/.lisa-venv-3.10/lib/python3.10/site-packages/holoviews/core/util.py:1175: FutureWarning: unique with argument that is not not a Series, Index, ExtensionArray, or np.ndarray is deprecated and will raise in a future version. return pd.unique(values) 2023-09-29 12:18:16,897 WARNING : py.warnings : /data_sda/honxia02/lisa/.lisa-venv-3.10/lib/python3.10/site-packages/holoviews/core/util.py:1175: FutureWarning: unique with argument that is not not a Series, Index, ExtensionArray, or np.ndarray is deprecated and will raise in a future version. return pd.unique(values) 2023-09-29 12:18:16,900 WARNING : py.warnings : /data_sda/honxia02/lisa/.lisa-venv-3.10/lib/python3.10/site-packages/holoviews/core/util.py:1175: FutureWarning: unique with argument that is not not a Series, Index, ExtensionArray, or np.ndarray is deprecated and will raise in a future version. return pd.unique(values) 2023-09-29 12:18:16,901 WARNING : py.warnings : /data_sda/honxia02/lisa/.lisa-venv-3.10/lib/python3.10/site-packages/holoviews/core/util.py:1175: FutureWarning: unique with argument that is not not a Series, Index, ExtensionArray, or np.ndarray is deprecated and will raise in a future version. return pd.unique(values) 2023-09-29 12:18:16,912 WARNING : py.warnings : /data_sda/honxia02/lisa/.lisa-venv-3.10/lib/python3.10/site-packages/holoviews/core/util.py:1175: FutureWarning: unique with argument that is not not a Series, Index, ExtensionArray, or np.ndarray is deprecated and will raise in a future version. return pd.unique(values) 2023-09-29 12:18:16,915 WARNING : py.warnings : /data_sda/honxia02/lisa/.lisa-venv-3.10/lib/python3.10/site-packages/holoviews/core/util.py:1175: FutureWarning: unique with argument that is not not a Series, Index, ExtensionArray, or np.ndarray is deprecated and will raise in a future version. return pd.unique(values) 2023-09-29 12:18:16,916 WARNING : py.warnings : /data_sda/honxia02/lisa/.lisa-venv-3.10/lib/python3.10/site-packages/holoviews/core/util.py:1175: FutureWarning: unique with argument that is not not a Series, Index, ExtensionArray, or np.ndarray is deprecated and will raise in a future version. return pd.unique(values) 2023-09-29 12:18:16,927 WARNING : py.warnings : /data_sda/honxia02/lisa/.lisa-venv-3.10/lib/python3.10/site-packages/holoviews/core/util.py:1175: FutureWarning: unique with argument that is not not a Series, Index, ExtensionArray, or np.ndarray is deprecated and will raise in a future version. return pd.unique(values) 2023-09-29 12:18:16,930 WARNING : py.warnings : /data_sda/honxia02/lisa/.lisa-venv-3.10/lib/python3.10/site-packages/holoviews/core/util.py:1175: FutureWarning: unique with argument that is not not a Series, Index, ExtensionArray, or np.ndarray is deprecated and will raise in a future version. return pd.unique(values) 2023-09-29 12:18:16,931 WARNING : py.warnings : /data_sda/honxia02/lisa/.lisa-venv-3.10/lib/python3.10/site-packages/holoviews/core/util.py:1175: FutureWarning: unique with argument that is not not a Series, Index, ExtensionArray, or np.ndarray is deprecated and will raise in a future version. return pd.unique(values) 2023-09-29 12:18:17,005 WARNING : py.warnings : /data_sda/honxia02/lisa/.lisa-venv-3.10/lib/python3.10/site-packages/holoviews/core/data/pandas.py:39: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]` return dataset.data.dtypes[idx].type 2023-09-29 12:18:17,011 WARNING : py.warnings : /data_sda/honxia02/lisa/.lisa-venv-3.10/lib/python3.10/site-packages/holoviews/core/data/pandas.py:39: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]` return dataset.data.dtypes[idx].type
rtapp_str = """{
"tasks": {
"thread0": {
"instance": 1,
"loop": 1,
"phases": {
"p0": {
"cpus": [4],
"loop": 1000,
"run": 2000,
"sleep": 8000
},
"p1": {
"cpus": [5],
"loop": 1000,
"run": 2000,
"sleep": 8000
}
}
},
"thread1": {
"instance": 1,
"loop": 1,
"phases": {
"p0": {
"cpus": [5],
"loop": 200,
"run": 50000,
"util_max": 200
},
"p1": {
"cpus": [5],
"loop": 50,
"run": 50000,
"util_max": 200
}
}
}
},
"global" : {
"default_policy" : "SCHED_OTHER",
"calibration" : "CPU1",
"logdir" : __LOGDIR__,
"lock_pages" : true
}
}"""
wload = RTA.from_str(target, rtapp_str)
2023-09-29 12:22:52,958 INFO : lisa.target.Target : Creating result directory: /data_sda/honxia02/lisa/results/Target-Juno-20230929_114314.025590/RTA-20230929_122252.957307
trace_path = os.path.join(wload.res_dir, "trace.dat")
ftrace_coll = FtraceCollector(target, events=events, buffer_size=10240, output_path=trace_path)
2023-09-29 12:22:55,930 INFO : lisa.trace.FtraceCollector : Building kernel module to try to provide the following events that are not currently available on the target: lisa__sched_overutilized, lisa__sched_pelt_cfs, lisa__sched_pelt_se, lisa__uclamp_util_cfs, lisa__uclamp_util_se
with wload, ftrace_coll:
wload.run()
2023-09-29 12:23:23,987 INFO : lisa.wlgen.rta.RTA : Created workload's run target directory: /home/root/devlib-target/lisa/wlgen/20230929_122252_6098d3a627f74a9d9de8dc30f970d69a 2023-09-29 12:23:24,115 WARNING : lisa.wlgen.rta.RTA : CPU capacities will not be updated on this platform 2023-09-29 12:23:24,122 INFO : lisa.wlgen.rta.RTA : CPU capacities according to rt-app workload: {0: 383, 1: 383, 2: 383, 3: 383, 4: 1024, 5: 1024} 2023-09-29 12:23:29,337 INFO : lisa.wlgen.rta.RTA : Execution start: rt-app /home/root/devlib-target/lisa/wlgen/20230929_122252_6098d3a627f74a9d9de8dc30f970d69a/RTA.json 2>&1 2023-09-29 12:24:07,759 INFO : lisa.wlgen.rta.RTA : Wiping target run directory: /home/root/devlib-target/lisa/wlgen/20230929_122252_6098d3a627f74a9d9de8dc30f970d69a
trace = Trace(trace_path, target.plat_info, events=events)
plot_root_cfs_rq_and_rq(trace, 5)
2023-09-29 12:24:12,317 WARNING : py.warnings : /data_sda/honxia02/lisa/.lisa-venv-3.10/lib/python3.10/site-packages/holoviews/core/data/pandas.py:39: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]` return dataset.data.dtypes[idx].type 2023-09-29 12:24:12,320 WARNING : py.warnings : /data_sda/honxia02/lisa/.lisa-venv-3.10/lib/python3.10/site-packages/holoviews/core/data/pandas.py:39: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]` return dataset.data.dtypes[idx].type
rtapp_str = """{
"tasks": {
"thread0": {
"instance": 4,
"loop": 1,
"cpus": [0, 1, 2, 3],
"phases": {
"p0": {
"cpus": [0, 1, 2, 3],
"loop": 32,
"runtime": 100000
},
"p1": {
"cpus": [0, 1, 2, 3],
"loop": 32,
"runtime": 100000,
"sleep": 1
}
},
"util_max": 120
},
"thread1": {
"instance": 4,
"loop": 1,
"cpus": [4, 5],
"phases": {
"p0": {
"cpus": [4, 5],
"loop": 32,
"runtime": 100000,
"sleep": 1
},
"p1": {
"cpus": [0, 1, 2, 3, 4, 5],
"loop": 3200,
"runtime": 1000,
"sleep": 1
}
},
"util_max": 120
}
},
"global" : {
"default_policy" : "SCHED_OTHER",
"calibration" : 66,
"logdir" : __LOGDIR__,
"lock_pages" : true
}
}"""
wload = RTA.from_str(target, rtapp_str)
2023-09-29 12:24:21,909 INFO : lisa.target.Target : Creating result directory: /data_sda/honxia02/lisa/results/Target-Juno-20230929_114314.025590/RTA-20230929_122421.908519
trace_path = os.path.join(wload.res_dir, "trace.dat")
ftrace_coll = FtraceCollector(target, events=events, buffer_size=65536, output_path=trace_path)
2023-09-29 12:24:25,015 INFO : lisa.trace.FtraceCollector : Building kernel module to try to provide the following events that are not currently available on the target: lisa__sched_overutilized, lisa__sched_pelt_cfs, lisa__sched_pelt_se, lisa__uclamp_util_cfs, lisa__uclamp_util_se
with wload, ftrace_coll:
wload.run()
2023-09-29 12:24:53,095 INFO : lisa.wlgen.rta.RTA : Created workload's run target directory: /home/root/devlib-target/lisa/wlgen/20230929_122421_83922450611f47379fd393615b721d46 2023-09-29 12:24:53,255 WARNING : lisa.wlgen.rta.RTA : CPU capacities will not be updated on this platform 2023-09-29 12:24:53,262 INFO : lisa.wlgen.rta.RTA : CPU capacities according to rt-app workload: {0: 383, 1: 383, 2: 383, 3: 383, 4: 1024, 5: 1024} 2023-09-29 12:24:58,712 INFO : lisa.wlgen.rta.RTA : Execution start: rt-app /home/root/devlib-target/lisa/wlgen/20230929_122421_83922450611f47379fd393615b721d46/RTA.json 2>&1 2023-09-29 12:25:18,458 INFO : lisa.wlgen.rta.RTA : Wiping target run directory: /home/root/devlib-target/lisa/wlgen/20230929_122421_83922450611f47379fd393615b721d46
trace = Trace(trace_path, target.plat_info, events=events)
plot_trace_view(trace, ['thread0-0', 'thread0-1', 'thread0-2', 'thread0-3', 'thread1-4', 'thread1-5', 'thread1-6', 'thread1-7'])
2023-09-29 12:25:26,500 WARNING : py.warnings : /data_sda/honxia02/lisa/.lisa-venv-3.10/lib/python3.10/site-packages/holoviews/core/util.py:1175: FutureWarning: unique with argument that is not not a Series, Index, ExtensionArray, or np.ndarray is deprecated and will raise in a future version. return pd.unique(values) 2023-09-29 12:25:26,504 WARNING : py.warnings : /data_sda/honxia02/lisa/.lisa-venv-3.10/lib/python3.10/site-packages/holoviews/core/util.py:1175: FutureWarning: unique with argument that is not not a Series, Index, ExtensionArray, or np.ndarray is deprecated and will raise in a future version. return pd.unique(values) 2023-09-29 12:25:26,506 WARNING : py.warnings : /data_sda/honxia02/lisa/.lisa-venv-3.10/lib/python3.10/site-packages/holoviews/core/util.py:1175: FutureWarning: unique with argument that is not not a Series, Index, ExtensionArray, or np.ndarray is deprecated and will raise in a future version. return pd.unique(values) 2023-09-29 12:25:26,510 WARNING : py.warnings : /data_sda/honxia02/lisa/.lisa-venv-3.10/lib/python3.10/site-packages/holoviews/core/data/pandas.py:39: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]` return dataset.data.dtypes[idx].type 2023-09-29 12:25:26,513 WARNING : py.warnings : /data_sda/honxia02/lisa/.lisa-venv-3.10/lib/python3.10/site-packages/holoviews/core/data/pandas.py:39: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]` return dataset.data.dtypes[idx].type 2023-09-29 12:25:26,532 WARNING : py.warnings : /data_sda/honxia02/lisa/.lisa-venv-3.10/lib/python3.10/site-packages/holoviews/core/util.py:1175: FutureWarning: unique with argument that is not not a Series, Index, ExtensionArray, or np.ndarray is deprecated and will raise in a future version. return pd.unique(values)