By Jonathan Corbet
July 8, 2009
Making the best use ofavailable memory is one of the biggest challenges for any operating system.Throwing virtualization into the mix adds both new challenges (balancing memoryuse between guests, for example) and opportunities (sharing pages betweenguests). Developers have responded with technologies like hot-plug memory and KSM, but nobody seems to think thatthe problem is fully solved. Transcendent memory is a new memory-managementtechnique which, it is hoped, will improve the system's use of scarce RAM,regardless of whether virtualization is being used.
In his linux-kernel introduction, DanMagenheimer asks:
What if there was aclass of memory that is of unknown and dynamically variable size, isaddressable only indirectly by the kernel, can be configured either aspersistent or as "ephemeral" (meaning it will be around for awhile,but might disappear without warning), and is still fast enough to besynchronously accessible?
Dan (along with a listof other kernel developers) is exploring this concept, which he calls"transcendental memory." In short, transcendental memory can bethought of as a sort of RAM disk with some interesting characteristics: nobodyknows how big it is, writes to the disk may not succeed, and, potentially, datawritten to the disk may vanish before being read back again. At a first blush,it may seem like a relatively useless sort of device, but it is hoped thattranscendental memory will be able to improve performance in a few situations.
There is anAPI specification [PDF] available; there is also a related C API found inthe patch itself. This discussion will focus on the latter, which suffers fromless EXCESSIVE CAPITAL USE and is generally easier to understand.