Our Emperor Sponsors

  • InternetNZ
  • Google
  • IBM
  • HP

<-- Back to schedule

Transcendent Memory: A new approach to managing RAM in a virtualized environment

Time:14:30 - 15:15
Day:Thursday 21 January 2010
Location:Renouf 2 (MFC)
Project: Transcendent Memory

Managing a fixed amount of RAM optimally is a long-solved problem in the Linux kernel. Managing RAM optimally in a virtual enviroment, however, is still a challenging problem because: (1) each guest kernel is busy optimizing its entire fixed RAM allocation oblivious to the needs of other guests, and (2) very little information is exposed to the virtual machine manager (VMM) to enable it to decide if one guest needs RAM more than another guest. Mechanisms such as "ballooning" and hot-plug memory (Schopp, OLS'2006) allow RAM to be taken from a "selfish" guest and given to a "needy" guest, but these have significant known issues and, in any case, don't solve the hard problem: Which guests are selfish and which are needy? IBM's Collaborative Memory Management (Schwidefsky, OLS'2006) attempts to collect information from each guest and provide it to the VMM, but was deemed far too complex and attempts to upstream it have so far been rebuffed.

Transcendent Memory ("tmem" for short, see is a new approach to optimize RAM utilization in a virtual environment. Underutilized RAM from each guest, plus RAM unassigned to any guest ("fallow" memory), is collected into a central pool. Indirect access to that RAM is then provided by the VMM through a carefully crafted, page-copy-based interface. Linux kernel changes are required but are relatively small and not only provide valuable information to the VMM, but also furnish additional "magic memory" (which can be optionally compressed), provide performance benefits, and mitigate some of the issues that arise from ballooning/hotplug. We will introduce tmem and its implementation in the Xen environment, show how tmem can be used, describe the kernel changes required, and demonstrate tmem's advantages.

Dan Magenheimer

Dan is a consulting developer for Oracle Corporation working from home in Colorado on Xen for "Oracle VM", Oracle's Xen-based virtualization product. Prior to Oracle he worked for HP for 25 years, most recently as a principal research scientist at HP Labs. Dan is the primary developer for tmem, though several other kernel developers have contributed.