LITMUS^RT: Linux Testbed for Multiprocessor Scheduling in Real-Time Systems


The LITMUSRT patch is a real-time extension of the Linux kernel with a focus on multiprocessor real-time scheduling and synchronization. The Linux kernel is modified to support the sporadic task model and modular scheduler plugins. Clustered, partitioned, and global scheduling are included, and semi-partitioned scheduling is supported as well.

LITMUSRT has been continuously maintained since 2006 and is still being actively developed.

Current Version

The current version of LITMUSRT is 2015.1 and is based on Linux 4.1.3. It was released on 8/9/2015 and includes plugins for the following scheduling policies:

Please refer to the download and installation wiki pages for details.


The primary purpose of the LITMUSRT project is to provide a useful experimental platform for applied real-time systems research. To that end, LITMUSRT 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, LITMUSRT serves as a proof of concept, showing how algorithms such as Pfair schedulers and predictable multiprocessor locking protocols can be implemented on current hardware. Finally, we hope that parts of LITMUSRT and the "lessons learned" may find value as blueprints/sources of inspiration for other implementation efforts (both commercial and open source).


LITMUSRT is a research prototype that is reasonably stable and tested—it works—but there are currently no plans to turn it into a production-quality system suitable for safety- or mission-critical applications.

Furthermore, LITMUSRT's API is not "stable," that is, interfaces and implementations may change without warning between releases. POSIX-compliance is not a goal; the LITMUSRT-API offers alternate system call interfaces.

While we aim to follow Linux-coding standards, LITMUSRT is not targeted at being merged into mainline Linux. Rather, we hope that some of the ideas protoyped in LITMUSRT may eventually find adoption in Linux or other kernels.


The current maintainer and main developer behind LITMUSRT is Björn Brandenburg of the Max Planck Institute for Software Systems (MPI-SWS).

LITMUSRT was originally launched at the University of North Carolina at Chapel Hill under the direction of James H. Anderson and has benefited from contributions by a number of researchers over the years.

When referencing LITMUSRT, please cite two publications:

  1. The original LITMUSRT paper: J. Calandrino, H. Leontyev, A. Block, U. Devi, and J. Anderson, "LITMUSRT: A Testbed for Empirically Comparing Real-Time Multiprocessor Schedulers ", Proceedings of the 27th IEEE Real-Time Systems Symposium, pp. 111-123, December 2006.
  2. The description of the current version: B. Brandenburg, "Scheduling and Locking in Multiprocessor Real-Time Operating Systems", PhD thesis, UNC Chapel Hill, 2011.

While [1] is the first publication on LITMUSRT, the first public release of LITMUSRT was actually based on a reimplementation in 2007. All versions since 2007 are best described by the detailed description in [2].

To get in contact with the LITMUSRT community, please use the mailing list.