wlauto.workloads.rt_app package¶
Module contents¶
-
class
wlauto.workloads.rt_app.
RtApp
(device, **kwargs)[source]¶ Bases:
wlauto.core.workload.Workload
-
aliases
= AC([])¶
-
artifacts
= AC([])¶
-
core_modules
= []¶
-
description
= '\n A test application that simulates configurable real-time periodic load.\n\n rt-app is a test application that starts multiple periodic threads in order to\n simulate a real-time periodic load. It supports SCHED_OTHER, SCHED_FIFO,\n SCHED_RR as well as the AQuoSA framework and SCHED_DEADLINE.\n\n The load is described using JSON-like config files. Below are a couple of simple\n examples.\n\n\n Simple use case which creates a thread that run 1ms then sleep 9ms\n until the use case is stopped with Ctrl+C:\n\n .. code-block:: json\n\n {\n "tasks" : {\n "thread0" : {\n "loop" : -1,\n "run" : 20000,\n "sleep" : 80000\n }\n },\n "global" : {\n "duration" : 2,\n "calibration" : "CPU0",\n "default_policy" : "SCHED_OTHER",\n "pi_enabled" : false,\n "lock_pages" : false,\n "logdir" : "./",\n "log_basename" : "rt-app1",\n "ftrace" : false,\n "gnuplot" : true,\n }\n }\n\n\n Simple use case with 2 threads that runs for 10 ms and wake up each\n other until the use case is stopped with Ctrl+C\n\n .. code-block:: json\n\n {\n "tasks" : {\n "thread0" : {\n "loop" : -1,\n "run" : 10000,\n "resume" : "thread1",\n "suspend" : "thread0"\n },\n "thread1" : {\n "loop" : -1,\n "run" : 10000,\n "resume" : "thread0",\n "suspend" : "thread1"\n }\n }\n }\n\n Please refer to the existing configs in ``$WA_ROOT/wlauto/workloads/rt_app/use_case``\n for more examples.\n\n The version of rt-app currently used with this workload contains enhancements and\n modifications done by Linaro. The source code for this version may be obtained here:\n\n http://git.linaro.org/power/rt-app.git\n\n The upstream version of rt-app is hosted here:\n\n https://github.com/scheduler-tools/rt-app\n\n '¶
-
finalize
(*args, **kwargs)¶
-
initialize
(*args, **kwargs)¶
-
kind
= 'workload'¶
-
name
= 'rt-app'¶
-
parameters
= AC(["Param({'kind': <type 'list'>, 'mandatory': None, 'name': 'modules', 'constraint': None, 'default': None, 'allowed_values': None, 'global_alias': None, 'override': False})", "Param({'kind': <type 'str'>, 'mandatory': None, 'name': 'config', 'constraint': None, 'default': 'taskset', 'allowed_values': None, 'global_alias': None, 'override': False})", "Param({'kind': <function integer>, 'mandatory': None, 'name': 'duration', 'constraint': None, 'default': None, 'allowed_values': None, 'global_alias': None, 'override': False})", "Param({'kind': <function integer>, 'mandatory': None, 'name': 'taskset_mask', 'constraint': None, 'default': None, 'allowed_values': None, 'global_alias': None, 'override': False})", "Param({'kind': <function boolean>, 'mandatory': None, 'name': 'uninstall_on_exit', 'constraint': None, 'default': False, 'allowed_values': None, 'global_alias': None, 'override': False})", "Param({'kind': <function boolean>, 'mandatory': None, 'name': 'force_install', 'constraint': None, 'default': False, 'allowed_values': None, 'global_alias': None, 'override': False})"])¶
-
validate
(*args, **kwargs)¶
-