diff options
author | Bjoern Brandenburg <bbb@mpi-sws.org> | 2015-08-03 04:55:34 -0400 |
---|---|---|
committer | Bjoern Brandenburg <bbb@mpi-sws.org> | 2015-08-03 04:58:48 -0400 |
commit | 262677fc436c3e2109e628bb2f4708c6b279a551 (patch) | |
tree | 1529a8cc52cad35f0e9d46f43b269e26f82b65d3 /README | |
parent | 5d1cbacb608f44c632f995f3c6e402e85305c02b (diff) |
Update README and installation instructions
Diffstat (limited to 'README')
-rw-r--r-- | README | 69 |
1 files changed, 47 insertions, 22 deletions
@@ -1,12 +1,8 @@ | |||
1 | LITMUS^RT User-Space Library: liblitmus | 1 | LITMUS^RT User-Space Library: liblitmus |
2 | ======================================= | 2 | ======================================= |
3 | 3 | ||
4 | Copyright (c) 2007, 2008, 2009, 2010 | 4 | Copyright (c) 2007-2015 The LITMUS^RT Project & Contributors |
5 | The University of North Carolina at Chapel Hill | 5 | http://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 | ||
11 | Released as open source under the terms of the GNU General Public License | 7 | Released 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 | |||
14 | Overview | 10 | Overview |
15 | ======== | 11 | ======== |
16 | This library and the included tools provide the user-space interface to | 12 | This library and the included tools provide the user-space interface to |
17 | LITMUS^RT. Real-time tasks should link against this library. The header file | 13 | LITMUS^RT. Real-time tasks should link against this library. The header |
18 | "litmus.h" contains all necessary system calls and definitions to interact with | 14 | file "litmus.h" contains all necessary system calls and definitions to |
19 | the kernel services provided for real-time tasks. | 15 | interact with the kernel services provided for real-time tasks. |
20 | 16 | ||
21 | Tools and Programs | 17 | Tools 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 | |||
74 | Further Reading | ||
75 | =============== | ||
76 | |||
77 | Some 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 | ||