Linux Kernel Synchronisation in Depth
Master every locking primitive the kernel offers (spinlocks, RCU, seqlocks, futexes) and know when each is safe.
Advanced40 lessons
written lessons≈ 20 h
Linux Kernel & Device Drivers · 40 illustrated lessons (text/HTML)
Outcomes
- Choose the right lock for a concurrency problem and prove it is safe
- Use RCU, seqlocks and per-CPU data for high-throughput paths
- Debug deadlocks and contention with lockdep and lock statistics
Where we teach this
The lessons
Every lesson in this curriculum, in the order we teach it.
- 1Overview
- 2Atomic operations basics
- 3Spinlock principles and implementation
- 4Read-write spinlocks
- 5Seqlocks
- 6Semaphores
- 7Read-write semaphores
- 8Mutexes
- 9Completion variables
- 10RCU principles
- 11RCU implementation details
- 12RCU use cases in depth
- 13Memory barriers
- 14Sequential consistency
- 15Per-CPU variables
- 16Disabling kernel preemption
- 17Interrupt control
- 18Bottom-half mechanisms
- 19Kernel lock debugging in depth
- 20Lock statistics and performance analysis
- 21Real-time locks
- 22FUTEX: fast user-space mutexes
- 23Seqlocks in depth
- 24Reference counting
- 25Read-write semaphores in depth
- 26The big kernel lock (BKL)
- 27Memory-management synchronisation
- 28File-system synchronisation
- 29Network-stack synchronisation
- 30Device driver synchronisation
- 31Synchronisation in multicore scheduling
- 32Virtualisation synchronisation
- 33Container synchronisation
- 34Synchronisation for performance optimisation
- 35Debugging and tracing
- 36Synchronisation in real-time systems in depth
- 37Synchronisation on ARM architectures in depth
- 38Synchronisation on x86 architectures
- 39Introduction
- 40Future trends
All-access library
Every curriculum on this page, with the labs and lab sequences, for a year.