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

About

The LITMUSRT patch is a (soft) 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 actively being developed.

Goals

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).

Non-Goals

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.

Current Version

The current version of LITMUSRT is 2014.1 and is based on Linux 3.10.5. It was released on 4/14/2014 and includes plugins for the following scheduling policies:

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