KRN-231 · Linux Kernel Core · Advanced
RCU in Depth — full syllabus
Read-copy-update from first principles: grace periods, publish-subscribe, and why RCU is everywhere in the kernel.
Who this course is for
Kernel developers maintaining read-mostly concurrent data structures who need RCU used correctly — reasoned from the contract, not cargo-culted from an example.
Prerequisites
- KRN-230 or solid kernel locking background
- Solid C
- Module development experience
Course outline
Day 1 — The RCU contract
- What RCU guarantees and what it does not
- Read-side critical sections and their rules
- Grace periods and quiescent states, conceptually
- Why RCU is everywhere in the kernel
- The cost model: when RCU wins and when it loses
Day 2 — Using it correctly
- rcu_read_lock/rcu_read_unlock and nesting
- rcu_dereference, rcu_assign_pointer and why the accessors exist
- Publish-subscribe for adding and removing data
- List RCU primitives: list_for_each_entry_rcu, list_add_rcu, list_del_rcu
- call_rcu and kfree_rcu: callback processing and its cost
Day 3 — Variants and debugging
- Preemptible RCU and what it changed
- SRCU for sleeping readers and its trade-offs
- RCU in the PREEMPT_RT kernel
- Debugging RCU stalls and CPU stall warnings
- Capstone workshop
Hands-on labs
- Lab: protect a shared list first with a rwlock, then with RCU, and compare read-side latency under contention
- Lab: publish and remove elements with the correct accessors and verify readers never observe torn data
- Lab: trigger an RCU CPU stall warning deliberately and decode the report
- Lab: convert a sleeping-reader path to SRCU and measure the trade-off
- Lab: stress an RCU data structure with concurrent readers and writers and prove grace-period correctness
Capstone project
Implement and defend an RCU-protected lookup structure in a module: correct accessor discipline throughout, a publish/remove path safe against concurrent readers, stall-free behaviour under a torture run, and a written explanation of where each guarantee comes from — the same argument you would make in a patch cover letter.
What you leave with
- The RCU contract stated precisely, with its limits
- Accessor discipline: rcu_dereference, rcu_assign_pointer, list primitives
- Selection criteria across RCU, SRCU and RT variants
- RCU stall diagnosis from the actual warnings
Upcoming dates
| Dates | Where | Seats | Early bird | Regular | |
|---|---|---|---|---|---|
| 8 Nov – 10 Nov 20263 full days | RiyadhIn person · KAFD Conference Centre | 7 of 14 | SAR 8,100until 9 Oct | ||
| 8 Nov – 10 Nov 20263 full days | Kuwait CityIn person · Al Hamra Tower | 12 of 14 | KWD 670until 9 Oct | ||
| 15 Nov – 17 Nov 20263 full days | MuscatIn person · Knowledge Oasis Muscat | 7 of 14 | OMR 830until 16 Oct | ||
| 22 Nov – 29 Nov 20266 half-days | Gulf bandLive online · 09:00–13:00 GMT+3 | 13 of 20 | US$1,580until 23 Oct | ||
| 23 Nov – 25 Nov 20263 full days | OttawaIn person · Kanata North Tech Park | 12 of 14 | CAD 2,930until 24 Oct | ||
| 23 Nov – 25 Nov 20263 full days | TorontoIn person · MaRS Discovery District | 7 of 14 | CAD 2,930until 24 Oct | ||
| 23 Nov – 30 Nov 20266 half-days | Europe bandLive online · 09:00–13:00 CET | 18 of 20 | US$1,580until 24 Oct | ||
| 30 Nov – 2 Dec 20263 full days | LondonIn person · Shoreditch Works | 12 of 14 | GBP 1,680until 31 Oct | ||
| 30 Nov – 7 Dec 20266 half-days | Americas bandLive online · 13:00–17:00 ET | 7 of 20 | US$1,580until 31 Oct | ||
| 7 Dec – 9 Dec 20263 full days | BerlinIn person · Factory Görlitzer Park | 7 of 14 | EUR 1,990until 7 Nov |
Book a seat, or bring this course to your team
Seats can be reserved online; private delivery runs on-site or live online, adapted to your stack.
Questions about fit or prerequisites? Email hello@kernelsystems.academy. To save this syllabus, print this page to PDF from your browser.