# 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:27,513 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 12:31:42,104 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 12:32:27,034 INFO : lisa.target.Target : Connected to target Juno 2023-09-29 12:32:27,037 INFO : lisa.target.Target : Creating result directory: /data_sda/honxia02/lisa/results/Target-Juno-20230929_123227.036816 2023-09-29 12:32:27,081 WARNING : lisa.target.Target : Will not load cgroups devlib module: target is using systemd, which already uses cgroups 2023-09-29 12:32:27,083 INFO : lisa.target.Target : User-defined platform information: 2023-09-29 12:32:27,153 INFO : lisa.energy_model.EnergyModel.from_target : Attempting to load EM using LinuxEnergyModel 2023-09-29 12:32:27,775 INFO : lisa.target.Target : Loading target devlib module cpuidle 2023-09-29 12:32:28,491 INFO : lisa.target.Target : Loading target devlib module cpufreq 2023-09-29 12:32:29,071 INFO : lisa.target.Target : Loading target devlib module sched 2023-09-29 12:32:29,550 INFO : sched : Scheduler sched_domain procfs entries not found 2023-09-29 12:32:29,552 INFO : sched : Detected kernel compiled with SCHED_DEBUG=n 2023-09-29 12:32:29,553 INFO : sched : CPU capacity sysfs entries found 2023-09-29 12:32:30,444 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-ga18a91cd204e 739 SMP PREEMPT_DYNAMIC Fri Sep 29 12:28:30 BST 2023 ├ name from target-conf (str): Juno ├ nrg-model from target (LinuxEnergyModel): <lisa.energy_model.LinuxEnergyModel object at 0x7ffe5c1bfe80> ├ 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 12:32:30,623 INFO : lisa._kmod._KernelBuildEnv : Toolchain detected: CC=clang, CROSS_COMPILE=aarch64-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 12:32:59,089 INFO : lisa.target.Target : Creating result directory: /data_sda/honxia02/lisa/results/Target-Juno-20230929_123227.036816/RTA-20230929_123259.088445
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:33:06,656 INFO : lisa._kmod._KernelBuildEnv : Toolchain detected: CC=clang, CROSS_COMPILE=aarch64-linux-android-, LLVM=1, ARCH=arm64 2023-09-29 12:33:06,735 INFO : lisa._kmod._KernelBuildEnv : Toolchain detected: CC=clang, CROSS_COMPILE=aarch64-linux-android-, LLVM=1, ARCH=arm64 2023-09-29 12:33:09,521 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 12:33:58,711 INFO : lisa._kmod._KernelBuildEnv : Toolchain detected: CC=clang, CROSS_COMPILE=aarch64-linux-android-, LLVM=1, ARCH=arm64 2023-09-29 12:33:58,790 INFO : lisa._kmod._KernelBuildEnv : Toolchain detected: CC=clang, CROSS_COMPILE=aarch64-linux-android-, LLVM=1, ARCH=arm64 2023-09-29 12:34:11,248 INFO : lisa._kmod._KernelBuildEnv : Preparing kernel tree for modules 2023-09-29 12:34:54,728 INFO : lisa._kmod.KmodSrc : Compiling kernel module lisa
with wload, ftrace_coll:
wload.run()
2023-09-29 12:35:10,119 INFO : lisa.wlgen.rta.RTA : Created workload's run target directory: /home/root/devlib-target/lisa/wlgen/20230929_123259_3ea24c08431b4dc19324b834d65531ac 2023-09-29 12:35:10,532 WARNING : lisa.wlgen.rta.RTA : CPU capacities will not be updated on this platform 2023-09-29 12:35:10,541 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:35:16,097 INFO : lisa.wlgen.rta.RTA : Execution start: rt-app /home/root/devlib-target/lisa/wlgen/20230929_123259_3ea24c08431b4dc19324b834d65531ac/RTA.json 2>&1 2023-09-29 12:35:50,023 INFO : lisa.wlgen.rta.RTA : Wiping target run directory: /home/root/devlib-target/lisa/wlgen/20230929_123259_3ea24c08431b4dc19324b834d65531ac
trace = Trace(trace_path, target.plat_info, events=events)
2023-09-29 12:35:55,119 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 12:35:58,550 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:35:58,555 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:35:58,556 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:35:58,563 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:35:58,566 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:35:58,567 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:35:58,574 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:35:58,576 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:35:58,577 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:35:58,583 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:35:58,586 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:35:58,587 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:35:58,627 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:35:58,633 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" : 383,
"util_max" : 384
}
},
"global" : {
"default_policy" : "SCHED_OTHER",
"calibration" : "CPU1",
"logdir" : __LOGDIR__,
"lock_pages" : true
}
}"""
wload = RTA.from_str(target, rtapp_str)
2023-09-29 12:36:27,943 INFO : lisa.target.Target : Creating result directory: /data_sda/honxia02/lisa/results/Target-Juno-20230929_123227.036816/RTA-20230929_123627.942777
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:36:38,979 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:37:06,908 INFO : lisa.wlgen.rta.RTA : Created workload's run target directory: /home/root/devlib-target/lisa/wlgen/20230929_123627_838a8543344348f7800f9b25c5aa1a14 2023-09-29 12:37:07,044 WARNING : lisa.wlgen.rta.RTA : CPU capacities will not be updated on this platform 2023-09-29 12:37:07,052 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:37:12,242 INFO : lisa.wlgen.rta.RTA : Execution start: rt-app /home/root/devlib-target/lisa/wlgen/20230929_123627_838a8543344348f7800f9b25c5aa1a14/RTA.json 2>&1 2023-09-29 12:37:59,182 INFO : lisa.wlgen.rta.RTA : Wiping target run directory: /home/root/devlib-target/lisa/wlgen/20230929_123627_838a8543344348f7800f9b25c5aa1a14
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:38:20,512 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:38:20,516 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:38:20,517 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:38:20,530 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:38:20,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) 2023-09-29 12:38:20,533 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:38:20,545 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:38:20,548 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:38:20,549 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:38:20,561 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:38:20,563 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:38:20,564 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:38:20,643 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:38:20,649 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:38:56,712 INFO : lisa.target.Target : Creating result directory: /data_sda/honxia02/lisa/results/Target-Juno-20230929_123227.036816/RTA-20230929_123856.710924
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:39:06,878 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:39:34,902 INFO : lisa.wlgen.rta.RTA : Created workload's run target directory: /home/root/devlib-target/lisa/wlgen/20230929_123856_70e151c3c59647a5b5dd1e54b63187cb 2023-09-29 12:39:35,034 WARNING : lisa.wlgen.rta.RTA : CPU capacities will not be updated on this platform 2023-09-29 12:39:35,042 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:39:41,125 INFO : lisa.wlgen.rta.RTA : Execution start: rt-app /home/root/devlib-target/lisa/wlgen/20230929_123856_70e151c3c59647a5b5dd1e54b63187cb/RTA.json 2>&1 2023-09-29 12:40:18,031 INFO : lisa.wlgen.rta.RTA : Wiping target run directory: /home/root/devlib-target/lisa/wlgen/20230929_123856_70e151c3c59647a5b5dd1e54b63187cb
trace = Trace(trace_path, target.plat_info, events=events)
plot_root_cfs_rq_and_rq(trace, 5)
2023-09-29 12:40:22,377 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:40:22,380 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:40:44,431 INFO : lisa.target.Target : Creating result directory: /data_sda/honxia02/lisa/results/Target-Juno-20230929_123227.036816/RTA-20230929_124044.430267
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:40:55,288 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:41:23,291 INFO : lisa.wlgen.rta.RTA : Created workload's run target directory: /home/root/devlib-target/lisa/wlgen/20230929_124044_c961ce85a4c54b0abd773d89b511ee86 2023-09-29 12:41:23,424 WARNING : lisa.wlgen.rta.RTA : CPU capacities will not be updated on this platform 2023-09-29 12:41:23,431 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:41:28,692 INFO : lisa.wlgen.rta.RTA : Execution start: rt-app /home/root/devlib-target/lisa/wlgen/20230929_124044_c961ce85a4c54b0abd773d89b511ee86/RTA.json 2>&1 2023-09-29 12:41:47,243 INFO : lisa.wlgen.rta.RTA : Wiping target run directory: /home/root/devlib-target/lisa/wlgen/20230929_124044_c961ce85a4c54b0abd773d89b511ee86
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:41:57,764 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:41:57,768 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:41:57,771 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:41:57,776 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:41:57,779 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:41:57,798 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)