aboutsummaryrefslogtreecommitdiffstats
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
parent5d1cbacb608f44c632f995f3c6e402e85305c02b (diff)
Update README and installation instructions
-rw-r--r--INSTALL16
-rw-r--r--README69
2 files changed, 56 insertions, 29 deletions
diff --git a/INSTALL b/INSTALL
index 4891f0a..4e7ad77 100644
--- a/INSTALL
+++ b/INSTALL
@@ -2,20 +2,22 @@
2Liblitmus Installation Instructions 2Liblitmus Installation Instructions
3=================================== 3===================================
4 4
5See also: https://wiki.litmus-rt.org/litmus/InstallationInstructions
6
5Dependencies 7Dependencies
6------------ 8------------
7 9
8Liblitmus has no dependencies besides the kernel. During compilation, the 10Liblitmus has no dependencies besides the kernel. During compilation,
9Makefile will attempt to copy required headers from the kernel source tree into 11the Makefile will attempt to copy required headers from the kernel
10the library source tree. 12source tree into the library source tree.
11 13
12 14
13Configuration 15Configuration
14------------- 16-------------
15 17
16The build system reads a local configuration file named '.config' (just like the 18The build system reads a local configuration file named '.config' (just
17kernel, but much simpler). There are three variables that affect the 19like the kernel, but much simpler). There are three variables that
18compilation process: 20affect 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
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