Provided by: rt-app_0.2~alpha2.20140716-2.1_amd64 bug

NAME

       rt-app - Test application for simulating a real-time periodic load

SYNOPSIS

       rt-app <config-file>

       rt-app [options] -t <period>:<exec>[:policy[:CPU affinity[:prio[:deadline]]]] -t ...

INTRODUCTION

       rt-app  is a test application that starts multiple periodic threads in order to simulate a
       real-time periodic load.  It supports SCHED_OTHER, SCHED_FIFO, SCHED_RR  as  well  as  the
       AQuoSA framework and SCHED_DEADLINE.

       Code is currently maintained on GitHub: https://github.com/gbagnoli/rt-app

REQUIREMENTS

       rt-app  runs  on  GNU/Linux.   It  needs autoconf, automake, libtool and a recent compiler
       (mainly: gcc) for basic features.  For advanced usage, the  following  optional  libraries
       are  needed: - qreslib for AQuoSA support (and, obviously a GENS_SCHED patched kernel) - a
       SCHED_DEADLINE patched kernel to support SCHED_DEADLINE policy.  -  json-c  installed  for
       reading  config files.  In case libjson is not available for your target, you can download
       and compile json-c from http://oss.metaparadigm.com/json-c/

USAGE

       rt-app  <config_file>  whereconfigfileisafull/relativepathtoajsonfile(lookunderdoc/for  an
       example config file) or "-" (without quotes) to read JSON data from stdin.

       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

       OR you can use commandline to define the taskset.

       Keep  in  mind  that  on commandline it will never be possible to define resources and how
       tasks access them.

       rt-app [options] -t <period>:<exec>[:cpu affinity[:policy[:deadline[:prio]]]]

       br POLICY: f=SCHED_FIFO, r=SCHED_RR, o=SCHED_OTHER, q=AQuoSA br AFFINITY:  comma-separated
       cpu index (starting from 0) i.e. 0,2,3 for first, third and fourth CPU

       Note:  when using AQuoSA scheduling, priority is used as percent increment for budget over
       exec time

OPTIONS

       -h, --help
              show this help

       -f, --fifo
              set default policy for threads to SCHED_FIFO

       -r, --rr
              set default policy fior threads to SCHED_RR

       -s, --spacing
              msec to wait beetween thread starts

       -l, --logdir
              save logs to different directory

       -b, --baselog
              basename for logs (implies -l . if not set)

       -G, --gnuplot
              generate gnuplot script (needs -l)

       -D, --duration
              time (in seconds) before stopping threads

       -K, --no-mlock
              Do not lock pages in memory

       -q, --qos
              create AQuoSA reservation

       -g, --frag
              fragment for the reservation

       --fifo,--rr,--qos
              sets the default scheduling policy for all threads. --qos is  available  only  when
              compiled with AQuoSA support enabled.

       --logdir,--baselog
              control  log  output  (rt-app creates one log for each thread).  If --logdir is not
              present, rt-app logs everything to stdout.  When logging to file and -D (see below)
              is  present,  the file is written at the end of execution, during which all logging
              data is kept in memory.

       --gnuplot
              if it is present then rt-app outputs sample gnuplot scripts to $logdir (which  must
              be passed too

       --spacing,--duration
              control  the  spacing  between  threads and their duration of execution,  i.e. each
              thread is started every $spacing ms and the total runtime is $duration.

       --frag (AQuoSA only)
              fragments the reservation period by $fragmentation,  i.e.   reservation  period  is
              $frag times smaller than thread's period.

       --no-mlock
              do not lock threads' memory pages when using realtime scheduling classes

       Each thread is specified by

       --thread <period>:<exec>[:$POLICY[:deadline[:prio]]]:

       period : thread period in microseconds

       exec   : thread WCET in microseconds

       policy : one of f=SCHED_FIFO, r=SCHED_RR, o=SCHED_OTHER, q=AQuoSA (if enabled)

       affinity
              :  comma-separated  cpu  index  (starting  from  0) i.e. 0,2,3 for first, third and
              fourth CPU

       prio   : thread priority  in  SCHED_FIFO/SCHED_RR/SCHED_OTHER,  percentile  increment  for
              AQuoSA reservation budget w.r.t. WCET.

       deadline
              : deadline in microseconds (used ONLY for plotting!)