DOKK / manpages / debian 12 / rt-app / workgen.1.en
workgen(1) General Commands Manual workgen(1)

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

workgen <config-file>

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

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).

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

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

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