1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
These are usage instructions for rt-app
Usage:
------
$ rt-app
usage: rt-app [options] -t <period>:<exec>[:cpu affinity[:policy[:deadline[:prio]]]]
-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
POLICY: f=SCHED_FIFO, r=SCHED_RR, o=SCHED_OTHER, q=AQuoSA
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:
* --fifo,--rr and --qos sets the default scheduling policy for all threads.
--qos is available only when compiled with AQuoSA support enabled.
* --logdir and --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 and --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!)
|