Scalable Range Locks for Scalable Address Spaces and Beyond
Alex Kogan, Dave Dice, Shady Issa

TL;DR
This paper introduces a lock-free linked list-based range lock mechanism and a speculative refinement technique for mprotect, significantly improving concurrency and scalability in virtual memory management and other parallel software.
Contribution
It presents a novel lock-free range lock implementation and a speculative range refinement method, enhancing scalability in Linux kernel virtual memory management and beyond.
Findings
Achieved up to 9× speedup over the stock Linux kernel
Demonstrated effectiveness in user-space and kernel-space implementations
Enabled scalable concurrent data structures like skip lists
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…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
