Enforcing PI locks by default
summary
Argues for making PI the default by changing libc to flip PTHREAD_PRIO_INHERIT default and shipping a runtime systemwide tunable or environment switch to roll it out; reports Chrome experiments show regressions because futex_pi uses RT mutex sleep paths and suggests an unfair PI mutex with optimistic spinning and possibly a futex API that accepts an owner so proxy execution can work without futex_pi. Notes large gaps for Java/Go custom locks and PI-aware condition variables and proposes annotating performance-critical sections.
AI-written summary · about
chapters (7)
- 0:00Introduction to PI locks
- 3:30Making PI default in Linux
- 7:15Tunables and experimentation
- 10:46Unfair PI locks and kernel changes
- 13:34Language ecosystem challenges
- 15:40New primitives for performance locks
- 24:12Summary and next steps
related talks
39mCPU isolation vs jailbreaking IPIs
39mThe Path of the Private FUTEX
32mIsolation aware smp_call_function/queue_work_on APIs
14mAdvancing Data Integrity in Linux
40mKernel Locking Engineering
44mShip your Critical Section, Not Your Data: Enabling Transparent Delegation with...
24mPREEMPT_RT Q&A with tglx
21mHow to reduce complexity in Proxy Execution
