Proceedings of the Seventeenth International Conference on Architectural Support for Programming Languages and Operating System 2012
DOI: 10.1145/2150976.2150998
|View full text |Cite
|
Sign up to set email alerts
|

Scalable address spaces using RCU balanced trees

Abstract: Software developers commonly exploit multicore processors by building multithreaded software in which all threads of an application share a single address space. This shared address space has a cost: kernel virtual memory operations such as handling soft page faults, growing the address space, mapping files, etc. can limit the scalability of these applications. In widely-used operating systems, all of these operations are synchronized by a single per-process lock. This paper contributes a new design for increa… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
2

Citation Types

0
24
0

Year Published

2015
2015
2021
2021

Publication Types

Select...
3
2
2

Relationship

0
7

Authors

Journals

citations
Cited by 92 publications
(25 citation statements)
references
References 5 publications
0
24
0
Order By: Relevance
“…We used the test framework of [35], which consists of four benchmarks representing di erent data structures: the sorted linked-list [20,26], lock-free hash map [26], a variant of the Bonsai Tree [13], which is a selfbalancing lock-free binary tree, and Natarajan and Mittal's binary tree [29]. The test framework already implements several SMR schemes.…”
Section: Discussionmentioning
confidence: 99%
“…We used the test framework of [35], which consists of four benchmarks representing di erent data structures: the sorted linked-list [20,26], lock-free hash map [26], a variant of the Bonsai Tree [13], which is a selfbalancing lock-free binary tree, and Natarajan and Mittal's binary tree [29]. The test framework already implements several SMR schemes.…”
Section: Discussionmentioning
confidence: 99%
“…We then apply the more advanced RLU scheme with the deferral mechanism of synchronize calls to the state-of-theart RCU-based Citrus tree [2], an enhancement of the Bonsai tree of Clements et al [5]. The Citrus tree uses both RCU and fine-grained locks to deliver the best performing search tree to date [2,5]. We show that the code of a Citrus tree based on RLU is significantly simpler and provides better scalability than the original version based on RCU and locks.…”
Section: Discussionmentioning
confidence: 99%
“…It requires the programmer to implement dedicated code in order to duplicate every object it modifies, and ensure that the pointers inside the copies are properly set to point to the correct locations, before finally connecting this set of copies using a single atomic pointer assignment (or using lock-protected critical sections). This complexity is evidenced by the fact that there are not many RCU-enhanced data structures beyond simple linked-lists, and the few other RCU-ed data structures are innovative algorithms published in research papers [2,5]. A classic example of this difficulty is the doubly linked list implementation in the Linux Kernel, in which threads are only allowed to traverse the list in the forward direction (the backward direction is unsafe and may return in inconsistent sequence of items) because of the limitations of the single pointer manipulation semantics [5,26].…”
Section: Introductionmentioning
confidence: 99%
See 1 more Smart Citation
“…A single writer at a time runs in parallel with readers, performing additional work to track which readers may have observed a node they wish to deallocate. There are now RCU implementations of many common tree data structures [9,36,6,26,3,21], and RCU plays a key role in Linux kernel memory management [29].…”
Section: Introductionmentioning
confidence: 99%