[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-ppc] [Qemu-devel] [RFC 1/5] virtio-balloon: Remove unnecessary

From: Eric Blake
Subject: Re: [Qemu-ppc] [Qemu-devel] [RFC 1/5] virtio-balloon: Remove unnecessary MADV_WILLNEED on deflate
Date: Fri, 12 Oct 2018 12:59:53 -0500
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.0

On 10/12/18 12:41 PM, Richard Henderson wrote:
On 10/11/18 8:24 PM, David Gibson wrote:
When the balloon is inflated, we discard memory place in it using madvise()
with MADV_DONTNEED.  And when we deflate it we use MADV_WILLNEED, which
sounds like it makes sense but is actually unnecessary.

The misleadingly named MADV_DONTNEED just discards the memory in question,
it doesn't set any persistent state on it in-kernel; all that's necessary
to bring the memory back is to touch it.

Isn't the point of deflate to free up host memory, for use by other guests or

If I remember correctly, deflate says to make the balloon smaller (that is, the balloon gets out of the way so that the guest can use more memory); inflate says to make the balloon bigger (that is, the guest has less memory available to use because the inflated balloon is occupying that memory instead - where memory occupied by the balloon is really memory handed back to the host).

If you do nothing upon deflate, then that doesn't actually happen.  It seems to
me that this is backward and you should use DONTNEED on deflate and then
inflate should do nothing.

Or rather, it sounds like your definition of deflate is opposite the one I recall (you are trying to argue that deflate means the guest uses less memory and is therefore deflating in size; while I thought deflate meant that the balloon shrinks in size making more memory available to the guest).

Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3266
Virtualization:  qemu.org | libvirt.org

reply via email to

[Prev in Thread] Current Thread [Next in Thread]