Scalable range locks for scalable address spaces and beyond
Alex Kogan, Dave Dice, Shady Issa
Abstract
Range locks are a synchronization construct designed to provide concurrent access to multiple threads (or processes) to disjoint parts of a shared resource. Originally conceived in the file system context, range locks are gaining increasing interest in the Linux kernel community seeking to alleviate bottlenecks in the virtual memory management subsystem. The existing implementation of range locks in the kernel, however, uses an internal spin lock to protect the underlying tree structure that keeps track of acquired and requested ranges. This spin lock becomes a point of contention on its own when the range lock is frequently acquired. Furthermore, where and exactly how specific (refined) ranges can be locked remains an open question.
In this paper, we make two independent, but related contributions. First, we propose an alternative approach for building range locks based on linked lists. The lists are easy to maintain in a lock-less fashion, and in fact, our range locks do not use any internal locks in the common case. Second, we show how the range of the lock can be refined in the mprotect operation through a speculative mechanism. This refinement, in turn, allows concurrent execution of mprotect operations on non-overlapping memory regions. We implement our new algorithms and demonstrate their effectiveness in user-space and kernel-space, achieving up to 9× speedup compared to the stock version of the Linux kernel. Beyond the virtual memory management subsystem, we discuss other applications of range locks in parallel software. As a concrete example, we show how range locks can be used to facilitate the design of scalable concurrent data structures, such as skip lists.
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Cited by top-tier papers8
- Optimizing Memory-mapped I/O for Fast Storage DevicesAnastasios Papagiannis, Giorgos Xanthakis, Giorgos Saloustros, Manolis Marazakis et al.USENIX ATC 2020 · 68 citations
- Citron: Distributed Range Lock Management with One-sided RDMAJian Gao, Youyou Lu, Minhui Xie, Qing Wang et al.FAST 2023 · 13 citations
- DaxVM: Stressing the Limits of Memory as a File InterfaceChloe Alverti, Vasileios Karakostas, Nikhita Kunati, Georgios I. Goumas et al.MICRO 2022 · 9 citations
- ScaleLFS: A Log-Structured File System with Scalable Garbage Collection for Commodity SSDsJinyong Ha, Sangjin Lee, Hyeonsang Eom, Yongseok SonFAST 2025 · 7 citations
- Scalable and Effective Page-table and TLB management on NUMA SystemsBin Gao, Qingxuan Kang, Hao-Wei Tee, Kyle Timothy Ng Chu et al.USENIX ATC 2024 · 5 citations
Related papers
- Scalable Address Spaces using Concurrent Interval SkiplistTae Woo Kim, Youngjin Kwon, Jeehoon KangSOSP 2025
- Bundling linked data structures for linearizable range queriesJacob Nelson-Slivon, Ahmed Hassan, Roberto PalmieriPPoPP 2022 · 11 citations
- RANGE-BLOCKS: A Synchronization Facility for Domain-Specific ArchitecturesAnagha Molakalmur Anil Kumar, Aditya Prasanna, Arrvindh ShriramanASPLOS 2025
- GhostRace: Exploiting and Mitigating Speculative Race ConditionsHany Ragab, Andrea Mambretti, Anil Kurmus, Cristiano GiuffridaUSENIX Security 2024 · 10 citations
- Ship your Critical Section, Not Your Data: Enabling Transparent Delegation with TCLOCKSVishal Gupta, Kumar Kartikeya Dwivedi, Yugesh Kothari, Yueyang Pan et al.OSDI 2023 · 6 citations
