2012
DOI: 10.1145/2248487.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...
2
2
1

Citation Types

0
15
0

Year Published

2012
2012
2019
2019

Publication Types

Select...
4
2
1

Relationship

0
7

Authors

Journals

citations
Cited by 21 publications
(15 citation statements)
references
References 6 publications
0
15
0
Order By: Relevance
“…Actually, this is not a specific problem to PMigrate, but a general problem to most operating systems that use a per-process lock to serialize concurrent mutation to an address space. Though Clements et al [14] have demonstrated the effectiveness in parallelizing the process of read accesses to address space (i.e., page faults) with write accesses (e.g., mmap) using a RCU balanced tree, the mutation to the address space like mmap/munmap still requires acquiring the mmap sem in write mode. Hence, there is still only one mmap/munmap operation can proceed at a time.…”
Section: Range Lockmentioning
confidence: 99%
See 3 more Smart Citations
“…Actually, this is not a specific problem to PMigrate, but a general problem to most operating systems that use a per-process lock to serialize concurrent mutation to an address space. Though Clements et al [14] have demonstrated the effectiveness in parallelizing the process of read accesses to address space (i.e., page faults) with write accesses (e.g., mmap) using a RCU balanced tree, the mutation to the address space like mmap/munmap still requires acquiring the mmap sem in write mode. Hence, there is still only one mmap/munmap operation can proceed at a time.…”
Section: Range Lockmentioning
confidence: 99%
“…In practice, there are a number of memory states that should be maintained consistently for an OS kernel. Further, current Linux kernel still uses a red/black tree like data structure to maintain both virtual memory areas and memory states, completely replacing it into a new data structure will be very resource-intensive due to a number of other correlated data structures such as reverse map and mmap cache [14]. As a result, PMigrate currently only uses range lock to parallelize the time-consuming parts inside the mmap/munmap/foreign map calls by removing them from the critical sections protected by the mmap mem and protecting them by the Range Locks, while still leaving the original data structure intact.…”
Section: Range Lockmentioning
confidence: 99%
See 2 more Smart Citations
“…A few years ago, studies [11,17] showed that many opensource and commercial database engines exhibit limited multi-core scalability, and even performance collapse, due to bottlenecks in their lock, log or transaction manager. This has triggered significant research activity [3,5,12,[14][15][16][17]19] aimed at reducing lock or latch contention.…”
Section: Introductionmentioning
confidence: 99%