Differences between revisions 13 and 14
Revision 13 as of 2013-08-09 08:21:17
Size: 7569
Editor: bbb
Revision 14 as of 2014-04-01 23:34:40
Size: 7734
Editor: bbb
Deletions are marked like this. Additions are marked like this.
Line 8: Line 8:

'''''Note:''''' ''If you intend to modify or extend LITMUS^RT^, you should clone the git repositories instead of downloading and applying the patches manually.''


The current release of LITMUSRT 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 LITMUSRT real-time API. Note that the current implementation works on the Intel (both x86-32 and x86-64) and on the ARM architecture (ARMV6).

Current Release

The source code of LITMUSRT is made available as open source under the terms of the GNU General Public License (GPL2). LITMUSRT is released as a patch against Linux. Additionally, it is also available as a git repository.

Note: If you intend to modify or extend LITMUSRT, you should clone the git repositories instead of downloading and applying the patches manually.

The current release of LITMUSRT is available below. It consists of our Linux kernel modifications in the form of a patch against Linux 3.0 and liblitmus, the user-space API for real-time tasks, as well as ft_tools, a collection of tools used for tracing with Feather-Trace (which is part of the LITMUSRT patch).

LITMUS-RT Version 2013.1

Based on Linux 3.10.5. Released in August 2013.


Major changes (since LITMUS-RT 2012.3):

  • Restructured kernel source tree as a proper patch set.
  • Rebased to current stable Linux version (3.10.5).
  • Fixed admission of suspended tasks.
  • Fixed several build failures in corner-case configurations.
  • Disabled timer coalescing for LITMUS^RT tasks in Linux timer API.
  • Increased maximum Feather-Trace buffer size (using vmalloc()).
  • Various code cleanups and reliability fixes.
  • Support early job releasing in EDF-based plugins.
  • Differentiate between SPORADIC and PERIODIC tasks.
  • Fixed race conditions in synchronous task set release support.
  • Reimplemented plugin switching code.
  • Added checks to prevent nesting of LITMUS^RT locks.
  • Added a virtual device for mmap()'ing uncached memory regions.

Previous Releases

LITMUS-RT Version 2012.3

Based on Linux 3.0. Released in December 2012.


Major changes (since LITMUS-RT 2012.2):

  • configurable EDF tie-breaks (choose from one of four methods: lateness, normalized tardiness, uniform hashing, PID).
  • many Feather-Trace improvements, including support for userspace-reported system call overhead tracing (via control page)
  • IRQ counts are now exported to the control page
  • latency reduction when carrying out synchronous task set releases
  • fix of preemption logic in P-FP and PSN-EDF plugins
  • various improvements in the P-FP plugin
  • misc. bug and compile fixes (esp. on ARM)
  • liblitmus: new convenience functions lt_sleep() and get_nr_ts_release_waiters()
  • liblitmus: improved test suite
  • feather-trace-tools: ftsort gained the -v (verbose) and -s (simulate) flags, which are useful for outlier debugging
  • feather-trace-tools: improved outlier detection; statistical outlier filtering is no longer required (for details, see B. Brandenburg, “Improved Analysis and Evaluation of Real-Time Semaphore Protocols for P-FP Scheduling”, RTAS 2013, available here)

LITMUS-RT Version 2012.2

Based on Linux 3.0. Released in August 2012.


Major changes (since LITMUS-RT 2012.1):

  • Added P-FP (partitioned fixed-priority) plugin with support for the PCP, DPCP, and MPCP.
  • Added support for arbitrary deadlines.
  • Integration of LITMUS^RT sched_trace_XXX events with Linux tracepoint infrastructure (i.e., kernelshark support).

  • Improved Feather-Trace triggers (reduced register pressure)
  • Avoidance of "minor" page faults in control page
  • Fixed kernel crash related to precise budget enforcement
  • Improved liblitmus test suite

LITMUS-RT Version 2012.1

Based on Linux 3.0. Released in January 2012.


Major changes (since LITMUS-RT 2011.1):

  • Rebased LITMUSRT from Linux 2.6.36 to Linux 3.0.

  • Added cache-affinity aware migrations to GSN-EDF and C-EDF.
  • PFAIR and C-EDF now support the release-master feature.
  • Feather-Trace can now measure interrupt interference.
  • PFAIR now supports sporadic task releases.
  • PFAIR now implements early-releasing of subtasks (i.e., work-conserving scheduling).

LITMUS-RT Version 2011.1

Based on Linux 2.6.36. Released in January 2011.


Major changes (since LITMUS-RT 2010.2):

  • Rebased LITMUSRT from Linux 2.6.34 to Linux 2.6.36.

  • Added support for the ARM architecture (tested on a PB11MPCore baseboard with a four-core ARM11 MPCore CPU).
  • Feather-Trace devices are now allocated dynamically and are properly registered with sysfs. This avoids bugs due to major device number collisions and removes the need for manual device node creation (on a system with standard udev rules).

  • Improved debug tracing output and made trace buffer size configurable.
  • Various bug fixes concerning C-EDF cluster size changes. The cluster size can now be configured with the file /proc/litmus/plugins/C-EDF/cluster.

  • Various KConfig cleanups and improvements.
  • Dropped SCons as the build system for liblitmus and reverted to makefiles.

  • Added scope and TAG file generation to liblitmus.

  • st_trace can now be controlled with signals (part of ft_tools).

Older releases of LITMUSRT are available at UNC's old LITMUSRT webpage:

Releases (last edited 2017-05-26 22:21:13 by bbb)