Scalable Range Locks for Scalable Address Spaces and Beyond
June 22, 2020 Β· Declared Dead Β· π European Conference on Computer Systems
"No code URL or promise found in abstract"
Evidence collected by the PWNC Scanner
Authors
Alex Kogan, Dave Dice, Shady Issa
arXiv ID
2006.12144
Category
cs.OS: Operating Systems
Cross-listed
cs.DC
Citations
8
Venue
European Conference on Computer Systems
Last Checked
2 months ago
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$\times$ 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.
Community Contributions
Found the code? Know the venue? Think something is wrong? Let us know!
π Similar Papers
In the same crypt β Operating Systems
R.I.P.
π»
Ghosted
R.I.P.
π»
Ghosted
Occlum: Secure and Efficient Multitasking Inside a Single Enclave of Intel SGX
R.I.P.
π»
Ghosted
LazyFP: Leaking FPU Register State using Microarchitectural Side-Channels
R.I.P.
π»
Ghosted
SGX-LKL: Securing the Host OS Interface for Trusted Execution
R.I.P.
π»
Ghosted
Optimal Virtual Cluster-based Multiprocessor Scheduling
R.I.P.
π»
Ghosted
Ecovisor: A Virtual Energy System for Carbon-Efficient Applications
Died the same way β π» Ghosted
R.I.P.
π»
Ghosted
Language Models are Few-Shot Learners
R.I.P.
π»
Ghosted
PyTorch: An Imperative Style, High-Performance Deep Learning Library
R.I.P.
π»
Ghosted
XGBoost: A Scalable Tree Boosting System
R.I.P.
π»
Ghosted