On 06/20/2017 06:49 PM, David Hildenbrand wrote: > On 20.06.2017 18:44, Rik van Riel wrote: >> On Mon, 2017-06-12 at 07:10 -0700, Dave Hansen wrote: >> >>> The hypervisor is going to throw away the contents of these pages, >>> right? As soon as the spinlock is released, someone can allocate a >>> page, and put good data in it. What keeps the hypervisor from >>> throwing >>> away good data? >> >> That looks like it may be the wrong API, then? >> >> We already have hooks called arch_free_page and >> arch_alloc_page in the VM, which are called when >> pages are freed, and allocated, respectively. >> >> Nitesh Lal (on the CC list) is working on a way >> to efficiently batch recently freed pages for >> free page hinting to the hypervisor. >> >> If that is done efficiently enough (eg. with >> MADV_FREE on the hypervisor side for lazy freeing, >> and lazy later re-use of the pages), do we still >> need the harder to use batch interface from this >> patch? >> > David's opinion incoming: > > No, I think proper free page hinting would be the optimum solution, if > done right. This would avoid the batch interface and even turn > virtio-balloon in some sense useless. > Two reasons why I disagree: - virtio-balloon is often used as memory hotplug. (e.g. libvirts current/max memory uses virtio ballon) - free page hinting will not allow to shrink the page cache of guests (like a ballooner does)