aboutsummaryrefslogtreecommitdiffstats
path: root/README
diff options
context:
space:
mode:
authorBjoern Brandenburg <bbb@mpi-sws.org>2015-08-03 04:55:34 -0400
committerBjoern Brandenburg <bbb@mpi-sws.org>2015-08-03 04:58:48 -0400
commit262677fc436c3e2109e628bb2f4708c6b279a551 (patch)
tree1529a8cc52cad35f0e9d46f43b269e26f82b65d3 /README
parent5d1cbacb608f44c632f995f3c6e402e85305c02b (diff)
Update README and installation instructions
Diffstat (limited to 'README')
-rw-r--r--README69
1 files changed, 47 insertions, 22 deletions
diff --git a/README b/README
index accdf72..a0b8e6e 100644
--- a/README
+++ b/README
@@ -1,12 +1,8 @@
1LITMUS^RT User-Space Library: liblitmus 1LITMUS^RT User-Space Library: liblitmus
2======================================= 2=======================================
3 3
4 Copyright (c) 2007, 2008, 2009, 2010 4Copyright (c) 2007-2015 The LITMUS^RT Project & Contributors
5 The University of North Carolina at Chapel Hill 5http://www.litmus-rt.org
6 Department of Computer Science
7 Real-Time Systems Group
8 Dr. Anderson & students
9 http://www.cs.unc.edu/~anderson/litmus-rt/
10 6
11Released as open source under the terms of the GNU General Public License 7Released as open source under the terms of the GNU General Public License
12(GPL2). 8(GPL2).
@@ -14,9 +10,9 @@ Released as open source under the terms of the GNU General Public License
14Overview 10Overview
15======== 11========
16This library and the included tools provide the user-space interface to 12This library and the included tools provide the user-space interface to
17LITMUS^RT. Real-time tasks should link against this library. The header file 13LITMUS^RT. Real-time tasks should link against this library. The header
18"litmus.h" contains all necessary system calls and definitions to interact with 14file "litmus.h" contains all necessary system calls and definitions to
19the kernel services provided for real-time tasks. 15interact with the kernel services provided for real-time tasks.
20 16
21Tools and Programs 17Tools and Programs
22================== 18==================
@@ -28,31 +24,60 @@ Tools and Programs
28 Print the name of the currently active scheduler. Schedulers are selected at 24 Print the name of the currently active scheduler. Schedulers are selected at
29 boot time with the "rtsched=<NAME>" kernel parameter. 25 boot time with the "rtsched=<NAME>" kernel parameter.
30 26
31* rt_launch [-p <PARTITION>] <WCET> <PERIOD> <PROGRAM> <ARGS>... 27* rt_launch [-w] [-p <PARTITION>] <WCET> <PERIOD> <PROGRAM> <ARGS>...
32 Launch the program <PROGRAM> as a real-time task provisioned with the given 28 Launch the program <PROGRAM> as a real-time task provisioned with the
33 worst-case execution time and priod. Any additional parameters are passed on 29 given worst-case execution time and priod. Any additional parameters
34 to the real-time task. 30 are passed on to the real-time task. The -w option makes the task wait
31 for a sytem release. Run rt_launch -h for further options.
32
33 Tip: for debugging purposes, a couple of "rt_launch $EXE $PER find /",
34 for reasonable values of $EXE and $PER, generates a workload that
35 stresses the wakeup/suspend path of the scheduler pretty well.
36 Similarly, running "rt_launch $EXE $PER sha256sum `find /home | sort
37 -R`" produces a CPU-intensive workload that also includes significant
38 IO.
35 39
36* rtspin [-w] [-p <PARTITION>] [-c CLASS] WCET PERIOD DURATION 40* rtspin [-w] [-p <PARTITION>] [-c CLASS] WCET PERIOD DURATION
37 rtspin -l 41 A simple spin loop for emulating purely CPU-bound workloads. Not very
38 A simple spin loop for emulating purely CPU-bound workloads. 42 realistic, but a good tool for debugging. The -w option makes the task
39 Not very realistic, but a good tool for debugging. 43 wait for a sytem release. Run rtspin -h for further options.
40 -l Start a little calibration loop.
41 -w Wait for task-system release.
42 44
43* release_ts 45* release_ts
44 Release the task system. This allows for synchronous task system releases. 46 Release the task system. This allows for synchronous task system
47 releases (i.e., ensure that all tasks share a common "time zero").
45 48
46* measure_syscall 49* measure_syscall
47 A simple tool that measures the cost of a system call. 50 A simple tool that measures the cost of a system call.
48 51
49* cycles 52* cycles
50 Display cycles per time interval. 53 Display measured cycles per time interval, as determined by the cycle
54 counter. Useful for converting benchmarking results.
51 55
52* base_task 56* base_task
53 Example real-time task. Can be used as a basis for the development 57 Example real-time task. Can be used as a basis for the development
54 of single-threaded real-time tasks. 58 of single-threaded real-time tasks.
55 59
56* base_mt_task 60* base_mt_task
57 Example multi-threaded real-time task. Use as a basis for the development of 61 Example multi-threaded real-time task. Use as a basis for the
58 multithreaded real-time tasks. 62 development of multithreaded real-time tasks.
63
64* uncache
65 Demo application showing how to allocate and use uncached pages (i.e.,
66 pages that bypass the cache).
67
68* runtests
69 The LITMUS^RT test suite. By default, it runs the tests for the
70 currently active plugin. Use this frequently when hacking on the core
71 plugins. Add support for new plugins as needed. The tests can be found
72 in tests/ directory.
73
74Further Reading
75===============
76
77Some additional information is available on the LITMUS^RT Wiki at:
78
79- https://wiki.litmus-rt.org/litmus/UserspaceTools
80
81- https://wiki.litmus-rt.org/litmus/InstallationInstructions
82
83- https://wiki.litmus-rt.org/litmus/LinkAgainstLiblitmusTutorial