Ship your Critical Section, Not Your Data: Enabling Transparent Delegation with...
summary
Proposes transparent delegation that encodes a waiter’s critical section on its stack and runs it on the lock holder via a lightweight context switch, implemented as a family called TCLocks (spinlock, delegation blocking lock, phase reader‑writer). Prototype lands in Linux, handles nested locks and ~20k out‑of‑order unlocks and ~80k nested-lock calls seen at boot, falls back to qspinlock in restricted contexts, runs on an 8‑socket Intel 224‑core machine and shows up to 5.2× throughput gains at high contention but loses at 2–4 cores due to context‑switch cost.
AI-written summary · about
chapters (10)
- 0:00Introduction and motivation
- 2:27Problem with lock contention
- 6:43Delegation style locks
- 8:27Design of TC lock
- 15:15Handling thread context
- 25:39Changes to Linux kernel
- 33:16Per-CPU variables and constraints
- 40:05Evaluation and results
- 41:54Discussion and future work
- 43:38Q&A
related talks
40mKernel Locking Engineering
13mLockify: Understanding Linux Distributed Lock Management Overheads in Shared Storage
29mReliable Userspace Spinlock
24mPREEMPT_RT Q&A with tglx
51mFrom Linux Threads To ForkJoinPool
01h 09mNew locks for the old kernel
25mEnforcing PI locks by default
22mLXDs: Towards Isolation of Kernel Subsystems
