Affiliation:
1. MIT, Cambridge, MA, USA
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 increasing the concurrency of kernel operations on a shared address space by exploiting read-copy-update (RCU) so that soft page faults can both run in parallel with operations that mutate the same address space and avoid contending with other page faults on shared cache lines. To enable such parallelism, this paper also introduces an RCU-based binary balanced tree for storing memory mappings. An experimental evaluation using three multithreaded applications shows performance improvements on 80 cores ranging from 1.7x to 3.4x for an implementation of this design in the Linux 2.6.37 kernel. The RCU-based binary tree enables soft page faults to run at a constant cost with an increasing number of cores,suggesting that the design will scale well beyond 80 cores.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Cited by
12 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Virtual-Memory Assisted Buffer Management;Proceedings of the ACM on Management of Data;2023-05-26
2. Timely Mobile Routing: An Experimental Study;IEEE INFOCOM 2023 - IEEE Conference on Computer Communications Workshops (INFOCOM WKSHPS);2023-05-20
3. Lock-based or Lock-less: Which Is Fresh?;IEEE INFOCOM 2023 - IEEE Conference on Computer Communications;2023-05-17
4. The Concurrent Learned Indexes for Multicore Data Storage;ACM Transactions on Storage;2022-01-29
5. Memory-mapped I/O on steroids;Proceedings of the Sixteenth European Conference on Computer Systems;2021-04-21