RE: [RFC] transcendent memory for Linux

Dan Magenheimer
2009-06-29T14:36:18Z

Hi Pavel --

Thanks for the feedback!

> This description (whole mail) needs to go into
> Documentation/, somewhere.

Good idea. I'll do that for the next time I post the patches.

> > Normal memory is directly addressable by the kernel,
> > of a known normally-fixed size, synchronously accessible,
> > and persistent (though not across a reboot).
> ...
> > Transcendent memory, or "tmem" for short, provides a
> > well-defined API to access this unusual class of memory.
> > The basic operations are page-copy-based and use a flexible
> > object-oriented addressing mechanism. Tmem assumes
>
> Should this API be documented, somewhere? Is it in-kernel API or does
> userland see it?

It is documented currently at:

http://oss.oracle.com/projects/tmem/documentation/api/

(just noticed I still haven't posted version 0.0.2 which
has a few minor changes).

I will add a briefer description of this API in Documentation/

It is in-kernel only because some of the operations have
a parameter that is a physical page frame number.

> > "Preswap" IS persistent, but for various reasons may not always
> > be available for use, again due to factors that may not be
> > visible to the kernel (but, briefly, if the kernel is being
> > "good" and has shared its resources nicely, then it will be
> > able to use preswap, else it will not). Once a page is put,
> > a get on the page will always succeed. So when the kernel
> > finds itself in a situation where it needs to swap out a page,
> > it first attempts to use preswap. If the put works, a disk
> > write and (usually) a disk read are avoided. If it doesn't,
> > the page is written to swap as usual. Unlike precache, whether
>
> Ok, how much slower this gets in the worst case? Single hypercall to
> find out that preswap is unavailable? I guess that compared to disk
> access that's lost in the noise?

Yes, the overhead of one hypercall per swap page is lost in
the noise.

Dan