Re: [RFC PATCH 0/4] (Take 2): transcendent memory ("tmem") for Linux

Anthony Liguori
2009-07-08T22:57:18Z

Dan Magenheimer wrote:
> Tmem [PATCH 0/4] (Take 2): Transcendent memory
> Transcendent memory - Take 2
> Changes since take 1:
> 1) Patches can be applied serially; function names in diff (Rik van Riel)
> 2) Descriptions and diffstats for individual patches (Rik van Riel)
> 3) Restructure of tmem_ops to be more Linux-like (Jeremy Fitzhardinge)
> 4) Drop shared pools until security implications are understood (Pavel
> Machek and Jeremy Fitzhardinge)
> 5) Documentation/transcendent-memory.txt added including API description
> (see also below for API description).
>
> Signed-off-by: Dan Magenheimer <dan.magenheimer@oracle.com>
>
> Normal memory is directly addressable by the kernel, of a known
> normally-fixed size, synchronously accessible, and persistent (though
> not across a reboot).
>
> What if there was a class of memory that is of unknown and dynamically
> variable size, is addressable only indirectly by the kernel, can be
> configured either as persistent or as "ephemeral" (meaning it will be
> around for awhile, but might disappear without warning), and is still
> fast enough to be synchronously accessible?

I have trouble mapping this to a VMM capable of overcommit without just
coming back to CMM2.

In CMM2 parlance, ephemeral tmem pools is just normal kernel memory
marked in the volatile state, no?

It seems to me that an architecture built around hinting would be more
robust than having to use separate memory pools for this type of memory
(especially since you are requiring a copy to/from the pool).

For instance, you can mark data DMA'd from disk (perhaps by read-ahead)
as volatile without ever bringing it into the CPU cache. With tmem, if
you wanted to use a tmem pool for all of the page cache, you'd likely
suffer significant overhead due to copying.

Regards,

Anthony Liguori