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

Getting Started with LITMUSRT

LITMUSRT is a real-time extension of the Linux kernel with a focus on multiprocessor real-time scheduling and synchronization that has been continuously maintained and updated since 2006. In the past decade, LITMUSRT has been employed by several groups in North and South America, Europe, and Asia, and to date has played a part in over 50 conference and workshop papers, as well as eight MSc and PhD theses (list of publications).

Tutorial Overview

This tutorial is aimed at researchers and practitioners interested in using LITMUSRT as a development and evaluation platform. It aims to get participants up-to-speed on how to use a LITMUSRT-equipped Linux system as the foundation for the development and assessment of real-time workloads.

This tutorial is aimed at learning how to use LITMUSRT. The following topics are covered:

  1. activating a scheduling plugin,
  2. launching LITMUSRT real-time tasks,
  3. creating and using polling reservations,
  4. table-driven scheduling (aka time partitioning),
  5. how to develop custom real-time tasks that link against liblitmus, LITMUSRT’s user-space library,
  6. how to use of LITMUSRT’s built-in tracing capabilities to record and evaluate scheduling traces (e.g., to observe actual execution costs, deadline miss ratios, tardiness, preemption and migration counts, etc.), and
  7. how to measure system overheads (e.g., scheduling and context switch overheads, release latency, etc.).

Kernel development is beyond the scope of this tutorial. If you want to develop a new plugin for LITMUSRT, see the plugin creation tutorial instead.


Tutorial Materials

High-Level Overview

A slide deck giving a high-level overview of LITMUSRT is provided here:

Hands-On Tutorial

The slides for the guided hands-on session are available here:

Manual: A Tour of LITMUSRT

The material covered in the tutorial (how to select scheduling polices, how to launch tasks, how to create new tasks, how to trace, etc.) is also made available as a manual for later reference.

Reading the manual prior to following the hands-on tutorial is not required, but recommended.

VM Setup Instructions

We have built a pre-packaged VirtualBox image running a LITMUSRT-based Xubuntu distribution. The image (3.0 GiB) comes pre-installed with all required libraries and tools.

To get started, download the archive, unpack the image, and launch it with the virtualization tool of your choice (e.g., Virtual Box). Make sure that you give the VM at least 2 GiB of memory.

See the detailed setup instructions for a step-by-step walk-through using Virtual Box.

WARNING: the VM image is intended for demonstration and learning purposes only. Under common hypervisors, all timings are unreliable. In particular, LITMUSRT does not provide any real-time guarantees when run under regular hypervisors as real-time tasks will be subject to extreme timer latency within a VM.

That said, a VM is perfectly adequate for getting to know LITMUSRT.

Login information

Once the VM is running, you may log in with the following credentials:

  1. regular user account:
    • User name: litmus
    • Password: litmus
  2. super user account:
    • User name: root
    • Password: litmus

All LITMUSRT-related files (including source code) are installed under the /opt directory.

legal imprint | data protection notice