The Workload Generator emulates typical mobile system use cases and gives runtime information. It is based on rt-app.

The tool uses json files for describing the use case.

Source code

Linaro extensions to rt-app are available here:

We're working with rt-app upstream to merge the changes back.



The easiest way is to compile the tool on the board. You will need the following packages installed on the board: libjsonc, libtool, autoconf

$ ./
$ ./configure
$ make
$ sudo make install

Packaged versions

  • Debian/Ubuntu packages for ARM and x86 can be found in the PPA


Typical workload examples

JSON files describing typical mobile workloads can be found in the doc/examples directory. More workloads will be added to this directory.

Running a use case

In order to run a use case, just call :

 $ workgen <path to the .json file>

workgen will output per thread statistics like a running and period duration.

workgen is a python script that checks and updates the json file to make it compliant with json grammar rules if necessary. With workgen, the writer of a use case doesn't have to take care of key uniqueness as an example. Then, workgen calls rt-app with the updated json file.

If the json file doesn't need to be checked or if you don't want/can't use workgen on your target, you can use workgen on your host to check and output a modified version of the json file that can then be called directly by rt-app on the target.

Use with idlestat

The Workload Generator can be used in conjunction with idlestat to evaluate the power consumption of a kernel image for a given use case and check for regressions. Here is an example:

 $ sudo ./idlestat --trace -f /tmp/myoutput -t 10 -- workgen mp3-short.json


Please send email to for feedback or contributions. The plan is to use the upstream rt-app mailing list for future development once changes have been merged.

Feature Status

Features implemented

  • Please read tutorial.txt in order to have a full description of the possible events and parameters.

  • The list of use cases examples can be found here

New Feature ideas

  • Enhance the figures and output "perf" results
  • use a json file to create a data file view-able with kernelshark
  • create a json file thanks to a recorded trace

WorkingGroups/PowerManagement/Resources/Tools/WorkloadGen (last modified 2015-09-01 13:06:46)