RTL-101 · Real-Time Systems
PREEMPT_RT Internals
What the real-time patchset actually changes in the kernel, now that most of it has landed mainline.
Who this course is for
Kernel and platform engineers who need to know what the real-time patchset changes inside the kernel — before they trust a PREEMPT_RT system with a deadline.
Prerequisites
Course outline
Day 1 — Preemption models and what the patchset does
- The preemption spectrum: PREEMPT_NONE, PREEMPT_VOLUNTARY, PREEMPT, PREEMPT_RT
- What full preemption means at the source level
- What has landed mainline and what the remaining patches still change
- Latency decomposition: where the microseconds actually come from
- Configuring, building and boot-verifying a PREEMPT_RT kernel
Day 2 — Sleeping spinlocks, rt-mutex and threaded IRQs
- spinlock_t becomes a sleeping lock: the substitution mechanism
- raw_spinlock_t for the paths that must stay atomic
- The rt-mutex implementation and the priority inheritance protocol
- Threaded interrupt handlers by default and what hard IRQ context still means
- local_lock and per-CPU critical sections under RT
Day 3 — Inversion, leftovers and verification
- Unbounded priority inversion: how it arises and how PI contains it
- What remains non-preemptible and why: raw spinlocks, driver paths, firmware
- Timers and hrtimers under RT; timer wheel behaviour
- Interaction with SCHED_FIFO, SCHED_RR and SCHED_DEADLINE
- Verifying preemption behaviour with ftrace latency tracers
Hands-on labs
Labs follow the academy model — 35% principles, 20% guided investigation, 45% engineering studio. Every claim you make in a lab is backed by a trace, a counter or a measurement you captured yourself. How we teach
- Lab: Build a mainline and a PREEMPT_RT kernel from the same config base; diff the preemption-related options and boot both
- Lab: Create a priority inversion with three threads and a mutex; watch rt-mutex PI resolve it, then reproduce the unbounded case
- Lab: Force-thread an interrupt handler and measure the hard-IRQ window it removes with ftrace
- Lab: Trace a latency spike to a non-preemptible section with the preemptoff and irqsoff tracers and name the lock responsible
- Lab: Run cyclictest on both kernels under identical load and attribute the difference in maxima to specific kernel paths
Capstone project
Given a stated latency requirement and a deliberately noisy platform, demonstrate that a PREEMPT_RT kernel meets it while an equivalent mainline kernel does not: produce both cyclictest distributions, the ftrace traces identifying the mainline kernel's worst offenders, and a short report naming which patchset mechanisms removed which latency sources — plus an honest list of the latency sources the patchset does not touch.
What you leave with
- A source-level model of what PREEMPT_RT changes and what it leaves alone
- Working knowledge of rt-mutex, priority inheritance and threaded IRQs
- A tracer-driven workflow from latency spike to named non-preemptible path
- A defensible position on when PREEMPT_RT is and is not the answer
How it runs
Every course follows the same model: 35% principles, 20% guided investigation, 45% engineering studio. You leave with working code, raw measurements and an evidence-based report — not a certificate of attendance. Read the methodology or see a full sample lesson.
Material is adapted to your kernel version, hardware and workload before a private delivery. For public cohorts, the environment is provided and configured.
Questions
Who is this course for?
Kernel and platform engineers who need to know what the real-time patchset changes inside the kernel — before they trust a PREEMPT_RT system with a deadline. It sits at advanced level within the Real-Time Systems track.
What do I need to know already?
Specific prerequisites for this course: Solid kernel internals: scheduling classes, locking primitives, interrupt handling; Ability to read kernel source (guided); Experience configuring and building kernels. We confirm levels before the cohort starts and adapt if a group is stronger or weaker than expected.
Can this run privately for my team?
Yes. Any course runs on-site at your offices anywhere, or live online for a distributed team, with labs adapted to your hardware and codebase.
What is the difference between in-person and online?
In person is 3 full days with hardware on your desk, capped at 14. Online is 6 half-day sessions across about two weeks so you can keep working, capped at 20, with remote lab access.
Do you invoice companies?
Yes. Purchase orders are accepted and invoicing is available in USD, EUR, GBP, SAR and CAD.
Upcoming dates
| Dates | Where | Seats | Early bird | Regular | |
|---|---|---|---|---|---|
| 1 Nov – 3 Nov 20263 full days | RiyadhIn person · KAFD Conference Centre | 4 of 14 | — | SAR 9,000 | |
| 8 Nov – 10 Nov 20263 full days | Kuwait CityIn person · Al Hamra Tower | 9 of 14 | KWD 670until 9 Oct | ||
| 15 Nov – 17 Nov 20263 full days | MuscatIn person · Knowledge Oasis Muscat | 4 of 14 | OMR 830until 16 Oct | ||
| 15 Nov – 22 Nov 20266 half-days | Gulf bandLive online · 09:00–13:00 GMT+3 | 18 of 20 | US$1,580until 16 Oct | ||
| 16 Nov – 18 Nov 20263 full days | OttawaIn person · Kanata North Tech Park | 9 of 14 | CAD 2,930until 17 Oct | ||
| 23 Nov – 25 Nov 20263 full days | TorontoIn person · MaRS Discovery District | 4 of 14 | CAD 2,930until 24 Oct | ||
| 23 Nov – 30 Nov 20266 half-days | Europe bandLive online · 09:00–13:00 CET | 7 of 20 | US$1,580until 24 Oct | ||
| 30 Nov – 2 Dec 20263 full days | LondonIn person · Shoreditch Works | 9 of 14 | GBP 1,680until 31 Oct | ||
| 30 Nov – 7 Dec 20266 half-days | Americas bandLive online · 13:00–17:00 ET | 12 of 20 | US$1,580until 31 Oct | ||
| 7 Dec – 9 Dec 20263 full days | BerlinIn person · Factory Görlitzer Park | 4 of 14 | EUR 1,990until 7 Nov |
Dates shown for the next few months. If nothing fits, tell us where and when — cohorts are added on demand, and private delivery can be scheduled any week.
More in Real-Time Systems
RTL-1103 days
Latency Analysis & cyclictest
Measuring latency honestly: the tools, the methodology, and the mistakes that produce meaningless numbers.
Practitioner-taught
SAR 7,880Next 18 Oct
RTL-1203 days
Tuning for Determinism
Turning a general-purpose platform into one that holds a deadline: isolation, affinity, firmware and BIOS.
Practitioner-taught
SAR 9,000Next 15 Nov
RTL-2012 days
Motion Control Systems
Applying real-time Linux to closed-loop control, with the architecture patterns that work in production.
Practitioner-taught
SAR 6,000Next 11 Oct
RTL-2103 days
Industrial Fieldbus & TSN
Deterministic networking for industrial systems: EtherCAT, PROFINET and Time-Sensitive Networking.
Practitioner-taught
SAR 9,000Next 8 Nov