On Fri, Feb 24, 2012 at 6:41 AM, Stefan Hajnoczi <stefa...@gmail.com> wrote:
> On Thu, Feb 23, 2012 at 7:08 PM, peter.lie...@gmail.com <p...@dlh.net> wrote:
>>
>>
>>
>>
>> Stefan Hajnoczi <stefa...@gmail.com> schrieb:
>>
>>>On Thu, Feb 23, 2012 at 3:40 PM, Peter Lieven <p...@dlh.net> wrote:
>>>> However, in a virtual machine I have not observed the above slow down
>>>to
>>>> that extend
>>>> while the benefit of zero after free in a virtualisation environment
>>>is
>>>> obvious:
>>>>
>>>> 1) zero pages can easily be merged by ksm or other technique.
>>>> 2) zero (dup) pages are a lot faster to transfer in case of
>>>migration.
>>>
>>>The other approach is a memory page "discard" mechanism - which
>>>obviously requires more code changes than zeroing freed pages.
>>>
>>>The advantage is that we don't take the brute-force and CPU intensive
>>>approach of zeroing pages.  It would be like a fine-grained ballooning
>>>feature.
>>>
>>
>> I dont think that it is cpu intense. All user pages are zeroed anyway, but 
>> at allocation time it shouldnt be a big difference in terms of cpu power.
>
> It's easy to find a scenario where eagerly zeroing pages is wasteful.
> Imagine a process that uses all of physical memory.  Once it
> terminates the system is going to run processes that only use a small
> set of pages.  It's pointless zeroing all those pages if we're not
> going to use them anymore.

Perhaps the middle path is to zero pages but do it after a grace
timeout.  I wonder if this helps eliminate the 2-3% slowdown you
noticed when compiling.

This requires no special host<->guest interfaces for discarding pages.

Stefan

Reply via email to