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})"])
run(context)[source]
setup(context)[source]
update_result(context)[source]
validate(*args, **kwargs)