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 | |
parent | 5d1cbacb608f44c632f995f3c6e402e85305c02b (diff) |
Update README and installation instructions
-rw-r--r-- | INSTALL | 16 | ||||
-rw-r--r-- | README | 69 |
2 files changed, 56 insertions, 29 deletions
@@ -2,20 +2,22 @@ | |||
2 | Liblitmus Installation Instructions | 2 | Liblitmus Installation Instructions |
3 | =================================== | 3 | =================================== |
4 | 4 | ||
5 | See also: https://wiki.litmus-rt.org/litmus/InstallationInstructions | ||
6 | |||
5 | Dependencies | 7 | Dependencies |
6 | ------------ | 8 | ------------ |
7 | 9 | ||
8 | Liblitmus has no dependencies besides the kernel. During compilation, the | 10 | Liblitmus has no dependencies besides the kernel. During compilation, |
9 | Makefile will attempt to copy required headers from the kernel source tree into | 11 | the Makefile will attempt to copy required headers from the kernel |
10 | the library source tree. | 12 | source tree into the library source tree. |
11 | 13 | ||
12 | 14 | ||
13 | Configuration | 15 | Configuration |
14 | ------------- | 16 | ------------- |
15 | 17 | ||
16 | The build system reads a local configuration file named '.config' (just like the | 18 | The build system reads a local configuration file named '.config' (just |
17 | kernel, but much simpler). There are three variables that affect the | 19 | like the kernel, but much simpler). There are three variables that |
18 | compilation process: | 20 | affect the compilation process: |
19 | 21 | ||
20 | LITMUS_KERNEL --- Path (relative or absolute) to the LITMUS^RT kernel | 22 | LITMUS_KERNEL --- Path (relative or absolute) to the LITMUS^RT kernel |
21 | source tree. The default value is | 23 | source tree. The default value is |
@@ -23,7 +25,7 @@ compilation process: | |||
23 | the kernel somewhere else. | 25 | the kernel somewhere else. |
24 | 26 | ||
25 | ARCH --- The target architecture. Currently, liblitmus can be | 27 | ARCH --- The target architecture. Currently, liblitmus can be |
26 | build for i386, x86_64, sparc64, and arm. The default | 28 | build for i386, x86_64, and arm. The default |
27 | value is the host architecture. | 29 | value is the host architecture. |
28 | 30 | ||
29 | CROSS_COMPILE --- A prefix for the compiler and linker to use. Works | 31 | CROSS_COMPILE --- A prefix for the compiler and linker to use. Works |
@@ -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 | ||