PREEMPT RT

Last updated

PREEMPT_RT is a feature of the Linux kernel which implements both hard and soft real-time computing capabilities. [1] It was formerly maintained as a set of out-of-tree patches. On September 20, 2024, PREEMPT_RT was fully merged and enabled in mainline Linux on the supported architectures x86, x86_64, RISC-V and ARM64. [2] This made kernel v6.12 the first release to include baked-in real-time capability.

Contents

History

The PREEMPT_RT patchset has been in development since 2005 [3] as an effort to make the Linux kernel capable real-time computing by reducing unbounded latencies in kernel paths. Early real-time enhancements were proposed by Ingo Molnár, Thomas Gleixner, and others. [4] The PREEMPT_RT patch series introduced features such as threaded interrupts, priority- inherited mutexes, and other mechanisms required for deterministic kernel behavior. [5]

For many years PREEMPT_RT was maintained as an out-of-tree patch set applied to stable kernel releases. To support the ongoing development OSADL, a German software organization with members from PREEMPT_RTs user but also it's creators like Gleixners Linutronix, has a working group. While parts of the PREEMPT_RT work were incrementally merged, the majority of the patch set remained external to mainline Linux.

In 2015, the Linux Foundation established the Real-Time Linux (RTL) Collaborative Project to coordinate efforts toward upstreaming PREEMPT_RT and to provide sustained development resources. The project brought together long term industry members and maintainers to focus on refactoring kernel subsystems and pushing critical real-time code into the mainline. [6]

In 2021, the preemption core locking code was merged. [7] [8]

At the September 2024 European Open Source Summit, Linus Torvalds announced that PREEMPT_RT had been accepted into the mainline Linux kernel after a protracted development hurdle involving the printk kernel logging facility.

Usage

PREEMPT-RT is actively used at the moment by distributors and vendors to enhance their own distributions.

MontaVista Software has been releasing a real-time Linux distribution containing the PREEMPT_RT patchset since the early 2000. Montavista's current main embedded Linux product, CGX, contains real-time preemption as a standard feature.

Since February 2023, Canonical has been releasing real-time versions of Ubuntu Pro, free for personal and small-scale commercial use in up to 5 machines. [9] [10] The real-time kernel can be added to various existing Ubuntu releases through an enablement process. [10] These kernels include the PREEMPT_RT patchset and offer long-term support. [10]

References

  1. "20 years later, real-time Linux makes it to the kernel - really". zdnet.com . Retrieved 2024-09-19.
  2. "Merge tag 'sched-rt-2024-09-17' - kernel/git/torvalds/linux.git - Linux kernel source tree". git.kernel.org. Retrieved 2024-09-20.
  3. Reghenzani, Federico; Massari, Giuseppe; Fornaciari, William (2019-02-21). "The Real-Time Linux Kernel: A Survey on PREEMPT_RT". ACM Computing Surveys. 52 (1): 18:1–18:36. doi:10.1145/3297714. hdl: 11311/1076057 . ISSN   0360-0300.
  4. "PREEMPT_RT over the years". Kernel recipes. Retrieved 2026-02-05.
  5. "PREEMPT_RT over the years". Kernel recipes. Retrieved 2026-02-05.
  6. "RTL website". Realtime Linux. Retrieved 2026-02-05.
  7. "Realtime preemption locking core merged [LWN.net]". lwn.net. Retrieved 2023-02-09.
  8. "The future of realtime Linux". LWN.net . Retrieved 2023-02-09.
  9. Proven, Liam. "Real-time Ubuntu 22.04: What you need to know". The Register . Retrieved 2023-02-20.
  10. 1 2 3 "Canonical releases Real-time Ubuntu 24.04 LTS". Ubuntu. Retrieved 2024-07-03.