MITOSIS
High Performance, Scalable Virtual Memory

Department of Computer Science
Rice University


Many modern applications stress virtual memory in unforeseen ways that expose a variety of performance and scalability problems of current systems. For instance, if an application's working set is larger than a mere megabyte, TLB misses may have a negative impact on performance much larger than the 4% or 5% reported as typical in the 80's. Other kind of problems are encountered when a web server maps thousands of files or a garbage collector plays memory protection tricks, because the underlying data structures that manage virtual memory were designed for much simpler scenarios.

The goal of this project is to better understand how virtual memory is used and stressed by modern workloads, and propose, implement and evaluate solutions to improve its performance and scalability.

Project Members

Superpages

Publications and presentations

  1. Juan Navarro, Sitaram Iyer, Peter Druschel and Alan Cox. Practical, transparent operating system support for superpages. Fifth Symposium on Operating Systems Design and Implementation (OSDI '02), Boston, Mass., Dec 2002.
    [ abstract  | postscript | html | powerpoint ]

Source code

Prototype implementation for Alpha/FreeBSD 4.3.
[ tar.gz | readme | license ]

Prototype implementation for IA-64/FreeBSD 5.0.
[ tar.gz | readme | license ]

Data structures for virtual memory

Publications and presentations

  1. Juan Navarro. Mitosis: high performance, scalable virtual memory. Work-in-progress report at the 2001 USENIX Technical Conference, Boston, MA.
    [ powerpoint ]
  2. Juan E. Navarro and Alan Cox. Mitosis: a high performance, scalable Virtual Memory system. Technical report TR01-378, CS Dept., Rice University, April 2001.
    [ abstract | postscript ]

Mitosis?

The name Mitosis seemed obvious to us after we depicted a proposed data structure in action: it looked a whole lot like cell division by mitosis! The data structure in question is a versioned tree that we use to do sloppy reference counting, that is, a reference counting scheme where for any item we only know a lower bound on the number of references if there is more than one. Incidentally, nothing more, nothing less than that is needed for copy-on-write. SVR4-like systems, such as Solaris, do more (and pay more for it), while Mach-like systems, such as most BSDs, do less and suffer the consequences.

The inspiring graphical sequence is:


Project partially supported by a USENIX Student Research Grant.

visitors since January 29, 2001.