Differences between revisions 10 and 21 (spanning 11 versions)
Revision 10 as of 2012-12-21 13:59:30
Size: 6301
Editor: p4FC1A386
Comment:
Revision 21 as of 2017-05-26 22:21:13
Size: 11766
Editor: bbb
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
## page was renamed from CurrentRelease
Line 4: Line 3:
The current release of LITMUS^RT^ 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 LITMUS^RT^ real-time API. Note that the current implementation works on the Intel (both x86-32 and x86-64) and on the ARM architecture (ARMV6). The source code of LITMUS^RT^ is made available as open source under the terms of the GNU General Public License (GPL2). LITMUS^RT^ is released as a patch against Linux. Additionally, it is also available as a [[Repositories|git repository]].
Line 7: Line 6:
The source code of LITMUS^RT^ is made available as open source under the terms of the GNU General Public License (GPL2). LITMUS^RT^ is released as a patch against Linux. Additionally, it is also available as a [[Repositories|git repository]].

The current release of LITMUS^RT^ is 2012.2. 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 LITMUS^RT^ patch).
The current release is made available on the [[http://www.litmus-rt.org/download.html|LITMUS^RT^ homepage]].

{{{#!wiki caution
In almost all cases, it is preferable to clone the git repositories instead of downloading and applying patches manually.
}}}


== Previous Releases ==

Older releases consisted of our Linux kernel modifications in the form of a patch against mainline Linux 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 LITMUS^RT^ patch).


=== LITMUS-RT Version 2016.1 ===

Based on Linux 4.1.3. Released in June 2016.

==== Files: ====
 * [[http://www.litmus-rt.org/releases/2016.1/litmus-rt-2016.1.patch|litmus-rt-2016.1.patch]]
 * [[http://www.litmus-rt.org/releases/2016.1/liblitmus-2016.1.tgz|liblitmus-2016.1.tgz]]
 * [[http://www.litmus-rt.org/releases/2016.1/ft_tools-2016.1.tgz|ft_tools-2016.1.tgz]]
 * [[http://www.litmus-rt.org/releases/2016.1/SHA256SUMS|SHA256 check sums]]

==== Major changes (since LITMUS-RT 2015.1): ====
 * new syscall `get_current_budget`
 * export more job stats in control page, including current deadline
 * Pratyush Patel contributed much improved `hrtimer_start_on()` support
 * LITMUS^RT services are now invoked via `ioctl()` calls
 * new scheduler plugin: P-RES (partitioned reservations)
 * new user-space interfaces and tool (`resctrl`) to set up reservations
 * add a number of callbacks to LITMUS^RT plugins
 * improved help messages of utilities in `liblitmus`
 * vastly improved tooling and documentation as part of feather-trace-tools (ft_tools)



=== LITMUS-RT Version 2015.1 ===

Based on Linux 4.1.3. Released in August 2015.

==== Files: ====
 * [[http://www.litmus-rt.org/releases/2015.1/litmus-rt-2015.1.patch|litmus-rt-2015.1.patch]]
 * [[http://www.litmus-rt.org/releases/2015.1/liblitmus-2015.1.tgz|liblitmus-2015.1.tgz]]
 * [[http://www.litmus-rt.org/releases/2015.1/ft_tools-2015.1.tgz|ft_tools-2015.1.tgz]]
 * [[http://www.litmus-rt.org/releases/2015.1/SHA256SUMS|SHA256 check sums]]

==== Major changes (since LITMUS-RT 2014.2): ====
 * now based on Linux 4.1.3
 * stability fixes in P-FP, PFAIR, GSN-EDF, and C-EDF
 * Geoffrey Tran (USC/ISI) added support for running LITMUS^RT^ under Xen/x86
 * a new wrapper script `ft-trace-overheads` to simplify overhead tracing



=== LITMUS-RT Version 2014.2 ===

Based on Linux 3.10.41. Released in June 2014.

==== Files: ====
 * [[http://www.litmus-rt.org/releases/2014.2/litmus-rt-2014.2.patch|litmus-rt-2014.2.patch]]
 * [[http://www.litmus-rt.org/releases/2014.2/liblitmus-2014.2.tgz|liblitmus-2014.2.tgz]]
 * [[http://www.litmus-rt.org/releases/2014.2/ft_tools-2014.2.tgz|ft_tools-2014.2.tgz]]
 * [[http://www.litmus-rt.org/releases/2014.2/SHA256SUMS|SHA256 check sums]]

==== Major changes (since LITMUS-RT 2014.1): ====
 * now based on Linux 3.10.41
 * remove integration with Linux's system tick: LITMUS^RT^ now works with "tickless" kernels (i.e., `NO_HZ` is supported)
 * The `PFAIR` plugin now uses plugin-local hrtimers to trigger quantum boundaries.
 * added `QUANTUM_BOUNDARY` Feather-Trace event (for `PFAIR`)
 * performance and bug fixes in the `P-FP` plugin's PCP, MPCP, and FMLP^+^ implementations
 * bugfix in `TS_SYSCALL_IN_END`
 * Migration support in `liblitmus` now works for >=32 CPUs



=== LITMUS-RT Version 2014.1 ===

Based on Linux 3.10.5. Released in April 2014.

==== Files: ====
 * [[http://www.litmus-rt.org/releases/2014.1/litmus-rt-2014.1.patch|litmus-rt-2014.1.patch]]
 * [[http://www.litmus-rt.org/releases/2014.1/liblitmus-2014.1.tgz|liblitmus-2014.1.tgz]]
 * [[http://www.litmus-rt.org/releases/2014.1/ft_tools-2014.1.tgz|ft_tools-2014.1.tgz]]
 * [[http://www.litmus-rt.org/releases/2014.1/SHA256SUMS|SHA256 check sums]]

==== Major changes (since LITMUS-RT 2013.1): ====
 * Added `CONFIG_PREFER_LOCAL_LINKING` option to avoid superfluous migrations under G-EDF and C-EDF
 * New, much improved interface for reporting CPU domain topology to userspace (see `/proc/litmus/cpus` and `/proc/litmus/domains`)
 * liblitmus: added Doxygen documentation
 * liblitmus: play nicely with C++ namespaces
 * Feather-Trace: support TSC offset calibration (`-c` option in `ftcat`, for systems with non-aligned TSCs)
 * Feather-Trace: Restructured to use per-CPU recording buffers to reduce tracing overheads
 * P-FP: Fix interaction of PCP and DPCP semaphores
 * P-FP: add implementation of ''Distributed FIFO Locking Protocol'' (DFLP)
 * PSN-EDF: support arbitrary deadlines in SRP implementation
 * Tasks are forced to cease being real-time tasks before exiting
 * Export LITMUS^RT^ time stamps in `ftrace` records
 * Bug fix: Avoid rare crashes caused by interaction with `stop_machine` scheduling class
 * Bug fix: Fix cache inconsistencies of the control page on ARM
 * Misc. build, bug and performance fixes

=== LITMUS-RT Version 2013.1 ===

Based on Linux 3.10.5. Released in August 2013.

==== Files: ====
 * [[http://www.litmus-rt.org/releases/2013.1/litmus-rt-2013.1.patch|litmus-rt-2013.1.patch]]
 * [[http://www.litmus-rt.org/releases/2013.1/liblitmus-2013.1.tgz|liblitmus-2013.1.tgz]]
 * [[http://www.litmus-rt.org/releases/2013.1/ft_tools-2013.1.tgz|ft_tools-2013.1.tgz]]
 * [[http://www.litmus-rt.org/releases/2013.1/SHA256SUMS|SHA256 check sums]]

==== 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.
Line 33: Line 154:
 * feather-trace-tools: ftsort gained the -v (verbose) and -s (simulate) flag, which are useful for outlier debugging  * feather-trace-tools: ftsort gained the -v (verbose) and -s (simulate) flags, which are useful for outlier debugging
Line 35: Line 156:

== Previous Releases ==

Downloads

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.

Current Release

The current release is made available on the LITMUS^RT^ homepage.

In almost all cases, it is preferable to clone the git repositories instead of downloading and applying patches manually.

Previous Releases

Older releases consisted of our Linux kernel modifications in the form of a patch against mainline Linux 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 2016.1

Based on Linux 4.1.3. Released in June 2016.

Files:

Major changes (since LITMUS-RT 2015.1):

  • new syscall get_current_budget

  • export more job stats in control page, including current deadline
  • Pratyush Patel contributed much improved hrtimer_start_on() support

  • LITMUS^RT services are now invoked via ioctl() calls

  • new scheduler plugin: P-RES (partitioned reservations)
  • new user-space interfaces and tool (resctrl) to set up reservations

  • add a number of callbacks to LITMUS^RT plugins
  • improved help messages of utilities in liblitmus

  • vastly improved tooling and documentation as part of feather-trace-tools (ft_tools)

LITMUS-RT Version 2015.1

Based on Linux 4.1.3. Released in August 2015.

Files:

Major changes (since LITMUS-RT 2014.2):

  • now based on Linux 4.1.3
  • stability fixes in P-FP, PFAIR, GSN-EDF, and C-EDF
  • Geoffrey Tran (USC/ISI) added support for running LITMUSRT under Xen/x86

  • a new wrapper script ft-trace-overheads to simplify overhead tracing

LITMUS-RT Version 2014.2

Based on Linux 3.10.41. Released in June 2014.

Files:

Major changes (since LITMUS-RT 2014.1):

  • now based on Linux 3.10.41
  • remove integration with Linux's system tick: LITMUSRT now works with "tickless" kernels (i.e., NO_HZ is supported)

  • The PFAIR plugin now uses plugin-local hrtimers to trigger quantum boundaries.

  • added QUANTUM_BOUNDARY Feather-Trace event (for PFAIR)

  • performance and bug fixes in the P-FP plugin's PCP, MPCP, and FMLP+ implementations

  • bugfix in TS_SYSCALL_IN_END

  • Migration support in liblitmus now works for >=32 CPUs

LITMUS-RT Version 2014.1

Based on Linux 3.10.5. Released in April 2014.

Files:

Major changes (since LITMUS-RT 2013.1):

  • Added CONFIG_PREFER_LOCAL_LINKING option to avoid superfluous migrations under G-EDF and C-EDF

  • New, much improved interface for reporting CPU domain topology to userspace (see /proc/litmus/cpus and /proc/litmus/domains)

  • liblitmus: added Doxygen documentation
  • liblitmus: play nicely with C++ namespaces
  • Feather-Trace: support TSC offset calibration (-c option in ftcat, for systems with non-aligned TSCs)

  • Feather-Trace: Restructured to use per-CPU recording buffers to reduce tracing overheads
  • P-FP: Fix interaction of PCP and DPCP semaphores
  • P-FP: add implementation of Distributed FIFO Locking Protocol (DFLP)

  • PSN-EDF: support arbitrary deadlines in SRP implementation
  • Tasks are forced to cease being real-time tasks before exiting
  • Export LITMUSRT time stamps in ftrace records

  • Bug fix: Avoid rare crashes caused by interaction with stop_machine scheduling class

  • Bug fix: Fix cache inconsistencies of the control page on ARM
  • Misc. build, bug and performance fixes

LITMUS-RT Version 2013.1

Based on Linux 3.10.5. Released in August 2013.

Files:

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.

LITMUS-RT Version 2012.3

Based on Linux 3.0. Released in December 2012.

Files:

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.

Files:

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.

Files:

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.

Files:

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)