---
name: "workgen"
section: "1"
platform: "linux"
package: "rt-app"
version: "1.0-1.2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/workgen"
---

# workgen(1)

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

```

```

## 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
```
