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

Avi Kivity
2009-07-12T17:16:27Z

On 07/12/2009 07:20 PM, Dan Magenheimer wrote:
>>> that information; but tmem is trying to go a step further by making
>>> the cooperation between the OS and hypervisor more explicit
>>> and directly beneficial to the OS.
>>>
>> KVM definitely falls into the camp of trying to minimize
>> modification to the guest.
>>
>
> No argument there. Well, maybe one :-) Yes, but KVM
> also heavily encourages unmodified guests. Tmem is
> philosophically in favor of finding a balance between
> things that work well with no changes to any OS (and
> thus work just fine regardless of whether the OS is
> running in a virtual environment or not), and things
> that could work better if the OS is knowledgable that
> it is running in a virtual environment.
>

CMM2 and tmem are not any different in this regard; both require OS
modification, and both make information available to the hypervisor. In
fact CMM2 is much more intrusive (but on the other hand provides much
more information).

> For those that believe virtualization is a flash-in-
> the-pan, no modifications to the OS is the right answer.
> For those that believe it will be pervasive in the
> future, finding the right balance is a critical step
> in operating system evolution.
>

You're arguing for CMM2 here IMO.

> Is it the tmem API or the precache/preswap API layered on
> top of it that is problematic? Both currently assume copying
> but perhaps the precache/preswap API could, with minor
> modifications, meet KVM's needs better?
>
>

My take on this is that precache (predecache?) / preswap can be
implemented even without tmem by using write-through backing for the
virtual disk. For swap this is actually slight;y more efficient than
tmem preswap, for preuncache slightly less efficient (since there will
be some double caching). So I'm more interested in other use cases of
tmem/CMM2.Well, first, tmem's very name means memory that is "beyond the
> range of normal perception". This is certainly not the first class
> of memory in use in data centers that can't be accounted at
> process granularity. I'm thinking disk array caches as the
> primary example. Also lots of tools that work great in a
> non-virtualized OS are worthless or misleading in a virtual
> environment.
>
>

Right, the transient uses of tmem when applied to disk objects
(swap/pagecache) are very similar to disk caches. Which is why you can
get a very similar effect when caching your virtual disks; this can be
done without any guest modification.

--
I have a truly marvellous patch that fixes the bug which this
signature is too narrow to contain.