Austin T. Clements, M. Frans Kaashoek, Nickolai Zeldovich

RadixVM is a scalable virtual memory system designed to parallelize VM operations on non-overlapping regions of the address space.


RadixVM: Scalable address spaces for multithreaded applications
Austin T. Clements, M. Frans Kaashoek, and Nickolai Zeldovich. In the Proceedings of the ACM EuroSys Conference (EuroSys 2013), Prague, Czech Republic, April 2013.


RadixVM is built atop an experimental research kernel, itself derived from xv6. RadixVM is now part of the larger sv6 project, which can be obtained via

$ git clone https://github.com/aclements/sv6.git

The version used for the EuroSys paper is tagged eurosys2013.

This is not a production kernel. Think of it as a playground, full of half baked experiments, dead code, some really cool hacks, and a few fantastic results. RadixVM lives mostly in kernel/{vm.cc,hwvm.cc}, and include/{vm.hh,hwvm.hh,radix_array.hh}. Refcache is in include/refcache.hh and kernel/refcache.cc. The benchmarks are in metis/ and bin/mapbench.cc. To get up and running quickly, try make qemu.

(RadixVM used to live at git://g.csail.mit.edu/xv6. That repository no longer exists and has been incorporated in the sv6 repository above.)