Scalability solutions for the mmap_lock - Maple Tree and per-VMA locks
summary
Replaces the three VMA tracking structures with a single maple tree to enable lockless VMA lookups (not RCU-safe yet) and introduces per-VMA seqcounters so a transaction marks many VMAs by assigning the same sequence number and later unmarks them in one step. Adds a speculative page-fault path (SPF speculative page faults) that commits without taking mmap_lock; Android tests show <0.01% fallback to the old path for anonymous non-swapped pages. Remaining risks: multi-VMA transactions, large single VMAs, and exit-time regressions (bulk free mitigates some).
AI-written summary · about
chapters (6)
- 0:00Introduction and overview
- 1:51Maple trees for VMA management
- 4:21Speculative page faults progress
- 6:53Per-VMA lock proposal
- 13:24Large VMA challenges
- 20:37Testing and feedback requests
related talks
17m60 Adaptive userspace spinlocks with rseq
55m “High Performance C++ Concurrent Transactional Data Structures"
01h 01mUnderstanding Hardware Transactional Memory
15mHTMFS: Strong Consistency Comes for Free with Hardware Transactional Memory...
21mEvery Data Structure Deserves Lock-Free Memory Reclamation
34mExploiting Race Conditions Using the Scheduler
20mRRR-SMR: Reduce, Reuse, Recycle: Better Methods for Practical Lock-Free Data Structures
55m“A lock-free concurrency toolkit for deferred reclamation and optimistic speculation"
