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

Citation Types

1
38
0

Year Published

2012
2012
2023
2023

Publication Types

Select...
4
2
1

Relationship

1
6

Authors

Journals

citations
Cited by 30 publications
(39 citation statements)
references
References 6 publications
1
38
0
Order By: Relevance
“…Meanwhile, Linux has an extremely complex implementation for page table management with advanced features including demand paging and swapping [26]. Modifying page tables dynamically could be a bottleneck in some cases and has been actively studied and optimized over many years [27]. Consequently, if an application frequently requests the memory management services from kernel, it may have better performance on FMP than Linux.…”
Section: Memory Managementmentioning
confidence: 99%
“…Meanwhile, Linux has an extremely complex implementation for page table management with advanced features including demand paging and swapping [26]. Modifying page tables dynamically could be a bottleneck in some cases and has been actively studied and optimized over many years [27]. Consequently, if an application frequently requests the memory management services from kernel, it may have better performance on FMP than Linux.…”
Section: Memory Managementmentioning
confidence: 99%
“…The single read-write lock protects the OS index data structures that map virtual addresses to metadata for mapped memory regions, as well as invariants between the OS index data structure and the hardware page tables and TLBs. In our earlier work on the Bonsai VM system, we described a lock-free design for page faults in Linux, but that design still required the use of Linux's address space lock to serialize mmap and munmap operations [7].…”
Section: Related Workmentioning
confidence: 99%
“…Because of complex invariants in virtual memory systems, widely used kernels, such as Linux and FreeBSD, have a single lock per shared address space. Recent research shows how to run a page fault handler in parallel with mmap and munmap calls in the same address space [7], but still serializes mmap and munmap, which applications use to allocate and return memory to the operating system. However, if the mmap and munmap involve non-overlapping memory regions in the shared address space, as is the case in memory allocation and freeing, then in principle these calls should be perfectly parallelizable because they operate on Permission to make digital or hard copies of part or all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page.…”
Section: Introductionmentioning
confidence: 99%
See 1 more Smart Citation
“…A persistent augmented balanced binary tree [9,8], such as a red-black tree or an AVL tree, is used to implement T v . Each pair in the sequence I(v) is represented by a node containing the side and the size of the pair.…”
Section: Append(tmentioning
confidence: 99%