diff options
author | Andrea Bastoni <bastoni@sprg.uniroma2.it> | 2010-05-19 12:07:15 -0400 |
---|---|---|
committer | Andrea Bastoni <bastoni@sprg.uniroma2.it> | 2010-05-19 12:07:15 -0400 |
commit | 72b8b7279b3e5d327f078cadc3c351ca2d6adeab (patch) | |
tree | bb1273b17c56180327e9246a27a14606c6c66a22 | |
parent | 500804f9b4a81e9cf18f3a42f966cad3d241c793 (diff) |
Revert "Revert back Bjoern's changes and added scons -h option"
This reverts commit 500804f9b4a81e9cf18f3a42f966cad3d241c793.
-rw-r--r-- | index.html | 1085 |
1 files changed, 542 insertions, 543 deletions
@@ -1,543 +1,542 @@ | |||
1 | 1 | ||
2 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> | 2 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> |
3 | <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> | 3 | <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> |
4 | <head> | 4 | <head> |
5 | <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> | 5 | <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> |
6 | <meta name="verify-v1" content="pZNmf5XyUUfAPdlSPbFSavMUsLgVsmBYOXzOhbIy2gw=" /> | 6 | <meta name="verify-v1" content="pZNmf5XyUUfAPdlSPbFSavMUsLgVsmBYOXzOhbIy2gw=" /> |
7 | <link rel="stylesheet" type="text/css" href="inc/format.css"/> | 7 | <link rel="stylesheet" type="text/css" href="inc/format.css"/> |
8 | <title>LITMUS RT: Linux Testbed for Multiprocessor Scheduling in Real-Time Systems</title> | 8 | <title>LITMUS RT: Linux Testbed for Multiprocessor Scheduling in Real-Time Systems</title> |
9 | </head> | 9 | </head> |
10 | <body> | 10 | <body> |
11 | <div class="logobox"> | 11 | <div class="logobox"> |
12 | <img src="inc/litmusrt.png" alt="LITMUS^RT: Linux Testbed for Multiprocessor Scheduling in Real-Time Systems" /> | 12 | <img src="inc/litmusrt.png" alt="LITMUS^RT: Linux Testbed for Multiprocessor Scheduling in Real-Time Systems" /> |
13 | <p class="authors"> | 13 | <p class="authors"> |
14 | <a href="http://www.cs.unc.edu/~anderson/">Dr. James H. Anderson & | 14 | <a href="http://www.cs.unc.edu/~anderson/">Dr. James H. Anderson & |
15 | Students</a>, | 15 | Students</a>, |
16 | <a href="http://www.unc.edu">The University of North Carolina at Chapel Hill</a> | 16 | <a href="http://www.unc.edu">The University of North Carolina at Chapel Hill</a> |
17 | </p> | 17 | </p> |
18 | 18 | ||
19 | </div> | 19 | </div> |
20 | 20 | ||
21 | <div class="nav"> | 21 | <div class="nav"> |
22 | <p> | 22 | <p> |
23 | <a href="#about">about</a> - | 23 | <a href="#about">about</a> - |
24 | <a href="#support">support</a> - | 24 | <a href="#support">support</a> - |
25 | <a href="#collaborators">collaborators</a> - | 25 | <a href="#collaborators">collaborators</a> - |
26 | <a href="#publications">publications</a> - | 26 | <a href="#publications">publications</a> - |
27 | <a href="#download">download</a> - | 27 | <a href="#download">download</a> - |
28 | <a href="#install">installation</a> - | 28 | <a href="#install">installation</a> - |
29 | <a href="#doc">documentation</a> | 29 | <a href="#doc">documentation</a> |
30 | </p> | 30 | </p> |
31 | </div> | 31 | </div> |
32 | 32 | ||
33 | <h2 id="about">About</h2> | 33 | <h2 id="about">About</h2> |
34 | <div class="box"> | 34 | <div class="box"> |
35 | <p class="nomargin"> | 35 | <p class="nomargin"> |
36 | The LITMUS<sup>RT</sup> project is a soft real-time extension of the Linux | 36 | The LITMUS<sup>RT</sup> project is a soft real-time extension of the Linux |
37 | kernel with focus on multiprocessor real-time scheduling and | 37 | kernel with focus on multiprocessor real-time scheduling and |
38 | synchronization. The Linux kernel is modified | 38 | synchronization. The Linux kernel is modified |
39 | to support the sporadic task | 39 | to support the sporadic task |
40 | model and modular scheduler plugins. Both partitioned and global scheduling | 40 | model and modular scheduler plugins. Both partitioned and global scheduling |
41 | is supported. | 41 | is supported. |
42 | </p> | 42 | </p> |
43 | <h3>Goals</h3> | 43 | <h3>Goals</h3> |
44 | <p class="notopmargin"> | 44 | <p class="notopmargin"> |
45 | The primary purpose of the LITMUS<sup>RT</sup> project is to <strong>provide a useful experimental platform for applied real-time systems research</strong>. In that regard, LITMUS<sup>RT</sup> provides abstractions and interfaces within the kernel that simplify the prototyping of multiprocessor real-time scheduling and synchronization algorithms (compared to modifying a "vanilla" Linux kernel). As a secondary goal, LITMUS<sup>RT</sup> serves as a <strong>proof of concept</strong>, showing that algorithms such as PFAIR can be implemented on current hardware. Finally, we hope that parts of LITMUS<sup>RT</sup> and the "lessons learned" may find value as blueprints/sources of inspiration for other (both commercial and open source) implementation efforts. | 45 | The primary purpose of the LITMUS<sup>RT</sup> project is to <strong>provide a useful experimental platform for applied real-time systems research</strong>. In that regard, LITMUS<sup>RT</sup> provides abstractions and interfaces within the kernel that simplify the prototyping of multiprocessor real-time scheduling and synchronization algorithms (compared to modifying a "vanilla" Linux kernel). As a secondary goal, LITMUS<sup>RT</sup> serves as a <strong>proof of concept</strong>, showing that algorithms such as PFAIR can be implemented on current hardware. Finally, we hope that parts of LITMUS<sup>RT</sup> and the "lessons learned" may find value as blueprints/sources of inspiration for other (both commercial and open source) implementation efforts. |
46 | </p> | 46 | </p> |
47 | <h3>Non-Goals</h3> | 47 | <h3>Non-Goals</h3> |
48 | <p class="notopmargin"> | 48 | <p class="notopmargin"> |
49 | LITMUS<sup>RT</sup> is not a production-quality system, and we have currently no plans to turn it into one. LITMUS<sup>RT</sup> is not "stable," <em>i.e.</em>, interfaces and implementations may change without warning between releases. POSIX-compliance is not a goal; the LITMUS<sup>RT</sup>-API offers alternate system call interfaces. While we aim to follow Linux-coding guidelines, LITMUS<sup>RT</sup> is not targeted at being merged into mainline Linux. Rather, we hope that some of the ideas protoyped in LITMUS<sup>RT</sup> may eventually find adoption in Linux. | 49 | LITMUS<sup>RT</sup> is not a production-quality system, and we have currently no plans to turn it into one. LITMUS<sup>RT</sup> is not "stable," <em>i.e.</em>, interfaces and implementations may change without warning between releases. POSIX-compliance is not a goal; the LITMUS<sup>RT</sup>-API offers alternate system call interfaces. While we aim to follow Linux-coding guidelines, LITMUS<sup>RT</sup> is not targeted at being merged into mainline Linux. Rather, we hope that some of the ideas protoyped in LITMUS<sup>RT</sup> may eventually find adoption in Linux. |
50 | </p> | 50 | </p> |
51 | <h3>Current Version</h3> | 51 | <h3>Current Version</h3> |
52 | <p class="notopmargin"> | 52 | <p class="notopmargin"> |
53 | The current version of LITMUS<sup>RT</sup> is <strong>2010.1</strong> and is based on Linux 2.6.32. | 53 | The current version of LITMUS<sup>RT</sup> is <strong>2010.1</strong> and is based on Linux 2.6.32. |
54 | It was released on 05/12/2010 and includes plugins for the following | 54 | It was released on 05/12/2010 and includes plugins for the following |
55 | scheduling policies: | 55 | scheduling policies: |
56 | </p> | 56 | </p> |
57 | <ul> | 57 | <ul> |
58 | <li> Partitioned EDF with synchronization support (PSN-EDF)</li> | 58 | <li> Partitioned EDF with synchronization support (PSN-EDF)</li> |
59 | <li> Global EDF with synchronization support (GSN-EDF)</li> | 59 | <li> Global EDF with synchronization support (GSN-EDF)</li> |
60 | <li> Clustered EDF (C-EDF) </li> | 60 | <li> Clustered EDF (C-EDF) </li> |
61 | <li> PFAIR (both staggered and aligned quanta are supported)</li> | 61 | <li> PFAIR (both staggered and aligned quanta are supported)</li> |
62 | </ul> | 62 | </ul> |
63 | <p> | 63 | <p> |
64 | Please refer to the <a href="#download">download</a> and <a href="#install">installation</a> sections for details. | 64 | Please refer to the <a href="#download">download</a> and <a href="#install">installation</a> sections for details. |
65 | </p> | 65 | </p> |
66 | <p>Earlier versions based on Linux 2.6.24 and Linux 2.6.20, | 66 | <p>Earlier versions (2008.1 &mdash 2008.3),based on Linux 2.6.24 and (2007.1 — 2007.3), based on Linux 2.6.20 |
67 | which supported additional scheduling policies, are discussed on separate pages dedicated to the <a href="litmus2007.html">LITMUS<sup>RT</sup> 2008</a> and <a href="litmus2007.html">LITMUS<sup>RT</sup> 2007 </a> series respectively. | 67 | ,support additional scheduling policies, are discussed on separate pages dedicated to the <a href="litmus2007.html">LITMUS<sup>RT</sup> 2008</a> and <a href="litmus2007.html">LITMUS<sup>RT</sup> 2007 </a> series respectively. |
68 | </p> | 68 | </p> |
69 | <p class="nobottommargin"> | 69 | <p class="nobottommargin"> |
70 | The first version of LITMUS<sup>RT</sup>, which was implemented in Spring 2006, | 70 | The first version of LITMUS<sup>RT</sup>, which was implemented in Spring 2006, |
71 | is based on Linux 2.6.9. | 71 | is based on Linux 2.6.9. |
72 | </p> | 72 | </p> |
73 | <h3> Development Plans </h3> | 73 | <h3> Development Plans </h3> |
74 | There are plans to port LITMUS<sup>RT</sup> to PowerPC and ARM platforms. Please contact us for details. | 74 | There are plans to port LITMUS<sup>RT</sup> to PowerPC and ARM platforms. Please contact us for details. |
75 | </div> | 75 | </div> |
76 | <h2 id="support">Support</h2> | 76 | <h2 id="support">Support</h2> |
77 | <div class="box"> | 77 | <div class="box"> |
78 | <p class="nomargin"> | 78 | <p class="nomargin"> |
79 | The LITMUS<sup>RT</sup> development effort is being supported by grants from | 79 | The LITMUS<sup>RT</sup> development effort is being supported by grants from, SUN Corp., |
80 | AT&T, IBM, and Northrop Grumman Corps.; the National Science Foundation (grants CNS 0834270 and CNS 0834132); the U.S. | 80 | Intel Corp., IBM Corp., The National Science Foundation (grant CCR 0615197), and The U.S. |
81 | Army Research Office (grant W911NF-09-1-0535); and the Air Force Office of Scientific Research (grant FA 9550-09-1-0549). | 81 | Army Research Office (grant W911NF-06-1-0425). |
82 | </p> | 82 | </p> |
83 | </div> | 83 | </div> |
84 | 84 | ||
85 | <h2 id="collaborators">Collaborators</h2> | 85 | <h2 id="collaborators">Collaborators</h2> |
86 | <div class="box"> | 86 | <div class="box"> |
87 | <p class="notopmargin"> The LITMUS<sup>RT</sup> project is led by <a | 87 | <p class="notopmargin"> The LITMUS<sup>RT</sup> project is led by <a |
88 | href="http://www.cs.unc.edu/~anderson/">Dr. James H. Anderson</a>. | 88 | href="http://www.cs.unc.edu/~anderson/">Dr. James H. Anderson</a>. |
89 | </p> | 89 | </p> |
90 | <p> | 90 | <p> |
91 | The implementation effort is carried out by students of the | 91 | The implementation effort is carried out by students of the |
92 | <a href="http://www.cs.unc.edu/~anderson/real-time/">Real-Time Systems | 92 | <a href="http://www.cs.unc.edu/~anderson/real-time/">Real-Time Systems |
93 | Group</a> at the <a href="http://www.unc.edu">University of North Carolina | 93 | Group</a> at the <a href="http://www.unc.edu">University of North Carolina |
94 | at Chapel Hill</a>: | 94 | at Chapel Hill</a>: |
95 | </p> | 95 | </p> |
96 | <ul> | 96 | <ul> |
97 | <li> | 97 | <li> |
98 | <a href="http://www.cs.unc.edu/~bbb/">Björn B. Brandenburg</a> (current maintainer) | 98 | <a href="http://www.cs.unc.edu/~bbb/">Björn B. Brandenburg</a> (current maintainer) |
99 | </li> | 99 | </li> |
100 | <li> <a href="http://www.sprg.uniroma2.it/home/bastoni/">Andrea Bastoni</a> (University of Rome "Tor Vergata") | 100 | <li> <a href="http://www.sprg.uniroma2.it/home/bastoni/">Andrea Bastoni</a> (Visiting researcher from University of Rome "Tor Vergata") |
101 | </li> | 101 | </li> |
102 | </ul> | 102 | </ul> |
103 | <p class="nobottommargin"> | 103 | <p class="nobottommargin"> |
104 | Additional collaborators contributed to the previous <a href="litmus2008.html#collaborators">LITMUS<sup>RT</sup> 2008</a> and the <a href="litmus2007.html#collaborators">LITMUS<sup>RT</sup> 2007</a> versions. | 104 | (Additional collaborators for <a href="litmus2008.html#collaborators">LITMUS<sup>RT</sup> 2008 series</a> and <a href="litmus2007.html#collaborators">LITMUS<sup>RT</sup> 2007 series</a> contributed to earlier versions of LITMUS<sup>RT</sup>.) |
105 | </p> | 105 | </p> |
106 | </div> | 106 | </div> |
107 | 107 | ||
108 | 108 | ||
109 | <h2 id="publications">Publications</h2> | 109 | <h2 id="publications">Publications</h2> |
110 | <div class="box"> | 110 | <div class="box"> |
111 | 111 | <ol class="nomargin"> | |
112 | <ol class="nomargin"> | 112 | <li><p> |
113 | <li><p> | 113 | B. Brandenburg and J. Anderson, |
114 | B. Brandenburg and J. Anderson, | 114 | “On the Implementation of Global Real-Time |
115 | “On the Implementation of Global Real-Time | 115 | Schedulers”, <cite>Proceedings of the 30th IEEE Real-Time Systems Symposium</cite>, pp. 214-224, December 2009. |
116 | Schedulers”, <cite>Proceedings of the 30th IEEE Real-Time Systems Symposium</cite>, pp. 214-224, December 2009. | 116 | <a href="http://www.cs.unc.edu/~anderson/papers/rtss09a.ps">Postscript</a>. |
117 | <a href="http://www.cs.unc.edu/~anderson/papers/rtss09a.ps">Postscript</a>. | 117 | <a href="http://www.cs.unc.edu/~anderson/papers/rtss09a.pdf">PDF</a>. |
118 | <a href="http://www.cs.unc.edu/~anderson/papers/rtss09a.pdf">PDF</a>. | 118 | Longer version with all graphs: |
119 | Longer version with all graphs: | 119 | <a href="http://www.cs.unc.edu/~anderson/papers/rtss09a_long.ps">Postscript</a>. |
120 | <a href="http://www.cs.unc.edu/~anderson/papers/rtss09a_long.ps">Postscript</a>. | 120 | <a href="http://www.cs.unc.edu/~anderson/papers/rtss09a_long.pdf">PDF</a>. |
121 | <a href="http://www.cs.unc.edu/~anderson/papers/rtss09a_long.pdf">PDF</a>. | 121 | </p> |
122 | </p> | 122 | <p> For reference, all evaluated plugins are provided as part of the following patch (against version 2008.3). |
123 | <p> For reference, all evaluated plugins are provided as part of the following patch (against version 2008.3). | 123 | </p> |
124 | </p> | 124 | <ul> |
125 | <ul> | 125 | <li> |
126 | <li> | 126 | <a href="download/RTSS09/litmus-rt-RTSS09.patch">litmus-rt-RTSS09.patch</a> |
127 | <a href="download/RTSS09/litmus-rt-RTSS09.patch">litmus-rt-RTSS09.patch</a> | 127 | </li> |
128 | </li> | 128 | </ul> |
129 | </ul> | 129 | |
130 | 130 | </li> | |
131 | </li> | 131 | <li> |
132 | <li> | 132 | <p> |
133 | <p> | 133 | B. Brandenburg and J. Anderson |
134 | B. Brandenburg and J. Anderson | 134 | “Reader-Writer Synchronization for Shared-Memory Multiprocessor Real-Time Systems”, |
135 | “Reader-Writer Synchronization for Shared-Memory Multiprocessor Real-Time Systems”, | 135 | <cite>Proceedings of the 21st Euromicro Conference on Real-Time Systems</cite>, pp. 184-193, July 2009. |
136 | <cite>Proceedings of the 21st Euromicro Conference on Real-Time Systems</cite>, pp. 184-193, July 2009. | 136 | <a href="http://www.cs.unc.edu/~anderson/papers/ecrts09b.ps">Postscript</a>. <a href="http://www.cs.unc.edu/~anderson/papers/ecrts09b.pdf">PDF</a>. |
137 | <a href="http://www.cs.unc.edu/~anderson/papers/ecrts09b.ps">Postscript</a>. <a href="http://www.cs.unc.edu/~anderson/papers/ecrts09b.pdf">PDF</a>. | 137 | Long version with blocking terms: |
138 | Long version with blocking terms: | 138 | <a href="http://www.cs.unc.edu/~anderson/papers/ecrts09b-long.ps">Postscript</a>. <a href="http://www.cs.unc.edu/~anderson/papers/ecrts09b-long.pdf">PDF</a>. |
139 | <a href="http://www.cs.unc.edu/~anderson/papers/ecrts09b-long.ps">Postscript</a>. <a href="http://www.cs.unc.edu/~anderson/papers/ecrts09b-long.pdf">PDF</a>. | 139 | </p> |
140 | </p> | 140 | </li> |
141 | </li> | 141 | |
142 | 142 | <li> | |
143 | <li> | 143 | <p> |
144 | <p> | 144 | J. Calandrino and J. Anderson |
145 | J. Calandrino and J. Anderson | 145 | “On the Design and Implementation of a Cache-Aware Multicore Real-Time Scheduler”, |
146 | “On the Design and Implementation of a Cache-Aware Multicore Real-Time Scheduler”, | 146 | <cite>Proceedings of the 21st Euromicro Conference on Real-Time Systems</cite>, pp. 194-204, July 2009. |
147 | <cite>Proceedings of the 21st Euromicro Conference on Real-Time Systems</cite>, pp. 194-204, July 2009. | 147 | <a href="http://www.cs.unc.edu/~anderson/papers/ecrts09c.ps">Postscript</a>. <a href="http://www.cs.unc.edu/~anderson/papers/ecrts09c.pdf">PDF</a>. |
148 | <a href="http://www.cs.unc.edu/~anderson/papers/ecrts09c.ps">Postscript</a>. <a href="http://www.cs.unc.edu/~anderson/papers/ecrts09c.pdf">PDF</a>. | 148 | </p> |
149 | </p> | 149 | </li> |
150 | </li> | 150 | |
151 | 151 | <li> | |
152 | <li> | 152 | <p> |
153 | <p> | 153 | M. Mollison, B. Brandenburg, and J. Anderson |
154 | M. Mollison, B. Brandenburg, and J. Anderson | 154 | “Towards Unit Testing Real-Time Schedulers in LITMUS<sup>RT</sup>”, |
155 | “Towards Unit Testing Real-Time Schedulers in LITMUS<sup>RT</sup>”, | 155 | <cite>Proceedings of the Fifth International Workshop on Operating Systems Platforms for Embedded Real-Time Applications</cite>, pp. 33-39, July 2009. |
156 | <cite>Proceedings of the Fifth International Workshop on Operating Systems Platforms for Embedded Real-Time Applications</cite>, pp. 33-39, July 2009. | 156 | <a href="http://www.cs.unc.edu/~anderson/papers/ospert09.ps">Postscript</a>. <a href="http://www.cs.unc.edu/~anderson/papers/ospert09.pdf">PDF</a>. |
157 | <a href="http://www.cs.unc.edu/~anderson/papers/ospert09.ps">Postscript</a>. <a href="http://www.cs.unc.edu/~anderson/papers/ospert09.pdf">PDF</a>. | 157 | </p> |
158 | </p> | 158 | </li> |
159 | </li> | 159 | |
160 | 160 | <li> | |
161 | <li> | 161 | <p> |
162 | <p> | 162 | B. Brandenburg and J. Anderson, |
163 | B. Brandenburg and J. Anderson, | 163 | “A Comparison of the M-PCP, D-PCP, and FMLP on LITMUS<sup>RT</sup>”, |
164 | “A Comparison of the M-PCP, D-PCP, and FMLP on LITMUS<sup>RT</sup>”, | 164 | <cite>Proceedings of the 12th International Conference on Principles of Distributed Systems</cite>, pp. 105-124, December 2008. |
165 | <cite>Proceedings of the 12th International Conference on Principles of Distributed Systems</cite>, pp. 105-124, December 2008. | 165 | <a href="http://www.cs.unc.edu/~anderson/papers/opodis08.ps">Postscript</a>. <a href="http://www.cs.unc.edu/~anderson/papers/opodis08.pdf">PDF</a>. |
166 | <a href="http://www.cs.unc.edu/~anderson/papers/opodis08.ps">Postscript</a>. <a href="http://www.cs.unc.edu/~anderson/papers/opodis08.pdf">PDF</a>. | 166 | </p> |
167 | </p> | 167 | </li> |
168 | </li> | 168 | |
169 | 169 | <li> | |
170 | <li> | 170 | <p> |
171 | <p> | 171 | B. Brandenburg, J. Calandrino, and J. Anderson, |
172 | B. Brandenburg, J. Calandrino, and J. Anderson, | 172 | “On the Scalability of Real-Time Scheduling Algorithms on Multicore Platforms: A Case Study”, |
173 | “On the Scalability of Real-Time Scheduling Algorithms on Multicore Platforms: A Case Study”, | 173 | <cite>Proceedings of the 29th IEEE Real-Time Systems Symposium</cite>, |
174 | <cite>Proceedings of the 29th IEEE Real-Time Systems Symposium</cite>, | 174 | pp. 157-169, December 2008. |
175 | pp. 157-169, December 2008. | 175 | <a href="http://www.cs.unc.edu/~anderson/papers/rtss08b.ps">Postscript</a>. <a href="http://www.cs.unc.edu/~anderson/papers/rtss08b.pdf">PDF</a>. |
176 | <a href="http://www.cs.unc.edu/~anderson/papers/rtss08b.ps">Postscript</a>. <a href="http://www.cs.unc.edu/~anderson/papers/rtss08b.pdf">PDF</a>. | 176 | </p> |
177 | </p> | 177 | </li> |
178 | </li> | 178 | |
179 | 179 | <li> | |
180 | <li> | 180 | <p> |
181 | <p> | 181 | B. Brandenburg and J. Anderson, |
182 | B. Brandenburg and J. Anderson, | 182 | “An Implementation of the PCP, SRP, D-PCP, M-PCP, |
183 | “An Implementation of the PCP, SRP, D-PCP, M-PCP, | 183 | and FMLP Real-Time Synchronization Protocols in LITMUS<sup>RT</sup>”, |
184 | and FMLP Real-Time Synchronization Protocols in LITMUS<sup>RT</sup>”, | 184 | <cite>Proceedings of the 14th IEEE International Conference on Embedded and Real-Time Computing Systems and Applications</cite>, pp. 185-194, August 2008. |
185 | <cite>Proceedings of the 14th IEEE International Conference on Embedded and Real-Time Computing Systems and Applications</cite>, pp. 185-194, August 2008. | 185 | <a href="http://www.cs.unc.edu/~anderson/papers/rtcsa08.ps">Postscript</a>. <a href="http://www.cs.unc.edu/~anderson/papers/rtcsa08.pdf">PDF</a>. |
186 | <a href="http://www.cs.unc.edu/~anderson/papers/rtcsa08.ps">Postscript</a>. <a href="http://www.cs.unc.edu/~anderson/papers/rtcsa08.pdf">PDF</a>. | 186 | </p> |
187 | </p> | 187 | <p><strong>Note:</strong> The work described in this paper took part in a branch that is currently not part of |
188 | <p><strong>Note:</strong> The work described in this paper took part in a branch that is currently not part of | 188 | the main distribution. For reference, we provide the branch as a separate download: |
189 | the main distribution. For reference, we provide the branch as a separate download: | 189 | </p> |
190 | </p> | 190 | <ul> |
191 | <ul> | 191 | <li> |
192 | <li> | 192 | <a href="download/RTCSA08/litmus-rt-RTCSA08.patch">litmus-rt-RTCSA08.patch</a> |
193 | <a href="download/RTCSA08/litmus-rt-RTCSA08.patch">litmus-rt-RTCSA08.patch</a> | 193 | </li> |
194 | </li> | 194 | <li> |
195 | <li> | 195 | <a href="download/RTCSA08/liblitmus-RTCSA08.tgz">liblitmus-RTCSA08.tgz</a> |
196 | <a href="download/RTCSA08/liblitmus-RTCSA08.tgz">liblitmus-RTCSA08.tgz</a> | 196 | </li> |
197 | </li> | 197 | <li><a href="download/RTCSA08/SHA256SUMS">SHA256 check sums</a> |
198 | <li><a href="download/RTCSA08/SHA256SUMS">SHA256 check sums</a> | 198 | </li> |
199 | </li> | 199 | </ul> |
200 | </ul> | 200 | <p>Please don't use this version for active development. If you are interested in this work, it would be best |
201 | <p>Please don't use this version for active development. If you are interested in this work, it would be best | 201 | to first port the desired features to a current version of LTIMUS<sup>RT</sup> and merge them into the main distribution. |
202 | to first port the desired features to a current version of LTIMUS<sup>RT</sup> and merge them into the main distribution. | 202 | </p> |
203 | </p> | 203 | |
204 | 204 | </li> | |
205 | </li> | 205 | |
206 | 206 | <li> | |
207 | <li> | 207 | <p> |
208 | <p> | 208 | A. Block, B. Brandenburg, J. Anderson, |
209 | A. Block, B. Brandenburg, J. Anderson, | 209 | and S. Quint, “An Adaptive Framework for Multiprocessor Real-Time Systems”, |
210 | and S. Quint, “An Adaptive Framework for Multiprocessor Real-Time Systems”, | 210 | <cite>Proceedings of the 20th Euromicro Conference on Real-Time Systems</cite>, pp. 23-33, July 2008. |
211 | <cite>Proceedings of the 20th Euromicro Conference on Real-Time Systems</cite>, pp. 23-33, July 2008. | 211 | <a href="http://www.cs.unc.edu/~anderson/papers/ecrts08b.ps">Postscript</a>. <a href="http://www.cs.unc.edu/~anderson/papers/ecrts08b.pdf">PDF</a>. |
212 | <a href="http://www.cs.unc.edu/~anderson/papers/ecrts08b.ps">Postscript</a>. <a href="http://www.cs.unc.edu/~anderson/papers/ecrts08b.pdf">PDF</a>. | 212 | </p> |
213 | </p> | 213 | </li> |
214 | </li> | 214 | |
215 | 215 | <li> | |
216 | <li> | 216 | <p> |
217 | <p> | 217 | B. Brandenburg, J. Calandrino, A. Block, |
218 | B. Brandenburg, J. Calandrino, A. Block, | 218 | H. Leontyev, and J. Anderson, “Real-Time Synchronization |
219 | H. Leontyev, and J. Anderson, “Real-Time Synchronization | 219 | on Multiprocessors: To Block or Not to Block, to Suspend or |
220 | on Multiprocessors: To Block or Not to Block, to Suspend or | 220 | Spin?”, <cite> Proceedings of the 14th IEEE Real-Time and Embedded |
221 | Spin?”, <cite> Proceedings of the 14th IEEE Real-Time and Embedded | 221 | Technology and Applications Symposium</cite>, pp. 342-353, April 2008. |
222 | Technology and Applications Symposium</cite>, pp. 342-353, April 2008. | 222 | <a href="http://www.cs.unc.edu/~anderson/papers/rtas08.ps">Postscript</a>. <a href="http://www.cs.unc.edu/~anderson/papers/rtas08.pdf">PDF</a>. |
223 | <a href="http://www.cs.unc.edu/~anderson/papers/rtas08.ps">Postscript</a>. <a href="http://www.cs.unc.edu/~anderson/papers/rtas08.pdf">PDF</a>. | 223 | </p> |
224 | </p> | 224 | <p> |
225 | <p> | 225 | Extended version, including all graphs: |
226 | Extended version, including all graphs: | 226 | <a href="http://www.cs.unc.edu/~anderson/papers/rtas08along.ps">Postscript</a>, |
227 | <a href="http://www.cs.unc.edu/~anderson/papers/rtas08along.ps">Postscript</a>, | 227 | <a href="http://www.cs.unc.edu/~anderson/papers/rtas08along.pdf">PDF</a>. |
228 | <a href="http://www.cs.unc.edu/~anderson/papers/rtas08along.pdf">PDF</a>. | 228 | </p> |
229 | </p> | 229 | </li> |
230 | </li> | 230 | |
231 | 231 | <li> | |
232 | <li> | 232 | <p> |
233 | <p> | 233 | B. Brandenburg, A. Block, J. Calandrino, U. Devi, H. Leontyev, and J. Anderson, |
234 | B. Brandenburg, A. Block, J. Calandrino, U. Devi, H. Leontyev, and J. Anderson, | 234 | "LITMUS<sup>RT</sup>: A Status Report", <cite> Proceedings of the 9th |
235 | "LITMUS<sup>RT</sup>: A Status Report", <cite> Proceedings of the 9th | 235 | Real-Time Linux Workshop</cite>, pp. 107-123, November 2007. |
236 | Real-Time Linux Workshop</cite>, pp. 107-123, November 2007. | 236 | <a href="http://www.cs.unc.edu/~anderson/papers/rtlws07.ps">Postscript</a>. |
237 | <a href="http://www.cs.unc.edu/~anderson/papers/rtlws07.ps">Postscript</a>. | 237 | <a href="http://www.cs.unc.edu/~anderson/papers/rtlws07.pdf">PDF</a>. |
238 | <a href="http://www.cs.unc.edu/~anderson/papers/rtlws07.pdf">PDF</a>. | 238 | </p> |
239 | </p> | 239 | </li> |
240 | </li> | 240 | |
241 | 241 | <li> | |
242 | <li> | 242 | <p> |
243 | <p> | 243 | B. Brandenburg and J. Anderson, "Integrating Hard/Soft Real-Time Tasks |
244 | B. Brandenburg and J. Anderson, "Integrating Hard/Soft Real-Time Tasks | 244 | and Best-Effort Jobs on Multiprocessors", <cite> Proceedings of the 19th Euromicro |
245 | and Best-Effort Jobs on Multiprocessors", <cite> Proceedings of the 19th Euromicro | 245 | Conference on Real-Time Systems</cite>, pp. 61-70, July 2007. |
246 | Conference on Real-Time Systems</cite>, pp. 61-70, July 2007. | 246 | <a href="http://www.cs.unc.edu/~anderson/papers/ecrts07b.ps">Postscript</a>, |
247 | <a href="http://www.cs.unc.edu/~anderson/papers/ecrts07b.ps">Postscript</a>, | 247 | <a href="http://www.cs.unc.edu/~anderson/papers/ecrts07b.pdf">PDF</a>. |
248 | <a href="http://www.cs.unc.edu/~anderson/papers/ecrts07b.pdf">PDF</a>. | 248 | </p> |
249 | </p> | 249 | </li> |
250 | </li> | 250 | |
251 | 251 | ||
252 | 252 | <li> | |
253 | <li> | 253 | <p> |
254 | <p> | 254 | J. Calandrino, H. Leontyev, A. Block, U. Devi, and J. Anderson, |
255 | J. Calandrino, H. Leontyev, A. Block, U. Devi, and J. Anderson, | 255 | "LITMUS<sup>RT</sup>: A Testbed for Empirically Comparing Real-Time |
256 | "LITMUS<sup>RT</sup>: A Testbed for Empirically Comparing Real-Time | 256 | Multiprocessor Schedulers ", <cite>Proceedings of the 27th IEEE Real-Time Systems |
257 | Multiprocessor Schedulers ", <cite>Proceedings of the 27th IEEE Real-Time Systems | 257 | Symposium</cite>, pp. 111-123, December 2006. |
258 | Symposium</cite>, pp. 111-123, December 2006. | 258 | <a href="http://www.cs.unc.edu/~anderson/papers/rtss06b.ps">Postscript</a>, |
259 | <a href="http://www.cs.unc.edu/~anderson/papers/rtss06b.ps">Postscript</a>, | 259 | <a href="http://www.cs.unc.edu/~anderson/papers/rtss06b.pdf">PDF</a>. |
260 | <a href="http://www.cs.unc.edu/~anderson/papers/rtss06b.pdf">PDF</a>. | 260 | </p> |
261 | </p> | 261 | </li> |
262 | </li> | 262 | |
263 | 263 | </ol> | |
264 | </ol> | 264 | </div> |
265 | </div> | 265 | |
266 | 266 | <h2 id="download">Download</h2> | |
267 | <h2 id="download">Download</h2> | 267 | <div class="box"> |
268 | <div class="box"> | 268 | <p class="notopmargin"> |
269 | <p class="notopmargin"> | 269 | The source code of LITMUS<sup>RT</sup> is made available as open source |
270 | The source code of LITMUS<sup>RT</sup> is made available as open source | 270 | under the terms of the <a href="http://www.gnu.org/licenses/gpl.txt">GNU |
271 | under the terms of the <a href="http://www.gnu.org/licenses/gpl.txt">GNU | 271 | General Public License (GPL)</a>. |
272 | General Public License (GPL)</a>. | 272 | </p> |
273 | </p> | 273 | <p> |
274 | <p> | 274 | The current release of LITMUS<sup>RT</sup> is 2010.1. |
275 | The current release of LITMUS<sup>RT</sup> is 2010.1. | 275 | It consists of our Linux kernel modifications in the form of |
276 | It consists of our Linux kernel modifications in the form of | 276 | a patch against Linux 2.6.32 and |
277 | a patch against Linux 2.6.32 and | 277 | |
278 | 278 | <span class="src">liblitmus</span>, the user-space API for real-time | |
279 | <span class="src">liblitmus</span>, the user-space API for real-time | 279 | tasks, as well as <span class="src">ft_tools</span>, a collection of tools |
280 | tasks, as well as <span class="src">ft_tools</span>, a collection of tools | 280 | used for tracing with <a href="http://www.cs.unc.edu/~bbb/feathertrace/">Feather-Trace</a> (which is part of the LITMUS<sup>RT</sup> patch). |
281 | used for tracing with <a href="http://www.cs.unc.edu/~bbb/feathertrace/">Feather-Trace</a> (which is part of the LITMUS<sup>RT</sup> patch). | 281 | </p> |
282 | </p> | 282 | |
283 | 283 | <h3 class="relname">LITMUS<sup>RT</sup> 2010.1</h3> | |
284 | <h3 class="relname">LITMUS<sup>RT</sup> 2010.1</h3> | 284 | <div class="release"> |
285 | <div class="release"> | 285 | <p> |
286 | <p> | 286 | Based on Linux 2.6.32. Released in May 2010. |
287 | Based on Linux 2.6.32. Released in May 2010. | 287 | |
288 | 288 | </p> | |
289 | </p> | 289 | <h4>Files:</h4> |
290 | <h4>Files:</h4> | 290 | <ul> |
291 | <ul> | 291 | <li> |
292 | <li> | 292 | <a href="download/2010.1/litmus-rt-2010.1.patch">litmus-rt-2010.1.patch</a> |
293 | <a href="download/2010.1/litmus-rt-2010.1.patch">litmus-rt-2010.1.patch</a> | 293 | </li> |
294 | </li> | 294 | <li> |
295 | <li> | 295 | <a href="download/2010.1/liblitmus-2010.1.tgz">liblitmus-2010.1.tgz</a> |
296 | <a href="download/2010.1/liblitmus-2010.1.tgz">liblitmus-2010.1.tgz</a> | 296 | </li> |
297 | </li> | 297 | |
298 | 298 | <li><a href="download/2010.1/SHA256SUMS">SHA256 check sums</a> | |
299 | <li><a href="download/2010.1/SHA256SUMS">SHA256 check sums</a> | 299 | </li> |
300 | </li> | 300 | </ul> |
301 | </ul> | 301 | <h4>Major changes (since LITMUS<sup>RT</sup> 2008.3):</h4> TO BE UPDATED |
302 | <h4>Major changes (since LITMUS<sup>RT</sup> 2008.3):</h4> TO BE UPDATED | 302 | <ul> |
303 | <ul> | 303 | <li> |
304 | <li> | 304 | Changed codebase from Linux 2.6.24 to Linux 2.6.32 |
305 | Changed codebase from Linux 2.6.24 to Linux 2.6.32 | 305 | </li> |
306 | </li> | 306 | <li>Several bugfixes.</li> |
307 | <li>Several bugfixes.</li> | 307 | </div> |
308 | </div> | 308 | |
309 | 309 | <p> | |
310 | <p> | 310 | Please note that the current implementation is a <em>prototype</em> with |
311 | Please note that the current implementation is a <em>prototype</em> with | 311 | certain limitations. Most notably, it is not secure in a multiuser context, |
312 | certain limitations. Most notably, it is not secure in a multiuser context, | 312 | <em>i.e.</em>, real-time system calls do not require superuser |
313 | <em>i.e.</em>, real-time system calls do not require superuser | 313 | privileges. |
314 | privileges. | 314 | </p> |
315 | </p> | 315 | |
316 | 316 | <p class="nobottommargin"> | |
317 | <p class="nobottommargin"> | 317 | |
318 | 318 | Older releases: <a href="litmus2008.html">LITMUS<sup>RT</sup> 2008 series</a>, <a href="litmus2007.html">LITMUS<sup>RT</sup> 2007 series</a>. | |
319 | Older releases: <a href="litmus2008.html">LITMUS<sup>RT</sup> 2008 series</a>, <a href="litmus2007.html">LITMUS<sup>RT</sup> 2007 series</a>. | 319 | </p> |
320 | </p> | 320 | |
321 | 321 | </div> | |
322 | </div> | 322 | |
323 | 323 | ||
324 | 324 | ||
325 | 325 | <h2 id="install">Installation</h2> | |
326 | <h2 id="install">Installation</h2> | 326 | <div class="box"> |
327 | <div class="box"> | 327 | <p class="notopmargin"> |
328 | <p class="notopmargin"> | 328 | The current release of LITMUS<sup>RT</sup> consists of an |
329 | The current release of LITMUS<sup>RT</sup> consists of an | 329 | extension of the Linux kernel that adds support for the sporadic task |
330 | extension of the Linux kernel that adds support for the sporadic task | 330 | model, a scheduler plugin infrastructure, and some scheduler plugins, as |
331 | model, a scheduler plugin infrastructure, and some scheduler plugins, as | 331 | well as a user-space library that provides the LITMUS<sup>RT</sup> |
332 | well as a user-space library that provides the LITMUS<sup>RT</sup> | 332 | real-time API. Note that the current implementation only works on the |
333 | real-time API. Note that the current implementation only works on the | 333 | Intel x86-32 and sparc64 architectures. |
334 | Intel x86-32 and x86-64 architectures. | 334 | </p> |
335 | </p> | 335 | <h3>Patching the Kernel</h3> |
336 | <h3>Patching the Kernel</h3> | 336 | <p class="notopmargin"> |
337 | <p class="notopmargin"> | 337 | The extension to the Linux kernel is released as a patch against Linux |
338 | The extension to the Linux kernel is released as a patch against Linux | 338 | 2.6.32. To install the LITMUS<sup>RT</sup> kernel, first <a |
339 | 2.6.32. To install the LITMUS<sup>RT</sup> kernel, first <a | 339 | href="http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.32.tar.bz2">download the Linux |
340 | href="http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.32.tar.bz2">download the Linux | 340 | kernel 2.6.32</a> and untar it in a directory of your choice (hereafter |
341 | kernel 2.6.32</a> and untar it in a directory of your choice (hereafter | 341 | referred to as <span class="src">$DIR</span>). Second, apply the |
342 | referred to as <span class="src">$DIR</span>). Second, apply the | 342 | LITMUS<sup>RT</sup> patch (see <a href="#download">Section Download</a>) |
343 | LITMUS<sup>RT</sup> patch (see <a href="#download">Section Download</a>) | 343 | and configure, compile, and install the kernel as usual. The patch is <span |
344 | and configure, compile, and install the kernel as usual. The patch is <span | 344 | class="src">-p1</span> applicable. |
345 | class="src">-p1</span> applicable. | 345 | To summarize, the LITMUS<sup>RT</sup> kernel can be obtained, patched, and |
346 | To summarize, the LITMUS<sup>RT</sup> kernel can be obtained, patched, and | 346 | compiled with the following commands: |
347 | compiled with the following commands: | 347 | </p> |
348 | </p> | 348 | <pre class="shell"> |
349 | <pre class="shell"> | 349 | cd $DIR |
350 | cd $DIR | 350 | # get Linux 2.6.32 |
351 | # get Linux 2.6.32 | 351 | wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.32.tar.bz2 |
352 | wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.32.tar.bz2 | 352 | tar xjf linux-2.6.32.tar.bz2 |
353 | tar xjf linux-2.6.32.tar.bz2 | 353 | wget http://www.cs.unc.edu/~anderson/litmus-rt/download/2010.1/litmus-rt-2010.1.patch |
354 | wget http://www.cs.unc.edu/~anderson/litmus-rt/download/2010.1/litmus-rt-2010.1.patch | 354 | mv linux-2.6.32 litmus2010 |
355 | mv linux-2.6.32 litmus2010 | 355 | # apply the LITMUS RT patch |
356 | # apply the LITMUS RT patch | 356 | cd litmus2010 |
357 | cd litmus2010 | 357 | patch -p1 < ../litmus-rt-2010.1.patch |
358 | patch -p1 < ../litmus-rt-2010.1.patch | 358 | # create a working kernel configuration |
359 | # create a working kernel configuration | 359 | # - select HZ=1000 |
360 | # - select HZ=1000 | 360 | # - enable in-kernel preemptions |
361 | # - enable in-kernel preemptions | 361 | # - disable NO_HZ |
362 | # - disable NO_HZ | 362 | # - don't use power management options like frequency scaling |
363 | # - don't use power management options like frequency scaling | 363 | # - disable support for group scheduling |
364 | # - disable support for group scheduling | 364 | make menuconfig |
365 | make menuconfig | 365 | # compile the kernel |
366 | # compile the kernel | 366 | make bzImage |
367 | make bzImage | 367 | make modules |
368 | make modules | 368 | # proceed to install kernel, build initrd, etc. |
369 | # proceed to install kernel, build initrd, etc. | 369 | ... |
370 | ... | 370 | </pre> |
371 | </pre> | 371 | <p> |
372 | <p> | 372 | When configuring the kernel, note that there is a menu (at the very end of the list) |
373 | When configuring the kernel, note that there is a menu (at the very end of the list) | 373 | with LITMUS<sup>RT</sup>-specific configuration options. For reference, we provide sample <a href="download/2010.1/32bit-config">32-bit </a> and <a href="download/2010.1/64bit-config">64-bit </a> configurations that are known to work under QEMU</a>. |
374 | with LITMUS<sup>RT</sup>-specific configuration options. For reference, we provide sample <a href="download/2010.1/32bit-config">32-bit </a> and <a href="download/2010.1/64bit-config">64-bit </a> configurations that are known to work under QEMU</a>. | 374 | </p> |
375 | </p> | 375 | |
376 | 376 | <h3>Libraries</h3> | |
377 | <h3>Libraries</h3> | 377 | <p class="notopmargin"> |
378 | <p class="notopmargin"> | 378 | The user-space library for real-time tasks, <span class="src">liblitmus</span>, |
379 | The user-space library for real-time tasks, <span class="src">liblitmus</span>, | 379 | depends on the LITMUS<sup>RT</sup> kernel kernel and provides its own build system (based on <a href="http://www.scons.org/">scons</a>). |
380 | depends on the LITMUS<sup>RT</sup> kernel kernel and provides its own build system (based on <a href="http://www.scons.org/">scons</a>). | 380 | In order to compile <span class="src">liblitmus</span>, you need to adjust the |
381 | In order to compile <span class="src">liblitmus</span>, you need to adjust the | 381 | variable <span class="src">LITMUS_KERNEL</span> in the <span class="src">SConstruct</span> file to point to your |
382 | variable <span class="src">LITMUS_KERNEL</span> in the <span class="src">SConstruct</span> file to point to your | 382 | copy of the kernel. Users should not update the <span class="src">SConstruct</span> file manually anymore. Instead, a <span class="src">.config</span> file can be created with appropriate variables. The required variables can be listed using <span class="src"> scons -h </span> command. This command lists the variables required for building the <span class="src"> liblitmus2010 </span> library. <br> |
383 | copy of the kernel. Users should not update the <span class="src">SConstruct</span> file manually anymore. Instead, a <span class="src">.config</span> file can be created with appropriate variables. The required variables can be listed using <span class="src"> scons -h </span> command. This command lists the variables required for building the <span class="src"> liblitmus2010 </span> library. <br> | 383 | Sample output of <span class="src"> scons -h </span> is as shown below. |
384 | Sample output of <span class="src"> scons -h </span> is as shown below. | 384 | </p> |
385 | </p> | 385 | <p> |
386 | <p> | 386 | <pre class="shell"> |
387 | <pre class="shell"> | 387 | scons -h |
388 | scons -h | 388 | scons: Reading SConscript files ... |
389 | scons: Reading SConscript files ... | 389 | scons: done reading SConscript files. |
390 | scons: done reading SConscript files. | 390 | |
391 | 391 | ============================================= | |
392 | ============================================= | 392 | liblitmus --- The LITMUS^RT Userspace Library |
393 | liblitmus --- The LITMUS^RT Userspace Library | 393 | |
394 | 394 | There are a number of user-configurable build | |
395 | There are a number of user-configurable build | 395 | variables. These can either be set on the |
396 | variables. These can either be set on the | 396 | command line (e.g., scons ARCH=x86) or read |
397 | command line (e.g., scons ARCH=x86) or read | 397 | from a local configuration file (.config). |
398 | from a local configuration file (.config). | 398 | |
399 | 399 | Run 'scons --dump-config' to see the final | |
400 | Run 'scons --dump-config' to see the final | 400 | build configuration. |
401 | build configuration. | 401 | |
402 | 402 | Build Variables | |
403 | Build Variables | 403 | --------------- |
404 | --------------- | 404 | |
405 | 405 | LITMUS_KERNEL: Where to find the LITMUS^RT kernel. ( /path/to/LITMUS_KERNEL ) | |
406 | LITMUS_KERNEL: Where to find the LITMUS^RT kernel. ( /path/to/LITMUS_KERNEL ) | 406 | default: ../litmus2010 |
407 | default: ../litmus2010 | 407 | actual: ../litmus2010 |
408 | actual: ../litmus2010 | 408 | |
409 | 409 | PYTHON_HEADERS: Where to find Python headers. ( /path/to/PYTHON_HEADERS ) | |
410 | PYTHON_HEADERS: Where to find Python headers. ( /path/to/PYTHON_HEADERS ) | 410 | default: /usr/include/python2.5 |
411 | default: /usr/include/python2.5 | 411 | actual: /usr/include/python2.5 |
412 | actual: /usr/include/python2.5 | 412 | |
413 | 413 | ARCH: Target architecture. (x86_64|sparc64|x86|i686) | |
414 | ARCH: Target architecture. (x86_64|sparc64|x86|i686) | 414 | default: x86_64 |
415 | default: x86_64 | 415 | actual: x86_64 |
416 | actual: x86_64 | 416 | |
417 | 417 | WSS: Working set size for pm analysis | |
418 | WSS: Working set size for pm analysis | 418 | default: 3072 |
419 | default: 3072 | 419 | actual: 3072 |
420 | actual: 3072 | 420 | |
421 | 421 | Use scons -H for help about command-line options. | |
422 | Use scons -H for help about command-line options. | 422 | </pre> |
423 | </pre> | 423 | |
424 | 424 | <p class="notopmargin"> | |
425 | <p class="notopmargin"> | 425 | To summarize, the <span class="src"> liblitmus </span> can be obtained and |
426 | To summarize, the <span class="src"> liblitmus </span> can be obtained and | 426 | compiled with the following commands: |
427 | compiled with the following commands: | 427 | </p> |
428 | </p> | 428 | |
429 | 429 | <pre class="shell"> | |
430 | <pre class="shell"> | 430 | cd $DIR |
431 | cd $DIR | 431 | wget http://www.cs.unc.edu/~anderson/litmus-rt/download/2010.1/liblitmus-2010.1.tgz |
432 | wget http://www.cs.unc.edu/~anderson/litmus-rt/download/2010.1/liblitmus-2010.1.tgz | 432 | tar xzf liblitmus-2010.1.tgz |
433 | tar xzf liblitmus-2010.1.tgz | 433 | cd liblitmus |
434 | cd liblitmus | 434 | |
435 | 435 | # set LITMUS_KERNEL in .config to point to the kernel source and compile | |
436 | # set LITMUS_KERNEL in .config to point to the kernel source and compile | 436 | scons |
437 | scons | 437 | </pre> |
438 | </pre> | 438 | <p class="nobottommargin"> |
439 | <p class="nobottommargin"> | 439 | Please refer to the <a href="#doc">documentation</a> on how to use the LITMUS<sup>RT</sup> |
440 | Please refer to the <a href="#doc">documentation</a> on how to use the LITMUS<sup>RT</sup> | 440 | real-time API as provided by <span class="src">liblitmus</span>. |
441 | real-time API as provided by <span class="src">liblitmus</span>. | 441 | </p> |
442 | </p> | 442 | |
443 | 443 | </div> | |
444 | </div> | 444 | |
445 | 445 | ||
446 | 446 | <h2 id="doc">Documentation</h2> | |
447 | <h2 id="doc">Documentation</h2> | 447 | <div class="box"> |
448 | <div class="box"> | 448 | |
449 | 449 | <p class="notopmargin"> | |
450 | <p class="notopmargin"> | 450 | Unfortunately, most of the documentation has yet to be written. To get an overview of |
451 | Unfortunately, most of the documentation has yet to be written. To get an overview of | 451 | the architecture of the kernel extension, we recommend reading the paper |
452 | the architecture of the kernel extension, we recommend reading the paper | 452 | <a href="http://www.cs.unc.edu/~anderson/papers/rtlws07.pdf">“LITMUS<sup>RT</sup>: |
453 | <a href="http://www.cs.unc.edu/~anderson/papers/rtlws07.pdf">“LITMUS<sup>RT</sup>: | 453 | A Status Report”</a>. |
454 | A Status Report”</a>. | 454 | </p> |
455 | </p> | 455 | <h3>Real-Time Scheduling Policies</h3> |
456 | <h3>Real-Time Scheduling Policies</h3> | 456 | <p class="qa"> |
457 | <p class="qa"> | 457 | The kernel contains the following real-time scheduling policy implementations: |
458 | The kernel contains the following real-time scheduling policy implementations: | 458 | </p> |
459 | </p> | 459 | <ul> |
460 | <ul> | 460 | <li> |
461 | <li> | 461 | PFAIR, an implementation of the PD<sup>2</sup> algorithm, |
462 | PFAIR, an implementation of the PD<sup>2</sup> algorithm, | 462 | </li> |
463 | </li> | 463 | <li> |
464 | <li> | 464 | PSN-EDF, a partitioned EDF (P-EDF) implementation with support for the real-time synchronization protocol |
465 | PSN-EDF, a partitioned EDF (P-EDF) implementation with support for the real-time synchronization protocol | 465 | FMLP, |
466 | FMLP, | 466 | </li> |
467 | </li> | 467 | <li> |
468 | <li> | 468 | GSN-EDF, a global EDF (G-EDF) implementation with support for the real-time synchronization protocol |
469 | GSN-EDF, a global EDF (G-EDF) implementation with support for the real-time synchronization protocol | 469 | FMLP, |
470 | FMLP, | 470 | </li> |
471 | </li> | 471 | <li> |
472 | <li> | 472 | C-EDF (Clustered EDF), a hybrid of G-EDF and P-EDF, and |
473 | C-EDF (Clustered EDF), a hybrid of G-EDF and P-EDF, and | 473 | </li> |
474 | </li> | 474 | <li> |
475 | <li> | 475 | Linux, a placeholder policy that disables all real-time functionality added by the LITMUS<sup>RT</sup> patch. |
476 | Linux, a placeholder policy that disables all real-time functionality added by the LITMUS<sup>RT</sup> patch. | 476 | </li> |
477 | </li> | 477 | </ul> |
478 | </ul> | 478 | <p> |
479 | <p> | 479 | Only one policy can be active at any time. Initially (<em>i.e.,</em> during and after boot), the "Linux" policy is active. |
480 | Only one policy can be active at any time. Initially (<em>i.e.,</em> during and after boot), the "Linux" policy is active. | 480 | You can use the tool <span class="src">showsched</span> (part of <span class="src">liblitmus</span>) to display |
481 | You can use the tool <span class="src">showsched</span> (part of <span class="src">liblitmus</span>) to display | 481 | the name of the currently active policy. |
482 | the name of the currently active policy. | 482 | </p> |
483 | </p> | 483 | <h3>Changing the Active Policy</h3> |
484 | <h3>Changing the Active Policy</h3> | 484 | <p class="qa"> |
485 | <p class="qa"> | 485 | You can use the tool <span class="src">setsched</span> (part of <span class="src">liblitmus</span>) |
486 | You can use the tool <span class="src">setsched</span> (part of <span class="src">liblitmus</span>) | 486 | to select a new plugin at run time. |
487 | to select a new plugin at run time. | 487 | </p> |
488 | </p> | 488 | <div class="screenshot"> |
489 | <div class="screenshot"> | 489 | <img src="gfx/setsched.png" alt="Screen shot of setsched"/> |
490 | <img src="gfx/setsched.png" alt="Screen shot of setsched"/> | 490 | </div> |
491 | </div> | 491 | <p> |
492 | <p> | 492 | Only root can change the active policy, and only when there are no real-time tasks present. |
493 | Only root can change the active policy, and only when there are no real-time tasks present. | 493 | </p> |
494 | </p> | 494 | <p> |
495 | <p> | 495 | If you do not have the <span class="src">dialog</span> utility installed, then you can still use <span class="src">setsched</span> by passing the desired scheduling policy as a commandline parameter, <em>e.g.</em> type <span class="src"> setsched PFAIR </span> to activate the PFAIR plugin. |
496 | If you do not have the <span class="src">dialog</span> utility installed, then you can still use <span class="src">setsched</span> by passing the desired scheduling policy as a commandline parameter, <em>e.g.</em> type <span class="src"> setsched PFAIR </span> to activate the PFAIR plugin. | 496 | </p> |
497 | </p> | 497 | <h3>Writing Real-Time Tasks</h3> |
498 | <h3>Writing Real-Time Tasks</h3> | 498 | <p class="qa"> |
499 | <p class="qa"> | 499 | The user space library that provides the LITMUS<sup>RT</sup> API, |
500 | The user space library that provides the LITMUS<sup>RT</sup> API, | 500 | <span class="src">liblitmus</span>, contains two example real-time tasks |
501 | <span class="src">liblitmus</span>, contains two example real-time tasks | 501 | (<span class="src">base_task.c</span> and |
502 | (<span class="src">base_task.c</span> and | 502 | <span class="src">base_mt_task.c</span>) |
503 | <span class="src">base_mt_task.c</span>) | 503 | that both illustrate how to use the API and provide a skeleton for real-time |
504 | that both illustrate how to use the API and provide a skeleton for real-time | 504 | task development. To get started with development, please take a look these example |
505 | task development. To get started with development, please take a look these example | 505 | programs. |
506 | programs. | 506 | </p> |
507 | </p> | 507 | <h3>Tracing Overheads and Scheduling Decisions</h3> |
508 | <h3>Tracing Overheads and Scheduling Decisions</h3> | 508 | <p class="qa">LITMUS<sup>RT</sup> provides numerous tracing facilities that are discussed in-depth in the tutorial <a href="doc/tracing.html">Tracing with LITMUS<sup>RT</sup></a>. |
509 | <p class="qa">LITMUS<sup>RT</sup> provides numerous tracing facilities that are discussed in-depth in the tutorial <a href="doc/tracing.html">Tracing with LITMUS<sup>RT</sup></a>. | 509 | </p> |
510 | </p> | 510 | <p class="nobottommargin"> |
511 | <p class="nobottommargin"> | 511 | Please contact <span class="src">bbb[AT]cs.unc.edu</span> if you have any |
512 | Please contact <span class="src">bbb[AT]cs.unc.edu</span> if you have any | 512 | questions. |
513 | questions. | 513 | </p> |
514 | </p> | 514 | |
515 | 515 | ||
516 | 516 | </div> | |
517 | </div> | 517 | |
518 | 518 | <h2 id="credits">Credits</h2> | |
519 | <h2 id="credits">Credits</h2> | 519 | <div class="box"> |
520 | <div class="box"> | 520 | <div style="float: right;"> |
521 | <div style="float: right;"> | 521 | <a href="http://validator.w3.org/check?uri=referer"><img |
522 | <a href="http://validator.w3.org/check?uri=referer"><img | 522 | src="http://www.w3.org/Icons/valid-xhtml10" |
523 | src="http://www.w3.org/Icons/valid-xhtml10" | 523 | alt="Valid XHTML 1.0 Strict" height="31" width="88"/></a> |
524 | alt="Valid XHTML 1.0 Strict" height="31" width="88"/></a> | 524 | </div> |
525 | </div> | 525 | |
526 | 526 | <p class="nomargin"> | |
527 | <p class="nomargin"> | 527 | Linux is a registered trademark of Linus Torvalds. <br /> The |
528 | Linux is a registered trademark of Linus Torvalds. <br /> The | 528 | LITMUS<sup>RT</sup> logo was designed by Jasper McChesney of <a href="http://www.breakforsense.net/">Break for Sense Design</a>. <br /> |
529 | LITMUS<sup>RT</sup> logo was designed by Jasper McChesney of <a href="http://www.breakforsense.net/">Break for Sense Design</a>. <br /> | 529 | Web design by Björn Brandenburg. |
530 | Web design by Björn Brandenburg. | 530 | </p> |
531 | </p> | 531 | |
532 | 532 | ||
533 | 533 | </div> | |
534 | </div> | 534 | |
535 | 535 | <script src="http://www.google-analytics.com/urchin.js" type="text/javascript"> | |
536 | <script src="http://www.google-analytics.com/urchin.js" type="text/javascript"> | 536 | </script> |
537 | </script> | 537 | <script type="text/javascript"> |
538 | <script type="text/javascript"> | 538 | _uacct = "UA-3184628-1"; |
539 | _uacct = "UA-3184628-1"; | 539 | urchinTracker(); |
540 | urchinTracker(); | 540 | </script> |
541 | </script> | 541 | </body> |
542 | </body> | 542 | </html> |
543 | </html> | ||