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

Writing a LITMUSRT Scheduler Plugin

In LITMUS, new scheduling policies are implemented as scheduler plugins, which are run in kernelspace. This set of instructions describes how to write a scheduler plugin in LITMUSRT by re-creating the Partitioned-EDF (P-EDF) scheduler.

Prerequisites

In order to create new scheduler plugins, you must be capable of building the LITMUSRT kernel from source. If you haven’t already, follow the instructions for building and installing LITMUSRT.

Steps

The instructions for implementing a new LITMUSRT scheduler plugin have been separated into 9 steps:

  1. Adding an empty source file to the LITMUSRT kernel
  2. Adding stub functions for a LITMUSRT plugin
  3. Creating debug messages using TRACE
  4. Defining per-CPU scheduling state for P-EDF
  5. Adding P-EDF scheduling logic
  6. Task state changes
  7. Adding preemption checks
  8. Admitting real-time tasks
  9. Exporting plugin topology in /proc