summaryrefslogtreecommitdiff
path: root/USAGE
blob: a6d50c0d0c4195b4b951a443a0d82d8d87d9cf0c (plain)
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!)