Scalable address spaces using RCU balanced trees

作者: Austin T. Clements , M. Frans Kaashoek , Nickolai Zeldovich

DOI: 10.1145/2150976.2150998

关键词:

摘要: Software developers commonly exploit multicore processors by building multithreaded software in which all threads of an application share a single address space. This shared space has cost: kernel virtual memory operations such as handling soft page faults, growing the space, mapping files, etc. can limit scalability these applications. In widely-used operating systems, are synchronized per-process lock. paper contributes new design for increasing concurrency on exploiting read-copy-update (RCU) so that faults both run parallel with mutate same and avoid contending other cache lines. To enable parallelism, this also introduces RCU-based binary balanced tree storing mappings. An experimental evaluation using three applications shows performance improvements 80 cores ranging from 1.7x to 3.4x implementation Linux 2.6.37 kernel. The enables at constant cost number cores,suggesting will scale well beyond cores.

参考文章(16)
Paul E. Mckenney, Jonathan Walpole, Exploiting deferred destruction: an analysis of read-copy-update techniques in operating system kernels Oregon Health & Science University. ,(2004)
Christian Bienia, Kai Li, Benchmarking modern multiprocessors Princeton University. ,(2011)
H Chen, Rong Chen, Yandong Mao, F Kaashoek, R Morris, A Pesterev, L Stein, M Wu, Y Dai, Y Zhang, Z Zhang, None, Corey: an operating system for many cores operating systems design and implementation. pp. 43- 57 ,(2008) , 10.5555/1855741.1855745
Philip W. Howard, Jonathan Walpole, Relativistic red-black trees Concurrency and Computation: Practice and Experience. ,vol. 26, pp. 2684- 2712 ,(2014) , 10.1002/CPE.3157
Silas Boyd-Wickizer, Nickolai Zeldovich, Aleksey Pesterev, Yandong Mao, Austin T. Clements, Robert Morris, M. Frans Kaashoek, An analysis of Linux scalability to many cores operating systems design and implementation. pp. 1- 16 ,(2010) , 10.5555/1924943.1924944
Paul E. McKenney, Jonathan Walpole, Introducing technology into the Linux kernel: a case study Operating Systems Review. ,vol. 42, pp. 4- 17 ,(2008) , 10.1145/1400097.1400099
J. Nievergelt, E. M. Reingold, Binary search trees of bounded balance symposium on the theory of computing. pp. 137- 142 ,(1972) , 10.1145/800152.804906
Keir Fraser, Tim Harris, Concurrent programming without locks ACM Transactions on Computer Systems. ,vol. 25, pp. 5- ,(2007) , 10.1145/1233307.1233309
Maurice Herlihy, A Methodology for Implementing Highly Concurrent Data Objects Operating Systems Review. ,vol. 26, pp. 12- ,(1992) , 10.1145/142111.964613