From 500804f9b4a81e9cf18f3a42f966cad3d241c793 Mon Sep 17 00:00:00 2001
From: Guruprasad Aphale <guru@koruna.cs.unc.edu>
Date: Tue, 18 May 2010 17:55:45 -0400
Subject: Revert back Bjoern's changes and added scons -h option

---
 index.html | 1085 ++++++++++++++++++++++++++++++------------------------------
 1 file changed, 543 insertions(+), 542 deletions(-)

diff --git a/index.html b/index.html
index bb6c026..2116e9c 100644
--- a/index.html
+++ b/index.html
@@ -1,542 +1,543 @@
- 
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> 
-  <head> 
-    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> 
-    <meta name="verify-v1" content="pZNmf5XyUUfAPdlSPbFSavMUsLgVsmBYOXzOhbIy2gw=" /> 
-    <link rel="stylesheet" type="text/css" href="inc/format.css"/> 
-    <title>LITMUS RT: Linux Testbed for Multiprocessor Scheduling in Real-Time Systems</title> 
-  </head> 
-  <body>   
-    <div class="logobox"> 
-        <img src="inc/litmusrt.png" alt="LITMUS^RT: Linux Testbed for Multiprocessor Scheduling in Real-Time Systems" /> 
-	<p class="authors"> 
-	   <a href="http://www.cs.unc.edu/~anderson/">Dr. James H. Anderson &amp;
-	   Students</a>, 
-	   <a href="http://www.unc.edu">The University of North Carolina at Chapel Hill</a> 
-	</p> 
- 
-   </div> 
- 
-   <div class="nav"> 
-   <p>   
-   <a href="#about">about</a> - 
-   <a href="#support">support</a> -
-   <a href="#collaborators">collaborators</a> - 
-   <a href="#publications">publications</a> - 
-   <a href="#download">download</a> - 
-   <a href="#install">installation</a> -
-   <a href="#doc">documentation</a>      
-   </p> 
-   </div> 
- 
-   <h2 id="about">About</h2> 
-    <div class="box"> 
-    <p class="nomargin"> 
-    The LITMUS<sup>RT</sup> project is a soft real-time extension of the Linux
-    kernel with focus on multiprocessor real-time scheduling and
-    synchronization. The Linux kernel is modified 
-    to support the sporadic task
-    model and modular scheduler plugins. Both partitioned and global scheduling
-    is supported. 
-    </p> 
-    <h3>Goals</h3> 
-    <p class="notopmargin"> 
-    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.
-    </p> 
-    <h3>Non-Goals</h3> 
-    <p class="notopmargin"> 
-    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.
-    </p> 
-    <h3>Current Version</h3> 
-    <p class="notopmargin"> 
-    The current version of LITMUS<sup>RT</sup> is <strong>2010.1</strong> and is based on Linux&nbsp;2.6.32. 
-    It was released on 05/12/2010 and includes plugins for the following
-    scheduling policies:
-    </p> 
-    <ul> 
-      <li> Partitioned EDF with synchronization support (PSN-EDF)</li> 
-      <li> Global EDF with synchronization support (GSN-EDF)</li> 
-      <li> Clustered EDF (C-EDF) </li> 
-      <li> PFAIR (both staggered and aligned quanta are supported)</li> 
-    </ul> 
-    <p> 
-    Please refer to the <a href="#download">download</a> and <a href="#install">installation</a> sections for details.
-    </p> 
-    <p>Earlier versions (2008.1 &mdash 2008.3),based on Linux &nbsp;2.6.24 and (2007.1 &mdash; 2007.3), based on Linux&nbsp;2.6.20 
-    ,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.
-    </p> 
-    <p class="nobottommargin"> 
-       The first version of LITMUS<sup>RT</sup>, which was implemented in Spring 2006, 
-       is based on Linux&nbsp;2.6.9.
-    </p> 
-	<h3> Development Plans </h3>
-	There are plans to port LITMUS<sup>RT</sup> to PowerPC and ARM platforms. Please contact us for details. 
-   </div>
-   <h2 id="support">Support</h2> 
-    <div class="box"> 
-    <p class="nomargin"> 
-    The LITMUS<sup>RT</sup> development effort is being supported by grants from, SUN Corp.,
-    Intel Corp., IBM Corp., The National Science Foundation (grant CCR 0615197), and The U.S.
-    Army Research Office (grant W911NF-06-1-0425).
-    </p> 
-    </div> 
- 
-   <h2 id="collaborators">Collaborators</h2> 
-    <div class="box"> 
-    <p class="notopmargin"> The LITMUS<sup>RT</sup> project is led by <a 
-    href="http://www.cs.unc.edu/~anderson/">Dr. James H. Anderson</a>.
-    </p> 
-    <p> 
-    The implementation effort is carried out by students of the 
-    <a href="http://www.cs.unc.edu/~anderson/real-time/">Real-Time Systems
-    Group</a> at the <a href="http://www.unc.edu">University of North Carolina
-    at Chapel Hill</a>:
-    </p> 
-    <ul> 
-    <li> 
-	<a href="http://www.cs.unc.edu/~bbb/">Bj&ouml;rn B. Brandenburg</a> (current maintainer)
-    </li> 
-    <li> <a href="http://www.sprg.uniroma2.it/home/bastoni/">Andrea Bastoni</a> (Visiting researcher from University of Rome "Tor Vergata") 
-    </li> 
-    </ul> 
-	<p class="nobottommargin"> 
-	(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>.)
-	</p> 
-    </div> 
-    
- 
-     <h2 id="publications">Publications</h2> 
-    <div class="box">    
-    <ol class="nomargin">      
-    <li><p> 
-              B. Brandenburg and J. Anderson,
-	  &#8220;On the Implementation of Global Real-Time
-	  Schedulers&#8221;, <cite>Proceedings of the 30th IEEE Real-Time Systems Symposium</cite>, pp.&nbsp;214-224, December 2009.
-	<a href="http://www.cs.unc.edu/~anderson/papers/rtss09a.ps">Postscript</a>.
-	  <a href="http://www.cs.unc.edu/~anderson/papers/rtss09a.pdf">PDF</a>.
-	  Longer version with all graphs:
-	<a href="http://www.cs.unc.edu/~anderson/papers/rtss09a_long.ps">Postscript</a>.
-	  <a href="http://www.cs.unc.edu/~anderson/papers/rtss09a_long.pdf">PDF</a>.
-</p> 
-<p> For reference, all evaluated plugins are provided as part of the following patch (against version 2008.3).
-</p> 
- 	  <ul> 
-	 <li> 
-	 	<a href="download/RTSS09/litmus-rt-RTSS09.patch">litmus-rt-RTSS09.patch</a> 
-	 </li> 
-	 </ul> 
- 
-</li> 
-      <li> 
-      <p> 
-	B. Brandenburg and J. Anderson
-	&ldquo;Reader-Writer Synchronization for Shared-Memory Multiprocessor Real-Time Systems&rdquo;, 
-	<cite>Proceedings of the 21st Euromicro Conference on Real-Time Systems</cite>, pp. 184-193, July 2009.
-	<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>.
-	Long version with blocking terms:
-	<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>.
-	</p> 
-      </li> 
- 
-      <li> 
-      <p> 
-	J. Calandrino and J. Anderson
-	&ldquo;On the Design and Implementation of a Cache-Aware Multicore Real-Time Scheduler&rdquo;, 
-	<cite>Proceedings of the 21st Euromicro Conference on Real-Time Systems</cite>, pp. 194-204, July 2009.
-	<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>.
-	</p> 
-      </li> 
- 
-      <li> 
-      <p> 
-	M. Mollison, B. Brandenburg, and J. Anderson
-	&ldquo;Towards Unit Testing Real-Time Schedulers in LITMUS<sup>RT</sup>&rdquo;, 
-	<cite>Proceedings of the Fifth International Workshop on Operating Systems Platforms for Embedded Real-Time Applications</cite>, pp. 33-39, July 2009.
-	<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>.
-	</p> 
-      </li> 
- 
-      <li> 
-      	<p> 
-	B. Brandenburg and J. Anderson,
-	&ldquo;A Comparison of the M-PCP, D-PCP, and FMLP on LITMUS<sup>RT</sup>&rdquo;, 
-	<cite>Proceedings of the 12th International Conference on Principles of Distributed Systems</cite>, pp. 105-124, December 2008. 
-	<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>.
-	</p> 
-      </li> 
-      
-      <li> 
-      	<p> 
-	B. Brandenburg, J. Calandrino,  and J. Anderson,
-	&ldquo;On the Scalability of Real-Time Scheduling Algorithms on Multicore Platforms: A Case Study&rdquo;,
-	<cite>Proceedings of the 29th IEEE Real-Time Systems Symposium</cite>,
-	pp. 157-169, December 2008.
-	<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>.
-	</p> 
-      </li> 
- 
-      <li> 
-      	<p> 
-	B. Brandenburg and J. Anderson,
-	&ldquo;An Implementation of the PCP, SRP, D-PCP, M-PCP, 
-	and FMLP Real-Time Synchronization Protocols in LITMUS<sup>RT</sup>&rdquo;, 
-	<cite>Proceedings of the 14th IEEE International Conference on Embedded and Real-Time Computing Systems and Applications</cite>, pp. 185-194, August 2008. 
-	<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>.
-	</p> 
-	<p><strong>Note:</strong> The work described in this paper took part in a branch that is currently not part of
-	   the main distribution. For reference, we provide the branch as a separate download:
-	</p> 
- 	  <ul> 
-	 <li> 
-	 	<a href="download/RTCSA08/litmus-rt-RTCSA08.patch">litmus-rt-RTCSA08.patch</a> 
-	 </li> 
-	 <li> 
-	 	<a href="download/RTCSA08/liblitmus-RTCSA08.tgz">liblitmus-RTCSA08.tgz</a> 
-	 </li> 
-	 <li><a href="download/RTCSA08/SHA256SUMS">SHA256 check sums</a> 
-	 </li> 
-         </ul> 
-	 <p>Please don't use this version for active development. If you are interested in this work, it would be best 
-	 to first port the desired features to a current version of LTIMUS<sup>RT</sup> and merge them into the main distribution.
-	 </p> 
- 
-      </li> 
- 
-      <li> 
-       <p> 
-	A. Block, B. Brandenburg, J. Anderson,
-	and S. Quint, &ldquo;An Adaptive Framework for Multiprocessor Real-Time Systems&rdquo;, 
-	<cite>Proceedings of the 20th Euromicro Conference on Real-Time Systems</cite>, pp. 23-33, July 2008. 
-	<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>.
-	</p> 
-      </li> 
- 
-      <li> 
-      <p> 
-	B. Brandenburg, J. Calandrino, A. Block,
-	H. Leontyev, and J. Anderson, &ldquo;Real-Time Synchronization
-	on Multiprocessors: To Block or Not to Block, to Suspend or
-	Spin?&rdquo;, <cite> Proceedings of the 14th IEEE Real-Time and Embedded
-Technology and Applications Symposium</cite>, pp. 342-353, April 2008.  
-	<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>.
-	</p> 
-      <p> 
-	Extended version, including all graphs:
-	<a href="http://www.cs.unc.edu/~anderson/papers/rtas08along.ps">Postscript</a>,
-	<a href="http://www.cs.unc.edu/~anderson/papers/rtas08along.pdf">PDF</a>.
-      </p> 
-    </li> 
- 
-    <li> 
-      <p> 
-	B. Brandenburg, A. Block, J. Calandrino, U. Devi, H. Leontyev, and J. Anderson,
-	&quot;LITMUS<sup>RT</sup>:  A Status Report&quot;, <cite> Proceedings of the 9th
-	  Real-Time Linux Workshop</cite>, pp. 107-123, November 2007.
-	<a href="http://www.cs.unc.edu/~anderson/papers/rtlws07.ps">Postscript</a>.
-	<a href="http://www.cs.unc.edu/~anderson/papers/rtlws07.pdf">PDF</a>.
-      </p> 
-    </li> 
- 
-    <li> 
-      <p> 
-	B. Brandenburg and J. Anderson, &quot;Integrating Hard/Soft Real-Time Tasks
-	and Best-Effort Jobs on Multiprocessors&quot;, <cite> Proceedings of the 19th Euromicro
-	  Conference on Real-Time Systems</cite>, pp. 61-70, July 2007.
-	<a href="http://www.cs.unc.edu/~anderson/papers/ecrts07b.ps">Postscript</a>, 
-	<a href="http://www.cs.unc.edu/~anderson/papers/ecrts07b.pdf">PDF</a>.
-      </p> 
-    </li> 
-    
- 
-    <li> 
-    <p> 
-      J. Calandrino, H. Leontyev, A. Block, U. Devi, and J. Anderson,
-      &quot;LITMUS<sup>RT</sup>: A Testbed for Empirically Comparing Real-Time
-      Multiprocessor Schedulers &quot;, <cite>Proceedings of the 27th IEEE Real-Time Systems
-	Symposium</cite>, pp. 111-123, December 2006.
-      <a href="http://www.cs.unc.edu/~anderson/papers/rtss06b.ps">Postscript</a>,
-      <a href="http://www.cs.unc.edu/~anderson/papers/rtss06b.pdf">PDF</a>.
-    </p> 
-    </li> 
-    
-    </ol> 
-    </div> 
-    
-    <h2 id="download">Download</h2> 
-    <div class="box"> 
-    <p class="notopmargin"> 
-    The source code of LITMUS<sup>RT</sup> is made available as open source
-    under the terms of the <a href="http://www.gnu.org/licenses/gpl.txt">GNU
-    General Public License (GPL)</a>. 
-    </p> 
-    <p> 
-    The current release of LITMUS<sup>RT</sup> is 2010.1. 
-    It  consists of our Linux kernel modifications in the form of
-    a patch against Linux 2.6.32 and 
- 
-      <span class="src">liblitmus</span>, the user-space API for real-time
-    tasks, as well as <span class="src">ft_tools</span>, a collection of tools
-    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).
-    </p> 
- 
-    <h3 class="relname">LITMUS<sup>RT</sup> 2010.1</h3> 
-    <div class="release"> 
-    <p> 
-         Based on Linux 2.6.32. Released in May 2010.
- 
-    </p> 
-    <h4>Files:</h4> 
-    <ul> 
-	 <li> 
-	 	<a href="download/2010.1/litmus-rt-2010.1.patch">litmus-rt-2010.1.patch</a> 
-	 </li> 
-	 <li> 
-	 	<a href="download/2010.1/liblitmus-2010.1.tgz">liblitmus-2010.1.tgz</a> 
-	 </li> 
- 
-	 <li><a href="download/2010.1/SHA256SUMS">SHA256 check sums</a> 
-	 </li> 
-    </ul> 
-    <h4>Major changes (since LITMUS<sup>RT</sup> 2008.3):</h4> TO BE UPDATED
-	 <ul> 
-    <li> 
-      Changed codebase from Linux 2.6.24 to Linux 2.6.32
-    </li> 
-    <li>Several bugfixes.</li> 
-    </div> 
- 
-    <p> 
-       Please note that the current implementation is a <em>prototype</em> with
-       certain limitations. Most notably, it is not secure in a multiuser context,
-       <em>i.e.</em>, real-time system calls do not require superuser
-       privileges.
-    </p> 
- 
-    <p class="nobottommargin"> 
-
-    Older releases: <a href="litmus2008.html">LITMUS<sup>RT</sup> 2008 series</a>, <a href="litmus2007.html">LITMUS<sup>RT</sup> 2007 series</a>.
-    </p> 
- 
-    </div> 
- 
- 
- 
-    <h2 id="install">Installation</h2> 
-    <div class="box"> 
-    <p class="notopmargin"> 
-    The current release of LITMUS<sup>RT</sup> consists of an
-    extension of the Linux kernel that adds support for the sporadic task
-    model, a scheduler plugin infrastructure, and some scheduler plugins, as
-    well as a user-space library that provides the LITMUS<sup>RT</sup> 
-    real-time API. Note that the current implementation only works on the
-    Intel x86-32 and sparc64 architectures.
-    </p> 
-    <h3>Patching the Kernel</h3> 
-    <p class="notopmargin"> 
-    The extension to the Linux kernel is released as a patch against Linux
-    2.6.32. To install the LITMUS<sup>RT</sup> kernel, first <a 
-    href="http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.32.tar.bz2">download the Linux
-    kernel 2.6.32</a> and untar it in a directory of your choice (hereafter
-    referred to as <span class="src">$DIR</span>). Second, apply the
-    LITMUS<sup>RT</sup> patch (see <a href="#download">Section Download</a>)
-    and configure, compile, and install the kernel as usual. The patch is <span 
-    class="src">-p1</span> applicable. 
-    To summarize, the  LITMUS<sup>RT</sup> kernel can be obtained, patched, and
-    compiled with the following commands:
-    </p> 
-<pre class="shell"> 
-cd $DIR
-# get Linux 2.6.32
-wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.32.tar.bz2
-tar xjf linux-2.6.32.tar.bz2
-wget http://www.cs.unc.edu/~anderson/litmus-rt/download/2010.1/litmus-rt-2010.1.patch
-mv linux-2.6.32 litmus2010
-# apply the LITMUS RT patch
-cd litmus2010
-patch -p1 &lt; ../litmus-rt-2010.1.patch
-# create a working kernel configuration
-#  - select HZ=1000
-#  - enable in-kernel preemptions
-#  - disable NO_HZ
-#  - don't use power management options like frequency scaling
-#  - disable support for group scheduling
-make menuconfig
-# compile the kernel
-make bzImage
-make modules
-# proceed to install kernel, build initrd, etc.
-...
-</pre> 
-    <p> 
-      When configuring the kernel, note that there is a menu (at the very end of the list) 
-      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>.
-    </p> 
- 
-    <h3>Libraries</h3> 
-    <p class="notopmargin"> 
-    The user-space library for real-time tasks, <span class="src">liblitmus</span>, 
-    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>). 
-    In order to compile <span class="src">liblitmus</span>, you need to adjust the
-    variable <span class="src">LITMUS_KERNEL</span> in the <span class="src">SConstruct</span> file to point to your 
-    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>
-   Sample output of <span class="src"> scons -h </span> is as shown below.
-    </p> 
-   <p>
-   <pre class="shell"> 
-scons -h
-scons: Reading SConscript files ...
-scons: done reading SConscript files.
-
-=============================================
-liblitmus --- The LITMUS^RT Userspace Library
-
-There are a number of user-configurable build
-variables. These can either be set on the
-command line (e.g., scons ARCH=x86) or read
-from a local configuration file (.config).
-
-Run 'scons --dump-config' to see the final
-build configuration.
-
-Build Variables
----------------
-
-LITMUS_KERNEL: Where to find the LITMUS^RT kernel. ( /path/to/LITMUS_KERNEL )
-    default: ../litmus2010
-    actual: ../litmus2010
-
-PYTHON_HEADERS: Where to find Python headers. ( /path/to/PYTHON_HEADERS )
-    default: /usr/include/python2.5
-    actual: /usr/include/python2.5
-
-ARCH: Target architecture. (x86_64|sparc64|x86|i686)
-    default: x86_64
-    actual: x86_64
-
-WSS: Working set size for pm analysis
-    default: 3072
-    actual: 3072
-
-Use scons -H for help about command-line options.
-   </pre>
-
-<p class="notopmargin">
- To summarize, the <span class="src"> liblitmus </span> can be obtained and
-    compiled with the following commands:
-</p>
-
-<pre class="shell"> 
-cd $DIR
-wget http://www.cs.unc.edu/~anderson/litmus-rt/download/2010.1/liblitmus-2010.1.tgz
-tar xzf liblitmus-2010.1.tgz
-cd liblitmus 
-
-# set LITMUS_KERNEL in .config to point to the kernel source and compile
-scons
-</pre> 
-    <p class="nobottommargin"> 
-    Please refer to the <a href="#doc">documentation</a> on how to use the LITMUS<sup>RT</sup> 
-    real-time API as provided by <span class="src">liblitmus</span>.
-    </p> 
- 
-    </div> 
- 
- 
-    <h2 id="doc">Documentation</h2> 
-    <div class="box"> 
- 
-    <p class="notopmargin"> 
-      Unfortunately, most of the documentation has yet to be written. To get an overview of
-      the architecture of the kernel extension, we recommend reading the paper
-      <a href="http://www.cs.unc.edu/~anderson/papers/rtlws07.pdf">&ldquo;LITMUS<sup>RT</sup>:
-      A Status Report&rdquo;</a>.
-    </p> 
-    <h3>Real-Time Scheduling Policies</h3> 
-    <p class="qa"> 
-    The kernel contains the following real-time scheduling policy implementations:
-    </p> 
-    <ul> 
-      <li> 
-      PFAIR, an implementation of the PD<sup>2</sup> algorithm,
-      </li> 
-      <li> 
-      PSN-EDF, a partitioned EDF (P-EDF) implementation with support for the real-time synchronization protocol
-      FMLP,
-      </li> 
-      <li> 
-      GSN-EDF, a global EDF (G-EDF) implementation with support for the real-time synchronization protocol
-      FMLP,
-      </li> 
-      <li> 
-      C-EDF (Clustered EDF), a hybrid of G-EDF and P-EDF, and
-      </li> 
-      <li> 
-      Linux, a placeholder policy that disables all real-time functionality added by the LITMUS<sup>RT</sup> patch.
-      </li> 
-    </ul> 
-    <p> 
-    Only one policy can be active at any time. Initially (<em>i.e.,</em> during and after boot), the "Linux" policy is active.
-    You can use the tool <span class="src">showsched</span> (part of <span class="src">liblitmus</span>) to display
-    the name of the currently active policy.
-    </p> 
-    <h3>Changing the Active Policy</h3> 
-    <p class="qa"> 
-    You can use the tool <span class="src">setsched</span> (part of <span class="src">liblitmus</span>) 
-    to select a new plugin at run time.
-    </p> 
-    <div class="screenshot"> 
-    <img  src="gfx/setsched.png" alt="Screen shot of setsched"/> 
-    </div> 
-    <p> 
-    Only root can change the active policy, and only when there are no real-time tasks present.
-    </p> 
-    <p> 
-    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.
-    </p> 
-    <h3>Writing Real-Time Tasks</h3> 
-    <p class="qa"> 
-    The user space library that provides the LITMUS<sup>RT</sup> API, 
-    <span class="src">liblitmus</span>, contains two example real-time tasks 
-    (<span class="src">base_task.c</span> and 
-     <span class="src">base_mt_task.c</span>)
-    that both illustrate how to use the API and provide a skeleton for real-time
-    task development. To get started with development, please take a look these example
-    programs.
-    </p> 
-    <h3>Tracing Overheads and Scheduling Decisions</h3> 
-    <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>.
-    </p> 
-    <p class="nobottommargin"> 
-      Please contact <span class="src">bbb[AT]cs.unc.edu</span> if you have any
-      questions.
-    </p> 
- 
- 
-    </div> 
- 
-    <h2 id="credits">Credits</h2> 
-    <div class="box"> 
-    <div style="float: right;">    
-    <a href="http://validator.w3.org/check?uri=referer"><img 
-        src="http://www.w3.org/Icons/valid-xhtml10"
-        alt="Valid XHTML 1.0 Strict" height="31" width="88"/></a> 
-    </div> 
- 
-    <p class="nomargin"> 
-    Linux is a registered trademark of Linus Torvalds. <br /> The
-    LITMUS<sup>RT</sup> logo was designed by Jasper McChesney of <a href="http://www.breakforsense.net/">Break for Sense Design</a>. <br /> 
-    Web design by Bj&ouml;rn Brandenburg.
-    </p> 
- 
- 
-    </div> 
- 
-<script src="http://www.google-analytics.com/urchin.js" type="text/javascript"> 
-</script> 
-<script type="text/javascript"> 
-_uacct = "UA-3184628-1";
-urchinTracker();
-</script> 
-</body> 
-</html> 
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+    <meta name="verify-v1" content="pZNmf5XyUUfAPdlSPbFSavMUsLgVsmBYOXzOhbIy2gw=" />
+    <link rel="stylesheet" type="text/css" href="inc/format.css"/>
+    <title>LITMUS RT: Linux Testbed for Multiprocessor Scheduling in Real-Time Systems</title>
+  </head>
+  <body>
+    <div class="logobox">
+        <img src="inc/litmusrt.png" alt="LITMUS^RT: Linux Testbed for Multiprocessor Scheduling in Real-Time Systems" />
+	<p class="authors">
+	   <a href="http://www.cs.unc.edu/~anderson/">Dr. James H. Anderson &amp;
+	   Students</a>,
+	   <a href="http://www.unc.edu">The University of North Carolina at Chapel Hill</a>
+	</p>
+
+   </div>
+
+   <div class="nav">
+   <p>
+   <a href="#about">about</a> -
+   <a href="#support">support</a> -
+   <a href="#collaborators">collaborators</a> -
+   <a href="#publications">publications</a> -
+   <a href="#download">download</a> -
+   <a href="#install">installation</a> -
+   <a href="#doc">documentation</a>
+   </p>
+   </div>
+
+   <h2 id="about">About</h2>
+    <div class="box">
+    <p class="nomargin">
+    The LITMUS<sup>RT</sup> project is a soft real-time extension of the Linux
+    kernel with focus on multiprocessor real-time scheduling and
+    synchronization. The Linux kernel is modified
+    to support the sporadic task
+    model and modular scheduler plugins. Both partitioned and global scheduling
+    is supported.
+    </p>
+    <h3>Goals</h3>
+    <p class="notopmargin">
+    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.
+    </p>
+    <h3>Non-Goals</h3>
+    <p class="notopmargin">
+    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.
+    </p>
+    <h3>Current Version</h3>
+    <p class="notopmargin">
+    The current version of LITMUS<sup>RT</sup> is <strong>2010.1</strong> and is based on Linux&nbsp;2.6.32.
+    It was released on 05/12/2010 and includes plugins for the following
+    scheduling policies:
+    </p>
+    <ul>
+      <li> Partitioned EDF with synchronization support (PSN-EDF)</li>
+      <li> Global EDF with synchronization support (GSN-EDF)</li>
+      <li> Clustered EDF (C-EDF) </li>
+      <li> PFAIR (both staggered and aligned quanta are supported)</li>
+    </ul>
+    <p>
+    Please refer to the <a href="#download">download</a> and <a href="#install">installation</a> sections for details.
+    </p>
+    <p>Earlier versions based on Linux &nbsp;2.6.24 and Linux&nbsp;2.6.20,
+     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.
+    </p>
+    <p class="nobottommargin">
+       The first version of LITMUS<sup>RT</sup>, which was implemented in Spring 2006,
+       is based on Linux&nbsp;2.6.9.
+    </p>
+	<h3> Development Plans </h3>
+	There are plans to port LITMUS<sup>RT</sup> to PowerPC and ARM platforms. Please contact us for details.
+   </div>
+   <h2 id="support">Support</h2>
+    <div class="box">
+    <p class="nomargin">
+    The LITMUS<sup>RT</sup> development effort is being supported by grants from
+      AT&amp;T, IBM, and Northrop Grumman Corps.; the National Science Foundation (grants CNS 0834270 and CNS 0834132); the U.S.
+    Army Research Office (grant W911NF-09-1-0535); and the Air Force Office of Scientific Research (grant FA 9550-09-1-0549).
+    </p>
+    </div>
+
+   <h2 id="collaborators">Collaborators</h2>
+    <div class="box">
+    <p class="notopmargin"> The LITMUS<sup>RT</sup> project is led by <a
+    href="http://www.cs.unc.edu/~anderson/">Dr. James H. Anderson</a>.
+    </p>
+    <p>
+    The implementation effort is carried out by students of the
+    <a href="http://www.cs.unc.edu/~anderson/real-time/">Real-Time Systems
+    Group</a> at the <a href="http://www.unc.edu">University of North Carolina
+    at Chapel Hill</a>:
+    </p>
+    <ul>
+    <li>
+	<a href="http://www.cs.unc.edu/~bbb/">Bj&ouml;rn B. Brandenburg</a> (current maintainer)
+    </li>
+    <li> <a href="http://www.sprg.uniroma2.it/home/bastoni/">Andrea Bastoni</a> (University of Rome "Tor Vergata")
+    </li>
+    </ul>
+	<p class="nobottommargin">
+	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.
+	</p>
+    </div>
+
+
+     <h2 id="publications">Publications</h2>
+    <div class="box">
+
+    <ol class="nomargin">
+    <li><p>
+              B. Brandenburg and J. Anderson,
+	  &#8220;On the Implementation of Global Real-Time
+	  Schedulers&#8221;, <cite>Proceedings of the 30th IEEE Real-Time Systems Symposium</cite>, pp.&nbsp;214-224, December 2009.
+	<a href="http://www.cs.unc.edu/~anderson/papers/rtss09a.ps">Postscript</a>.
+	  <a href="http://www.cs.unc.edu/~anderson/papers/rtss09a.pdf">PDF</a>.
+	  Longer version with all graphs:
+	<a href="http://www.cs.unc.edu/~anderson/papers/rtss09a_long.ps">Postscript</a>.
+	  <a href="http://www.cs.unc.edu/~anderson/papers/rtss09a_long.pdf">PDF</a>.
+</p>
+<p> For reference, all evaluated plugins are provided as part of the following patch (against version 2008.3).
+</p>
+ 	  <ul>
+	 <li>
+	 	<a href="download/RTSS09/litmus-rt-RTSS09.patch">litmus-rt-RTSS09.patch</a>
+	 </li>
+	 </ul>
+
+</li>
+      <li>
+      <p>
+	B. Brandenburg and J. Anderson
+	&ldquo;Reader-Writer Synchronization for Shared-Memory Multiprocessor Real-Time Systems&rdquo;,
+	<cite>Proceedings of the 21st Euromicro Conference on Real-Time Systems</cite>, pp. 184-193, July 2009.
+	<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>.
+	Long version with blocking terms:
+	<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>.
+	</p>
+      </li>
+
+      <li>
+      <p>
+	J. Calandrino and J. Anderson
+	&ldquo;On the Design and Implementation of a Cache-Aware Multicore Real-Time Scheduler&rdquo;,
+	<cite>Proceedings of the 21st Euromicro Conference on Real-Time Systems</cite>, pp. 194-204, July 2009.
+	<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>.
+	</p>
+      </li>
+
+      <li>
+      <p>
+	M. Mollison, B. Brandenburg, and J. Anderson
+	&ldquo;Towards Unit Testing Real-Time Schedulers in LITMUS<sup>RT</sup>&rdquo;,
+	<cite>Proceedings of the Fifth International Workshop on Operating Systems Platforms for Embedded Real-Time Applications</cite>, pp. 33-39, July 2009.
+	<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>.
+	</p>
+      </li>
+
+      <li>
+      	<p>
+	B. Brandenburg and J. Anderson,
+	&ldquo;A Comparison of the M-PCP, D-PCP, and FMLP on LITMUS<sup>RT</sup>&rdquo;,
+	<cite>Proceedings of the 12th International Conference on Principles of Distributed Systems</cite>, pp. 105-124, December 2008.
+	<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>.
+	</p>
+      </li>
+
+      <li>
+      	<p>
+	B. Brandenburg, J. Calandrino,  and J. Anderson,
+	&ldquo;On the Scalability of Real-Time Scheduling Algorithms on Multicore Platforms: A Case Study&rdquo;,
+	<cite>Proceedings of the 29th IEEE Real-Time Systems Symposium</cite>,
+	pp. 157-169, December 2008.
+	<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>.
+	</p>
+      </li>
+
+      <li>
+      	<p>
+	B. Brandenburg and J. Anderson,
+	&ldquo;An Implementation of the PCP, SRP, D-PCP, M-PCP,
+	and FMLP Real-Time Synchronization Protocols in LITMUS<sup>RT</sup>&rdquo;,
+	<cite>Proceedings of the 14th IEEE International Conference on Embedded and Real-Time Computing Systems and Applications</cite>, pp. 185-194, August 2008.
+	<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>.
+	</p>
+	<p><strong>Note:</strong> The work described in this paper took part in a branch that is currently not part of
+	   the main distribution. For reference, we provide the branch as a separate download:
+	</p>
+ 	  <ul>
+	 <li>
+	 	<a href="download/RTCSA08/litmus-rt-RTCSA08.patch">litmus-rt-RTCSA08.patch</a>
+	 </li>
+	 <li>
+	 	<a href="download/RTCSA08/liblitmus-RTCSA08.tgz">liblitmus-RTCSA08.tgz</a>
+	 </li>
+	 <li><a href="download/RTCSA08/SHA256SUMS">SHA256 check sums</a>
+	 </li>
+         </ul>
+	 <p>Please don't use this version for active development. If you are interested in this work, it would be best
+	 to first port the desired features to a current version of LTIMUS<sup>RT</sup> and merge them into the main distribution.
+	 </p>
+
+      </li>
+
+      <li>
+       <p>
+	A. Block, B. Brandenburg, J. Anderson,
+	and S. Quint, &ldquo;An Adaptive Framework for Multiprocessor Real-Time Systems&rdquo;,
+	<cite>Proceedings of the 20th Euromicro Conference on Real-Time Systems</cite>, pp. 23-33, July 2008.
+	<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>.
+	</p>
+      </li>
+
+      <li>
+      <p>
+	B. Brandenburg, J. Calandrino, A. Block,
+	H. Leontyev, and J. Anderson, &ldquo;Real-Time Synchronization
+	on Multiprocessors: To Block or Not to Block, to Suspend or
+	Spin?&rdquo;, <cite> Proceedings of the 14th IEEE Real-Time and Embedded
+Technology and Applications Symposium</cite>, pp. 342-353, April 2008.
+	<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>.
+	</p>
+      <p>
+	Extended version, including all graphs:
+	<a href="http://www.cs.unc.edu/~anderson/papers/rtas08along.ps">Postscript</a>,
+	<a href="http://www.cs.unc.edu/~anderson/papers/rtas08along.pdf">PDF</a>.
+      </p>
+    </li>
+
+    <li>
+      <p>
+	B. Brandenburg, A. Block, J. Calandrino, U. Devi, H. Leontyev, and J. Anderson,
+	&quot;LITMUS<sup>RT</sup>:  A Status Report&quot;, <cite> Proceedings of the 9th
+	  Real-Time Linux Workshop</cite>, pp. 107-123, November 2007.
+	<a href="http://www.cs.unc.edu/~anderson/papers/rtlws07.ps">Postscript</a>.
+	<a href="http://www.cs.unc.edu/~anderson/papers/rtlws07.pdf">PDF</a>.
+      </p>
+    </li>
+
+    <li>
+      <p>
+	B. Brandenburg and J. Anderson, &quot;Integrating Hard/Soft Real-Time Tasks
+	and Best-Effort Jobs on Multiprocessors&quot;, <cite> Proceedings of the 19th Euromicro
+	  Conference on Real-Time Systems</cite>, pp. 61-70, July 2007.
+	<a href="http://www.cs.unc.edu/~anderson/papers/ecrts07b.ps">Postscript</a>,
+	<a href="http://www.cs.unc.edu/~anderson/papers/ecrts07b.pdf">PDF</a>.
+      </p>
+    </li>
+
+
+    <li>
+    <p>
+      J. Calandrino, H. Leontyev, A. Block, U. Devi, and J. Anderson,
+      &quot;LITMUS<sup>RT</sup>: A Testbed for Empirically Comparing Real-Time
+      Multiprocessor Schedulers &quot;, <cite>Proceedings of the 27th IEEE Real-Time Systems
+	Symposium</cite>, pp. 111-123, December 2006.
+      <a href="http://www.cs.unc.edu/~anderson/papers/rtss06b.ps">Postscript</a>,
+      <a href="http://www.cs.unc.edu/~anderson/papers/rtss06b.pdf">PDF</a>.
+    </p>
+    </li>
+
+    </ol>
+    </div>
+
+    <h2 id="download">Download</h2>
+    <div class="box">
+    <p class="notopmargin">
+    The source code of LITMUS<sup>RT</sup> is made available as open source
+    under the terms of the <a href="http://www.gnu.org/licenses/gpl.txt">GNU
+    General Public License (GPL)</a>.
+    </p>
+    <p>
+    The current release of LITMUS<sup>RT</sup> is 2010.1.
+    It  consists of our Linux kernel modifications in the form of
+    a patch against Linux 2.6.32 and
+
+      <span class="src">liblitmus</span>, the user-space API for real-time
+    tasks, as well as <span class="src">ft_tools</span>, a collection of tools
+    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).
+    </p>
+
+    <h3 class="relname">LITMUS<sup>RT</sup> 2010.1</h3>
+    <div class="release">
+    <p>
+         Based on Linux 2.6.32. Released in May 2010.
+
+    </p>
+    <h4>Files:</h4>
+    <ul>
+	 <li>
+	 	<a href="download/2010.1/litmus-rt-2010.1.patch">litmus-rt-2010.1.patch</a>
+	 </li>
+	 <li>
+	 	<a href="download/2010.1/liblitmus-2010.1.tgz">liblitmus-2010.1.tgz</a>
+	 </li>
+
+	 <li><a href="download/2010.1/SHA256SUMS">SHA256 check sums</a>
+	 </li>
+    </ul>
+    <h4>Major changes (since LITMUS<sup>RT</sup> 2008.3):</h4> TO BE UPDATED
+	 <ul>
+    <li>
+      Changed codebase from Linux 2.6.24 to Linux 2.6.32
+    </li>
+    <li>Several bugfixes.</li>
+    </div>
+
+    <p>
+       Please note that the current implementation is a <em>prototype</em> with
+       certain limitations. Most notably, it is not secure in a multiuser context,
+       <em>i.e.</em>, real-time system calls do not require superuser
+       privileges.
+    </p>
+
+    <p class="nobottommargin">
+
+    Older releases: <a href="litmus2008.html">LITMUS<sup>RT</sup> 2008 series</a>, <a href="litmus2007.html">LITMUS<sup>RT</sup> 2007 series</a>.
+    </p>
+
+    </div>
+
+
+
+    <h2 id="install">Installation</h2>
+    <div class="box">
+    <p class="notopmargin">
+    The current release of LITMUS<sup>RT</sup> consists of an
+    extension of the Linux kernel that adds support for the sporadic task
+    model, a scheduler plugin infrastructure, and some scheduler plugins, as
+    well as a user-space library that provides the LITMUS<sup>RT</sup>
+    real-time API. Note that the current implementation only works on the
+    Intel x86-32 and x86-64 architectures.
+    </p>
+    <h3>Patching the Kernel</h3>
+    <p class="notopmargin">
+    The extension to the Linux kernel is released as a patch against Linux
+    2.6.32. To install the LITMUS<sup>RT</sup> kernel, first <a
+    href="http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.32.tar.bz2">download the Linux
+    kernel 2.6.32</a> and untar it in a directory of your choice (hereafter
+    referred to as <span class="src">$DIR</span>). Second, apply the
+    LITMUS<sup>RT</sup> patch (see <a href="#download">Section Download</a>)
+    and configure, compile, and install the kernel as usual. The patch is <span
+    class="src">-p1</span> applicable.
+    To summarize, the  LITMUS<sup>RT</sup> kernel can be obtained, patched, and
+    compiled with the following commands:
+    </p>
+<pre class="shell">
+cd $DIR
+# get Linux 2.6.32
+wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.32.tar.bz2
+tar xjf linux-2.6.32.tar.bz2
+wget http://www.cs.unc.edu/~anderson/litmus-rt/download/2010.1/litmus-rt-2010.1.patch
+mv linux-2.6.32 litmus2010
+# apply the LITMUS RT patch
+cd litmus2010
+patch -p1 &lt; ../litmus-rt-2010.1.patch
+# create a working kernel configuration
+#  - select HZ=1000
+#  - enable in-kernel preemptions
+#  - disable NO_HZ
+#  - don't use power management options like frequency scaling
+#  - disable support for group scheduling
+make menuconfig
+# compile the kernel
+make bzImage
+make modules
+# proceed to install kernel, build initrd, etc.
+...
+</pre>
+    <p>
+      When configuring the kernel, note that there is a menu (at the very end of the list)
+      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>.
+    </p>
+
+    <h3>Libraries</h3>
+    <p class="notopmargin">
+    The user-space library for real-time tasks, <span class="src">liblitmus</span>,
+    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>).
+    In order to compile <span class="src">liblitmus</span>, you need to adjust the
+    variable <span class="src">LITMUS_KERNEL</span> in the <span class="src">SConstruct</span> file to point to your
+    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>
+   Sample output of <span class="src"> scons -h </span> is as shown below.
+    </p>
+   <p>
+   <pre class="shell">
+scons -h
+scons: Reading SConscript files ...
+scons: done reading SConscript files.
+
+=============================================
+liblitmus --- The LITMUS^RT Userspace Library
+
+There are a number of user-configurable build
+variables. These can either be set on the
+command line (e.g., scons ARCH=x86) or read
+from a local configuration file (.config).
+
+Run 'scons --dump-config' to see the final
+build configuration.
+
+Build Variables
+---------------
+
+LITMUS_KERNEL: Where to find the LITMUS^RT kernel. ( /path/to/LITMUS_KERNEL )
+    default: ../litmus2010
+    actual: ../litmus2010
+
+PYTHON_HEADERS: Where to find Python headers. ( /path/to/PYTHON_HEADERS )
+    default: /usr/include/python2.5
+    actual: /usr/include/python2.5
+
+ARCH: Target architecture. (x86_64|sparc64|x86|i686)
+    default: x86_64
+    actual: x86_64
+
+WSS: Working set size for pm analysis
+    default: 3072
+    actual: 3072
+
+Use scons -H for help about command-line options.
+   </pre>
+
+<p class="notopmargin">
+ To summarize, the <span class="src"> liblitmus </span> can be obtained and
+    compiled with the following commands:
+</p>
+
+<pre class="shell">
+cd $DIR
+wget http://www.cs.unc.edu/~anderson/litmus-rt/download/2010.1/liblitmus-2010.1.tgz
+tar xzf liblitmus-2010.1.tgz
+cd liblitmus
+
+# set LITMUS_KERNEL in .config to point to the kernel source and compile
+scons
+</pre>
+    <p class="nobottommargin">
+    Please refer to the <a href="#doc">documentation</a> on how to use the LITMUS<sup>RT</sup>
+    real-time API as provided by <span class="src">liblitmus</span>.
+    </p>
+
+    </div>
+
+
+    <h2 id="doc">Documentation</h2>
+    <div class="box">
+
+    <p class="notopmargin">
+      Unfortunately, most of the documentation has yet to be written. To get an overview of
+      the architecture of the kernel extension, we recommend reading the paper
+      <a href="http://www.cs.unc.edu/~anderson/papers/rtlws07.pdf">&ldquo;LITMUS<sup>RT</sup>:
+      A Status Report&rdquo;</a>.
+    </p>
+    <h3>Real-Time Scheduling Policies</h3>
+    <p class="qa">
+    The kernel contains the following real-time scheduling policy implementations:
+    </p>
+    <ul>
+      <li>
+      PFAIR, an implementation of the PD<sup>2</sup> algorithm,
+      </li>
+      <li>
+      PSN-EDF, a partitioned EDF (P-EDF) implementation with support for the real-time synchronization protocol
+      FMLP,
+      </li>
+      <li>
+      GSN-EDF, a global EDF (G-EDF) implementation with support for the real-time synchronization protocol
+      FMLP,
+      </li>
+      <li>
+      C-EDF (Clustered EDF), a hybrid of G-EDF and P-EDF, and
+      </li>
+      <li>
+      Linux, a placeholder policy that disables all real-time functionality added by the LITMUS<sup>RT</sup> patch.
+      </li>
+    </ul>
+    <p>
+    Only one policy can be active at any time. Initially (<em>i.e.,</em> during and after boot), the "Linux" policy is active.
+    You can use the tool <span class="src">showsched</span> (part of <span class="src">liblitmus</span>) to display
+    the name of the currently active policy.
+    </p>
+    <h3>Changing the Active Policy</h3>
+    <p class="qa">
+    You can use the tool <span class="src">setsched</span> (part of <span class="src">liblitmus</span>)
+    to select a new plugin at run time.
+    </p>
+    <div class="screenshot">
+    <img  src="gfx/setsched.png" alt="Screen shot of setsched"/>
+    </div>
+    <p>
+    Only root can change the active policy, and only when there are no real-time tasks present.
+    </p>
+    <p>
+    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.
+    </p>
+    <h3>Writing Real-Time Tasks</h3>
+    <p class="qa">
+    The user space library that provides the LITMUS<sup>RT</sup> API,
+    <span class="src">liblitmus</span>, contains two example real-time tasks
+    (<span class="src">base_task.c</span> and
+     <span class="src">base_mt_task.c</span>)
+    that both illustrate how to use the API and provide a skeleton for real-time
+    task development. To get started with development, please take a look these example
+    programs.
+    </p>
+    <h3>Tracing Overheads and Scheduling Decisions</h3>
+    <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>.
+    </p>
+    <p class="nobottommargin">
+      Please contact <span class="src">bbb[AT]cs.unc.edu</span> if you have any
+      questions.
+    </p>
+
+
+    </div>
+
+    <h2 id="credits">Credits</h2>
+    <div class="box">
+    <div style="float: right;">
+    <a href="http://validator.w3.org/check?uri=referer"><img
+        src="http://www.w3.org/Icons/valid-xhtml10"
+        alt="Valid XHTML 1.0 Strict" height="31" width="88"/></a>
+    </div>
+
+    <p class="nomargin">
+    Linux is a registered trademark of Linus Torvalds. <br /> The
+    LITMUS<sup>RT</sup> logo was designed by Jasper McChesney of <a href="http://www.breakforsense.net/">Break for Sense Design</a>. <br />
+    Web design by Bj&ouml;rn Brandenburg.
+    </p>
+
+
+    </div>
+
+<script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+_uacct = "UA-3184628-1";
+urchinTracker();
+</script>
+</body>
+</html>
-- 
cgit v1.2.2