workgen(1)

NAME
workgen - rt-app wrapper for simulating a real-time periodic load

SYNOPSIS
workgen <config-file>

INTRODUCTION
workgen is a test application that starts multiple periodic threads in order to simulate a real-time periodic load. It is a wrapper for the rt-app program, which sanitises and preprocesses the JSON files describing the workload, before running rt-app.

The code is currently maintained on GitHub:
https://github.com/scheduler-tools/rt-app

REQUIREMENTS
workgen runs on GNU/Linux. It needs python and json-c to run, and a 3.14 or later linux kernel supporting the SCHED_DEADLINE policy (unless built without the optional libdl).

USAGE
workgen <config_file> where config file is a full/relative path to a JSON file or "-" (without quotes) to read JSON data from stdin.

workgen will parse, check and update the JSON-like file in order to strictly match the JSON grammar before calling rt-app to execute the sequence described in it.

workgen enables some freedom compared to stricter json grammar rules. For example,
    - You don't have to ensure uniqueness of key in json object, workgen will check the file and ensure that each key is unique by appending an index if necessary. The feature is quite useful when you describe a sequence made of similar events e.g. a sequence of multiple sleep and run events.
    - Some values can be omitted and workgen will add them when it parses the file before starting the use case.

See /usr/share/doc/rt-app/tutorial.txt for details of the JSON config file format

SEE ALSO
rt-app <config_file> can be used directly.

The python merge script ( /usr/share/doc/rt-app/examples/merge.py ) can be used to combine JSON snippets into the config file. e.g:
./merge.py -o combined.json global.json resources.json thread0.json thread1.json thread2.json thread3.json

FILES
Numerous example workloads and building blocks can be found in
/usr/share/doc/rt-app/examples/*.json