[Tmem-devel] Latest tmem xen-unstable patch

Dan Magenheimer dan.magenheimer at oracle.com
Wed May 13 14:21:22 PDT 2009


Oops, forgot changeset comment and signed-off-by line.
A download link to the (fairly large) patch is below,
but if preferred, I can attach it to an email.

Thanks,
Dan

==================

This patch is the full implementation of transcendent
memory ("tmem") for Xen.  Tmem, when called from a
tmem-capable (paravirtualized) guest, makes use of
otherwise unutilized ("fallow") memory to create and
manage pools of pages that can be accessed from the
guest either as "ephemeral" pages or as "persistent"
pages.  In either case, the pages are not directly
addressible by the guest, only copied to and fro via
the tmem interface.  Ephemeral pages are a nice place
for a guest to put recently evicted clean pages that
it might need again; these pages can be reclaimed
synchronously by Xen for other guests or other uses.
Persistent pages are a nice place for a guest to put
"swap" pages to avoid sending them to disk.  These
pages retain data as long as the guest lives, but
count against the guest memory allocation.

Tmem pages may optionally be compressed and, in certain
cases, can be shared between guests.  Tmem also handles
concurrency nicely and provides limited QoS settings to
combat malicious DoS attempts.  Save/restore and
live migration support is not yet provided.

Tmem is primarily targeted for an x86 64-bit hypervisor.
On a 32-bit x86 hypervisor, it has limited functionality
and testing due to limitations of the xen heap.  Nearly
all of tmem is architecture-independent; three routines
remain to be ported to ia64 and it should work on that
architecture too.  It is also structured to be portable
to non-Xen environments.

Tmem defaults off (for now) and must be enabled with
a "tmem" xen boot option (and does nothing unless
a tmem-capable guest is running).  The "tmem_compress"
boot option enables compression which takes about 10x
more CPU but approximately doubles the number of pages
that can be stored.

Tmem can be controlled via several "xm" commands
and many interesting tmem statistics can be obtained.
A README and internal specification will follow,
but lots of useful prose about tmem, as well as
Linux patches, can be found at
http://oss.oracle.com/projects/tmem .

Signed-off-by: Dan Magenheimer <dan.magenheimer at oracle.com>

-----Original Message-----
From: Dan Magenheimer 
Sent: Wednesday, May 13, 2009 11:21 AM
To: Xen-Devel (E-mail); tmem-devel at oss.oracle.com
Subject: Latest tmem xen-unstable patch


Latest version of the tmem xen-unstable patch (against c/s 19597) that should hopefully
apply cleanly after post-3.4.0 unfreeze.

Includes some minor cleanup and a couple of bug fixes necessary only for
shared (cluster) pools.

http://oss.oracle.com/projects/tmem/dist/files/xen-unstable/tmem-xen-unstable-19597-090513.patch

Thanks,
Dan



More information about the Tmem-devel mailing list