Scalable range locks for scalable address spaces and beyond
Alex Kogan, Dave Dice, Shady Issa
摘要
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.
问问这篇 Paper
智能体会读完全文。
Lune 把这篇 Paper 索引到了每一个公式,引用它的顶会 Paper 也一样。你提问,回答直接引用原文。
引用它的顶会 Paper8
- Optimizing Memory-mapped I/O for Fast Storage DevicesAnastasios Papagiannis, Giorgos Xanthakis, Giorgos Saloustros, Manolis Marazakis 等USENIX ATC 2020 · 被引用 68 次
- Citron: Distributed Range Lock Management with One-sided RDMAJian Gao, Youyou Lu, Minhui Xie, Qing Wang 等FAST 2023 · 被引用 13 次
- DaxVM: Stressing the Limits of Memory as a File InterfaceChloe Alverti, Vasileios Karakostas, Nikhita Kunati, Georgios I. Goumas 等MICRO 2022 · 被引用 9 次
- ScaleLFS: A Log-Structured File System with Scalable Garbage Collection for Commodity SSDsJinyong Ha, Sangjin Lee, Hyeonsang Eom, Yongseok SonFAST 2025 · 被引用 7 次
- Scalable and Effective Page-table and TLB management on NUMA SystemsBin Gao, Qingxuan Kang, Hao-Wei Tee, Kyle Timothy Ng Chu 等USENIX ATC 2024 · 被引用 5 次
相关 Paper
- 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 次
- 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 次
- Ship your Critical Section, Not Your Data: Enabling Transparent Delegation with TCLOCKSVishal Gupta, Kumar Kartikeya Dwivedi, Yugesh Kothari, Yueyang Pan 等OSDI 2023 · 被引用 6 次
