PREEMPT_RT - How Not to Break It.
summary
Mainline readiness for PREEMPT_RT is near for x86 but remaining risks come from assumptions that increase latency: replacing spin_lock_t with sleeping variants and auto-preempt, moving IRQ work and HR timers into threaded/softirq context, adding RCU boost, and avoiding disable-preemption patterns. Measured surprises: 100 clock_nanosleep wakeups add ~26 µs, 1,000 add 347 µs and 5,000 approach 4 ms; UART printk of 20 chars at 115200 stalls ~1.5 ms. Use priority inheritance for locks, avoid workqueues for time‑critical paths, and use the rtla tool for tracing.
AI-written summary · about
chapters (17)
- 0:00Motivation for RT Mainlining
- 1:08Locking mechanisms in RT
- 4:37Interrupt and softirq handling
- 7:48Timer and wakeup adjustments
- 9:21Interrupt work and printk
- 10:51RCU callback management
- 12:14Solving atomic context issues
- 15:34Lock ordering and primitives
- 17:30Debugging kernel warnings
- 19:08Memory allocation constraints
- 20:40Console printing and latency
- 23:32System latency analysis
- 27:42Using RTLA for debugging
- 29:01Priority inheritance
- 34:05Softirq resource protection
- 37:49Context and task worker issues
- 39:12Best practices and Q&A
related talks
53mPREEMPT_RT - How Not to Break It.
46mPREEMPT_RT - how not to break it.
50mInside the RT Patch
24mPREEMPT_RT Q&A with tglx
26mReal-time Linux: what is next?
47mWhat Every Driver Developer Should Know about RT
36mJourney of improving RT performance on Single CPU equipped PREEMPT_RT Linux
33mQ&A about Preempt RT
